{"protocol":"0.4","api_base":"/v1","coordinate_profile":"cartesian-y-up-v1","schema":"/docs/protocol","start_guide":"/start","capabilities":["regions:aabb-v1","regions:authority-v1","regions:manifest-v1","regions:mcp-context-v1","objects:primitives-v1","objects:asset-backed-v1","geometry:mesh-v1","assets:manifest-v1","assets:generated-v1","credits:ledger-v1","ai:planner-v1","delegation:grants-v1","delegation:requests-v1","presence:ephemeral-v1","realtime:channel-v1","client:identity-v1"],"authorities":[{"id":"elsewhere","base_url":"https://api.elsewhereprotocol.com","protocol":"elsewhere","protocol_version":1,"status":"active"}],"default_authority":"elsewhere","region_manifest_template":"/v1/regions/{region_id}/manifest","geometry":{"note":"A primitive palette is an implementation capability, not the geometric vocabulary or fidelity ceiling of this world (§8.1). Do not decompose a complex visual thing into primitives because primitive commands are available.","routing":{"primitives":"Massing and structure: walls, floors, roofs, roads, plinths, blockouts, collision proxies.","mesh":"Assembled stock parts: slats, railings, pipework, barrels. Swept, revolved, extruded, arrayed.","asset":"Anything with a recognisable shape or character. Made anywhere — Blender, CAD, a generator — and registered by content hash.","generated":"This world runs Blender scripts and hands back a render, so an agent can look at what it made and fix it. See /v1/models:render."},"test":"Would the geometry be recognisable as what was asked for if the renderer could not read the authored description? If not, it is a blockout and should be called one."},"client":{"header":"elsewhere-client","format":"name/version; protocol=MAJOR.MINOR; features=a,b","example":"elsewhere-web/0.1.0; protocol=0.4; features=realtime,gltf","notice_header":"elsewhere-client-notice","notice_on":["/health","/world","/.well-known/elsewhere"],"note":"Optional and advisory. Send it and this world answers, on the paths above only, with a plain-English notice when your client is behind, ahead, or has not said. A client that matches gets no notice at all, so its presence is the signal."},"realtime":{"websocket":"/v1/events:subscribe","sse":"/v1/events:stream","cursor_replay":"/v1/events","limits":{"presence_ingest_hz":20,"presence_fanout_hz":5,"presence_ttl_ms":30000,"max_subscriptions_per_connection":8,"max_subscription_volume_m3":8000000,"interest_hysteresis_m":8,"cursor_window":10000,"connections_per_identity":10,"heartbeat_interval_ms":25000},"guarantees":{"event_ordering":"per-subscription","events_coalesced":false,"presence_coalesced":"latest-wins-per-identity","presence_lossy":true},"optimistic_interaction":{"rules":"/docs/optimistic-interaction","predictable":"affordance.sets only","rollback":"discard on rejection; adopt current_state from the refusal","max_prediction_ms":250}}}