v1, under /public/v1/. Within v1, changes are additive only:
- a new route, a new optional parameter, a new response field, or a new error code;
- never a removed or renamed field, a changed type, or a changed meaning.
openapi.json) is generated from the code, and the build fails when the two disagree.