Files
Project-M/Docs/Vault/06_Roadmap/Lantern_Currency_ReMean.md
kronic 07a07ec64d Docs: LANTERN — record operator decisions (all parked questions resolved 2026-07-14)
Build Phase 1 gym first; standing ★-review auth; build A0 material foundation now;
delete siege branches. Phase 1: manual aim (auto-target cut), 4 discrete ability buttons,
Harpooner yanks target-to-you, roadmap 5 Sparks. Fresh save epoch (no migration).
Dark-side contact = non-telegraphed chip. Lantern = free-position plant.

Locked into: operator-questions (resolved summary), Phase 1 spec (open forks -> resolved),
currency spec (fresh saves), world-model Build Spec (operator-resolutions block).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 08:33:38 -07:00

75 lines
5.3 KiB
Markdown

---
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. **RESOLVED (operator,
2026-07-14): start LANTERN saves FRESH** — a new save version epoch, no migration of co-op-Hades saves (old
saves won't load into LANTERN). This dodges the value-remap entirely; the byte-3 (Charge→Tallow) reuse is
safe because no old save is ever read.
## 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