/v1. Its changes are of two kinds.
Additive changes are made without notice. A new field, endpoint, query parameter or event type
can appear at any time, and is recorded in the changelog. So a client must
ignore fields, event types and enum values it does not know. A client that fails on an unknown
field breaks on a change that was never a break.
A breaking change is a new version. Removing or renaming a field, changing a type or a meaning,
or removing an endpoint ships as /v2. /v1 is never changed in a breaking way.
Deprecation and sunset
/v1 lives at least 12 more months after /v2 is announced. From the announcement, /v1
answers with a Deprecation header (RFC 9745). Once the
shutdown date is set, it answers with a Sunset header (RFC 8594)
carrying that date.
Watch for both in your client and log them where somebody will read them: