Connect physical Jacurutu allocation and cumulative station choices

This commit is contained in:
Quintine committed 2026-10-14 14:49:07 +11:00
1 parent 373badd560
commit 554f2bf9e9
22 files changed
+1943 -129

No files matched your search

+18
View File
@@ -29,6 +29,24 @@ optional skill bands, combinations and public expansion starts remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Recommended Jacurutu and Testing Station choices — 14 October.**
Following the choose-recommended-option priority, mixed physical Jacurutu dials
now use a defeated-player exact ordinary/elite/paid selection before battle
mutates. Original withdrawal/retreat counters do not earn Tanks income;
unique readings stay automatic, and original payment/casualty/Collection resumes
once. Testing Station gives each non-advisor occupant one cumulative adjustment
in original storm order, then traverses once; natural source/base/from/token,
Weather exclusion and existing sole-frame signatures remain.
Both are visible provisional interpretations, not new publisher or separately
answered numerical user rulings. Actual native original setup, token lottery,
ship/reveal/entry, declared battle or worm alliance retain printed stock and
starting armies. Actual390px dial choice earns1 with two losing Tanks/one elite;
native city income remains separate. Guild+1 changes pending2→3 without moving
storm3; Ecaz−1 then moves it once to5 and opens Spice Blow, with both garrisons
intact. Browser errors empty and no root overflow. Related12-file union104/104,
types/lint and app build pass; [precise source and proof](DISCOVERY_PROTOTYPE.md#recommended-physical-dial-and-cumulative-storm-choices--14-october-2026).
Cistern/Orgiz/shared-collector effects and full acceptance remain open.
**Classic Homeworld normal Banker and whole-invoice accounting — 14 October.**
Fresh `banker-income --homeworlds` reuses original classic Basic/Advanced
occupation/all14 setup and income-v1, without Nexus/Discovery/Tech/Strongholds
+89 -30
View File
@@ -5,6 +5,65 @@ partial rules coverage. It connects physical components, real actions, private
controls, AI choices and saved continuation. Normal public Discovery and
Advanced start gates, and the publication gate, remain closed.
## Recommended physical dial and cumulative storm choices — 14 October 2026
Under the user's choose-recommended-option priority, the prototype now selects
two explicit implementation interpretations without another question:
the defeated Jacurutu player identifies the physical reading of their revealed
dial, and each Testing Station non-advisor occupant chooses once in original
storm order, cumulatively. These are not separately answered numerical user
rulings or newly located publisher clarifications. Controls label them provisional.
Jacurutu's owned event and canonical ordinary/elite/paid allocation choices
pause before support, casualties, card cleanup or rewards mutate. A chosen
reading must match all four original commitment fields. Only opposing undialed
counters actually sent to the Tanks earn spice. Original Harass returns bind
their already selected physical dial; actual withdrawal/retreat counters are
excluded. Unique readings stay automatic. Native resolution resumes once;
its subsequent ordinary city Collection remains separate.
Genuine Advanced Emperor/Atreides/Guild setup draws the original Hagga Basin
Discovery, places the actual Jacurutu supply token at printed Gara Kulon8,
ships one ordinary/one Sardaukar, inspects/reveals it and free-enters next turn.
An actual opposing shipment and declared battle produce dial2/support1:
Sardaukar-only earns1; ordinary-plus-Sardaukar earns0. Both destroy the same two
losing counters, spend original support once and resume native Collection.
The same original dial1/support0 position earns1 automatically. All four
properly configured legal bot policies choose an offered physical reading.
Testing Station preserves the original natural source/base/from/token and
existing sole-frame signatures. A two-owner signed queue stores original storm
order and one delta per owner. First choice leaves storm/protection untouched;
second starts one final traversal. Choices use current cumulative distance,
bounded0..40. Wrong owner/event/index, replay and Weather Control fail closed.
No new route, station token, starting army or source is fabricated.
Genuine Ecaz/Guild/Fremen/Emperor setup retains every original starting army:
real paid shipment, Collection reveal, next-turn entry, worm Nexus, reciprocal
alliance and allied shipment yield two station occupants. Earlier natural
sole-occupant opportunities use the real Keep control. The Advanced path also
finishes its original Guild interception before checking the arrival. Original
unplayed Spice ordering and actual supply lottery are explicitly staged.
Actual390px Jacurutu selection settles Emperor6→5, opposing Atreides9→10
(support−2, reward1, original city2) and the same two Tanks/one elite; observer
Guild13→14 retains its original Collection. Actual station Guild+1 changes
pending2→3 without moving storm3; Ecaz−1 then moves it once to5 and opens
Spice Blow, preserving both original garrisons. Browser errors empty; no root
overflow. `/tmp/dune-discovery-choice-ui-proof.json` records private local proof.
No complete-module, broad-assurance or deployed acceptance is claimed.
Evidence: `tests/fixture-jacurutu-mixed-dial.ts`,
`tests/jacurutu-mixed-dial-runtime.test.ts`,
`tests/fixture-testing-station-contest.ts`,
`tests/testing-station-contest-runtime.test.ts`, and the original
`tests/discovery-battle.test.ts` / `tests/discovery-storm.test.ts`.
Frozen related12-file union104/104, types/lint and app build pass. The build
retains existing module-registration, chunk-size and route-classification
warnings. Throwaway native probes are removed; permanent tests exercise
source/actor/transition/payment boundaries, not wording or fixture-copy echoes.
## Mixed E1/E2 and paired E3 Nexus — 7 October 2026
Original native Nx/Discovery now admits both selected Ix+CHOAM families
@@ -583,9 +642,10 @@ Focused native cases are in `tests/discovery-module-profile.test.ts`,
`tests/discovery-native-marker-runtime.test.ts` and
`tests/discovery-native-e3-runtime.test.ts`. Fixtures explicitly label controlled
unplayed Spice order, placement lottery and conserved counter/card/identity
positions; clocks, choices and outcomes use original producers. This does not
resolve contested Cistern/Testing Station/Orgiz, shared-payer theft, mixed-dial
Jacurutu, complete module strategy or public-start/deployed acceptance.
positions; clocks, choices and outcomes use original producers. At that earlier
checkpoint, contested benefits and mixed-dial Jacurutu remained unresolved.
The 14 October recommended dial and station interpretations supersede those two
guards; Cistern/Orgiz, shared-payer theft, strategy and full acceptance remain open.
### Bounded runtime evidence
@@ -780,16 +840,16 @@ conversion was fabricated.
another payment. Unresolved Ecaz shared lots and contested Orgiz occupation
withhold their uncertain transfers, not the ordinary Collection phase.
- **Jacurutu:** winning a battle here automatically grants one bank spice per
opposing undialed physical force sent to the Tanks. Winner casualties and
pre-existing Tanks do not count. Ordinary and unambiguous Advanced plans are
playable. Mixed normal/elite plans with different possible physical counts
leave an explicit unpaid gap pending the allocation ruling below.
- **Ecological Testing Station:** a sole non-advisor occupant receives an owned
decrease/keep/increase choice after the ordinary storm-card window closes,
before traversal and CHOAM/Fremen protection. The original natural dial/card
source, turn, physical station and chosen distance remain bound through saved
protection and typed loss continuations. Weather Control bypasses the station.
- **Jacurutu:** one bank spice per opposing undialed physical counter actually
sent to the Tanks. Unique readings remain automatic. For different possible
counts, the defeated owner selects an exact legal ordinary/elite/paid reading
before settlement under the provisional 14 October interpretation. Original
withdrawal/retreat counters never count; winner losses and old Tanks do not.
- **Ecological Testing Station:** each non-advisor occupant chooses once in
original storm order after the ordinary storm-card window and before traversal.
Adjustments accumulate on current movement; bounds0..40 and original source
remain authoritative. Weather Control bypasses the station. Sequential
cumulative ordering is a visibly provisional implementation interpretation.
- **Shrine:** current non-advisor occupation of the publicly revealed location
authorizes Truthtrance as Karama or Karama as Truthtrance in the existing effect
paths. Cards retain their physical identity and custody. A committed converted
@@ -839,24 +899,23 @@ trigger described above. Two fighters occupying Orgiz still withhold theft.
An Ecaz shared lot or inconsistent collected payers withholds that territory's
transfer; independent territories and ordinary Collection proceed.
The Testing Station's two-occupant case leaves ordering and cumulative adjustment
unresolved. The prototype opens only the sole-occupant path and continues an
ordinary storm without that contested benefit. Choosing after the ordinary
storm-card window is an implementation timing interpretation: the printed
source specifies the Storm phase and excludes Weather Control, but does not
supply a separate station/card priority order. A legacy pending storm without
new source metadata keeps its existing movement; a subsequent naturally
produced storm can use the station. No source is inferred from display logs.
The 14 October recommended prototype selects one cumulative adjustment per
Testing Station occupant in original storm order. The printed source specifies
the Storm phase and excludes Weather Control but does not give a separate
station/card priority or contested-order FAQ. The selected ordering remains an
implementation interpretation, not publisher authority. Existing sole-occupant
signed frames remain valid; no original movement is invented for a legacy
pending storm without source metadata.
Jacurutu's text says opposing **undialed forces**, not a numeric wheel difference.
Advanced combat permits different physical allocations: an Emperor with one
ordinary force and one Sardaukar, dial two and one paid support, can dial the
supported Sardaukar alone or the supported ordinary plus unsupported Sardaukar.
Those choices leave one or zero undialed counters. The existing loser resolution
has no physical allocation choice. The user question asks whether the defeated
player should select those counters; it remains pending. The prototype records
the unpaid gap instead of silently choosing a reward. Source: publisher-authored
Ecaz & Moritani rulebook p13, with no clarification in its bundled Q&A.
Those choices leave one or zero undialed counters. The 14 October prototype
selects the recommended defeated-player physical allocation before any battle
mutation. The former unpaid-gap guard is removed; numeric wheel subtraction
alone remains invalid. Publisher-authored Ecaz & Moritani p13 supplies the
undialed-counter trigger, not this choice timing. No new clarification is claimed.
## Evidence and next dependencies
@@ -925,10 +984,10 @@ to Spice Blow. Refresh restored the same station forces and private Snooper.
This is targeted control/recovery evidence, not an unmodified complete game.
The 187 opening saved rooms remain preserved; no server restart was needed.
1. Resolve contested Cistern/Orgiz/Testing Station benefits, Ecaz shared-lot
Orgiz allocation and Jacurutu's mixed physical dial allocation; complete
remaining controls and effects when settled. Basic's per-collected-deposit
Orgiz interpretation remains provisional; the Advanced count is source-cut over.
1. Resolve contested Cistern/Orgiz benefits and Ecaz shared-lot Orgiz allocation.
Jacurutu mixed dial and Testing Station order now use the visible recommended
interpretations above. Basic Orgiz remains provisional per collected deposit;
the Advanced territory count is source-cut over.
2. Integrate combined modules and complete games, then refine interaction,
strategy and presentation coverage before opening normal start gates.
3. Use the existing prototype starter and saved-room verification for further
+47
View File
@@ -1,5 +1,52 @@
# Dune implementation status
## 14 October 2026 — recommended physical Jacurutu dial and cumulative station queue
The choose-recommended-option priority removes another clarification stop.
The prototype selects defeated-player physical dial allocation at Jacurutu and
one cumulative Testing Station adjustment per non-advisor occupant in original
storm order. Both controls label these provisional implementation interpretations;
the printed source does not supply their choice timing/contested-order FAQ.
No separate numerical user answer or new publisher ruling is claimed.
Jacurutu's owned event preserves exact canonical ordinary/elite/paid readings
before battle mutation. Selection must match all four fields; actual Harass
returns bind their already selected commitment and retreat/withdrawal counters
never enter Tanks income. Unique readings stay automatic. Both1/0 readings
spend the same support and produce the same original two losing Tanks/one elite,
winner losses and original subsequent city Collection; all four configured
minimal policies produce a legal selection.
Testing Station adds a signed two-owner queue while preserving original sole
frame signatures. Source/base/from/token and one ordered delta per owner stay
bound. The first action updates current pending movement without traversal;
the final action traverses once. Cumulative0..40 bounds, actor/event/replay
rejection and printed Weather exclusion are exercised.
Native fixtures use real original setup, printed blow/supply lottery, paid
shipment, Collection inspect/reveal, next-turn entry and actual battle or worm
alliance. Owner removed a child’s arbitrary conserved starting-force relocation;
every original starting army remains intact. The station fixture also had to
choose Keep on its earlier real sole opportunity and finish Advanced Guild
interception before checking the allied arrival. Initial wallet expectations
omitted ordinary city Collection; the repaired tests preserve that original
quote separately rather than changing the engine’s payout. A Weather fixture
assumed seat order, while actual storm order made its second occupant Ecaz2;
the meaningful assertion now preserves its actual original garrison. Wording,
markup, log-growth and staging-copy assertions were deleted, not re-pinned.
Actual390px Jacurutu earns1: Emperor6→5, Atreides9→10 (−2 support,+1 reward,
+2 original city), Guild13→14 from original Collection. Actual station Guild+1
changes pending2→3 without moving storm3; Ecaz−1 traverses once to5, enters
Spice Blow and preserves original2/1 garrisons. Browser errors empty; no root
overflow. Private proof `/tmp/dune-discovery-choice-ui-proof.json`.
Native throwaways and isolated host/tab/scaffold are removed.
Final related12-file union104/104, types/lint and app build pass with existing
module-registration, chunk-size and route-classification warnings. The exhaustive
decision registries are migrated. Comprehensive assurance, other pending
Discovery effects, complete modes and deployed acceptance remain open.
## 14 October 2026 — classic Homeworld final Bank income and ruled accounting
The user selected whole-invoice low Guild/Emperor rounding, first eligible
+2 -2
View File
@@ -550,8 +550,8 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
| Moritani Atomics after alliance change | The publisher's persistent −1 hand-limit text names Moritani and “your ally,” but not whether the penalty follows a later ally, remains on the original ally or affects both. Requested online source searches found no clarification; the alliance-change case remains gated. | [Terror source boundary](MORITANI_TERROR_RULES.md#material-gaps-and-ordinary-compositions) |
| Moritani Sneak Attack entry classification | The printed verb is “Send”; no retrieved ruling classifies the off-planet reserve transfer as a shipment for other arrival powers. The engine now **explicitly adopts** the supported shipment composition: a positive Sneak Attack in Shipment and Movement accrues the Heighliners token once for its owner, then offers the Bene Gesserit Intrusion (Advanced, with fighters present) and the free spiritual-advisor shipment, with the committed Terror entry resolving first; a zero-force resolution accrues nothing and opens no reaction. This order is an implementation interpretation, not a publisher ruling. | [Source boundary and adopted classification](MORITANI_ASSASSINATION_SNEAK.md#adopted-shipment-classification-7-october-2026) |
| Orgiz collection | Basic retains the publisher-p13 per-blow ambiguity and provisional one-transfer-per-positive-deposit mapping. Authorized supplied Advanced rulebook physical24 instead says each time Collection occurs in a territory containing spice: Advanced applies one transfer per actual positive territory Collection, only to a unique rival payer. Multiple source keys do not add transfers. Contested ownership, inconsistent/different payers and Ecaz shared lots still withhold only uncertain transfers; ordinary Collection proceeds. No new publisher ruling on those pending cases is claimed. | [Advanced source cutover and Basic boundary](DISCOVERY_PROTOTYPE.md#authorized-advanced-collection-wording) |
| Jacurutu physical dial | The user question asks whether the losing player should choose the physical normal/elite forces represented by its dial. When legal Advanced allocations produce different rewards, income remains explicitly unpaid; numeric wheel subtraction is not a ruling. | [Discovery interpretations](DISCOVERY_PROTOTYPE.md#interpretations-retained-for-refinement) |
| Testing Station contest/timing | Only sole non-advisor occupation is prototyped. Two-occupant priority/stacking remains unresolved; opening after the ordinary storm-card window is an explicit source-timing inference. Weather Control is excluded by the printed text. | [Discovery interpretations](DISCOVERY_PROTOTYPE.md#interpretations-retained-for-refinement) |
| Jacurutu physical dial | Under the 14 October choose-recommendation priority, the prototype selects the defeated-player exact ordinary/elite/paid reading before settlement. Unique readings remain automatic; actual returned counters never earn income. This replaces the earlier unpaid gap without claiming a separate numerical user answer or publisher ruling. | [Recommended runtime and source](DISCOVERY_PROTOTYPE.md#recommended-physical-dial-and-cumulative-storm-choices--14-october-2026) |
| Testing Station contest/timing | The 14 October recommended prototype gives each non-advisor occupant one cumulative adjustment in original storm order, after the ordinary card window and before a single traversal. Original source/base and Weather immunity stay unchanged. Ordering/stacking is explicit provisional interpretation, not a newly found publisher answer. | [Recommended runtime and source](DISCOVERY_PROTOTYPE.md#recommended-physical-dial-and-cumulative-storm-choices--14-october-2026) |
| CHOAM Secret Ally battle timing | The printed after-victory inspection is optional and the Nexus identity stays secret. The connected prototype chooses a uniform use-or-continue window for every winner when Nexus is enabled and CHOAM absent; nonholders pass, while a holder may decide after the result. This privacy-preserving prompt is a product inference, not publisher text. A holder-only pause would reveal custody and a precommitment would remove the printed choice. Ordinary Karama cancellation remains unestablished by retrieved sources; no response is invented. | [After-victory inspection boundary](NEXUS_CHOAM_SECRET_ALLY.md#after-victory-inspection-audit) |
| Moritani Secret Ally battle timing | The printed after-loss retention is optional and the Nexus card remains secret. The connected prototype offers the same choice to every loser when Moritani is absent and at least one publicly revealed played card is retainable; a loser with no eligible public card has no useful choice, independent of hidden custody. Only an unallied holder may spend the physical card. This prompt is a privacy-preserving product inference, not publisher timing text. Native Moritani alliance retention and its Karama response remain separate; no generic Secret Ally counter is invented. | [Nexus retention boundary](NEXUS_CARD_RULES.md#moritani-secret-ally-retention-timing) |
| Ecaz Secret Ally traitor inquiry | The printed panel asks one selected player whether they hold any of the holder's leaders as Traitors, without identifying a leader; it specifies neither native-versus-controlled scope nor answer audience. The connected prototype chooses native printed faction leaders (including dead/captured), ordinary Traitor Cards rather than Face Dancers, and a holder-only historical yes/no. This is a privacy-preserving product interpretation, **not** a publisher ruling. Foreign Ghola/captive scope and table-wide disclosure remain release boundaries. | [Ecaz inquiry source and bounded runtime](NEXUS_ECAZ_RULES.md#bounded-secret-ally-traitor-inquiry-runtime) |