using System.Collections;
namespace AibisDream.SaveSystem
{
///
/// 快照提供者契约:将某一子系统的运行时状态与纯数据 DTO 互相转换。
///
/// 设计约定:DTO 不含事件、协程或 Unity 引用; 只读,
/// 负责逐项写回。实现类通常很薄,实际逻辑在各 Manager 中。
///
///
public interface ISnapshotProvider
{
///
/// 稳定显式 id,用作 的 key。
/// 见 ,不使用 C# 类型全名。
///
string SaveId { get; }
///
/// 读档还原顺序。数值越小越先执行(如 scene=10 先于 actor=40)。
///
int RestoreOrder { get; }
/// 从当前运行时捕获该子系统的快照 DTO;无可存内容时可返回 null。
object Capture();
/// 将 DTO 逐项还原到运行时;可为协程以等待异步加载。
IEnumerator Restore(object dto);
}
}