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>
This commit is contained in:
2026-07-14 08:33:38 -07:00
parent 0e2d51146d
commit 07a07ec64d
4 changed files with 47 additions and 9 deletions
@@ -42,10 +42,10 @@ one; append the new ones:
- **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`.
`{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
@@ -16,6 +16,28 @@ permalink: gamevault/06-roadmap/lantern-operator-questions
> **Convention:** ✅ = I proceeded on the recommendation (design assumes it; easy to change). ⛔ = I did NOT
> proceed; genuinely blocked pending your call.
## ✅ ALL RESOLVED (2026-07-14)
Every parked question answered by the operator (all on the recommended option). Decisions locked:
| # | Decision |
|---|---|
| 1 | **Build Phase 1 (combat gym) first** — the primary verb / SoD fun gate. |
| 2 | **Standing authorization** to auto-run the ★ pre-code design review before each netcode-heavy slice (findings still surfaced). |
| 3 | **Build the A0 material foundation now** — palette atlas + 3 master shaders + a placeholder (operator judges the style-proof gate). |
| 4 | **Suit-frame kit** = Bathynaut + Harpooner as specced; **the roadmap 5 Sparks** (decoy-wisp, hook/pull, vortex, blink, one zone). |
| 5 | **Manual aim — soft auto-target CUT** (optional tiny per-Spark in-arc assist only). |
| — | **Socket input = 4 discrete ability buttons** (MOBA/SoD bar). |
| — | **Harpooner reel = pull the target to you** (a separate grapple Spark may pull you later). |
| 6 | **Fresh save epoch** — no migration of co-op-Hades saves. |
| 8 | **Dark-side contact = non-telegraphed low chip/grab** (dimming = quiet-for-blind is a real cost; full bursts only when lit). |
| 9 | **Waypoint-lantern = free-position plant** (only the atomic withdraw+persist idiom transfers). |
| 10 | **END-1/EB-1 confirmed mothballed** — the RegionTag→PocketTag pass DELETES their branches. |
| 7 | Shipping title — still deferred to marketing (no action). |
The detailed question text below is kept as the record. **Next action:** Phase 1 combat gym — run its ★ pre-code
review (standing auth), then plan-gate, then implement; A0 material foundation in parallel.
## Process / authorization
1. **⛔ New netcode CODE implementation.** All LANTERN slice code is greenfield and netcode-touching (new
@@ -129,12 +129,15 @@ bed, the proven presentation pattern). No sim change — pure feel.
(socket events / active-socket byte) touches the command struct — re-mean bytes where possible, and the RPC/
command collection hash must match across peers. Everything else is additive config + client-only.
## Open forks (parked in [[Lantern_Operator_Questions]])
## Resolved (operator, 2026-07-14 — [[Lantern_Operator_Questions]])
- Socket input model: 4 discrete buttons vs one fire + a readied `ActiveSocket` byte.
- Harpooner reel: pull the target to you, or you to the target (or a per-Spark mix).
- The exact 5 Sparks (confirm the roadmap set or swap).
- Auto-target fully gone vs a small optional in-arc assist per Spark.
- **Socket input = 4 discrete ability buttons** (MOBA/SoD bar) → `PlayerInput` gains `Socket0..3` InputEvents;
the `AbilityFireSystem` 7-type-query restructure (ComponentLookup/IJobEntity) is required.
- **Aim = manual, soft auto-target CUT** → every socket fires along raw `PlayerInput.Aim`; keep the reticle;
auto-target off by default (`AutoTargetRange = 0` in ability defs), optional tiny per-Spark in-arc assist only.
- **Harpooner reel = pull the target to you** (yank the hit enemy in — the pull hook + chain retarget); a
separate grapple Spark (pull-you-to-target) is a later addition, not the signature.
- **5 Sparks** = the roadmap set (decoy-wisp, hook/pull, vortex, blink, one zone).
## Related
@@ -16,6 +16,19 @@ permalink: gamevault/06-roadmap/lantern-world-model-build-spec
**Status — Phase 0.3 gate output.** This is the build contract that the ★ adversarial design review (netcode / determinism / reuse lenses, refute-first verified) hardened out of `Lantern_World_Model_Design_Proposal.md`. It supersedes that proposal as the authority for Phase 2 world code. Eighteen findings surfaced (12 CONFIRMED, 6 PARTIAL, 0 refuted); every one is folded below as either a locked decision or a tracked open risk. **No world code is written outside this spec.** The falsifiable slice test it serves: *does pinning a pocket feel like winning something* ([[Roadmap_Lantern_Slice]] Phase 3 gate).
## Operator resolutions (2026-07-14)
The open forks this spec surfaced are now decided ([[Lantern_Operator_Questions]]):
- **NR-3 dark-side contact → non-telegraphed low chip/grab.** Enemies in the dark may deal minor chip; a full
skillshot-grade burst is only owed for a LIT (telegraphed) strike. The wind-up-START gate on the light-union
stands; the dark-bite chip is a separate, non-telegraphed damage event.
- **RS-6 lantern placement → free-position plant.** Only the atomic withdraw+persist idiom transfers from
`BuildPlaceSystem` (not `CanPlace`/occupancy); a lantern plants at any valid pocket position.
- **END-1/EB-1 (RS-2 site-class c) → confirmed mothballed: DELETE the branches.** The `RegionTag→PocketTag`
pass removes the Core-fallback + structure-aggro branches from `EnemyAISystem` etc., not generalizes them.
- **Saves → fresh epoch** (no migration; see [[Lantern_Currency_ReMean]]). SaveData v7 is additive over a fresh
LANTERN save, not a co-op-Hades migration.
## Locked decisions
**Operator forks (locked pre-review, non-negotiable):**