using System.Collections.Generic; using System.Threading.Tasks; namespace Jovian.SaveSystem { /// /// Top-level facade for the save system. Orchestrates serialization, /// storage, and slot management. This is the main API the game interacts with. /// public interface ISaveSystem { string CreateSession(); bool HasAnySaves(); void Save(string sessionId, TData data, SaveSlotType slotType); TData Load(SaveSlotInfo slot); Task SaveAsync(string sessionId, TData data, SaveSlotType slotType); Task LoadAsync(SaveSlotInfo slot); IReadOnlyList GetSlots(string sessionId); IReadOnlyList GetAllSessions(); void DeleteSlot(SaveSlotInfo slot); void DeleteSession(string sessionId); } }