Versioning
The API is versioned under a /v1 prefix — here's the current state.
Every endpoint is under /v1
Every path in this reference is prefixed with /v1 (/v1/chat, not /chat). The one exception is /health,
which stays unprefixed on purpose — it's an infra liveness check, not part of the versioned public contract, and
monitoring tools point at a bare path.
A machine-readable OpenAPI spec is now published by the API itself — the raw JSON at /docs-json, and an
interactive Swagger UI at /docs — generated directly from the real route handlers and request/response types, so
it can't silently drift the way hand-written prose can. This page is still hand-written for now; migrating it to
render the generated spec directly, instead of describing it by hand, is a natural next step but hasn't happened yet.