> ## Documentation Index
> Fetch the complete documentation index at: https://docs.totemlabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# How publishing works

> Follow a build from upload through validation to a live game link.

Publishing turns one static game archive into a live Totem game without exposing a partial upload to players.

## The publish sequence

1. Your AI tool calls `create_game` for a new game, or `request_upload` for an existing one.
2. Totem returns a temporary upload URL.
3. Your tool sends the gzip-compressed tar archive with HTTP `PUT`.
4. Your tool calls `publish`.
5. Totem validates the complete archive.
6. A valid build becomes live in one atomic change.
7. Your tool receives the game link.

The upload URL expires after 900 seconds. Request a fresh URL if it expires before the upload finishes.

## Validation is one pass

Totem reports every violation it finds, not only the first one. Your AI tool can fix the full set and upload one corrected archive.

## Players never see a partial upload

Players keep seeing the previous valid build while Totem checks a new upload. The live game changes only after validation succeeds.

## Republishing keeps the durable parts

When you publish again:

* The game keeps the same `game_id`, handle, and slug.
* The canonical public URL stays the same.
* The durable installed-app route remains `/g/<slug>`.
* Your API keys stay the same.
* Totem records the successful build in build history.

Opening older builds, choosing a previous public build, and restricted development builds are Coming soon. They have no setup instructions yet.

Open the returned link and test the game before sharing it.
