# The element table

## overview.md
```yaml
id: element-table
title: The element table
area: design
summary: Author the 64 elements themselves — flavour names, per-element properties, colours, values, spell-kinds, and rarity. The keystone table four other epics lean on and none owns.
repo: land-of-lor
depends_on: []
```

## What this is

The work of actually authoring the game's 64 elements: giving each one its in-game name and its property bundle. This is a **content-authoring epic** — its deliverable is a table, not code or UI. The governing principle is settled (Kris, 2026-08-06): **the hexagram is the machinery, the name is the flavour** — an element's identity is its six lines, but players meet it through a fun, memorable name ("Eye of Fire Newt" is Wind over Fire; Rah named Wind over Mountain "leather"). Naming the 64 and setting their properties is, in Kris's words, "a clear design decision now" — decided work to do, not an idea to weigh.

## Why it exists

Four epics lean on this table and each explicitly declines to own it:

- `object-system-experiments` names "the periodic-table/ingredient-authoring work" and says outright it does not resolve it and deliberately proposes no ingredient list.
- `spell-crafting-interface` builds the UI *over* the table (keyed slots, ghostly hexagrams).
- `barter-marketplace` trades what the table defines — per-element rarity is its whole economy.
- `battle-arena-poc` spends ingredients as its arena resource, and produced the sharpest constraint on the table ("64 is a fine number for a system, and an unworkable number for drops on a floor").

Four epics pointing inward at the same missing thing is the signature of a missing epic. This is it — and it's the keystone: the table unblocks all four.

## What's already decided (from `thought-specs/sixty-four-hexagrams-as-base-items-and-spell-slots.md` and `base-elements-marketplace-and-vip-chat-with-Rah.md`, filed 2026-08-06)

