feat(sidecar): protocol 9 — five world forwards (phase 13a)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 2m58s

GET /world/monuments, GET /world/owned, POST /world/zone, POST /world/place
and POST /world/revert, each a correlated round trip with cmd and reqId
stamped over the caller's. The allowlist, bounds, monument vocabulary and
the registry of what each run owns live in the plugin (the module's PLAN.md
§28); this process moves lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-09-24 00:42:54 -05:00
parent 788bed89a0
commit a1a6177921
2 changed files with 76 additions and 3 deletions

View File

@@ -138,10 +138,17 @@ use tracing_subscriber::EnvFilter;
/// website. This process moves lines between them and learns nothing about either, which is why
/// the whole protocol is three thin forwards here.
///
/// # Protocol 9 — the world verbs
///
/// `GET /world/monuments`, `GET /world/owned`, `POST /world/zone`, `POST /world/place` and
/// `POST /world/revert`: what an event makes in the world — a zone, crates, NPCs — and gives back
/// (the module's PLAN.md §28). Five more thin forwards. The allowlist, the bounds, the monument
/// vocabulary and the registry of what each run owns all live in the plugin.
///
/// `docs/rust-link/PROTOCOL.md` is the specification — §8 the read path, §9 identity, §10 the
/// mirror, §11 configuration, §12 clans, §13 the raid frame, §14 the leases; this constant is one
/// of its four declaration sites.
pub const PROTOCOL_VERSION: u32 = 8;
/// mirror, §11 configuration, §12 clans, §13 the raid frame, §14 the leases, §15 the world verbs;
/// this constant is one of its four declaration sites.
pub const PROTOCOL_VERSION: u32 = 9;
fn main() -> anyhow::Result<()> {
let args = match cli::parse(std::env::args().skip(1)) {