Versioning

Versions live in the URL path.

All endpoints are served under /api/v1. The version prefix is explicit rather than negotiated through headers, so a request's version is visible in logs, in a browser address bar and in a curl command.

A breaking change would ship as a new prefix rather than altering v1 in place. Additive changes — a new optional field, a new endpoint — may appear in v1 without notice, so parse defensively and ignore fields you do not know.