Expand description
Save schema V4 — drops the old hardcoded upgrades_earned set entirely
and introduces the infinite procedural upgrade tree.
V3 → V4 is a breaking change. The old UPGRADES catalog is gone;
every entry the player had earned under V3 is silently dropped. In
exchange the player’s V4 save carries an UpgradeTreeState whose
bought set is empty — they start fresh on the new tree at lot
(0, 0).
Once V4 is on main this file is FROZEN. Subsequent schema changes go
in v5.rs together with a From<GameStateV4> for GameStateV5
conversion.
Each persisted enum/struct re-uses V2’s frozen copies (modifier source,
effect, duration, modifier, fingerer state, buff). Only the top-level
GameState shape changes between V3 and V4.