# Versions, checkpoints, and remixes

Keep source history distinct from immutable release versions.

Fixtures are `{name,input,expected}` with expected equal to the full output object.
Include 1–50 tests. `testPackage()` returns a SHA-256 content digest, pass/fail and
structured results. Changing source, manifest or fixtures invalidates that report.
CLI `pack` requires passing tests. Releases are immutable and require tests against
the exact digest. Restoring a checkpoint creates a new history entry.

Use **Remix as new build** for an independent identity and initial `0.1.0`
version. `provenance.remixedFrom` records the source identity, version, and SHA-256
digest. **Next patch version** increments the release version; checkpoints remain
independent of release numbers. The digest identifies content, not a verified
publisher signature.

**Download source + history + SDK** exports a ZIP with `my-block/stillmade.block.json`,
`my-block/src/recipe.json`, `my-block/tests/fixtures.json`, `history.json`, a working
package snapshot, the SDK implementation, CLI, documentation, and instructions for
your own LLM. Run `node packages/block-cli/cli.js pack my-block rebuilt.stillmade.json`
from the extracted folder (Node.js 22+; no dependency installation required).
Open the original build in StillMade and import the rebuilt file to append an
external-revision checkpoint. A different package identity opens as a new draft.

Built-in catalog blocks have **Download source + SDK** too. These archives contain
their client implementation and local source dependencies. They are host source
snapshots for external editing/review, not independently installable recipe
packages. Server implementation, credentials, and project data are not included.
