639 B
639 B
Shared protocol
city.proto defines WebSocket messages, city generation jobs and room snapshots.
Run npm run proto:generate to regenerate the committed TypeScript bindings.
Rust bindings are generated by Cargo using a vendored protoc executable.
Handshake protocol version is 1. Positions are signed centimetres and resident IDs are uint32. Snapshots replace the AOI; deltas use absolute changed values so intermediate ticks can be coalesced. New fields must be additive; never reuse field numbers. An incompatible save version is rejected explicitly.
Static city format v1 uses JSON + gzip, independently of the network protocol.