Headless sim: a bevy_ecs world stepped without a renderer.
The game owns a [Sim], advances it with fixed-timestep [Sim::step],
and pulls a snapshot out each frame for the viewport (see repame-sprite).
Systems are plain functions registered on the schedule; no bevy_app,
no window, no renderer. The sim stays portable to full Bevy later.