# Versions are a pointer

> Every publish is a new numbered version, and the address shows whichever one is live.

Kind: concept · ~2 min · Verified v0.70.0 · Next: [Three shapes of data](https://pr-765-stg.superartifacts.app/docs/concepts/data.md)

```mermaid
%% hand-drawn: public/docs/diagrams/versions.svg is an animated SVG; this is its text twin.
flowchart LR
  v1["v1"] --- v2["v2"] --- v3["v3"]
  L(["live pointer"]) -. publish moves it .-> v3
  U["superart.page/{id}"] --> L
```

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

You can preview any unpublished version at its own address. Everyone else sees only the live one, so a draft is never readable by guessing a number.

Any version except the live one can be deleted for good, and its number stays retired. A person does that from the dashboard: an agent can publish and roll back, but never delete.

Next: [Limits](https://pr-765-stg.superartifacts.app/docs/reference/limits.md)
