Files
przygody-pana-cegly/docs/adr/0001-three-progression-scopes.md
Gabriel Kaszewski dd113af786 docs: progression CONTEXT, ADRs 0001-0004, phase A plan
ignore .idea/ .superpowers/ bin/ obj/; drop 3 identical csproj backups
2026-07-28 18:11:01 +02:00

1.1 KiB

Player progression has three scopes, not two

Progression state was two scopes — PlayerState (persisted) and SessionState (transient) — with achievements and best times leaking out as special cases: PlayerState.Reset() deliberately skipped UnlockedAchievements, and best times lived in the ghost replay files rather than the save. We split progression into Attempt, Playthrough and Profile (defined in CONTEXT.md), because introducing save slots makes the third scope mandatory rather than a preference: Steam achievements are per-account and cannot be un-earned, so a per-Playthrough achievement list would permanently contradict Steam the moment a second slot exists. Best times follow the same argument — a completionist's record is not something starting a new game should reset.

Considered options

Keeping one persisted root with a hand-maintained list of fields that survive New Game. Rejected: that is exactly what the old Reset() did, and it had already drifted — achievements survived by omission rather than by design, and nothing would have caught the next missed field.