Docs: LANTERN art-pipeline recipes (Workstream A0/A1) + currency re-mean spec

- Art pipeline recipes: the material foundation (palette atlas + 3 master shaders
  Lit-Palette/Emissive-Gloam/Skinned-Palette), statics recipe, skinned recipe (proven
  Rukhanka HUMANOID path), the 3 rig families (Drifter/Crawler/Strider), CreatureKit (A2)
  framing. Built on DR-022/023 + the proven Blender recipe; every carry-over gotcha flagged.
- Currency re-mean: Ore/Aether/Biomass/Charge -> Flame/Lumen/Gloam/Loudness/Salvage/Chum/
  Tallow with byte-id assignments; flags the fresh-saves-vs-migrate fork (Charge byte reuse).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-13 23:49:20 -07:00
parent f53553581b
commit 73afab6ba5
2 changed files with 213 additions and 0 deletions
@@ -0,0 +1,74 @@
---
title: LANTERN — Currency Re-Mean (Ore/Aether/Biomass/Charge → the light economy)
date: 2026-07-13
tags: [roadmap, lantern, economy, currency, save-schema]
status: draft-spec
permalink: gamevault/06-roadmap/lantern-currency-remean
---
# LANTERN — Currency Re-Mean
> Re-means the current economy to the LANTERN currency set ([[Identity_Lantern]] currency table). Feeds the
> economy rework + the save schema. **Most of this is a value-relabel** — the ledger (`StorageEntry`, ItemId-
> keyed) + personal bag (`InventorySlot`) + swept harvest plumbing stay; the **byte ids re-mean and the meters
> change**. Grounded in the resource ground-truth: 4 `ResourceId` bytes today (Ore/Aether/Biomass/Charge),
> `StorageEntry{ushort ItemId; int Count}` on the global untagged ledger, personal `InventorySlot`, unified
> swept `ResourceHarvestSystem`.
## The seven LANTERN currencies — and what each maps to
| LANTERN | What it is | Current analog | Representation |
|---|---|---|---|
| **Flame** | your life — the loaned fire in your chest | `Health` + respawn | **NOT a ledger resource** — it's `Health`/`RespawnState`. The death "split" (Phase 5) rides this. |
| **Lumen** | spendable light — abilities, fuel, the banked economy | **Aether** (universal charge) + the win-meter feed | Ledger byte; also **banked** at lanterns → the **Lamp meter** (the `GoalProgress`-equivalent campaign readout). The primary economy. |
| **Gloam** | the wild radiance grafts drink — the **mutation feed** | (new; kill/vent/bloom-derived) | A run/descent-scoped meter that fills toward the **paced mutation thresholds** (Phase 4). Server-derived from kills/vents; likely NOT a stored ledger row (a per-descent counter). |
| **Loudness** | how much attention your light draws | the threat/aggro pressure (`WaveSystem` escalation) | **Derived meter, not stored** — party lamp-output sum → spawn/aggro pressure; per-Wick pip on the HUD. Rides the global untagged ghost ([GhostField]). |
| **Salvage** | build materials | **Ore** | Ledger byte. Feeds building v1 (lanterns, small buildables). |
| **Chum** | garden feedstock (automation input) | **Biomass** (reserved automation input) | Ledger byte. **Slice: likely dormant** (automation is assignment-based, v1.0 — [[Lantern_Strip_Mothball_Inventory]]). Keep the byte reserved. |
| **Tallow** | rendered fixative — **fixes a mutation** | (new; the scarce fix material) | The scarcity gate of the mutation economy (1 fix slot/Spark). A ledger byte OR a slot count. Phase 4. |
## Proposed `ResourceId` byte assignment
Bytes, never enums (Burst rule). Re-mean the existing values where the meaning survives; free the mothballed
one; append the new ones:
| Byte | Was | Becomes | Notes |
|---|---|---|---|
| 0 | Ore | **Salvage** | build material (value survives, relabel) |
| 1 | Aether | **Lumen** | universal spend + banked light (value survives, relabel) |
| 2 | Biomass | **Chum** | garden feedstock, slice-dormant (relabel, reserved) |
| 3 | Charge | *(freed)***Tallow** | turret-ammo Charge is mothballed (no turrets); reuse the byte for Tallow, or leave 3 dead and add Tallow=4 |
| 4 | — | **(Gloam)** | if stored; more likely a per-descent server counter, not a ledger row |
- **Flame** and **Loudness** are **not** ledger bytes (Health; a derived meter). Do not give them `ResourceId`s.
-**Re-meaning byte 3 (Charge→Tallow) changes a persisted VALUE's meaning.** The save persists `Ledger[]` as
`{ItemId, Count}` rows — an old save's `ItemId=3` (Charge) would load as Tallow. **Recommendation:** since
the pivot is a hard direction change and old co-op-Hades saves are not carried into LANTERN, **start LANTERN
saves fresh** (a new save version epoch) rather than migrate — cleaner than a value-remap migration. Confirm
with the operator (parked). If saves must migrate, add a `SaveData.Version`-gated remap in `SaveService.Load`.
## What changes vs. stays
- **STAYS:** `StorageEntry` global ledger (ItemId-keyed), `InventorySlot` personal bag (`[GhostField]`
`OwnerSendType.All`), the unified swept `ResourceHarvestSystem` (nodes + clutter, immortal-sink guard,
`math.max(1,(int)yield)`), the `G`-deposit RPC, cargo-into-bag routing.
- **CHANGES:** harvest sources re-theme (Ore/Aether/Biomass nodes → **Lumen nodes + organ drops**); the
**carried-vs-banked cargo** distinction is new (unbanked Lumen/organs strand with the suit on death — the
Phase-5 split); the win-meter (`GoalProgress`) becomes the **Lamp meter** fed by banked Lumen; **Loudness**
replaces the incursion/attention timer as the spawn-pressure driver.
- **NEW meters on the global untagged ghost:** Lamp (campaign), party Loudness sum. **New per-descent server
counters:** Gloam (mutation feed), Tallow slots.
## Sequencing
This is **not** a standalone slice — it lands *inside* the phases that need each currency: Lumen + Salvage +
harvest re-theme with Phase 2 (harvest) / Phase 3 (banked light, Lamp meter); Gloam + Tallow with Phase 4
(mutations); Loudness with Phase 2 (brighter-is-louder). This doc is the **single source of the mapping** so
those phases don't each re-decide the byte ids.
## Related
- [[Identity_Lantern]] — the currency table + the death split + brighter-is-louder
- [[Lantern_Strip_Mothball_Inventory]] — ledger/harvest/automation salvage verdicts
- [[Lantern_Operator_Questions]] — the fresh-saves-vs-migrate fork (item 6)
- [[Roadmap_Lantern_Slice]] — the phases each currency lands in