Step 17 in the plan is "Polydegmon + save system". Split: 17a = saves (done now), 17b = boss framework + Polydegmon.
Built (Unity project):
Runtime/Save/:- SaveData: plain ids and numbers, versioned JSON.
- SaveFiles: one slot, written atomically (temp file, then swap), keeps a .bak, falls back to the backup if the save is corrupt.
- ContentCatalog: every item and affix by id.
- SaveMapping: pure, tested.
- PlayerSaveSlot: capture, apply and autosave.
- RunState: New Game / Continue / Save and quit to title. Resets flags, waypoints, the portal and the loot guarantee between runs.
- Saved:
- level and XP
- drachmae
- learned skill nodes and ranks (restored in passes so prerequisites work out in any order)
- bag (by cell), worn gear and the stash, including affix rolls
- quests: state, step, count and the catch-up history
- world flags
- discovered waypoints
- the first-Blessed loot guarantee
- time played
- Autosave: every 15 s, on scene arrival, on quest progress, on level-up, and on quit. Only runs that start from the title screen save; playing a scene straight from the editor is a test run and never touches the save.
- Loading always arrives in Eleusis at full health (ARPG standard).
- Title screen (SCN_Title, now first in Build Settings): Continue (class · level · chapter · time played), New game (asks before replacing a save), Quit.
- Game menu (Esc), WoW-style: Esc closes a window first, then drops the target, then opens the menu. The menu pauses the game and offers Resume / Save / Save and quit to title / Save and quit the game.
- UIWindows registry so Esc knows whether a window is open. Gameplay input is blocked while paused (UIInputBlock.Paused).
- Editor menus:
- Embers → Setup → Create Title Screen
- Embers → Data → Refresh Content Catalog
- Embers → Saves → Open Save Folder / Delete Save
- 11 new EditMode tests (SaveTests). Compiled clean.
- Tagline on the title screen: "Nothing is ruined, only unattended." (the art law). The user should confirm it.
Next: 17b, the boss framework and Polydegmon (see boss-polydegmon.md).