Files
Dune/docs/SMUGGLER_SHIPMENT.md
T
Quintine 9381ef140d Connect optional Smuggler reserve shipment and saved interception
Prototype one free accompanying force into an empty territory with explicit opt-out, shared human/AI pricing, physical elite custody and Guild recipient accounting. Bind pending quotes to their unique saved Guild decision; preserve legacy unstamped full-price declarations. Smuggler battle collection and combined modules remain unfinished and gated. Repair a randomly dealt-out Karama fixture by relocating its actual physical card without changing inventory.

Validation: 70 focused tests; typecheck, lint, 4477 offline tests, production build and 43 HTTP tests passed. Independent rules/persistence review completed, including interruption and cancellation. Browser checked the price toggle, three arrivals for two spice, and refresh with unchanged private cards. Two genuine four-profile Basic/Advanced samples completed without rejected candidates but did not use Smuggler.

Preserved all 427 opening rooms and original seat/recovery rows (461 rooms after QA/HTTP). SQLite integrity and foreign keys passed. Server remained healthy after the reported power outage; no restart or reset.

Verified source tree: bf6e02bf6873ca6d6b01c83481489f55b2c7db0184a7056364343440dae88803
2026-09-13 20:19:33 +10:00

4.7 KiB
Raw Blame History

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, pages 8–9 and 12, and the designer walkthrough, 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, pages 9–11 and 13, and November 2020 FAQ, page 5.

The CHOAM & Richese FAQ explicitly permits a Richese No-Field with a separate free Smuggler force into empty territory. That valid combination still needs concealed-counter integration here; its current guard is an implementation gap. 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 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.