{"version":1,"contract":{"confidence":"Figures carry confidence: 'high' | 'low' | 'unknown'. UNKNOWN MEANS THE SOURCE COULD NOT ANSWER — never treat it as zero. 'low' means measured but from thin data or a reported sampling cap.","caveats":"Every brief and score ships a caveats[] array. Read it before the numbers; it states assumptions (e.g. in-extent roads presumed impassable) and sampling limits.","degraded":"Responses with health.sourcesUsable < health.sourcesQueried are served uncached and incomplete by design. Retry later for a full read.","nulls":"A null score means the system refused to invent a number. Do not impute.","licenses":"Per-record license fields matter: ODbL-1.0 sources are share-alike; CDLA/CC0/public-domain are permissive. Keep them separable downstream."},"tools":[{"name":"hazard_events","method":"GET","path":"/openbb/events","params":{},"returns":"Active GDACS events with extent bboxes (posQuality: modeled-bbox), alert levels, provenance."},{"name":"event_brief","method":"GET","path":"/openbb/event-brief","params":{"id":"event id, e.g. FL1102983"},"returns":"Exposure/lifelines/condition/observation joins for one event; every figure has confidence; caveats[] first-class. First generation ~30s, then cached 30min.","latency":"up to 60s cold"},{"name":"event_changes","method":"GET","path":"/openbb/event-changes","params":{},"returns":"New/escalated/deescalated/resolved events, newest first, plus history-subsystem status."},{"name":"site_intel","method":"GET","path":"/openbb/site-intel","params":{"lat":"deg","lon":"deg","radius":"m, 100-3000","category":"optional, e.g. cafe — enables saturation factor"},"returns":"Explained site score: signed contributions, per-feature confidence, caveats, evidence geometry. score:null when too little is known.","latency":"up to 60s cold"},{"name":"site_scan","method":"GET","path":"/openbb/site-scan","params":{"bbox":"w,s,e,n (max 0.05 deg span)","category":"optional"},"returns":"Ranked grid cells with per-cell confidence and nearest-road distance."},{"name":"places_bbox","method":"GET","path":"/openbb/places","params":{"bbox":"w,s,e,n"},"returns":"Overture places (CDLA-permissive) in the box, sampled."},{"name":"infrastructure_bbox","method":"GET","path":"/openbb/infrastructure","params":{"bbox":"w,s,e,n"},"returns":"Communication + power structures (ODbL, surveyed positions). Coverage is very incomplete: absence is unknown, not zero."},{"name":"twin_earth","method":"GET","path":"/openbb/w/twin_earth","params":{},"returns":"All live twin layers plus unavailable[] naming absent layers and why."},{"name":"place_trends","method":"GET","path":"/openbb/place-trends","params":{"bbox":"w,s,e,n (max 1 deg/side, Indonesia archive coverage)"},"returns":"Map churn between the two newest archived snapshots: appeared/disappeared by id with named samples. Conflates real change with mapping activity — the caveat ships in-band."},{"name":"environmental_fingerprint","method":"GET","path":"/openbb/fingerprint","params":{"lat":"deg","lon":"deg"},"returns":"Hudhud v0 environmental fingerprint: passable width, sidewalk, surface, obstacles, signage, lighting, overhead clearance and flood evidence, read by a VLM from nearby street photos with the scale anchors it used, cross-checked against the street-class width prior. Figures ship confidence + source; disagreements are disclosed, not averaged.","latency":"5-20s cold (multi-image VLM), then cached 6h"}],"mcp":"POST /mcp — the same tools as a Model Context Protocol server (streamable HTTP, stateless), for agents that speak MCP rather than REST."}