- Hexagram = element = base item = ingredient. One thing, not three. 64 of them, full stop.
- Each element carries a bundle of properties (a handful to a dozen); **the slot it's dropped into decides which property fires** — the same rare element is a terrain-shaper in one slot and a colour in another.
- Every element has a **numeric value** (feeds duration and any number-shaped slot) and a **colour** — so there are exactly 64 colours in the game.
- **The first ingredient decides the spell's kind** (life, terrain, destruction, spawn point, tower, clothing…) — 64 spell types, one per possible opener.
- **Rarity is a per-element property** and the primary balancing lever — which also turns `object-system-experiments`' gatherability-tiering candidate from a mechanism to invent into a column in this table.
- Naming convention in evidence: trigram-over-trigram structure gets a flavour name, and human-memorable beats AI-systematic (Rah's "leather" beat "Weatherstone").

## The fold-back: the world as a conversion graph (design conversation, 2026-08-06)

Nutted out with Kris by voice the same day the epic was created; these are agreed direction, not yet formal decisions:

- **Every complex item is a converter.** The item list already says Factory is the general converter and Spawn Point a special case — extend that view to everything: a tree is a factory (fertile ground + water field in, apples out), a newt is a factory (eats bugs, drops eye of newt on death), a volcano is a natural factory nobody built. The world is a directed graph of conversions flowing over the 64 elements, and "folding the periodic table back on itself" is that graph closing into cycles (tree → apple → seed → tree).
- **The table gets an origin column** (confirmed by Kris "100%"): how each element enters the world — mined from terrain, poured out of a generator, dropped only by complex items (eye of newt exists nowhere but inside newts), or crafted-only. A first-class per-element property, not a special case.
- **Tool-mediated extraction:** some origins require a complex item acting on another complex item — wood (likely Wood over Wood) comes only from trees, *and* only if you have an axe. The axe is itself a complex item.
- **Natural and player-made run on one mechanism.** Some converters grow wild in the land, some are built by players — same machinery everywhere. Kris flags this as significant beyond a detail.
- **Rarity becomes partly emergent** — an element is rare because its production chain is deep (need the creature → need the recipe → need the tree). Tune rarity by shaping the graph, not just stamping numbers. This also re-answers the arena-gatherability constraint: an arena's floor economy is defined by which converters are placed in it.
- **Cycles + conservation of matter must not become perpetual motion.** Fields (sun, water, fertility) are the energy input converters consume; generators are the sources. Whether **decay** exists as the sink (things rotting back into ground) is an open question Kris hasn't answered yet.
- **Custom player-built arenas** (noted here, touches `battle-arena-poc`): players shape their own arena with the same terraforming magic — an arena is defined by which converters are placed in it.

Kris notes he's "not 100% aligned" on every detail but wants to move forward and build anyway — next step is a visual POC of the conversion-graph idea (proposed: a single-file interactive HTML sim in `land-of-lor/pocs/`, in the style of `docs/historic/lor-kernel-sim-v0.html`, showing a tiny world + the live conversion graph + a conservation ledger).

## Scope

- Name all 64 (flavour names, per the machinery/flavour principle).
- Define the shared property schema: which properties every element has (value, colour, kind-as-opener, rarity tier, …) and how slot-keyed activation reads them.
- Assign each element's values across that schema.
- Reconcile 64 against the arena-gatherable floor — decide which subset plausibly drops on the ground mid-fight (the constraint recorded in `object-system-experiments`' "Core constraint" section).

## Non-goals

- Not the crafting UI (`spell-crafting-interface`), not 3D composition (`object-system-experiments`), not the recipe-matching engine (`server-architecture`), not the trade mechanics (`barter-marketplace`) — this epic feeds all of them and builds none of them.
- Not renaming the trigrams or the underlying I Ching structure — machinery is fixed; only flavour is being authored.

## Open design questions (prose for now — formalise as Question objects only if they start blocking tasks)

- Naming the spell-opener categories themselves (Kris stalled live on "the element that modifies the Earth").
- Whether wrong combinations explode, or explosion is just an element that behaves that way.
- Slot counts and slot order per recipe kind (colour-then-morphology was an oversimplified example, not a spec).
- Whether one trigram → size and the other → shape is the real morphology rule ("something like that, perhaps?").
- Transmutation's mechanism — rare, yes; how it works, undecided (connects to the changing-lines mutation element in `conduit-and-changing-landscape.md`).
- VIP — Rah wants it, Kris doesn't get it; redirected to private areas but not closed. The one place they didn't converge.
- Whether silver/gold are ingredients rather than currency (Kris's "no money in the game" vs. armour "would require some silver" — reads as a reframe, not stated cleanly).
- **Squeezability as an element property** (from the 8-way movement work, 2026-08-12,
  Kris + agent voice discussion): the movement core distinguishes solid blockers (a
  stone wall seals its diagonal — no corner-cutting past it) from soft blockers you
  can squeeze between (two trees). The *mechanism* ships in `land-of-lor/game/world/grid.gd`
  (`CELL_SOFT_BLOCK` / `permits_squeeze()`), but nothing authors it yet — the intent is
  that whether a placed thing seals its corners becomes a property of the element or
  material it's made of, authored in this table alongside rarity/origin/value.

## Relevant docs

- `land-of-lor/docs/thought-specs/sixty-four-hexagrams-as-base-items-and-spell-slots.md` — the founding voice note for this epic.
- `land-of-lor/docs/thought-specs/base-elements-marketplace-and-vip-chat-with-Rah.md` — the economy/ownership decisions and the "leather" naming moment.
- `land-of-lor/docs/thought-specs/little-witches.md` — the "too esoteric" objection the flavour-naming principle answers.
- `land-of-lor/docs/slots-and-items.md` — the earlier keyed-item + menu vocabulary this table must stay compatible with.
- `object-system-experiments/overview.md` — the gatherability constraint (its "Core constraint" section).

## status.md
```yaml
updated: 2026-08-12
parked: true
tasks: {"backlog":2,"needs-input":0,"ready":0,"doing":0,"review":0,"done":1}
open_questions: []
tag: parked
next: Kris authors element definitions in the card editor (003 — his own task, not an agent's); table authoring (001) still waits on the property schema.
```

## Task summary

1 done · 2 backlog. The epic was created 2026-08-06 from the two new thought-specs; the fold-back/conversion-graph direction was agreed by voice the same day (see overview). The conversion-flow POC (002) was built, reviewed by Kris on 2026-08-12, and **ditched** — interesting, but nothing in it carries through to the core (see the task's Outcome section, and the `ditched` row on `land-of-lor/pocs/README.md`). Task 003 was added the same day: authoring the actual element definitions in the card editor, which is Kris's own work, not agent work. Table authoring (001) stays in backlog until the property schema settles.

Parked deliberately: nothing here is waiting on an agent. Both open tasks need Kris — one to author content, one to settle a schema.

## Open questions

None tracked as formal Question objects yet — the open design calls (opener-category names, explosion semantics, morphology rule, transmutation, VIP, silver-as-ingredient) live as prose in `overview.md` until one actually blocks a task.

## Next

Kris authors elements in the card editor (`land-of-lor/game/shell/card-editor.html`). That authoring is expected to inform the property schema, which is what unparks `001-author-the-table`.

## tasks/ (3)

### element-table/001 — Author the element table — names and properties for all 64
```yaml
id: element-table/001
title: Author the element table — names and properties for all 64
epic: element-table
state: backlog
priority: 1
blocked_by: []
estimate: L
created: 2026-08-06
updated: 2026-08-06
claimed_by: null
claimed_at: null
delivers: []
review_artifact: null
```

## What

Produce the table itself: all 64 elements, each with its flavour name and its property values (numeric value, colour, kind-as-opener, rarity tier, plus whatever else the shared schema settles on). The machinery/flavour principle is decided; this task is the authoring.

## Notes

- This is primarily Kris's creative work (naming especially — Rah's "leather" set the bar), with agent support for scaffolding, consistency-checking, and recording. It stays in backlog until the property schema is nutted out — a design conversation with Kris is the next real step, not agent work.
- The schema conversation should settle: the full property list, how rarity tiers map to the arena-gatherable floor, and what the opener-category names are.
- Output format undecided (markdown table vs. structured data in `land-of-lor`) — decide when authoring starts, not before.

### element-table/003 — Author the element definitions in the card editor
```yaml
id: element-table/003
title: Author the element definitions in the card editor
epic: element-table
state: backlog
priority: 1
blocked_by: []
estimate: M
created: 2026-08-12
updated: 2026-08-12
claimed_by: null
claimed_at: null
delivers: []
review_artifact: null
```

> **Owner: Kris. Agents must not claim, start, or execute this task.**
> The board has no owner field, so this banner is the mechanism. If you are an
> agent and this task looks available, it is not — leave it in `backlog` and pick
> something else. The only agent work this task can generate is fixing the card
> editor if Kris hits a bug while using it, and that would be its own task.

## What

Fill in the actual element definitions using the card editor built in
`game-interface/002` (`land-of-lor/pocs/game-shell/card-editor.html`). This is
content authoring — naming elements, writing their text, setting their
properties — not engineering, and it is design work only Kris can do.

Raised by Kris by voice on 2026-08-12 while clearing the `/now` page: he is happy
with the editor as built, and identified "creating the number of elements" as the
next step and as his own job.

## Definition of done

Enough elements defined that the collection reads as a real set rather than a
demo. Kris decides how many that is; there is no agent-checkable criterion here
on purpose.

## Relationship to 001

`001-author-the-table` is the wider job — the full 64-element table with its
property schema, still waiting on that schema to settle. This task is the
narrower, immediately-doable slice: authoring cards in the tool that now exists.
Doing this will probably inform the schema that unblocks 001.

### element-table/002 — Conversion-flow POC — the fold-back made visible
```yaml
id: element-table/002
title: Conversion-flow POC — the fold-back made visible
epic: element-table
state: done
priority: 2
blocked_by: []
estimate: M
created: 2026-08-06
updated: 2026-08-12
claimed_by: null
claimed_at: null
delivers: []
review_artifact: land-of-lor/pocs/conversion-flow/index.html
```

## What

The visual POC proposed in the fold-back design conversation (see overview): a single-file interactive HTML sim demonstrating the world as a conversion graph. Left pane: a tiny living world (volcano generator, trees drawing soil matter, apples sprouting into trees, newts eating apples and dropping eye of newt, a player wizard with an axe). Right pane: the live conversion graph, pulsing on every real event, each node labelled with its element's **origin**. Bottom: a conservation ledger proving total matter = initial + volcano-sourced at all times.

## Done

- Built at `land-of-lor/pocs/conversion-flow/` (index.html + README), no dependencies, open in a browser.
- Headless-tested: conservation drift ≤ 1e-9 over 30 sim-minutes including chopping, pickups, and decay toggling; ecology is self-sustaining (newts oscillate 8–12, trees spread slowly, soil draws down as biomass accumulates).
- Decay is a toggle, not a decision — the open sink question made playable.
- Two ecology findings worth carrying into real design: matter strands where creatures die unless the ground itself flows (fixed with slow conserving soil diffusion), and consumers that always eat everything collapse the cycle (fixed with a hunger threshold — the cycle needs slack).

## Review

Open `land-of-lor/pocs/conversion-flow/index.html` in a browser. Try: chop both trees before they fruit and watch eye of newt go unobtainable; toggle decay off and watch the world silt up.

## Outcome — ditched (2026-08-12)

Reviewed by Kris. Verdict: an interesting exercise, but **nothing in it carries
through to the core** — no code, no data shape, no mechanic. Ditched rather than
adopted or partially kept, and marked `ditched` on `land-of-lor/pocs/README.md`'s
status board.

It stays on disk as reference, but it is composted: it should not come into a
future session's context unless someone explicitly references it. The two ecology
findings recorded above (matter strands unless the ground itself flows; consumers
that eat everything collapse the cycle) are the only part worth remembering, and
they're written down here rather than left implicit in the POC's source.

## questions/ (0)

## deliverables (0)
