Files
Dune/docs/SMUGGLER_SHIPMENT.md
Quintine 788453e07e Integrate Smuggler companion with owned Richese No-Field
Connect the GF9 FAQ combination: one free physical reserve force accompanies an owned concealed No-Field at its unchanged one-marker price. Preserve zero/three/five token values, actual supply at later reveal, optional human choice and all four legal AI paths. Genuine CHOAM & Richese Leader Skills development setup adds the two sourced battle cards without duplicating their Ix identities. Public mode and publication gates stay closed; allied and remaining combined routes are unfinished.

Bind the private declaration across initial No-Field cancellation and later Advanced Guild interception, including saved interruptions. Validate before projection/actions/normalization, hide the internal proof, reject altered declarations immutably, and withdraw the companion once only on successful commitment. Independent rules/privacy/persistence review found no blocker. Preserve other audit setup gates despite expanded deck assembly. Repair the existing randomized recovery test with a genuine seeded Rihani offer and explicit human choice, replacing an inappropriate AI-policy call on a human seat. Initial Karama and later Guild stop retain their distinct existing opportunity outcomes.

Validation: 72 focused regressions plus 10 deck tests; typecheck, lint, 4520 offline tests, production build and 43 HTTP tests passed. SQLite restart, concurrent allowance/cancellation and exact physical custody passed. Browser genuine assignment, private token selection, opt-in, one-spice shipment, refresh, five-force reveal and final refresh preserved six physical Arrakeen forces, 14 reserves, zero Tanks, four spice, Crysknife and Soo-Soo Sook. Genuine four-profile Basic/Advanced games completed in 77/116 actions with 3/4 JSON restores and no rejected candidates; Advanced exercised one companion shipment and later reveal.

After the outage the existing server was healthy. Preserved all 529 opening rooms and original seat/recovery records (563 after QA/HTTP). SQLite integrity and foreign keys passed. No restart, database reset or automation.

Verified source tree: c2aee4138bcb46a05814a340d62eadace3470247ca620844eb0375e78ea4d6c4
2026-09-13 21:37:50 +10:00

80 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Smuggler normal shipment prototype
13 September 2026. **Prototyped**, with **Partial** rules coverage. Public module
starts and publication remain gated. The lower battle effect and combined
expansion routes are unfinished.
## Source contract
The physical Smuggler card supplies one optional free accompanying force when
shipping from off planet into an empty territory. The selected total includes
that force: ship three actual counters, price two. At least one paid companion
is needed. Empty strongholds qualify; existing forces anywhere in the territory,
including friendly forces, advisors and No-Field presence, prevent the benefit.
Spice alone does not occupy a territory. Determine emptiness before arrival.
See the [publisher CHOAM & Richese rulebook](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf),
pages 8–9 and 12, and the [designer walkthrough](https://www.youtube.com/watch?v=XT_azRVLq_0&t=724s),
12:04–12:19.
Apply ordinary Guild/ally rounding after removing the free counter from the
priced count. Classic Fremen reserves are on planet, so their ordinary Great
Flat reinforcements retain their existing rule. See the
[base rulebook](https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf),
pages 9–11 and 13, and [November 2020 FAQ](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf), page 5.
The CHOAM & Richese FAQ explicitly permits a Richese No-Field with a separate
free Smuggler force into empty territory. The [No-Field follow-up](SMUGGLER_NO_FIELD.md)
now connects that owned-marker combination with one separate actual reserve force
and the unchanged marker price.
No new material user ruling was required for the ordinary reserve route.
## Connected behavior
A shared public-custody quote powers the engine, UI, bots and shipment-promise
completion search. Only a living native trainer grants the normal effect;
captured and foreign-ghola leaders do not. The selected amount remains the
actual reserve withdrawal and board arrival, including ordinary/elite identity.
The existing payment pipeline receives the actual discounted cost.
The checkbox starts selected when an eligible shipment is chosen. Declining
preserves the full payment, which can matter to recipients and other payment
powers. API omission and explicit false also retain ordinary pricing. All four
AI profiles have a legal path that explicitly chooses the bonus, including a
two-force shipment when only one force can be afforded at the ordinary rate.
This policy is not full skill strategy or difficulty calibration.
Advanced Guild interception stores the trainer, physical total and original
price before payment or departure. Views, automatic normalization and actions
validate the pending declaration against its unique current or saved Guild
decision. Missing/mismatched decisions, stale leaders, changed occupancy and
prices no longer explained by the saved discount record reject before mutation. Actual legacy unstamped
shipments retain their full price and may omit the older optional turn field.
## Verification and remaining scope
Focused tests cover total-versus-priced counts, desert costs, Guild rounding,
Fremen reinforcement, advisors, hidden/captured custody, opt-out, all four bots,
JSON recovery, malformed saved decisions, elite conservation, private SQLite
views, concurrent allowance, nested decision restoration, cancellation and stale replay. Independent review identified the
saved-decision binding gap, which was fixed before the checkpoint checks.
A fresh genuine two-seat setup assigned Smuggler to Hasimir Fenring in an
isolated browser room. A documented fixture advanced only that room to a clean
shipment boundary with two human spice. The browser checked ordinary cost three
and its disabled action, then enabled Smuggler and shipped three actual forces
for two spice. Refresh restored seventeen reserves, three Arrakeen forces,
zero Tanks, zero spice and the same private hand and traitor. This is a targeted
scenario, not a complete human game.
Two genuine four-profile Basic/Advanced samples completed with 99/212 actions,
3/6 JSON restorations and no rejected candidates. Neither sample used Smuggler;
these samples establish continuation only. Targeted tests and browser play
exercise the new effect. Required broad check/build/HTTP results and final
preservation totals are recorded in the checkpoint commit and private report.
Smuggler battle collection still needs its reveal/survival settlement. Combined
allied No-Field, Homeworld, Nexus, Discovery, Stronghold and technology routes remain
outside this prototype. Mentat questioning, Bureaucrat payments, Sandmaster
movement collection, Spice Banker and Diplomat also remain incomplete. Reuse
this ordinary route when integrating those dependencies.