Versions
Versia Protocol versions are written as 0.X.Y:
Xchanges when a release breaks compatibility with earlier versions. Adding a core entity type is a breaking change.Ychanges when a release stays compatible with other0.Xversions, for example by adding an optional field.
ActivityPub has no protocol versions. Matrix versions its specification and each endpoint separately. See Other Protocols.
Every Versia API endpoint is prefixed with /.versia/v0.X/, so all 0.X.Y versions share one prefix. The current prefix is /.versia/v0.7/. Instances list the versions they support at the well-known endpoint.
Implementations have no obligation to support more than one Versia version. They SHOULD support the latest version, as it helps avoid bogging down the network with old versions.
Choosing a Version
To talk to another instance, a sender reads its well-known endpoint and uses the highest 0.X that both instances support, at that version’s prefix.
Instances that share X but differ in Y MUST interoperate. Instances with no X in common MUST NOT federate.
Entities do not state a version: the prefix they are sent or fetched at decides it.