Connect expansion faction setup and saved Ixian auction decline
Add a local faction-only prototype profile for all seven nonempty expansion selections, genuine Basic/Advanced initialization and existing private setup, controls, AI and saved continuation. Ecaz allocates six forces across Imperial Basin sectors and retains fourteen reserves before later setup; preserve Fremen, Advanced BG and Moritani ordering with printed and inferred boundaries explicit. Keep optional Ecaz Treachery cards separate, ordinary deck counts 33/35/47, and Richese cache separate. Public start and publication gates remain closed. Replace the Advanced Ixian/Richese pre-offer stop with an explicit per-lot Ixian decline. Bind the saved original offer to its round, turn, owner, independent event, exact card custody and terms before view/action/normalization. Decline resumes that unchanged lot once without using Technology; later normal lots still offer the exchange. Protect reserved cards across transfers, spending and random Harkonnen exchange, and preserve legitimate Gift/Truthtrance interruptions. The actual special-lot exchange still awaits replacement-custody interpretation. Validation: focused setup, rules, UI/bot, private JSON/SQLite reload and concurrent CAS tests and independent custody/persistence review passed. Typecheck, lint, 4573 offline tests, production build and 43 HTTP tests passed. Browser Ecaz setup rejected an incomplete total, saved a 2/2/2 split, and refreshed to fourteen reserves and unchanged private cards. A separate genuine Advanced QA game restored the Ixian choice; explicit decline opened the unchanged cache lot with legal bidding and retained private hand, spice, pool count and unused Technology after refresh. Five of six genuine four-profile samples finish: CHOAM Basic 1054 actions/28 JSON restores, CHOAM Advanced 225/6, Ecaz Basic 91/2, Ecaz Advanced 523/14, all-three Basic 476/12. Combined Advanced passes three former auction stops and reaches turn three/action614 with 16 restores, then hits an existing CHOAM movement/Ambassador arrival guard. Ecaz samples also include guarded arrival candidates with legal alternatives. Full combined play is not certified; arrival integration is the next gap. Retain initial failed logs, including a corrected private harness sold-card receipt alias. After the outage, all 597 opening rooms and original seat/recovery records were preserved (632 after QA/HTTP). A stale development module cache required restart after a fresh 598-room backup; all 598 matched afterward and the QA seat restored. Final integrity and foreign keys passed. No database reset, recurring automation or publication. Verified source tree: 5e2ff244a1167f2834bb46d609b8de914a34f7049ff7b06046243068c0935131
This commit is contained in:
1 parent
f067950f5e
commit
cab2f1c42d
26 files changed
+3001
-58
No files matched your search
@@ -4,6 +4,19 @@ Updated 13 September 2026. This is the short navigation dashboard; detailed evid
|
||||
|
||||
## Evidence and source of truth
|
||||
|
||||
- [Expansion-faction development games](EXPANSION_FACTIONS_PROTOTYPE.md) connect
|
||||
genuine setup for all seven expansion selections, using existing faction
|
||||
controls, all four AI profiles and saved continuation. Ecaz now places its six
|
||||
starting forces in Imperial Basin and keeps fourteen in reserve. The optional
|
||||
three-card Ecaz variant remains separate and unfinished. Advanced Ixians have
|
||||
an explicit saved per-lot decline for Richese offers; the actual exchange still
|
||||
awaits its replacement-custody ruling. Complete-game samples
|
||||
finish five of six games; combined Advanced reaches turn three, then stops
|
||||
on the existing CHOAM movement/Ambassador arrival guard. That interaction is
|
||||
the next integration gap. Setup evidence does not open public starts or
|
||||
establish full faction compliance. Saved-game checks passed after a necessary
|
||||
restart for a stale server module cache.
|
||||
|
||||
- [Diplomat defense copying](DIPLOMAT_DEFENSE.md) connects one committed Worthless
|
||||
card to an opposing base Shield or Snooper, with optional controls, all four AI
|
||||
profiles, native trained-leader self-protection and mandatory discard. Saved
|
||||
|
||||
@@ -11,6 +11,9 @@ The [three-milestone pilot](EFFICIENCY_PILOT.md) records measurement limits.
|
||||
Use the [Ix prototype workflow](IX_PROTOTYPE.md) to connect a fresh local ready
|
||||
lobby to genuine expansion setup with a private backup and preserved sessions.
|
||||
It does not open normal mode gates or require restarting the server.
|
||||
The [expansion-faction profile](EXPANSION_FACTIONS_PROTOTYPE.md) extends genuine
|
||||
setup to selected faction sets without optional modules, including Ecaz starting
|
||||
placement. Remaining combined-play guards still apply.
|
||||
|
||||
## Architecture map
|
||||
|
||||
|
||||
@@ -0,0 +1,228 @@
|
||||
# Expansion-faction development profile
|
||||
|
||||
13 September 2026. This checkpoint connects genuine setup for any nonempty
|
||||
selection of the Ixians & Tleilaxu, CHOAM & Richese, and Ecaz & Moritani
|
||||
expansions. It is a local development profile for faction play. Optional
|
||||
variants, normal public expansion starts, and publication remain gated.
|
||||
|
||||
## Source and deck boundary
|
||||
|
||||
The source audit used the archived publisher-authored rulebooks at
|
||||
`/home/quintine/.local/share/dune/sources/ecaz-moritani.pdf` and
|
||||
`/home/quintine/.local/share/dune/sources/choam-richese-rulebook-en.pdf`, with
|
||||
their extracted text. A targeted official web check reproduced the CHOAM &
|
||||
Richese component text from GF9's index. The current Ecaz & Moritani PDF URL
|
||||
returned HTTP 403, so the findings below use the archived publisher file and
|
||||
retain its public URL rather than claiming a fresh download. No publisher or
|
||||
designer clarification of Ecaz's starting-sector allocation was found in the
|
||||
bounded follow-up search.
|
||||
|
||||
The Ecaz & Moritani rulebook calls Homeworlds, Nexus Cards, New Treachery
|
||||
Cards, and Discovery Tokens variants that may be added together or separately,
|
||||
regardless of the factions selected. Choosing Ecaz or Moritani therefore does
|
||||
not add Recruits, Reinforcements, or Harass & Withdraw. Those three cards remain
|
||||
an independent, unimplemented variant. [GF9 Ecaz & Moritani, printed
|
||||
pp. 4, 9, 11](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf#page=9)
|
||||
|
||||
The CHOAM & Richese rulebook says its Poison Tooth and Artillery Strike replace
|
||||
the versions from Ixians & Tleilaxu, or are added when that expansion is absent.
|
||||
Its two updated Karama cards replace the two core cards. These are physical
|
||||
replacements, so they do not duplicate identities or increase the combined Ix
|
||||
deck. [GF9 CHOAM & Richese, printed
|
||||
p. 4](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf#page=4)
|
||||
|
||||
| Selected expansion sets | Ordinary Treachery Deck |
|
||||
| --- | ---: |
|
||||
| Ecaz & Moritani only | 33 |
|
||||
| CHOAM & Richese only | 35 |
|
||||
| Ixians & Tleilaxu only | 47 |
|
||||
| Ixians & Tleilaxu plus either or both later sets | 47 |
|
||||
| CHOAM & Richese plus Ecaz & Moritani, without Ix | 35 |
|
||||
|
||||
Richese's ten technology cards form a separate faction cache and do not count
|
||||
toward the ordinary deck or the Richese hand at setup. When Richese is seated,
|
||||
the setup creates that cache and its three concealed No-Field tokens with
|
||||
values zero, three, and five. [GF9 CHOAM & Richese, printed
|
||||
pp. 5–6](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf#page=5)
|
||||
|
||||
The ordinary Spice Deck gains Sandtrout when Ixians & Tleilaxu is selected.
|
||||
The seven Ecaz & Moritani Spice Cards belong to the separate Discovery Tokens
|
||||
variant and are absent from this profile.
|
||||
|
||||
## Connected setup
|
||||
|
||||
`initializeFactionExpansionsGameForAudit` accepts an already constructed Basic
|
||||
or Advanced lobby, two through six distinct ready players, and any roster whose
|
||||
faction sets are among the selected nonempty expansion list. It uses the shared
|
||||
prediction, traitor, force-placement, starting-card, and first-Storm pipeline.
|
||||
It rejects an already dealt or modified lobby and does not add optional modules.
|
||||
The ordinary browser lobby still creates Basic games only; Advanced profile
|
||||
setup is currently an offline development/test path rather than a visible mode
|
||||
selection.
|
||||
|
||||
Faction-specific setup uses the existing physical inventories and decisions:
|
||||
|
||||
- Ixians place three cyborgs and three suboids in the unplaced Hidden Mobile
|
||||
Stronghold, then make their private starting-card choice. Tleilaxu receives
|
||||
three Face Dancers after the other factions finish traitor selection.
|
||||
- Advanced CHOAM receives the additional Auditor disc before traitors are
|
||||
dealt. Richese receives its separate cache and concealed No-Field inventory.
|
||||
- Ecaz receives its Ecaz Ambassador plus five random non-Ecaz Ambassadors and
|
||||
allocates six starting forces among the three printed sectors of Imperial
|
||||
Basin, leaving fourteen in reserve. The printed constraint specifies the
|
||||
territory and total, without a one-stack restriction or a separate setup
|
||||
sector procedure. The prototype therefore accepts any nonnegative allocation
|
||||
totaling six within sectors 9, 10, and 11. This is the implementation's
|
||||
literal territory-level reading, not a separate publisher ruling about
|
||||
sector allocation; a targeted publisher/designer search found no more
|
||||
specific clarification.
|
||||
- Moritani receives six concealed Terror tokens and places six forces in an
|
||||
unoccupied territory after every other faction completes setup, leaving
|
||||
fourteen in reserve. Ecaz or Moritani also creates the one shared Duke Vidal
|
||||
disc. Moritani-last is explicit on printed p. 5. The Ecaz setup on printed
|
||||
p. 7 states its location and inventory but no relative priority. The
|
||||
Fremen–Ecaz–Advanced-Bene-Gesserit order is therefore engine sequencing
|
||||
needed to resolve those choices, not a claimed publisher priority among the
|
||||
three factions.
|
||||
|
||||
These setup values come from the faction sections of the
|
||||
[GF9 Ecaz & Moritani rulebook, printed pp. 5 and
|
||||
7](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf#page=5)
|
||||
and the [GF9 CHOAM & Richese rulebook, printed pp. 5 and
|
||||
7](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf#page=5).
|
||||
The earlier [Ix prototype](IX_PROTOTYPE.md) records its setup and 47-card
|
||||
inventory evidence.
|
||||
|
||||
## Start a local faction prototype
|
||||
|
||||
Create a new local Basic room with the intended expansion sets and factions,
|
||||
then mark every seat ready. Preserve the room cookie and current lobby version.
|
||||
Start only that fresh lobby with:
|
||||
|
||||
```sh
|
||||
node --import tsx tools/start-prototype.ts \
|
||||
--profile factions \
|
||||
--db PATH_TO_LOCAL_D1_SQLITE \
|
||||
--room EIGHT_CHARACTER_CODE \
|
||||
--version CURRENT_LOBBY_VERSION \
|
||||
--out /private/new-prototype-checkpoint
|
||||
```
|
||||
|
||||
The output directory must be new and outside the repository. The tool first
|
||||
backs up all saved rooms, then uses an atomic state-and-version comparison to
|
||||
write the selected lobby. It preserves sessions, recovery records, other rooms,
|
||||
and the public start gate. Refresh the existing invitation to continue through
|
||||
the ordinary private setup controls. Reusing the command on the started game is
|
||||
rejected.
|
||||
|
||||
## Known incomplete play
|
||||
|
||||
This entry point makes the faction setup real and reviewable; it does not mark
|
||||
the expansion rules complete. The three optional Ecaz Treachery Cards have
|
||||
metadata and source guides but no runtime. Richese's cache and auction lifecycle
|
||||
are present, but cache custody does not establish complete runtime or combined
|
||||
interaction coverage for every technology card. Ecaz, Moritani, CHOAM, Richese,
|
||||
Ixian, and Tleilaxu powers retain narrower supported and pending contracts in
|
||||
the current in-game reference and their feature documents. In particular, see
|
||||
the [Ecaz Treachery audit](ECAZ_TREACHERY_RULES.md),
|
||||
[Ecaz Ambassadors](ECAZ_AMBASSADORS_RULES.md),
|
||||
[Moritani Terror](MORITANI_TERROR_RULES.md),
|
||||
[Richese implementation plan](RICHESE_IMPLEMENTATION_PLAN.md),
|
||||
[CHOAM remaining rules](CHOAM_REMAINING_RULES.md), and
|
||||
[Ix prototype](IX_PROTOTYPE.md). Those records and later feature-specific
|
||||
runtime documents govern over older inventory snapshots. When an earlier
|
||||
source/readiness audit says that a component or action was absent, the later
|
||||
dated runtime document overrides that historical statement only for the slice
|
||||
it actually connects.
|
||||
|
||||
Advanced Ixian Technology on a Richese cache or Black Market lot has a specific
|
||||
combined-source gap: the rules do not assign the substituted card's seller,
|
||||
sale income, or zero-bid destination. The development profile therefore does
|
||||
not implement that exchange. A valid Richese cache or Black Market declaration
|
||||
first creates a saved `ixRicheseTechnology` decision for Ixians, before the lot
|
||||
opens, bidding begins, or Atreides receives an inspection. The only supported
|
||||
answer is an explicit `decline: true` with the exact current event. It then
|
||||
opens the originally declared lot without using Technology, moving either card,
|
||||
or marking the once-per-turn power used. Technology remains available for a
|
||||
later Richese or supported normal lot. The saved declaration binds the round,
|
||||
turn, source, card custody, auction method and any direction or claim; public
|
||||
views do not expose a concealed Black Market card through this pause.
|
||||
|
||||
This continuation prevents the known combined-game deadlock while preserving
|
||||
the unresolved exchange. It is not a ruling that Technology cannot affect a
|
||||
Richese lot, and it does not establish substitute ownership, sale income or
|
||||
zero-bid custody. See the [Richese auction contract](RICHESE_AUCTION_RULES.md).
|
||||
|
||||
No Homeworld, Nexus, Leader Skill, Discovery, Tech Token, or Advanced
|
||||
Stronghold Card state is admitted by this profile. Selecting expansion factions
|
||||
does not imply any of those modules, and this checkpoint supplies no evidence
|
||||
for their combinations.
|
||||
|
||||
`tests/expansion-factions-prototype.test.ts` covers every nonempty expansion
|
||||
selection in Basic and Advanced at all four AI profiles, two-through-six-player
|
||||
rosters, private views, deck and component custody, JSON continuation, stale
|
||||
actions, and dirty lobby rejection. It includes a direct 2/2/2 Ecaz allocation,
|
||||
the Fremen–Ecaz–Advanced-Bene-Gesserit sequence, Moritani's final placement,
|
||||
and rejection of missing or forged placement state.
|
||||
|
||||
`tests/ecaz-setup-controls.test.tsx` checks the human allocation control and
|
||||
bot path. `tests/expansion-factions-recovery.test.ts` exercises the mixed
|
||||
six-faction setup through the migrated SQLite room API across reloads, plus
|
||||
optimistic concurrency, unrelated room/session preservation, and repeated-start
|
||||
rejection. The focused union reported 74 passing tests and typecheck passed;
|
||||
the final checkpoint report records the required broad checks. Browser setup
|
||||
and refresh restored the owned Ecaz allocation and private cards. This bounded setup evidence establishes a development path, not
|
||||
complete games with every printed effect or public mode acceptance.
|
||||
|
||||
## Integrated sample games and browser evidence
|
||||
|
||||
Six deterministic samples used genuine faction setup, all four AI levels,
|
||||
unchanged physical inventories and JSON continuations every 37 accepted actions.
|
||||
No pieces were staged or phases skipped in these samples.
|
||||
|
||||
| Profile | Accepted actions | JSON continuations | Result notes |
|
||||
| --- | ---: | ---: | --- |
|
||||
| CHOAM & Richese, Basic | 1,054 | 28 | Finished at turn ten with no rejected candidates. |
|
||||
| CHOAM & Richese, Advanced | 225 | 6 | Finished at turn two with no rejected candidates. |
|
||||
| Ecaz & Moritani, Basic | 91 | 2 | Finished at turn one after four guarded Ambassador candidates were rejected and legal alternatives were used. |
|
||||
| Ecaz & Moritani, Advanced | 523 | 14 | Finished at turn five after 32 guarded arrival candidates were rejected and legal alternatives were used. |
|
||||
| All three expansion sets, Basic | 476 | 12 | Finished at turn two with no rejected candidates. |
|
||||
| All three expansion sets, Advanced | 614 | 16 | Stopped at turn three on an existing CHOAM movement/Ambassador arrival guard. |
|
||||
|
||||
The first combined Advanced run stopped at action 70 on the old Ixian/Richese
|
||||
special-lot guard. With the decline continuation, the same seed declined three
|
||||
Richese lots and reached eleven ordinary Technology decisions before the separate
|
||||
arrival stop. This is evidence of the connected auction path, not a completed
|
||||
combined Advanced game. The current movement stop and rejected arrival candidates
|
||||
remain integration work; public modes stay gated.
|
||||
|
||||
An initial CHOAM Basic custody audit mistakenly counted the already sold current
|
||||
normal-auction card both in its winner's hand and in its sale receipt. Correcting
|
||||
that private harness alias accounting allowed the full sample to run. The first
|
||||
failure logs were retained; production card ownership was not changed to fit the
|
||||
harness.
|
||||
|
||||
Browser room `WEBF27AU` used genuine six-expansion-faction setup. The human Ecaz
|
||||
seat chose its private traitor, saw an incomplete four-force allocation rejected,
|
||||
submitted two forces in each Imperial Basin sector, and refreshed to fourteen
|
||||
reserves, twelve spice, its dealt Crysknife and unchanged traitor at opening Storm.
|
||||
Ixian private dealing and Moritani's final placement completed in the same game.
|
||||
|
||||
A separate fresh browser lobby `BMHNSASJ` was configured for Advanced by the local
|
||||
QA helper before genuine initialization. Thirty-seven accepted bot-selected
|
||||
setup and phase actions reached the Ixian cache-offer decision; no pieces were
|
||||
staged and no phases skipped. Refresh restored the human Ixian choice, clicking
|
||||
its explicit decline opened the unchanged Ornithopter Once Around lot, and another
|
||||
refresh retained the legal bid controls, private Harvester and traitor. The saved
|
||||
hand, spice, offered card, ordinary pool count and unused Technology all matched
|
||||
the pending-offer snapshot. This developer configuration does not add a public
|
||||
Advanced lobby selector.
|
||||
|
||||
The outage recovery audit preserved all 597 opening rooms and their seat/recovery
|
||||
records. A stale development-server module cache caused room requests to fail
|
||||
although the home page responded. A fresh 598-room backup preceded a necessary
|
||||
restart; all 598 rooms matched immediately afterward and the private QA seat
|
||||
restored. No database reset or recurring maintenance automation was used. Final
|
||||
room totals, required checks and source identity are recorded in the checkpoint
|
||||
commit and private reports under
|
||||
`/home/quintine/.local/share/dune/checkpoints/20260913-expansion-factions/`.
|
||||
@@ -1,5 +1,41 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 13 September 2026 — Expansion faction setup and saved Ixian auction decline
|
||||
|
||||
The [faction development profile](EXPANSION_FACTIONS_PROTOTYPE.md) connects
|
||||
all seven nonempty expansion selections to genuine Basic/Advanced setup and
|
||||
existing faction controls, AI and saved continuation. Ecaz now allocates six
|
||||
starting forces within Imperial Basin, keeping fourteen in reserve; Fremen,
|
||||
Advanced Bene Gesserit and Moritani placement ordering is preserved with its
|
||||
printed and inferred boundaries documented. The optional Ecaz Treachery variant
|
||||
stays separate, ordinary decks contain 33/35/47 cards, and Richese keeps its
|
||||
separate ten-card cache. Public starts remain gated.
|
||||
|
||||
Combined play exposed an existing Ixian Technology/Richese special-lot deadlock.
|
||||
A saved explicit per-lot decline now opens the original cache or Black Market lot
|
||||
without using Technology, changing its card custody or revealing a concealed
|
||||
card. Exact event, round, declaration and custody validation protects view,
|
||||
normalization and actions, including Gift/Truthtrance interruptions. Competing
|
||||
uses of the reserved offered card are rejected before creating responses.
|
||||
The actual exchange still needs its recorded replacement-custody interpretation.
|
||||
|
||||
Focused setup, controls, legal AI, private JSON/SQLite continuation and concurrent
|
||||
write checks pass, with independent review of rules, custody and persistence.
|
||||
Five of six genuine mixed-profile samples finish. Combined Advanced progresses
|
||||
past three special-lot declines to turn three, then stops on an existing CHOAM
|
||||
movement/Ambassador arrival guard. Guarded arrival candidates also occur in the
|
||||
Ecaz samples. These are explicit remaining integration limits, not full expansion
|
||||
acceptance. The detailed feature document retains exact sample metrics.
|
||||
|
||||
The browser verified genuine Ecaz traitor/force setup and refresh, then a separate
|
||||
Advanced development game's saved Ixian decline, unchanged offered card, legal
|
||||
bidding and private hand restoration. After the reported outage, all 597 opening
|
||||
games and original seat/recovery records matched the backup. A stale server module
|
||||
cache required a restart after a fresh 598-room backup; every room matched before
|
||||
QA resumed. Required broad checks, final preservation totals and source fingerprint
|
||||
are recorded in the checkpoint commit and private report. No database reset,
|
||||
recurring automation or publication was performed.
|
||||
|
||||
## 13 September 2026 — Diplomat base-defense copying prototype
|
||||
|
||||
[Diplomat](DIPLOMAT_DEFENSE.md) now optionally counts one committed Worthless as
|
||||
|
||||
@@ -149,3 +149,35 @@ Root’s global run passed 1,106 rules and 81 recovery tests, production build,
|
||||
Desktop QA confirmed all ten readable enlarged guides and working direct catalog topic links. Room `63NJ822S` completed first-position declaration, cache offer, Once Around self-purchase for 3 and automatic payment, leaving 17 spice, one card and two normal lots. A Silent bid of 4 remained private; fresh browser tab 23 restored two-of-three submitted status and the viewer’s own bid of 4. A final synthetic zero submission produced the storm-order tie winner Harkonnen, paid 4 and awarded its bonus, with Richese at 24 spice. Root records the exact screenshots and synthetic/manual distinction in `docs/VISUAL_PLAYTEST.md`.
|
||||
|
||||
Remaining boundaries are unchanged: cache-cancellation count, empty-cache arithmetic, seller-positive Black Market bidding, advanced Ixian Technology special-lot custody, remaining card effects and actual Juice of Sapho play. Full starts remain gated. The hand’s disabled-effect fix and pre-offer guard explanation are implemented. The final browser recheck in QA room63NJ822S version9 confirmed the printed category, disabled unsupported Play card control, visible reason and available inspector. This is bounded desktop/persistence evidence, not mobile QA, a full Richese game, every advanced interaction or durable hosted-worker certification.
|
||||
|
||||
|
||||
## 13 September: saved per-lot Technology decline
|
||||
|
||||
Genuine combined Advanced faction play exposed the previous pre-offer guard as
|
||||
a deadlock when Ixians retained their optional Technology use. A validated Richese
|
||||
cache or Black Market offer now creates a saved decision for Ixians before opening
|
||||
that lot. The development continuation supports an explicit **decline for this lot**;
|
||||
it does not implement a card exchange or adjudicate the pending seller, income or
|
||||
unsold-card questions described above.
|
||||
|
||||
The exact offered card stays in its original hand or cache. The pending receipt
|
||||
binds the current round, turn, offer terms, owner, independent event and physical
|
||||
custody. The public decision contains no card identity; the owner-facing control
|
||||
explains the unfinished exchange and uses the matching event. Declining opens the
|
||||
same lot once, preserves the normal pool count, and leaves `ixTechnologyTurn`
|
||||
unchanged. Ixians can still use Technology on a later normal lot or separately
|
||||
decline another Richese lot. All four AI profiles have this legal continuation.
|
||||
|
||||
This opt-out is the ordinary exercise of an optional ability, not a publisher
|
||||
prohibition on exchanging special lots. The pending offer is kept private until
|
||||
the normal lot-opening point; this saved staging order is an implementation
|
||||
boundary rather than a separate official timing clarification. Public starts and
|
||||
full combined compliance remain gated.
|
||||
|
||||
The focused engine and UI tests are
|
||||
`tests/ix-richese-technology.test.ts`,
|
||||
`tests/ix-richese-technology-controls.test.tsx`, and
|
||||
`tests/ix-richese-technology-recovery.test.ts`. Final checkpoint verification is
|
||||
recorded in the implementation log and source-bound private report. Historical
|
||||
absence claims about ordinary Richese technology cards above are superseded by
|
||||
their later runtime contracts, including [Juice of Sapho](JUICE_OF_SAPHO_RUNTIME.md).
|
||||
@@ -6,6 +6,8 @@ Updated 13 September 2026. This is the authoritative navigation index for existi
|
||||
|
||||
| Topic | Decision to preserve | Detailed authority and evidence |
|
||||
| --- | --- | --- |
|
||||
| Expansion-faction setup | Selecting Ecaz/Moritani factions does not select their independent three-card variant. Ordinary decks contain 33/35/47 cards; Richese's ten-card cache stays separate. Ecaz allocates six total forces within Imperial Basin sectors 9–11, retaining fourteen reserves. Flexible sector allocation is the literal printed territory constraint; Fremen→Ecaz→Advanced BG order is an implementation inference, while Moritani-last is printed. | [Source and profile contract](EXPANSION_FACTIONS_PROTOTYPE.md) |
|
||||
| Ixian Technology on Richese lots | Replacement-card ownership, income and unsold disposition remain unresolved. A saved explicit per-lot decline permits an unchanged offer to proceed and leaves Technology available later. This development continuation does not implement the exchange or settle its custody. | [Auction source boundary](RICHESE_AUCTION_RULES.md#13-september-saved-per-lot-technology-decline) |
|
||||
| Spice Banker battle spending | Secret own-spice commitment is separate from support; only the surviving selected disc gains strength. Core Battle Plan payment rules spend it on death/loss and waive it for a sole traitor-call winner. This payment composition is explicit; upper deferred-income custody remains pending. | [Source contract and prototype](SPICE_BANKER_RUNTIME.md) |
|
||||
| Smuggler shipping | Optional free companion is included in the actual total; apply Guild rounding to the reduced priced count. Ordinary Fremen reserves are on planet. The officially permitted owned No-Field plus a separate free force is now prototyped at the unchanged one-marker price. Legacy unstamped ordinary declarations keep their quoted full price. | [Ordinary contract](SMUGGLER_SHIPMENT.md), [No-Field combination](SMUGGLER_NO_FIELD.md) |
|
||||
| Sandmaster movement | One optional board spice per distinct entered territory on an explicit legal route; source-only repositioning earns none. Per-movement Hajr reset is a documented grammatical inference. Canceled moves earn nothing; multiple-pile collection remains guarded. | [Source and connected prototype](SANDMASTER_MOVEMENT.md) |
|
||||
|
||||
Reference in new issue
Block a user