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);