Connect the six numeric reference faces, the existing private Fremen forecast and actual public reveals to a shared enlarged inspector. Create the structured public chronicle component only where beginStormTurn reveals the card. Weather Control and Ecological Testing Station may change effective movement but never rewrite the original receipt. No draw, movement, AI strategy or mode gate changes. The face reader accepts only exact stormCard metadata with an integer value1 through6. Legacy text-only history still renders normally. Existing JSON saves preserve valid receipts within the normal250-entry chronicle; no card is inferred from a private forecast, current pending distance or old log text. Five new tests use genuine Advanced fixtures to verify forecast allowance/cancellation and privacy, public reveal, JSON/legacy continuation and original-versus-modified distances. The related reference suite also passes (17 focused cases total). Independent privacy/provenance/UI review found no material findings. The initial check stopped at an accessibility lint rule; replacing the numeric group with a semantic figure resolved it, followed by a fresh final run and mobile recheck. Required types, lint, 4946 offline tests, production build and 46 HTTP tests pass on stable final source. Browser QA opens all six reference faces, uses keyboard Enter/Escape and checks settled modal focus/return. At390px the modal is359px wide and fits the viewport; Close is44px high. The viewport was reset. Screenshot capture remains unavailable, so full visual acceptance is not claimed. Live Advanced browser play and final manufactured-face/artwork verification remain open; fixture privacy checks and gallery controls are narrower evidence. The existing server remained running. All 1337 original rooms, 2805 seats and existing recovery/entry/handover/delegation/migration rows remain unchanged; SQLite integrity and foreign keys pass. HTTP tests created only their own additional QA records. No database migration/reset, hourly automation, account-usage check or AI calibration. Standing automatic push authorization retained. Private evidence: 20260921-storm-card-inspection. Verified source tree: 3856e73f3cc3bb50003b6afda6ab4d08a513191c4e300e7742c2b5179a05cff1
2.4 KiB
Storm Card inspection
21 September 2026. Prototyped component inspection; Advanced and expansion gates remain unchanged. Six numeric Storm Card faces can be enlarged from the internal reference. An entitled Fremen player can inspect the existing private forecast, and every viewer can inspect a card after its public reveal in the chronicle.
game/storm-cards.ts is a face catalog, not a new deck or source of a live draw.
The inspector accepts one already-authorized value and no game, deck or seat.
The rules gallery shows all possibilities without selecting a live card.
The existing stormForecast projection remains the sole private authorization.
At the real beginStormTurn reveal, the existing public log entry receives an
optional {kind:'stormCard', distance} component. Neither drawing the next card,
allowing/canceling Fremen foresight, basic dials nor Weather Control creates that
receipt. The existing saved log preserves it through JSON and the usual
250-entry history limit. Earlier text-only entries remain valid; no face is
guessed from old text or current movement. The inspector rejects unknown kinds,
extra fields and values outside the six faces.
Weather Control replaces movement and Ecological Testing Station adjusts it; neither edits the original revealed receipt. The card inspector therefore keeps the printed value distinct from the effective distance. No rules calculations, AI strategies, save schema migration or network authority change.
Authority: the classic GF9 rulebook, component inventory p.5 and Fremen sheet p.16. Publisher-indexed text retrieved 21 September confirms the six-card deck and the private forecast/public reveal, return and shuffle sequence. The six values already used by the production engine are represented as readable numeric faces with original explanatory prose. This does not certify every detail of the manufactured artwork or printed face; that remains part of final component verification. No source link enters the app.
Focused tests cover authorization, reveal metadata, legacy saves, continuation, modified movement and invalid metadata. Independent review, browser controls, required check/build/HTTP results, preservation and Git delivery belong to the source-bound private checkpoint. Screenshot limitations are recorded separately; DOM bounds do not establish complete visual acceptance.