The public read API is versioned. The contract version travels in the served OpenAPI document's info.version field, and a change that breaks a client is a version bump, not a silent edit.
- Additive changes — a new endpoint, a new optional field — ship without a version bump.
- Breaking changes — a removed field, a changed response shape, a renamed path — ship only in a new major version.
- Deprecation — an endpoint marked deprecated keeps working for one version before it is removed.