Real-time terminal UI for worldforge. Owns its own tick loop so pacing
can respond to user input; mirrors the sequence of phases in
run_simulation but interleaves rendering and keyboard events.
Run a simulation to completion (either all agents dead or cfg.ticks reached).
All narration is written to chronicle. Callers construct and configure the
chronicle themselves — stdout, file, or sink — and apply any color overrides
before handing it in.