- screen transitions snapshot the previous frame (ratatui swaps buffers
after draw, so the old snapshot was always blank); frame loop extracted
into a testable Runner
- .city loading rejects structurally inconsistent files: Grid deserialize
checks size vs data, load_city checks header vs body and runs
City::validate (now also checks Net link endpoints)
- saving from the map hands the live map screen back instead of a fresh
explore screen
- signage glyphs covered by the unicode-width test
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- README with run instructions and key reference
- lift the crate-level dead_code allowance; scope it to the anim library surface
- render paths tolerate a city that is still generating (district/building ids
without entries), found by driving the app through a pty
- status messages show in the status bar, not only inside the inspector
- buffered JSON export (26 s -> 0.4 s for a large city)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>