Files
Dune/docs/TRUTHTRANCE_MOVEMENT_PROMISES.md
T

713 lines
45 KiB
Markdown
Raw 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.
# Truthtrance ground-movement promises
The [whole AND/OR movement follow-up](TRUTHTRANCE_MOVEMENT_EXPRESSIONS.md)
adds full grouped future destinations/minima to the same owned-action search.
Each leaf still requires one actual qualifying group, never a sum; the new
ledger retains whole No and dynamic alternatives without changing scalar claims.
## Native early Advanced and CHOAM opening — 26 October 2026
**Prototyped / Partial.** Both Basic and Advanced now admit clean current-round
questions during phases0–4 with registered native factions and their selected
Ix/Tleilax, CHOAM/Richese or Ecaz/Moritani decks. This supersedes the earlier
Advanced phase5-only guard below. The same typed, physical-only witness serves
both rulesets; optional modules and independent Ecaz cards retain their fences.
Answering neither ships nor moves early. Actual movement still waits for the
respondent's native turn and normal arrival/counter decisions.
CHOAM's own unresolved opening may supply its fixed allowed income in the
detached witness, using the actual settlement calculation. Current cash stays
unchanged until the real opening counter is allowed. A current-turn receipt,
including cancellation, prevents repeated credit; completed cancellation may
release impossibility. Foreign future income and unknown purchases supply no
forecast cash. This is the provisional owned-stage composition in the
[decision index](RULE_DECISIONS.md#native-early-promises-and-owned-choam-opening--26-october-2026),
not new publisher authority.
Genuine native [CHOAM](../tests/fixture-truthtrance-choam-promises.ts),
[Richese](../tests/fixture-truthtrance-richese-promises.ts) and
[Ecaz/Moritani](../tests/fixture-truthtrance-native-family-promises.ts) sources
start before Movement with no installed promises or preparatory armies.
CHOAM's actual opening funds later shipment and movement; empty-board Richese
must pay for real shipment before ground movement; Ecaz moves its original six
Basin counters. Existing current-phase preparation/pass controls and minimal
legal policies serve these sources. Exact frozen results are recorded in the
[shared native promise checkpoint](TRUTHTRANCE_SHIPMENT_PROMISES.md#native-factions-and-owned-choam-opening--26-october-2026).
No complete-mode, DOM/hydration, browser/deployed or final assurance is claimed.
## Native Advanced and No-Field preparation — 25 October 2026
**Prototyped / Partial.** Advanced phase5 now accepts declared native expansion
families through the same roster checks as Basic. Optional modules and earlier
Advanced forecasts remain separate. This supersedes the preceding classic-only
admission below, not complete faction/mode acceptance.
Richese's owned route can use its original No-Field shipment, voluntary reveal,
marker-only positioning or a physical group carrying the marker. The native
one-force tariff, exact event/token, last-used restriction, funding and original
Karama responses remain. Materialization uses only actual remaining reserves;
an owned Ghola may prepare those reserves through its existing physical path.
The marker itself contributes zero toward a movement promise. Reveal and shipment
prepare but do not fulfill it; only actual physical movement does. A concealed
zero can still supply city presence/range for a later physical Hajr move.
Reuse the [printed lifecycle](RICHESE_NO_FIELD_ENGINE_AUDIT.md#source-boundary-and-model-contract)
and existing general current-turn composition below; no new publisher ruling is
claimed. The witness includes reserve-capped reveal potential before pruning
marker-only armies, keeps original marker/event and Ixian cancellation in its
memo, and tries city preparation early without dropping other legal candidates.
Before saving a live No-Field declaration, check its allowed exact commitment
on a detached copy. The real original counter still decides the shipment;
prevention can release an impossible Yes without charging or deploying it.
An optional own reveal, including in earlier Basic phases, cannot erase the last
required route and then claim opposing impossibility.
The [Richese source](../tests/fixture-truth-movement-no-field.ts) earns public
Basic/Advanced main35/cache10, original dealt Truthtrance, actual native bidding
and paid concealed Basin shipment without installed played state. Its zero/3/5
choices use original custody. The [Ixian source](../tests/fixture-truth-movement-ixian.ts)
earns actual Advanced setup/HMS, original Truthtrance, Emperor's paid Karama and
a paid two-Cyborg shipment before its original range counter. Controlled reserve
caps, physical placements, Hajr/Karama acquisition and an earlier phase boundary
are explicitly labelled in [separate regressions](../tests/truth-movement-no-field-engine.test.ts).
They are not genuine full-game traces. Human controls give distinct persistent
shipment/reveal/marker/mixed-group guidance; existing minimal policies follow
the same owned route. No strategy/calibration or complete-mode claim is added.
The24-file163/163 related union passes. Fixture-only lint repairs in two files
then pass all3-file15/15 affected consumers, types/lint/build and six native
original-control/GameTable SSR journeys. An exact hash comparison retains all
application/other files across repairs. Basic24/Advanced27 Richese and Ixian43
source prefixes earn original cards, payments and typed pieces. Real reveal
callbacks and one-spice shipment/reveal/movement complete. Four existing profiles
follow legal owned reveal guidance. Controlled cap/zero/mixed/Hajr/counter/early
boundaries retain their staging labels. Trying city preparation earlier makes
the concealed-positioning cases finite promptly without pruning legal choices.
Private proof/HTML:
`/home/quintine/.local/share/dune/checkpoints/20261025-truth-movement-native-no-field/`.
`frozen-integrated/report.json` keeps initial related success and fixture lint
failure; `fixture-lint-repair.json` records exactly two changed test/fixture paths.
`frozen-fixture-lint-repair/report.json` binds tree
`6963f2074dbcc48f56447963f4e6064d4344ebbd28abcea6dfc67429aab41609`,
2778files on base `2ae2b984c05c918c7df34be7c6234524c52f1c65`.
Final prose/reference overlays are separately reviewed. These callbacks/SSR are
not hydration, browser, mobile or deployed acceptance.
Earlier Advanced, modules, arbitrary commitments and final assurance/deployed
acceptance remain unfinished. No saved-room, database, server restart or
deployment operation is part of this work.
## Classic Advanced Movement — 25 October 2026
**Prototyped / Partial.** Classic Advanced tables without expansions or optional
modules now accept the same structured movement question during phase5, for an
active or still-unused waiting respondent. Basic's existing native-family and
earlier-phase entry stays available. Earlier Advanced phases, Advanced expansion
families, modules and arbitrary promises remain unfinished.
The single-event meaning and general current-turn FAQ authority below still
apply; this is a software composition, not a new movement-specific publisher
ruling. Count physical counters, including each Fedaykin/Sardaukar once, through
the shared typed movement validator. A reserve shipment can prepare a larger
group but cannot fulfill movement. Hajr requires the actual immediate
post-movement opportunity; search cannot play it before the first move or after
an intervening voluntary action has closed that opportunity.
Private reachability includes the owned native pre-first-shipment advisor
preparation and an eligible incoming advisor's requested fighter flip. Project
the allowed owned advantage and normal stance settlement without creating
matching events or new automatic-flip receipts. This retains continuously-alone
holds and removes empty advisor groups. The real action still resolves its
original independent Karama counter. Keep promises pending across original
Fremen/matching/conversion decisions; fulfill only on a physical matching move.
A final mandatory response pass cannot voluntarily evade a promise or prevent
release when an opponent's completed counter makes it impossible. Search memo
keys retain current stances, prevention markers and the immediate Hajr window.
The [native fixture](../tests/fixture-truth-movement-advanced.ts) selects original
unopened lotteries/deal/Spice positions, uses the real lobby Advanced selector
and preview start, and earns original Truthtrance/Hajr through actual dealing.
The Atreides branch retains its native ten Arrakeen counters after a paid Polar
shipment. The Fremen branch actually places two Fedaykin at Tabr, buys Emperor's
original Karama for1 and ships the last reserve Fedaykin to Polar. No played
clock, force, wallet, hand or promise is installed. Separate BG regressions
explicitly label controlled original-card acquisition/stance/reserve placement;
native preparation, paid shipment, original counter and later movement still
use production controls. This is not native provenance for those overlays.
Evidence: [rule/control tests](../tests/truth-movement-advanced-engine.test.ts),
[actual callback test](../tests/truth-movement-advanced-controls.test.tsx).
Frozen **26 files238/238**, types/lint/build and four actual-control/GameTable
SSR journeys pass, including a real persistent-guidance callback. Native source
prefixes take23/27 actions. Private proof and HTML:
`/home/quintine/.local/share/dune/checkpoints/20261025-truth-movement-advanced/`;
`frozen-integrated/report.json` binds tree
`2bbb98a518df218683789a6c183d4985c750403f42cb7e82ac5a23736c8681bc`,
2773files on base `0d8481e8216c20cfe100d903fe4c7d41f9136dc7`.
Final prose/reference overlays are separately reviewed.
All four existing profiles use the same legal guidance; no strategic tuning or
calibration is added. Browser/hydration/mobile/deployed and comprehensive final
rules/recovery/privacy/custody acceptance remain open. No saved-room, database,
server restart or deployment operation is part of this checkpoint.
The preceding Basic records below retain their dated scope; the Advanced entry
above supersedes only their blanket Advanced exclusion.
## Basic prototype — 24 October 2026
**Prototyped / Partial.** The structured question asks whether the respondent
will make **one ground movement of at least N physical forces to a printed
territory before their current Shipment and Movement turn ends**. It concerns
future events after the answer, not earlier moves or sums of smaller groups.
Shipment, HMS relocation, free accompaniment and Ambassador relocation do not
count. A concealed No-Field marker itself is not a physical on-board force;
ordinary counters moving with it retain their actual count.
The general binding-while-possible/current-turn authority is the GF9 November
2020 FAQ printed p8, recorded in the [shipment source contract](TRUTHTRANCE_SHIPMENT_PROMISES.md#authority-and-supported-meaning).
Its worked example concerns shipment. Applying that rule to this existential
movement statement, the owned-action witness and accepted-order release policy
below are explicit software compositions, not a publisher movement-specific FAQ
or Basic adoption of the unofficial Advanced revision.
Basic tables with the declared native families can also ask in clean earlier
phases0–4 of the current round, with the owned preparations below. During
Movement, ask at a clean **active or still-unused
waiting turn in the current Shipment and Movement queue**, before or after the
active respondent's shipment, including selected E1/E2/E3 factions. No optional modules or Advanced
inherit this entry. The actual native roster, physical inventory and route
validation remain authoritative; no mode or publication gate opens.
Later-round movement questions, compound movement/fact questions and wider
owned preparations/interactions remain unfinished. Existing saves are not
reconfigured and absent promise fields remain absent until a real answer binds.
## Behavior and controls
- **Yes** stays pending across nonmatching moves while a legal owned completion
remains. One matching physical commitment fulfills it permanently, before card
disposal, Intrusion, Ambassador/Terror or other later arrival effects. It is
not a promise to keep those forces alive afterward.
- **No** forbids every matching ordinary/card ground movement until the actual
turn ends, including later Hajr and both Ornithopter groups. A first nonmatch
or card-disposal pause does not fulfill it. Ending early cannot evade Yes.
- Feasible answers use actual board/typed groups and the shared human movement
declaration validator, not the strategic bot shortlist. The finite search
considers ordinary moves, held Hajr, both held/active Ornithopter modes and
their original cohort, current city access, current native bonuses, held
CHOAM Kulon, held Ghola force returns and the owned Box recovery described below. Preparations use
private detached execution; actual cards retain
their ordinary effects, counters, discard/response and arrival continuations.
Unknown future draws/gifts and unresolved opposing outcomes are not invented.
- Voluntary moves/actions cannot remove the last legal completion. A declared
native movement waits for its real counter response before fulfillment or
impossibility. Opposing impossibility releases only the answers that cannot
remain compatible: retain every No and still-feasible Yes in accepted order.
An impossible large promise does not erase an independent smaller one.
- Authoring has dedicated movement labels, an exact public preview and a
one-to-twenty input. Only the respondent sees feasible answers and the next
owned completion action. Persistent promise/answer controls have no timer;
busy controls submit nothing. Four existing profiles follow those same legal
views without strategy changes or calibration.
This is bounded reachability, not complete arbitrary Truthtrance enforcement.
Other owned preparation families (including native relocation preparation),
later rounds, optional/Advanced profiles and comprehensive
combination/recovery/privacy/custody acceptance remain due.
## Owned Ghola preparation — 24 October 2026
**Prototyped / Partial.** The Basic owned-movement witness includes a held
physical Ghola's force choice using the current authoritative card eligibility,
maximum and typed-force allowance. Each candidate plays that exact card through
the shared engine on a detached copy. Returned pieces go to reserves; neither
the card play nor shipment fulfills a ground-movement promise. The actual later
shipment must remain unused and affordable, then one qualifying ground movement
must commit. Normal force/leader revival allowances are unchanged.
A publicly observed Ghola discard or the owner's privately observed card can
supply a known-discard Box route. An unpaid unknown face supplies none. A paid
Box search retains its complete private choice, original event and single fee;
choosing a card which erases the last route rejects before shuffle. Both held
recovery and an already-paid search keep the conservative all-Tanks bound, while
every actual return, typed composition and payment is validated separately.
The single physical Ghola may return more than five total over legitimate
Box recovery and replay; no extra Ghola is manufactured.
Tleilaxu's possible Ghola income is not forecast spending money. Actual card
disposal and revival-income responses retain their original controls and
suspend movement guidance until they finish. Persistent guidance names the
force return, then shipment, then ground movement; busy controls submit nothing.
Existing minimal profiles follow this same legal path without strategy tuning.
This composes the existing printed Ghola/Box mechanics with the movement
predicate above; it is not a new publisher movement-specific ruling. Wider
owned preparations, native relocation, later rounds, modules/Advanced and
comprehensive full-mode/recovery/privacy/deployed acceptance remain unfinished.
### Ghola source and proof
The original held source reaches turn2 unshipped with10 Arrakeen forces,
9 reserves,1 real Storm casualty and10 spice; its optional Tleilaxu variant
retains the same owned pieces. Actual 17+0 first dials move Storm Start1 to18;
next-turn1+1 crosses the paid sacrificial Cielago North1 shipment and ends2.
Emperor's actual2-spice bribe settles before the source. Actual Revival Ready
declines ordinary returns. Basic city occupation grants no bank income.
The native Richese source actually sells its original cache Box for1, ships
separate sacrificial groups and plays Richese's original Ghola on the real
casualty. Emperor's actual6-spice bribe leaves Atreides13; the known Ghola stays
in current discard. Owned Box2 → Ghola1 → city shipment10 → ground20 leaves1.
Original source prefixes are42/104 actions held without/with Tleilaxu, and75/151
for Box. Only unopened original deal/Spice positions and scalar lotteries are
selected; no dealt hand, wallet, army, death, clock or completed receipt is set.
Controlled extra-card/prior-loss/knowledge projections, ten-Tank reuse of the
single Ghola and a conserved acquired Karama holding the real income window
open are separately labelled tests, not claims about those natural prefixes.
The final frozen batch passes **22 files182/182**, types/lint (npm run check:quick),
production build and four actual-control/GameTable SSR programmes. Eight
existing-profile held/Box runs accept40 proposals plus24 separate native
continuations. Busy handlers submit nothing; actual answer, recovery, force
return, shipment and ground controls pass. The first frozen batch passed the
rule union but failed type checking on a duplicate fixture snapshot/action key;
the corrected final batch passes. Earlier feedback corrected source geography
and Basic funding; bounded review repaired missing Ghola discard knowledge.
Private artifacts: /home/quintine/.local/share/dune/checkpoints/20261024-movement-ghola/,
final frozen-integrated-2/report.json, runtime-smoke.json, private HTML/logs,
verified-files.json and documentation-overlay.json. Before final prose:
base c311ed42519bbc19d81655a82a2363da64d36ccd, source tree
58bfc5420edfd9bb358f85d5901c605474d6f39944272b29465fca4ae1dd02e5,
2657 tracked/nonignored files unchanged throughout. Only four checkpoint-prose/
reference overlays follow proof; local links/evidence and reference syntax/keys
are reviewed separately. Framework aliases/CSS stub are rendering smoke, not
browser/visual/deployed acceptance. Full modes, wider preparations, combinations
and comprehensive assurance stay open; no saved-room/D1/reset/restart/deployment
operation or AI strategy calibration occurs.
## Native early Basic funding — 24 October 2026
Clean earlier Basic entry now includes declared E1/E2/E3 native factions without
optional modules. The existing [native auction contract](RICHESE_AUCTION_RULES.md)
and `richeseOwnCommitment` / `richeseAllyCommitment` price real pending invoices.
Subtract the current leading Once Around offer or an owned submitted Silent
split; losing and unsubmitted offers spend nothing. Native cache invoices have
no ordinary Karama payment alternative. A current paid sale is not charged
again. Clear only the detached auction/funding controls before the phase5
forecast, so reserved own spice is not deducted twice. No unknown purchased
card or future seller/Emperor income supplies a route.
During unfinished Silent bidding, a submitted ally locks the **entire outgoing
pledge**, using public submission status rather than exposing its private split
through feasibility. Only the actual revealed winner determines the final
donated cost/refund. Foreign auction/income controls finish before release.
Positive owner bids and card gifts cannot voluntarily erase the route. Current
guidance passes a live Once Around bid or submits Silent zero with its original
event; it does so even while foreign escrow temporarily prevents a witness.
A zero/pass is not a voluntary promise-breaking spend. Original cache choices,
native setup and post-auction decisions retain their own controls.
The mandatory Ix-enabled phase5 opening is also a forecast boundary: retain the
owned future turn with its normal reset until real opening readiness initializes
Movement. It cannot veto the owner's preceding Ready or expose movement early.
Before CHOAM's opening response, another faction may quote its fixed ordinary
Charity entitlement using current Inflation. This detached credit creates no
CHOAM income, payment or fictional receipt; the actual phase2 claim still waits
for the real allowed/canceled payer receipt and affordability. CHOAM's own
unresolved opening income/claim is not precredited and remains a wider forecast
boundary. A declared owned ordinary force revival projects only its quoted
allowed physical return/cost through the same accounting as real revival.
CHOAM/Tleilaxu decisions, benefit checks and income remain real unresolved
controls; no quote executes their choices or awards a future receipt. A real
denial can release impossibility, or leave an affordable paid route intact.
This continues the explicit provisional owned-outcome policy above, not a new
publisher Truthtrance clarification.
`tests/fixture-truth-movement-native-early.ts` supplies genuine original public
Basic Atreides/Emperor plus Richese/CHOAM, Ixians/Tleilaxu or Ecaz/Moritani.
Actual Ixian card selection/mobile placement and Ecaz/Moritani placement retain
their original counters; Atreides genuinely receives Truth and Emperor Baliset,
ten spice and twenty reserves. Actual questions, native first/last Once Around
or Silent invoices, shipment8 and ground8 are caller actions. Controlled prior
losses, original-card transfers, alliance escrow and preopening Charity cases
are separately disclosed.
The final **29-file union passes244/244**, types/lint and production build.
Six actual gameplay/guidance-handler/GameTable programmes cover first/last
Once Around/Silent cache purchase2, shipment8 and ground8, plus original E1/E3
early continuations. E2/E1/E3 source prefixes have25/36/25 actual actions. Eight
existing-profile runs make56 accepted guided proposals plus148 separate native
continuations, without tuning. Actual native zero/pass handlers and busy
protection also pass their two original-source control tests. Controlled tests
retain a real pending free revival before CHOAM's decision, then distinguish an
unaffordable denial from a retained paid route. Source corrections use actual
Silent submission status and Ix/Ecaz setup fields. Initial integrated feedback
exposed the Ix Movement opening; the narrow repair and final frozen union pass.
Frozen base `f995b6f4cd9008954893f2d646ecb861986a43de`, tree
`5c366c0cd7200c61e4461ac148a3a15a98f53ef1dec5fd661d425cced6c1f675`,
2653 files. Private source-bound logs, actual-state HTML and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-movement-native-early/`,
`frozen-integrated-2/report.json`. Only final checkpoint/reference prose overlays
follow proof. Framework aliases/CSS stubbing establish server rendering, not
browser/visual/deployed acceptance. No saved-room/D1/reset/restart/deployment.
Wider owned preparations, CHOAM's unresolved own opening, later rounds,
optional/Advanced and mixed questions, full modes, comprehensive assurance and
browser/deployed acceptance remain unfinished. Native shipment-promise entry
is unchanged; this does not certify all promise families or faction rules.
## Earlier classic Basic phases — 24 October 2026
The current-round question now includes classic Basic Storm, Spice Blow,
Charity, Bidding and Revival. This is the same provisional owned-stage forecast
used by early shipment promises, not a new printed payment or future-income
rule. Use current board/resources plus available owned Charity and ordinary
Revival. Price a currently leading ordinary bid against cash or one held
physical Karama; do not invent the purchased card, future income, gifts,
cooperation or a favorable Storm outcome. Bidding aid retains its committed
floor and refunds only its uncommitted remainder; incoming Bidding aid expires
before Movement. Actual foreign invoices/income responses finish before an
impossible promise releases. Native early auction/funding liabilities remain
unfinished; selected native phase5 entries are unchanged.
A new answer reopens its owner's Charity/Revival readiness. Claim or revive
before Ready when needed; a bid, payment or optional revival cannot spend the
last route. Mandatory Storm dials/readiness and forced casualties can release
impossible answers rather than trapping their owner. Forecasts reset old Hajr
and Ornithopter allowances exactly as real Movement entry does. Joint shipment
predicates remain in the same completion search. Ground preparation also
enumerates held Karama for its actual Guild shipment rate, with a distinct card
when another Karama pays the auction; only the actual shipment consumes that
rate. Pending owned Worthless conversion projects its allowed result without
settling its real response.
Persistent guidance offers only the current Charity, ordinary Revival, Ready,
bid-pass or owned invoice control. It never exposes future shipment/movement
before phase5. Existing paid Box decisions retain their original phase before
forecast promotion; no genuine classic Box source is claimed. Positive movement
guidance owns the combined route before independent shipment suggestions;
all-No answers keep normal auction-payment choices. All four profiles retain
minimal legal participation; strategic refinement remains deferred.
`tests/fixture-truth-movement-early.ts` retains genuine original classic Basic
Storm/Charity prefixes with Atreides Truth, Emperor Baliset, Harkonnen
Karama/Shield and Guild Snooper. Emperor keeps printed10 spice,20 reserves and
zero board/Tanks. The caller performs its later normal purchase2, city
shipment8 and ground8. Controlled prior losses, conserved Karama/second-Truth
transfers, ally escrow and stale allowance cases are explicitly separate from
that natural source. The storm-loss case stages prior resources/position, then
uses actual dials and last owner Ready over exposed Oh Gap; Imperial Basin's
printed storm protection is retained.
The frozen **21-file union passes155/155**, types/lint and production build.
Four actual guidance-handler/GameTable programmes cover genuine Storm8 and
Charity22 sources with actual purchase2/city shipment8/ground8, original Charity
No, and an explicitly controlled Charity/Revival1 preparation. Busy handlers
submit nothing. Four existing profiles make24 accepted current-phase/later-turn
proposals plus76 separate native pass/readiness continuations. No strategy
refinement or relative-difficulty calibration is claimed. Focused feedback
repaired missing held Karama shipment preparation; fixture corrections retained
actual geometry, current-sector blocking and Imperial Basin storm protection.
Frozen base `49586efd2fffcf2ba990693fedc9307a5b522150`, tree
`e56b10d3a3c602078451d125b55aeaabc7acff1b348f8f682e04149e3831382d`,
2648 files. Private source-bound logs, actual-state control HTML and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-movement-early/`,
`frozen-integrated/report.json`. Only final checkpoint/reference prose overlays
follow proof. Framework aliases/CSS stubbing establish server rendering, not
browser/visual/deployed acceptance. No saved-room/D1/reset/restart/deployment.
Full native early phases, later rounds, other preparations/modules, complete
modes, comprehensive assurance and browser/deployed acceptance remain open.
## Same-phase waiting respondents — 24 October 2026
The general current-round FAQ contract now includes a respondent whose unused
turn remains in the original Movement queue. This extends the provisional owned
forecast used by shipment promises; it introduces no future-income, cooperation
or vacated-destination assumption. Keep the current board, owned resources and
native per-player Hajr history. The detached forecast selects that owner's turn
and isolates foreign declarations, prices, Ornithopter controls and private
searches without resolving them or awarding a hypothetical discarded card.
The live active player, queues, cards and pending decisions remain unchanged.
A matching move by another player neither fulfills Yes nor violates No. Another
player's end cannot close the respondent's promise. Ordinary action guidance
appears only on the actual owned turn. The exception is the owner's **already
paid** Box selection: its current private decision can finish while waiting,
using the original event and full entitled choice. Once paid, even an ordinary
nonmovement card may preserve an existing route; do not falsely restrict that
search to movement cards. Pre-payment known-discard planning is unchanged.
Owner-declared Emperor gift and Spiritual Advisor costs are checked on their
allowed outcome before opening the deferred response, so a foreign responder
cannot convert voluntary loss into an opposing release. A pending native move
defers reconciliation for its own moving player, while a different waiting
owner still preserves required resources when voluntarily interrupting with Box.
All four minimal profiles may conservatively decline optional accompaniment
under a positive promise; strategic refinement remains deferred. Persistent
waiting/paid guidance has no timer and retains busy handling.
Earlier phases/later rounds, additional preparation families, No-Field/modules,
full modes and comprehensive acceptance remain unfinished.
### Current waiting-turn evidence
`tests/fixture-truth-movement-waiting.ts` reverses two original unopened deal
positions, then performs real setup and phase continuations. Its19-action public
Basic source leaves active Atreides10 at Arrakeen and waiting Emperor0/20 with
native wallets. Another player's actual matching move/end leaves Yes/No pending;
the respondent then ships and moves or honors No through its own real ending.
`tests/fixture-truth-movement-waiting-box.ts` uses actual public native purchases
Box1/Hajr1, stops at Richese's first movement turn and genuinely spends its dealt
Truth on a current fact. Guild's original distinct Truth then asks the waiting
Emperor. The44-action source retains cash8, all20 reserves and zero board forces;
actual payment leaves6, with two ordinary Truth choices. Paid Yes/No selection
retains the original event and one fee, returns to waiting and later finishes
the owned turn. Only unopened positions and native scalar lotteries are selected.
No hand, wallet, force, queue, clock or receipt is installed in these sources.
Separate controlled tests label the modeled pact/gift and past BG losses,
conserved original Ornithopter acquisition and native Fremen-response/Box
timing. The last checks both unaffordable and affordable payment: reject the
former without changing its original frame, and restore the latter's exact
foreign movement response with one spice left. No foreign flight is discarded
or reassigned by the waiting forecast. All four profiles can decline optional
accompaniment instead of repeatedly proposing an illegal acceptance.
The final eighteen-file union passes **125/125**, types/lint and four actual
guidance/ordinary paid-choice-handler/GameTable programmes. Eight existing-profile
runs make32 accepted owned proposals, with12 separate neutral acknowledgements;
there is no strategy tuning. Bounded review repaired active-only policy with
the paid exception, both deferred-cost preflights and native-owner deferral.
The production build passes at the initial freeze; a test-only affordable
counterpart follows. `build-identity.json` proves all application/build/dependency
and other source files identical while the final tests/types/runtime run again.
Frozen base `f0b2ac82d924ca8568bb7b58b5c290ad75cd04be`, final proof tree
`0156db54c6165d6b64c612ad15b984c953395f7659e6314894d8317491e64714`,
2645 files. Private logs, original-state control HTML, build identity and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-movement-waiting/`,
`frozen-integrated-2/report.json`; the original build is in `frozen-integrated/`.
Only final checkpoint/reference prose overlays follow proof. Framework aliases/
CSS stubbing establish server rendering, not browser/visual/deployed acceptance.
Earlier phases/later rounds, remaining preparation families/modules, complete
modes and comprehensive assurance remain open. No saved-room/D1/reset/restart/
deployment operation.
## Before-shipment movement promises — 24 October 2026
The same existential ground-movement question now includes the active player's
unused ordinary reserve shipment. This is a software reachability extension of
the general FAQ contract above; it introduces no new shipment price, force or
fulfillment rule. A shipment may create or reinforce a later ground group; it
does not fulfill Yes or violate No by itself. Both existing shipment answers and
movement answers constrain the same remaining owned turn. No-only movement
guidance first honors a required shipment instead of incorrectly suggesting End.
Ordinary preparation enumerates physical amounts, native special allocations,
destinations/sectors and explicit pledged ally-payment splits. The actual
declaration, shared tariff/funding validation and physical commit primitive
decide legality. Its detached mode stops after payment, typed withdrawal,
placement, stance, shipment-promise settlement and consuming the current price
benefit. It invents no income, draws, opponent choices or arrival effects.
Actual actions keep their original response and entry continuations.
A pending ordinary reserve shipment or native Guild cross/return projects its
**exact** declaration before later movement is checked. A player cannot declare
a bad destination/force split and then use an opponent's pass to release Yes.
Unsupported Ambassador/No-Field/module sources retain their boundary rather
than executing a full speculative continuation. Native cross/return preparation
is not enumerated yet, though actual legal choices preserve the existing promise.
Other preparation families, earlier phases/later rounds, optional/Advanced and
comprehensive acceptance remain unfinished.
### Preceding before-shipment evidence
`tests/fixture-truth-movement-shipment.ts` retains actual source prefixes before
their original shipment. Classic19 has Arrakeen10 plus10 reserves: a one-spice
reinforcement permits a later eleven-force ground move. Native Emperor37 has
the real bought Box/Hajr and no board forces; CHOAM24 has its actually dealt
Kulon and no board forces. Fresh public Guild19 preserves original Tuek5,
reserves15 and spice5, with actual reserve and cross transport. Only unopened
deals/Spice and native scalar lotteries are selected. No hand, wallet, force,
clock or receipt is installed. Separate second-Truth and Karama acquisition
edges explicitly transfer conserved originals; actual rate cancellation and
joint answers then use their original controls.
The current nineteen-file union passes **165/165**, types/lint and production
build. Six actual guidance-handler/GameTable programmes cover classic Yes/No,
Emperor, CHOAM with actual Kulon and Guild reserve/cross transport; busy handlers
submit nothing. Four existing profiles make16 accepted answer/ship/move/end
actions without tuning. Bounded review repaired ordinary-source guarding,
pledged-share enumeration, exact pending declarations and joint completion.
One expensive search run was stopped; all candidates remain after ordering by
reinforcement and useful nearby routes. Conservative last-move pruning retains
owned movement cards. The twelve new engine cases subsequently pass in3.2s.
A display-template lint issue was repaired.
Frozen base `b5a53da7126f2be5066db0723536aea3b2fa91a6`, tree
`05a19569eee3e40f07c1be2f5c4cdcb51b4772a720bafd203a9ab0acadb02d26`,
2641 files. Private logs, original-state control HTML and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-movement-before-shipment/`,
`frozen-integrated-3/report.json`. Only final checkpoint/reference prose overlays
follow proof. Framework aliases/CSS stubbing establish server rendering, not
browser/visual/deployed acceptance. Full modes, wider timing/preparations and
comprehensive assurance remain open. No saved-room/D1/reset/restart/deployment.
## Owned Box and Kulon preparation — 24 October 2026
The same bare Basic predicate now considers a held native CHOAM Kulon and an
owned Nullentropy Box with its printed **two uncommitted spice** fee. Box
authority and the existing provisional atomic full-hand exchange are unchanged;
see [the Box source contract](NULLENTROPY_BOX_ENGINE_AUDIT.md). This extends
bounded owned reachability, not the supported mode/timing profile.
Before payment, only a relevant physical card known still to be in the discard
may supply a Box witness. Public disposals teach all actual seats; private
disposals teach their former holder. Hajr, canonical Ornithopter and Kulon are
the only remembered faces needed here. A private Box choice or mixed Semuta
claim invalidates other seats' certainty of those candidates' **current
location**; its entitled inspector knows the remaining faces. Rebuilding the
deck removes current-discard certainty. This bookkeeping does not erase anyone's
historical memory, reveal discard names/counts before payment or retroactively
inspect unconfirmed old piles. Unknown/private preparation possibilities outside
that provable knowledge remain unfinished. The metadata is server-only; the
ordinary owner sees only the next legal action.
After actual payment, the original private search still shows every eligible
card, retains its event and charges once. A live Yes supplies a compliant
selection in the persistent promise control: a required movement card, or an
ordinary card when an existing route needs no new movement card. A selection that
would destroy the last route rejects **before** the real shuffle and leaves the
paid decision available; its fee is neither repeated nor refunded. No-only
promises keep the ordinary paid choice and do not offer End movement until that
choice finishes. Minimal policies use the same guided paid selection rather
than repeatedly choosing an incompatible high-value card.
Speculation uses detached copies and deterministic pile order; it never pays,
shuffles or samples the live game. Actual Box settlement retains its one server
shuffle, physical exchange and native discard continuation. Held Kulon uses its
original native legality/cost/bonus; actual counters keep it held and blocked
when canceled. Opposing loss can release an impossible answer, while voluntary
spending cannot remove the only remaining fee-funded route. Broader preparation
through native relocation, counter mitigation, earlier timing and optional or
Advanced rules remains unfinished.
### Preceding card-preparation evidence
`tests/fixture-truth-movement-box.ts` selects one original unopened Guild
Truthtrance deal, then uses actual public Basic Richese/Emperor/Guild setup,
Box1/Hajr1 purchases, three-force desert shipment6 and real Hajr plus two
one-force moves. Its44-action source leaves the original Hajr in discard, held
Box and exactly two owned spice. The actual definite Truthtrance answer adds
the second paid-search candidate. Yes recovers that same Hajr and makes the
third move; No uses the original ordinary paid-selection control. Native
CHOAM source25 stops before actual Kulon, then the question, held Kulon and
city-enabled route4 execute normally. Only unopened positions and native scalar
lotteries are selected; no dealt hand, wallet, force, clock or receipt is installed.
Separate full-hand, unknown legacy certainty, opposing fee-loss and acquired
Karama-counter tests explicitly stage conserved original outcomes.
The preceding seventeen-file union passed **231/231**, types/lint and production
build. Three actual-control/GameTable-rendering programmes retain full paid
inspection, original event, single fee, rejected selection and busy no-submit.
Four existing profiles make40 accepted paid-selection/Hajr/move/end/neutral-pass
actions and finish legally without strategy refinement. Two older Box/Auditor
fixtures failed identically on the previous engine and now acknowledge the
actual battle result; a test-only const lint issue was repaired. Bounded review
checked printed search entitlement, full-hand policy, original paid continuation,
primitive disposal knowledge, memoized preparation state and paid-choice priority.
Frozen base `edbcbe28de2128c1b59ab7b17bdf7328bddc7416`, tree
`fd900a863da9cbc9826c22ca7627c26123d1cad04915d059735cb32471c7ba00`,
2636 files. Private logs, original-state control HTML and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-movement-card-preparation/`,
`frozen-integrated-3/report.json`. Only final checkpoint/reference prose overlays
follow that proof. Framework aliases/CSS stubbing establish server rendering,
not browser/visual/deployed acceptance. Other timing/preparations/counter
mitigation, unknown private possibilities, optional/Advanced, full modes and
comprehensive assurance remain open. No saved-room/D1/reset/restart/deployment.
## Preceding movement checkpoint
`tests/fixture-truth-movement.ts` uses genuine public Basic Atreides/Emperor
setup, original33-card inventory and actual dealt Truthtrance/Hajr. Only unopened
deal/Spice positions and native scalar lotteries are selected. Actual readiness,
setup, phases and a **two-spice** one-force Polar Sink shipment precede the
question; ten original Arrakeen forces, wallets and allowances are unchanged.
The original public Ecaz/CHOAM/Richese/Guild source also buys physical
Ornithopter for one in the native cache auction, deals original Truthtrance to
Ecaz, buys one normal card, pays for placement and Guild shipment, then finishes
an actual empty CHOAM Ambassador grant. Two-group Yes/No and range-three paths
use those real cards/forces. Its existing native Ecaz final-move Semuta boundary
remains; ending disposal and the earlier Truthtrance cost still use their actual
neutral continuation. No force, wallet, clock, bonus or played card is installed.
`tests/fixture-truth-movement-choam.ts` uses public native CHOAM/Emperor setup,
actual dealt Kulon/Truthtrance, one-spice Arrakeen shipment and actual allowed
Kulon. City access plus its current bonus proves a four-territory route.
Separate multiple-question and impossibility edges explicitly stage a conserved
second original Truthtrance acquisition and conserved force-loss outcomes. They
are not natural second-purchase or native Atomics/Terror source evidence.
The preceding seventeen-file affected union passed **218/218**, with types/lint and the
production build passing. Seven actual gameplay/control/table-rendering
programmes cover direct Yes, later Hajr Yes, No surviving Hajr, both actual
Ornithopter groups, its range-three option and native current-Kulon route4.
Source programmes use20/58/26 accepted actions. Actual persistent promise
handlers execute the private witness and submit nothing when busy; actual
GameTable rendering covers question, answer, remaining promise, Truthtrance/
ending-disposal pauses and original turn completion. Authoring/answer states
are rendered and submitted as real actions, not browser clicks. Four existing
profiles make12 legal answer/move/end actions, without tuning or calibration.
Bounded review found current CHOAM range must include Kulon rather than a
three-territory cap, and an opposing loss must release only incompatible answers.
Both have regressions, including genuine Kulon play. Multiple-promise feedback
keeps detached settlement coherent; deterministic owned preparation does not
invent extra fresh-discard events while a real cost is suspended. Initial fixture
feedback corrected the actual two-spice Polar Sink tariff and automatically
allowed Kulon. Three representative older failures reproduced against the prior
committed engine: shared native fixtures now acknowledge neutral Semuta, two
battle fixtures acknowledge the actual result, and the broad pre-movement Hajr
case correctly uses Basic. Native Advanced Hajr still requires its genuine
post-movement opportunity. A notice-label scalar lint issue was repaired.
Frozen base `b4a556d5d345c9ff3056b01af0076ae86bdf5579`, tree
`990c92fd368f07e1be91dcc0c677a7c029ecfcd6f747b99943e07cae28f8cfc3`,
2631 files. Private logs, original-state/control HTML and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-truth-movement/`,
`frozen-integrated-3/report.json`. Final checkpoint/reference prose overlays
are separately recorded; engine, controls, helpers and tests match the proof.
Framework aliases/CSS stubbing make this server-rendered evidence, not browser,
visual or deployed acceptance. Full modes, wider preparations/timing/modules,
comprehensive assurance and deployed acceptance remain open. No saved-room/D1
operation, reset, restart or deployment.
## Ground-movement destination sector — 27 October 2026
**Prototyped / Partial.** The publisher FAQ (November 2020, p. 8) permits
current-turn Yes/No questions; naming the destination sector is a provisional
application of the project's online binding procedure. A movement clause may
name any sector of a printed territory or a single printed sector and requires
one actual physical ground-moving group of the selected minimum. Shipment,
marker-only movement and special relocations retain their existing distinctions.
Standalone, expression, mixed, travel and whole-turn questions use the same
native legal movement and shared private guide. No forbids the matching move;
Yes retains an available native completion. Different actual moves can satisfy
different positive sector clauses when movement allowances and cards permit.
Per-sector maxima record each qualifying group without adding smaller moves;
old territory-wide progress is preserved and never implies an unrecorded sector.
Dynamic board locations remain native legal destinations but cannot be named
as printed-sector claims in this prototype.
Runtime cases use a genuine Basic setup and actual physical shipment, Hajr and
movement actions; complete expansion interactions, broader source review,
browser and deployed acceptance remain open.