using Cysharp.Threading.Tasks; namespace BriarQueen.Framework.Services.Puzzles.Base { public interface IPuzzleStateful { /// If true, manager can mark the puzzle completed (and optionally clear state). bool IsCompleted { get; } UniTask CaptureState(); /// Restore the puzzle from a previously captured serialized blob. UniTask RestoreState(byte[] state); } }