Maintain consistency for the Bus Map workspace.
- Rust workspace with shared domain types.
apps/webis the Bevy/WASM client.apps/apiis the Axum backend.- Region assets are external and versioned.
- Dorset is the first region, not a special case in the code.
- Realtime BODS access is proxied by the backend so client secrets are never exposed.
- Use type-driven design and explicit conversions.
- Prefer enums/newtypes over raw strings.
- Avoid hidden global state.
- Keep rendering, ingest, and transport boundaries separate.
- Extend
crates/domain. - Update API contracts.
- Update ingest normalization or region assets.
- Wire into Bevy systems last.