Design notes
Navigation map

The map is drawn from navigation-map.dot (Graphviz). In words:
- Boot: iOS launch screen → Splash and boot → Title.
- Title: Continue (when there is a save) → Loading → Field. New game → Confirm replace (only over a save) → Body type → Name → Loading → Field. Settings ⇄ Third-party notices. Practice battle → Battle → Title.
- Field: the Field HUD is the hub. Talking or using something opens Dialogue, which can open a Shop, a Field cast or a battle. Exits go through Loading to the next location. Encounters push a Battle over the location; its Results return to the field. Toasts appear over the HUD.
- Menu: Pause opens Journal, Map, Spell book and Inventory, which share one tab bar so you can move between them without going back. Spell book → Spell detail → Practice. Inventory → Item detail → Letter viewer. Settings. Save and quit → confirm → Title.
- Shortcuts: the objective tracker opens the Journal on the tracked quest; the Map button opens the local map; tapping a toast opens what it is about (Journal, spell detail or item); Shop's Sell tab reads the same bag as Inventory.
- Confirm dialog: a modal over any screen, for anything that can't be undone.