23 KiB
Fremen Nexus: worm and revival contract
Primary-source and integration audit, 10 September 2026, with dated Secret Ally revival, protection and native Cunning prototypes. These bounded paths do not certify complete Fremen/Nexus effects or open a release gate. The common Nexus rules apply.
Evidence
The Fremen panel was freshly read from the photograph of the printed GF9 cards, cached as /tmp/dune-nexus-cards.jpg. Cunning permits a remote ride when a sandworm appears in a territory containing no forces: the player may take forces from one desert territory to a destination respecting storm and occupancy rules. Secret Ally offers either protection against a sandworm or a total of three free force revivals during Revival. The latter does not use Emperor's additional/beyond-limits wording. Neither option grants the absent faction's other advantages.
The base Fremen sheet, printed p.16 supplies ordinary riding after the Nexus, from some or all forces at the worm's territory, and Advanced placement of additional worms in sand. The base Spice Blow rules, p.8 ignore first-turn worm cards and associate later natural worms with the applicable discard territory. These are separate from a worm's destination after riding.
The November 2020 FAQ, pp.2–3 preserves the one-per-turn Advanced Fedaykin/Sardaukar revival cap through other revival producers. It also expressly makes the Fremen special Karama summon a Spice Blow/Nexus event with a Nexus and normal destruction/ride consequences. This supersedes the older contradictory no-Nexus answer in the base book. Publisher-indexed text was retrieved; direct PDF access returned 403, and two older locally named base/FAQ PDFs proved to be HTML rather than readable PDFs.
The E1 FAQ, p.11 describes Sandtrout's anti-Nexus and immediate replacement-card behavior. Its Karama table distinguishes destroying Fremen at a worm from stopping additional-worm placement. The E3 rules, pp.11–12 and 16, reread in the cached publisher-authored PDF text and fresh publisher-indexed excerpts, give common Nexus timing and distinguish Great Maker's reserve ride from ordinary board-origin riding. Great Maker remains a separate integration boundary.
Bounded Betrayal: movement and worm riding
An unallied non-Fremen holder of the physical Fremen Nexus card may spend it during Shipment and Movement before Fremen move to suppress their native two-territory movement advantage for the rest of that turn. This bounded path uses a clean action boundary in classic-only tables with no other optional modules. It does not suppress independent city ornithopters, Planetologist, movement cards or the ordinary one-territory move. A move-specific Karama interruption remains separate; no extra Karama response to the Nexus card is invented.
The owner-only offer binds the holder, seated Fremen target and turn. The physical card enters the Nexus discard once; a saved receipt and player turn marker preserve suppression through JSON/SQLite recovery and reject replay or malformed ownership. The public movement view shows the restriction without revealing who held the card before play. All four AI profiles can spend the card before an active Fremen bot moves; the owner control labels the currently available alternative.
The same unallied holder may instead spend that one physical card at a clean pre-first-blow Spice Blow and Nexus boundary. For the remainder of that turn, Fremen cannot take ordinary or native Cunning worm rides. Worm destruction, survival, allied protection, spice placement, additional worm appearances and Nexus negotiations still resolve. The card must be declared before any worm or spice blow, including a special-Karama summon; this conservative advance-declaration window avoids a holder-dependent hidden reaction, but is a product timing choice rather than an explicit printed priority ruling. No reactive post-appearance Betrayal is claimed.
Both alternatives use one mode-bound saved receipt, public turn marker and physical discard. A later Nexus draw may recycle that card during the same turn; even if it returns to a hand, the second alternative is unavailable. Validated six-field movement-only receipts from the previous checkpoint remain readable and executable after JSON or SQL restoration; malformed old events or signatures still reject. No game reset or public backfill is needed. Basic/Advanced natural appearances, empty-worm Cunning exclusion, actual saved worm continuation, duplicate authenticated SQL action and all four bot profiles have focused checks. The module remains release-gated; Great Maker, Sandtrout, combined expansions and after-appearance timing are separate.
Cunning: source-backed scope and implementation composition
The following are implementation consequences of the inspected text, not additional quoted rules:
- Empty means no faction's forces, at the actual appearance. Capture this fact before
devour; a worm that eliminates an enemy army must not retroactively qualify. Count all sectors, normal/starred counters, BG advisors, and a public No-Field marker as one. UsepresenceAtfromgame/force-presence.ts; never inspect its hidden denomination or infer emptiness from the forces left after destruction. Spice, Terror and Ambassador tokens alone are not forces. - Only the source must be desert. Use board territory type
sandfor one chosen source; allow a subset and multiple sectors within that single territory, retaining exact starred counts. Strongholds, rock, Polar Sink, native reserves and Homeworlds are not desert source groups. Natural worm appearances can follow a printed spice card in rock territory: do not incorrectly require every triggering territory to be sand. Existingdisaster-preflight.tsdeliberately supports that distinction. - Destinations reuse ordinary riding. This is not a two-territory move or a reserve shipment. Reuse valid Arrakis locations, storm exclusion, ally/stronghold capacity, sector checks and typed removal. Do not impose the source's desert restriction on destinations. Keep the existing Homeworld/discovery/HMS boundaries unless their own adapters explicitly support the move.
- One use must bind one actual appearance. Both Advanced spice piles and allowed additional-worm placements can produce separate events. A second-pile event must not borrow the first pile's discard territory, and identical territories do not identify identical worms. First-turn ignored cards and the current Sandtrout-suppressed branch do not call
beginWorm; creating Cunning merely when a worm-shaped card is drawn would bypass those existing rules. - Special summons are real worm appearances. The later FAQ supports applying the trigger to an empty-territory summon. Preserve its separately saved parent and after-blow Nexus ordering. A player cannot manufacture the trigger by choosing a source group first and treating that group as already at the empty worm territory.
Great Maker expressly replaces normal board-origin riding with reserve riding. Do not automatically add another board ride or allow Cunning to choose between both sources. This combination needs a separate resolution when Discovery is implemented. Likewise, Sandtrout handling should remain at the existing appearance boundary; this audit does not independently change its suppression algorithm.
Engine contract and timing hazards
beginWorm → wormSurvival → devour → afterWorm/continueSpice is the current resolution path. devour only pushes a territory into wormRides when Fremen already occupy it. nextWormRide additionally requires surviving Fremen there. Therefore adding the empty territory to that string queue cannot implement Cunning: it will be discarded, or will incorrectly demand a source at the empty location.
Recommended focused contracts:
- Create an immutable worm occurrence before destruction, recording event, turn, phase, source (
natural,additional,summoned), target, applicable pile/parent identity and original public force presence. Only accepted additional placement creates an occurrence. Never regenerate the original emptiness fact from current forces on read. - Quote Cunning from that occurrence and public board groups, plus the owner's actual card entitlement. Return eligible single-desert sources with typed per-sector counts and ordinary destination legality. Validate the selected subset again when committing; no hidden opponent hand or marker size enters the quote.
- Spend the unique Nexus card once and persist a signed result/ride obligation bound to the occurrence. Keep its source selection separate from the worm's appearance territory. Preserve the existing post-Nexus ride scheduling, including further summoned worms and both spice piles. Record progress independently enough to reject deleted decisions, source edits and replayed completed rides.
- On movement, reuse the existing worm-ride arrival chain:
intrusionandopenTerritoryEntry(..., 'wormRide', 'wormRide'), followed bynextWormRideonly after all Ambassador/Terror/BG children finish. Do not rerun devouring, spice draws, negotiations, shipment, or normal movement usage.
Two interactions need a concrete decision before treating this as a complete feature. The card triggers at appearance while ordinary riding follows negotiations: a just-drawn card must not automatically buy a retrospective ride for an earlier empty worm. Also, ordinary Karama's printed Shai-Hulud result destroys forces at the worm, whereas the remote source is elsewhere. Do not destroy that remote source, or invent a global loss of all riding, as a shortcut for cancellation. A bounded enhanced-native cancellation policy must preserve the original empty occurrence and unrelated rides.
Connected native Cunning path
game/nexus-fremen-cunning.ts captures {event, turn, territory, origin, pile?, parent?, initiallyEmpty} at the accepted appearance before destruction, using public presenceAt across players. Advisers and public No-Field markers count without revealing marker denomination. beginWorm offers the same Fremen decision for an initially empty appearance whether or not that seat holds its own card; the owner-only card view controls the spend button. The server, not the client, issues the event and later {event, turn, owner} ride authorization. The actual Fremen card moves to the Nexus discard on acceptance.
The current runtime path covers natural and accepted additional worms in Basic/Advanced, plus Fremen special-Karama summoned worms in Advanced, with seated classic factions and Nexus, optionally retaining original Tech Tokens3+ and/or Advanced Stronghold Cards2+. Skills, Homeworlds, Discovery and expansion factions/decks stay outside this Cunning boundary. The summon mints a separate server-side parent event when its physical Karama is spent; a new empty appearance binds the Cunning occurrence to that parent before devouring. A saved offer or pending ride must still belong to the active summon. A summon occurring inside another unresolved Cunning offer or ride retains its ordinary worm path without a second Cunning offer. Great Maker is not enabled for this Cunning path; Sandtrout-suppressed and first-turn ignored drawn worms never call the appearance hook, while a real special summon still does. quoteFremenCunning checks native unallied entitlement and lists typed forces in each occupied sand territory. After spending, quoteFremenCunningRide requires the saved event authorization and spent physical card; validateFremenCunningSelection requotes one source and a subset of normal/Fedaykin counters immediately before moving. The destination uses Arrakis entry, storm and occupation rules, not the desert-only source restriction. Ordinary worm destruction and the applicable Nexus happen first; nextWormRide schedules native rides before the remote ride afterward, without consuming normal movement. BG intrusion and territory-entry continuations use the native worm-ride path. JSON normalization and rejected-action checks cover a live offer, a spent response and the post-Nexus selection.
A special summon during an existing Cunning offer or Karama response saves and restores that original control. When it interrupts a selected remote ride, the unfinished ride returns to its queue so the new Nexus and ordinary worm rides resolve first; no second Cunning offer is opened for that nested appearance.
One Karama response may cancel only this additional remote ride after the Nexus card is spent. The originally empty appearance still destroys/places spice as usual; the remote source is not destroyed, and unrelated native rides continue. This is a provisional enhanced-native cancellation composition, not an explicit publisher ruling about Nexus/Karama classification. Games requiring modules beyond original Tech/Advanced Strongholds, a second Cunning offer inside an already pending Cunning control, Great Maker reserve replacement or Sandmaster collection stay gated until their own adapters/rulings are verified. The accepted receipt is server-issued but not cryptographically signed; this path does not claim malicious-save authentication.
Original Tech and Strongholds — 11 October 2026
The existing classic Nexus component envelope now receives the same public empty-worm offer as Nexus alone. Private card entitlement, original occurrence, card cost, provisional Karama response and post-Nexus remote ride are unchanged. No new dynamic destination or Great Maker adapter is inferred.
The reusable fixture completes genuine setup, first-Storm Tech assignment, first-Mentat Stronghold claims and the actual turn-two Spice Blow. Only conserved physical card/deck order and two reserve counters are staged. Nine isolated runtime scenarios cover Basic Tech, Advanced Tech, Advanced Strongholds and both; four legal AI profiles and printed Karama cancellation. Each completed ride moves the original two counters once, preserves wallet, reserves and original component custody, and spends one physical Nexus card. At 390px, real GameTable spends Cunning and selects Wind Pass14→Polar Sink0: two counters arrive, reserves stay8 and spice stays3, with no horizontal overflow. A labelled QA control advances the original post-Nexus suffix; the spend and final typed ride use production controls. No saved store or deployed game was targeted; complete module/public acceptance remains open. TypeScript/lint and the final 41-case affected union pass. The permanent regression fails before the software guard removal and passes afterward.
Secret Ally protection
With Fremen absent, protection must be committed before original destruction. It saves only the holder's threatened groups at this accepted appearance, not already-devoured troops, territory spice or other factions, and grants no riding or native Fremen identity.
Recommended independent protection — 14 October 2026
Choose-recommended-option priority adopts the printed protection as an independent Secret Ally operation, with no invented extra Karama response or absent native provider. This contrasts with explicitly borrowed named Voice. It is a visible provisional interpretation, not publisher clarification or blanket Nexus immunity.
Before devouring, every publicly possible unallied threatened seat holding any Nexus acknowledges in original storm order, regardless of private face. Seats without public card presence, with no affected group, or allied receive no impossible prompt. Only the current actual Fremen-card holder may Use. Pass preserves the card; Use discards it once and protects only that owner. The entire frozen queue closes before any casualty or spice removal. Its original public membership survives an unrelated anytime card exchange. Truthtrance and unfinished Traitor returns retain priority.
game/nexus-fremen-protection.ts binds original UUID/turn/territory/origin and
actual pile/index or summon parent, ordered acknowledgements and one protected
owner. The engine resumes original devour/afterWorm once. Original protected
victim skipping also leaves a protected No-Field hidden; unprotected markers
still use native reserve-capped revelation/casualties. The public quote never
reads denomination. Unrelated dynamic-board groups do not invalidate this
printed-territory occurrence. Completed receipts do not require the singleton
to remain discarded after a later legitimate deck reshuffle.
Genuine Basic/Advanced setup, original worm/alliance/closing draw, paid Hagga Basin shipment and Advanced free accompanied advisor produce the source. Only undealt physical deck order and scoped scalar producer entropy are staged. The original Great Maker path is also exercised: protection precedes its unchanged vote, and the replacement is drawn only after that vote. Native Fremen protection/riding/Cunning remain separate.
The related nine-file union passes86/86. Actual390px neutral Continue then holder Use keeps the Emperor's one ordinary counter/reserves19/Tanks0/spice10, devours the BG advisor into Tanks1, removes four Hagga Basin spice, discards one Nexus, grants no ride and restores the original Accept spice blow control. That control accepts the resumed Sihaya Ridge blow. No horizontal overflow or browser errors. Four minimal legal profiles answer their own opportunity. Final types/lint/build pass. Four normal/Great Maker Basic/Advanced API runs observe the same preserved costs and original vote→replacement sequencing. Owned QA host/tab/scaffolding is removed; proof receipts remain outside Git. Broader module/No-Field continuations, comprehensive recovery, complete games and deployed acceptance remain due.
Secret Ally revival
Recommended fixed ordinary quota — 14 October 2026
Choose-recommended-option priority adopts the printed total-of-three as a phase-bound ordinary free quota, not Emperor-style additional returns. This is visibly provisional source composition, not a publisher clarification or a separately answered numerical user ruling.
With native Fremen absent, an actual unallied Fremen-card holder may enable
the quota at a quiet Revival boundary. nexusFremenRevival spends the single
physical card and records its original turn/owner and actual total/free usage.
It returns no counters, leader or spice. Then the normal revival controls
request any legal partial group, retaining the original typed prices/caps.
Prior actual free returns count toward three; prior paid returns keep their
price and consume the total allowance. No refund, ledger reset, leader grant
or new total-force limit is created. Partial Tanks and late activation work.
The effective free rate is the greater of the native rate and three. Higher native rates survive. Recruits still doubles its native rate and retains its original minimum-seven total limit, but does not double this fixed Nexus quota. Native La La La/free blocking and Tleilaxu prevention still apply. Unknown prior-free usage and a grant with no additional eligible free return are unavailable before disposal. An already-entitled short Tanks group keeps its card rather than paying for no improvement.
game/revival.ts owns the shared allowance. Original beginRevival/
finishRevival resolve every requested group through actual CHOAM/Tleilaxu
decisions, typed reserves, Homeworld placement/deployment, Tech activity and
income. Native Tleilaxu free-revival income occurs once per player/turn after
actual returns, never on activation or once per partial request. Axlotl
activity remains on the original token until phase-end settlement. Native
Cyborg eligibility and Advanced Sardaukar caps retain their own rules.
New version-two receipts describe only the source grant. Strictly valid old exact-three receipts adopt that metadata without replaying original forces, payments or decisions; their physical before/after facts remain retained. Malformed signatures are not repaired. The old direct-transfer action and Nexus-only elite selector are removed; all affected consumers use activation followed by the original revival action.
The twenty-file native/consumer union passes329/329. Genuine Basic/Advanced classic and single-native-Tleilaxu fixtures cover one-plus-two returns, late free and paid usage, expiry, real income, typed module returns and legacy metadata adoption. Four API runs reach original Shipment and Movement after late activation without changing costs. Actual390px GameTable enables the quota, requests one then two, and uses the native Tleilaxu Allow control for each: Tanks8→5, reserves10→13, free3, spice13 unchanged, native income1 once, one discard, no overflow or browser errors. Wider combinations and final rules/private/recovery/deployed acceptance remain open. Final types/lint and connected UI build pass with existing build warnings. Owned QA host/tab/scaffolding is removed; proofs remain outside Git.
Verification and remaining boundaries
Focused pure and engine checks exercise Basic and Advanced real second-turn empty natural appearances, accepted Advanced additional placement and an actual special-Karama summon, a public offer with and without the private card, card spend, Karama allowance/cancellation, post-Nexus ride, typed source custody, owner-only card view, rejected actions, legal bot movement and JSON normalization before/after the response. Pure quotes cover originally occupied appearances that later empty, advisors/No-Fields as presence, multi-sector starred sources, storm and occupied destinations, and inherited-object-key rejection. Isolated in-memory SQLite room tests race duplicate accepted natural and summoned offers, restore private seats and parent Spice Blow context through fresh room instances and prove a canceled or completed ride settles once. Local browser fixtures rendered both natural and summoned owner/non-holder offers, Karama waiting and remote source/force/destination controls from genuine engine views; intercepted GETs and blocked POSTs did not mutate a room.
Still verify both Advanced pile identities end to end, Sandtrout suppression, nested arrival effects, wider reconnect scenarios and complete games. Great Maker, nested Cunning summons and combined optional modules are intentionally unavailable for this Cunning prototype. Fremen Secret Ally protection and the broader revival accounting above remain separate. These checks do not certify a complete Nexus module.