Versions are a pointer
Every publish is a new numbered version, and the address shows whichever one is live.
concept~2 minVerified v0.162.2
An artifact keeps a numbered list of versions: v1, v2, v3. The server hands out the numbers, and a number is never reused.
A version never changes after it is written. A correction is a new version, not an edit.
One is live
The artifact's address shows one version, the one the pointer is on. A new publish moves the pointer to itself. Putting the pointer on any other version is a separate, deliberate act.
Moving a pointer rebuilds nothing, so rolling back is publishing an older version. Rolling forward is the same move in the other direction.
The data rules travel with it
An artifact that collects answers declares what it collects. That declaration belongs to the version, so when the pointer moves, the rules move with it, and visitors never meet a form the page no longer has.
Looking and deleting
The owner can preview any unpublished version at its own address (/_v/{n}/). Everyone else sees only the live one, so a version is never readable by guessing a number.
Any version except the live one can be deleted for good, and its number stays retired. Only the owner does that, from the Versions tab in the dashboard: an agent can publish and roll back, but cannot delete a version. A version that is part of a signature request cannot be deleted. Responses collected under a deleted version stay, and a field name it declared stays bound to its first type for the life of the artifact.
Next: Limits