namespace Mr.BrickAdventures.Progression; /// /// A Playthrough's state as plain data, for crossing the persistence seam. /// /// /// Deliberately primitives rather than value objects. A serialiser constructing /// or directly would bypass their factories and every guard in them, so instead /// re-runs those factories and a corrupt file fails at the domain /// edge. Carries no version field — versioning and migration belong to the store adapter, so the /// domain only ever knows the current shape. /// public sealed record PlaythroughSnapshot( Guid Id, int Lives, int Bank, string CurrentLevel, IReadOnlyDictionary OwnedSkills, IReadOnlyList ClearedLevels);