Files
Dune/docs/SANDMASTER_WORM.md
T
Quintine 54c8030b9b Connect optional Sandmaster collection on native Fremen worm rides
After legal placement, a living native Sandmaster may take one board spice from the single destination pile before faction arrival reactions. A ride has no intermediate ground route and never consumes normal movement. Multiple source sectors and typed elite forces earn one collection total. Each separate ride has its own opportunity. Decline and legacy actions retain ordinary riding; empty/ambiguous piles and unsupported module combinations suppress collection without preventing the ride.

Share the public quote across server, destination checkbox and existing bot candidates. AI only gains minimal legal participation: no new destination policy or strength calibration. Keep base factions plus Leader Skills as the bounded scope; other expansion rosters/modules, Ecaz treachery and multiple positive piles remain guarded. Record the composition of printed worm-movement wording with the existing Sandmaster contract, including the existing per-distinct-movement inference. No combined-effect FAQ or complete module compliance is claimed.

The room's atomic versioned write settles the physical transfer once before a pending Bene Gesserit reaction. Saved continuation resumes only the arrival and remaining ride queue. Ten new engine, control and SQLite cases cover Basic/Advanced custody, opt-out, legacy fields, rejected-action immutability, trainer visibility/control, public mode guards, private views, simultaneous duplicates, restarted arrivals, distinct queued rides and a genuine special-Karama worm through Nexus. Correct the shared shipment fixture to retain each faction's actual elite total and support Bene Gesserit as the opponent. Independent source and implementation review found no material defects. Focused work found and fixed the generic decision handler clearing the decision before the new quote, plus test-only fixture/type issues.

Types, lint, 4894 offline tests, production build and 43 HTTP tests passed on unchanged source. Two genuine four-profile Leader Skills samples finished in 265 Basic and 211 Advanced actions, no rejected candidates, and 14 JSON restorations. Neither naturally encountered the new effect; targeted checks establish it. This is playability evidence, not AI calibration.

Isolated browser room RMMA6LEF used a normally created Fremen seat and a conserved staged Advanced Leader Skills position. Selected two forces from each of two sectors, including one elite each, toggled collection off and on, then rode to Red Chasm. The UI showed four arrived forces and balance six before the opponent reaction. Refresh preserved that pending decision, balance and explanatory once-only collection history. The opponent's production-engine arrival response resumed to CHOAM charity; another refresh retained six spice and the private Chani traitor. Seat rows were unchanged. This is a targeted staged browser journey; screenshot and complete human-game acceptance remain open.

All 1140 original rooms, 2385 seats and every original recovery, entry and handover row remain unchanged. HTTP/browser checks added 34 rooms and 71 seats. SQLite integrity and foreign keys pass. No restart, reset, migration, maintenance automation or usage check was needed. No mode or publication gate is opened.

Verified source tree: 7996a37c13c71992d9bb6baf7016558615b98db064eda300ce19604b429b0d73
2026-09-20 15:27:14 +10:00

59 lines
3.5 KiB
Markdown

# Sandmaster worm-ride collection
20 September 2026. **Prototyped**, with **Partial** rules coverage. Native
Fremen worm rides connect optional destination collection in Basic/Advanced
Leader Skills development games. Public module and publication gates stay closed.
## Source contract
The [existing Sandmaster contract](SANDMASTER_MOVEMENT.md#source-contract),
checked physical card and designer walkthrough allow one spice when forces move
into or through a territory containing spice. The [GF9 core rulebook, Shai-Hulud
and Fremen sections](https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf)
calls riding a move of some or all forces to a destination after Nexus, subject
to storm and occupancy. The archived core text is identified in the
[source archive](LEADER_SKILLS_RULES.md#sources-and-local-evidence).
Applying that movement wording gives one optional spice at the destination;
a worm ride specifies no traversed route. The source earns nothing. Separate
rides are distinct movements under the existing explicit per-movement inference.
This composes the printed rules; it is not a newly located combined-effect FAQ.
The native trainer must be alive, uncaptured and available for its normal band.
Collection follows legal placement and precedes faction arrival reactions under
the common skill-before-faction order. Subsequent arrival effects do not undo it.
## Connected behavior
A shared public quote validates the player, destination, skill and single positive
pile. The checkbox defaults to collection but permits declining it. An empty or
ambiguous pile suppresses collection without blocking ordinary riding. Legacy
saved actions without the new field retain their original behavior. No invented
intermediate route or extra normal movement is consumed. Multi-sector and typed
elite selections transfer one spice total, not one per force or source sector.
The engine validates every force before moving spice from the board to the
player, logs the automatic effect and then opens any Bene Gesserit arrival choice.
Existing versioned room writes commit that transfer once. A saved pending arrival
resumes only the remaining reaction and ride queue; no new receipt is needed.
All four AI profiles attach the optional collection flag to the existing legal
ride candidates. Destination policy and strength tuning are unchanged.
## Verification and remaining work
Focused engine, controls and SQLite checks cover Basic/Advanced force custody,
source exclusion, decline, omitted legacy fields, empty and ambiguous piles,
illegal requests without mutation, native trainer ownership/visibility, public
mode guards, private views, duplicate concurrent requests and restart during a
Bene Gesserit reaction. Separate queued rides and a real special-Karama worm
through Nexus exercise the production continuation. The fixture preserves the
Fremen three-elite total rather than assuming the Emperor five-elite total.
Independent source and implementation review found no material defect in this
bounded contract. Final check/build/HTTP results, targeted browser continuation,
sample games, saved-game preservation and Git delivery belong to the private
source-bound checkpoint and commit message.
Other expansion factions/modules, the Ecaz card variant and multiple positive
piles remain guarded. Other special relocation, full Leader Skills integration,
complete human games and final presentation remain unfinished. Strategy refinement
waits for the [AI feature-completion gate](AI_DEVELOPMENT_PLAN.md).