- Difficulty = parameters, never forks. DifficultyDefinition assets live in Data/Difficulty (DifficultyDataBuilder; menu Embers → Data → Create Difficulty Tiers). The PlayerSaveSlot registers the DifficultyTable; GameDifficulty holds the current tier.
- Heroic:
- enemies 2× health, 1.5× damage; packs ×1.35; elite chance +15%;
- Keres burst on death (0.9 s telegraphed ring, then a small Umbral pop);
- Shades fire a second bolt;
- −20 Umbral/Divine resist (the stat sheet shows the effective value);
- boss 1.8× health, Pull cooldown ×0.85;
- rewards: 1.6× XP, 1.5× drachmae, Blessed ×1.5 and Heroic ×2 weights, affix tiers +1 (so T3 appears), Sheaf chance ×1.5.
- Divine:
- enemies 3.2× health, 2.1× damage; packs ×1.6; elite chance +30%;
- elites roll two affixes ("Elite - Fleet, Warding");
- the First Furrow raises faster (×0.6 interval);
- −40 resist;
- boss 2.8× health, Pull ×0.7;
- rewards: 2.4× XP, 2× drachmae, Blessed ×2 and Heroic ×3 weights, affix tiers +2, Sheaf chance ×2.5 (37.5%).
- Unlocks: finishing the act (flag.act1.complete) opens the next tier, announced "The Heroic road is open…". Saved as HighestDifficulty.
- Title screen: Mortal · Heroic · Divine buttons under Continue; locked tiers are shut and the current tier is marked. Picking another tier asks first, then walks Act I again: level, gear, skills and drachmae are kept; quests, flags, waypoints and history reset. The save summary shows the tier.
- Tests: unlock rule, StartActOver reset, neutral without a table, LootBoost tiers/weights.
- Deferred (boss-polydegmon §10): Cold Exhale rotating, re-consumed adds empowering the boss, the Divine "Unfinished Rite", Skeletal Hoplite formations; enemy levels.
- Compile: clean with dotnet (Unity was open). Unity tests not run yet.