namespace Theriapolis.Core.Persistence;

/// <summary>
/// Modules that own save-worthy state implement this interface.
/// CaptureState produces a serializable snapshot; RestoreState applies one
/// over the live module. Phase 5/6 add new persistables (faction/quest/rep)
/// without churning the SaveBody schema, by adding new IPersistable types
/// and one new field on SaveBody.
/// </summary>
public interface IPersistable<TState>
{
    TState CaptureState();
    void   RestoreState(TState state);
}
