Studio · Token State — future system

Token State — living-state machine · states gallery

FUTURE WORK — Phase 2+ of Design Documentation/WIP/token-state-design.md. Nothing in this gallery is being implemented: current dev work on variants is the backend data store only, no UI. The Phase-1 UI reference (for when front-end work starts) is variant-reveal-states-gallery. This one explores the generalized machine that follows: Attributes = identity (locked at Live — traits, rarity inputs, filtering) vs State = memory (mutable after claim — XP, cooldowns, hunger, wear, quest flags). A State Policy is authored once as a project-level preset and batch-applied to many tokens; State Values then live inside it. Rolling limits are measured in hours; cooldowns are per-field; variant never resets on transfer; listed holdings are state-frozen.

Source: Design Documentation/WIP/token-state-design.md (decisions ruled 2026-07-07). Related: Variant reveal (current dev scope) · Token draft.
Future / WIP — not current implementation scope
01Policy preset · “Garden Pet v1” (project-level)A State Policy is a project resource, like revenue presets — authored once, versioned, then batch-attached to token definitions (frame 03) as a snapshot copy. Left: the fields, each with type, writers, and write rules (per-field cooldowns; rolling windows in hours). variant appears as a system field whose transition graph is read off the Actions. Right: the Actions — nothing changes without an enabled Action; a variant transition is the simplest one (verb, from → to, cooldown, one-way toggle: on = irreversible, off = reversible). Phase-3 rows (interaction, derived) are shown greyed-context for the future. Auto-saves; policy locks per-token when that token goes Live.
Studio/Project: Garden/State policies/Garden Pet v1
k1m9…7uvw
Project · State policies

Garden Pet v1.

The locked rulebook for living tokens — fields, write rules, and actions. Attach it to tokens with the batch tool.

Version 3
State fields
variantenum · systemSystemPublic
Transitions · A ⇄ B → CCooldown · 6 hTransfer · persists — never resets
pointsnumberPublicApproved app
Range · 0 – 1,000,000Rolling limit · +500 / 24 hCooldown · noneTransfer · persist
hungernumberPublicApproved app
Range · 0 – 100Marketplace · warn below 20Transfer · persist
last_wateredtimestampOwner
Write · derived-only (set by the Water action)Transfer · persist
Actions · authored in this preset — nothing changes without one
Bloomtransition · A → BOwner-runOne-way · off
Effect · set variant BCooldown · 6 hReversible — the toggle is off, so B → A is also allowed
Ascendtransition · B → COwner-runOne-way · on
Effect · set variant CCooldown · 24 hIrreversible — one-way is toggled on
Waterinteraction · Phase 3Owner-run
Input · 1 × Water token (4 charges, −1 per use, burns at 0)Effect · points +1, sets last_watered
Evolve triggerderived · Phase 3Derived
Rule · if variant = A and points > 10 → variant = B, points −5
Preset summary
Fields4 (1 system)
Actions2
Attached to14 tokens · v3
App allowlistgarden-app · scoped
Listed holdingsstate-frozen
02Add state field · modalEverything a field needs, declared up front: type, default, visibility, writers, write rules (cooldown + rolling window measured in hours), transfer behaviour, marketplace display. Per-field cooldowns only — there is no shared per-holding pool.

Add state field

✕
Rolling limits use rolling hours from each write — never calendar days, so there's no midnight reset to game and no timezone question.
03Batch attach · apply the preset to many tokensNever one token at a time. Select token definitions and apply the preset — attach is a snapshot copy of the current version (editing the preset later never mutates already-attached tokens; re-run this tool to re-apply pre-Live). Live tokens are skipped: their policy is locked.

Apply “Garden Pet v1” (v3)

✕
Fern SproutDraft · will update to v3
Moss KitDraft · will update to v3
Dew FoxDraft · currently v1 → v3
Sun SpriteLive · locked
14 Draft tokens will snapshot v3. 3 Live tokens skipped — their policy locked at go-Live and can never change.
04Token detail · Attributes / Living State / State RulesThe buyer-facing split, straight from the design principle: identity, memory, and the rulebook — what can this token become, who can change it, and what state am I inheriting. Value-affecting fields are always visible before purchase; hunger below its threshold carries the marketplace warning.
Attributes · permanent identity
SpeciesFern Sprout
PotTerracotta
RarityUncommon

Locked at Live. Traits, rarity inputs, filtering — state never touches these.

Living state · current memory
VariantB · Bloomed
Points7
Hunger14 ⚠
Last watered2 d ago
Hunger is below 20. This is the state you inherit if you buy.
State rules · the rulebook
Can becomeA ⇄ B → C
Who can change itOwner · garden-app
On transferEverything persists
While listedState frozen

Policy locked at Live · preset Garden Pet v1 (v3). No one can add rules later.

05Listed = state-frozenStructural, not a warning: a listed holding rejects every state write — owner, app, or system — so buyers purchase exactly the state they saw. An app write against a listed holding fails cleanly with the reason.

Water · Fern Sprout #012

✕
This token is listed for sale — its state is frozen. Cancel the listing to water it. Nothing about a listed token can change while a buyer could be purchasing it.