Prototype CHOAM Nexus Collection trade and inventory Discoveries
An unallied player holding CHOAM Nexus while CHOAM is absent can now discard one Worthless card during Spice Collection for two bank spice. The server spends both physical cards once, exposes only private legal card choices, and persists an already-paid discard receipt. Human controls and all four AI profiles share the action. The after-victory inspection alternative remains missing; normal unfinished modes and publication stay gated. Independent review caught and fixed a queued Grumman Collection lock mismatch. Focused tests cover Basic/Advanced, actual card custody, private controls, all AI profiles, stale and wrong-mode rejection, Truthtrance and Grumman locks, JSON corruption/replay, competing production SQLite writes and private seat restoration. A separate bounded acquisition helper recorded all seven Discovery Spice Cards, eight tokens and exact physical card placements from publisher-authored sources. Discovery runtime remains missing. Validation: types, lint, 4,217 offline tests, production build and 40 HTTP tests passed. Durations: check 139298 ms; build 6617 ms; HTTP 24329 ms. Source fingerprint dfdaaf8bafe69acd31c9d0afc13f7a0d070da43deb544f091e95fe840b399493; private report under ~/.local/share/dune/checkpoints/20260913-choam-nexus-trade/verification/report.json. Browser reference search, Prototyped label and related Collection link checked. All 95 opening saved rooms unchanged; 30 HTTP test rooms added, 125 total. No server restart or database reset. Efficiency counter: 59,982,405 at batch start; 60,581,959 after broad verification, delta 599,554 aggregate tokens before final preservation/Git/usage checks. One newly playable function plus the acquired Discovery inventory; this is not full CHOAM or Nexus compliance.
This commit is contained in:
1 parent
5a76ae0410
commit
4af6e08b3a
18 files changed
+663
-3
No files matched your search
@@ -4,6 +4,8 @@ Updated 13 September 2026. This is the short navigation dashboard; detailed evid
|
||||
|
||||
## Evidence and source of truth
|
||||
|
||||
- Ix prototype checkpoint `5a76ae0`: types, lint, **4,211 offline tests**, build and **40 HTTP tests** passed. Genuine Basic/Advanced setup and two seeded complete simulations were exercised; a short browser game finished with private hand restoration. All 64 opening saved rooms were preserved; 31 QA rooms were added. This is bounded prototype evidence, not complete Ix compliance.
|
||||
|
||||
- [Rules implementation checklist](../game/reference.ts): `RULE_TOPICS`, topic `implementation-checklist`, and each feature's implementation, controls, AI, documentation and verification entries. Coverage is per stated boundary, not an implicit whole-game certificate.
|
||||
- [Latest verified gameplay checkpoint](IMPLEMENTATION_STATUS.md): Truthtrance hand inventory, 13 September 2026 (`7454456`): types, lint, **4,200 offline tests**, production build and **40 HTTP tests** passed, with a phone/browser refresh journey and preserved saved games. These are recorded results, not checks rerun for this dashboard.
|
||||
- Latest verification checkpoint `4a0b1ee`: genuine Advanced full-plan interaction tests; types, lint and **4,205 offline tests** passed. Private inspection restored after restart, with desktop/phone checks and all 64 saved games unchanged. No runtime change; prior build/HTTP evidence applies.
|
||||
@@ -48,8 +50,11 @@ Likewise, the [Truthtrance readiness audit](TRUTHTRANCE_NONBATTLE_READINESS_2026
|
||||
The first connected batch is the [Ixians & Tleilaxu prototype](IX_PROTOTYPE.md):
|
||||
genuine setup, both expansion factions, full Ix deck and Sandtrout, shared human/AI
|
||||
controls and saved continuation. The checklist now distinguishes its Prototyped
|
||||
development stage from Partial rules coverage. Discoveries remain missing; their
|
||||
seven spice cards and eight token faces need a verified inventory and adapters.
|
||||
development stage from Partial rules coverage. The next connected action is the [CHOAM Nexus Collection trade](NEXUS_CHOAM_SECRET_ALLY.md),
|
||||
with private controls, all four AI profiles and a saved payment/discard continuation.
|
||||
Its after-victory inspection remains missing. [Discovery components](DISCOVERY_COMPONENTS.md)
|
||||
now records all seven spice cards, eight tokens and exact card placements;
|
||||
Discovery runtime and controls remain missing.
|
||||
|
||||
The user changed the development order on 13 September: get working prototypes
|
||||
of all remaining functions into the game, then use integration and play to find
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
# Discovery components
|
||||
|
||||
This is a source-bound acquisition record for the *Ecaz & Moritani* Discovery
|
||||
variant. It records identities and values needed by an implementation; it does
|
||||
not reproduce card prose or artwork.
|
||||
|
||||
## Sources and method
|
||||
|
||||
- **EM rules:** Gale Force Nine's publisher-authored *Ecaz & Moritani*
|
||||
rulebook, [retailer-hosted PDF mirror](https://gamers-hq.de/media/pdf/0f/7a/86/Dune_EcazMoritani_Rulebook_EN.pdf).
|
||||
Page 4 establishes seven Spice Cards and eight Discovery tokens. Pages 12–13
|
||||
establish the common card procedure, Great Maker behavior, the two token
|
||||
types, all eight token names and their effects. The
|
||||
[publisher URL](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf)
|
||||
returned HTTP 403 during this acquisition pass.
|
||||
- **Printed card faces:** the clear English
|
||||
[BoardGameGeek component scan](https://boardgamegeek.com/image/9022457/dune-ecaz-and-moritani)
|
||||
([image metadata](https://api.geekdo.com/api/images/9022457),
|
||||
[original-resolution image](https://cf.geekdo-images.com/I9pgb8CJWnRp32GzKwyrug__original/img/tqGpry-Bh3D7ZYSZ3W60CaE6PCo=/0x0/filters:format(png)/pic9022457.png))
|
||||
shows all six printed Discovery territory cards with © 2022 Legendary
|
||||
markings. This is a scan of publisher components hosted by a community user,
|
||||
not a fan rules implementation.
|
||||
- **Sector indexing:** territory names and token types are printed as text on
|
||||
the card faces. Numeric sectors below are visual transcriptions of each
|
||||
highlighted card wedge, checked against the GF9 board image on the original
|
||||
designers' [Dune core page](https://futurepastimes.com/dune-board-game)
|
||||
([board image](https://images.squarespace-cdn.com/content/v1/5627edd5e4b0e42d8c948a6a/1658421042495-X385VWK17DPR8B5SX6E8/Dune%2BCore%2BGallery_0004_Background.jpg)).
|
||||
Numbering starts with the printed Storm Start wedge in Meridian as sector 1
|
||||
and continues counterclockwise. No repository or fan implementation supplied
|
||||
these identities.
|
||||
|
||||
## Seven Discovery Spice Cards
|
||||
|
||||
Every territory card places six spice in its spice destination. The special
|
||||
blow removes any spice and forces already there, then places a random
|
||||
face-down token of the printed type at the separate token destination.
|
||||
|
||||
| Printed card | Spice destination | Discovery token destination | Token type |
|
||||
| --- | --- | --- | --- |
|
||||
| Hagga Basin | Hagga Basin, sector 12 | Gara Kulon, sector 8 | Hiereg |
|
||||
| Rock Outcroppings | Rock Outcroppings, sector 13 | Meridian, sector 1 | Hiereg |
|
||||
| Sihaya Ridge | Sihaya Ridge, sector 9 | Cielago East, sector 3 | Hiereg |
|
||||
| Wind Pass North | Wind Pass North, sector 17 | Plastic Basin, sector 13 | Smuggler |
|
||||
| Funeral Plain | Funeral Plain, sector 15 | Pasty Mesa, sector 7 | Smuggler |
|
||||
| Old Gap | Old Gap, sector 10 | False Wall West, sector 17 | Smuggler |
|
||||
| Great Maker | No territory or sector | No Discovery token | Special sandworm |
|
||||
|
||||
Great Maker resolves the usual sandworm removal in the last spice territory,
|
||||
then players vote in storm order on whether a Nexus occurs; a strict majority
|
||||
is required. Afterward, Fremen may ride using any number of reserve forces,
|
||||
subject to normal storm and occupancy restrictions. A Karama that kills Fremen
|
||||
forces in the affected territory does not cancel that reserve ride.
|
||||
|
||||
## Eight Discovery tokens
|
||||
|
||||
The first five entries are persistent location tokens. A revealed location is
|
||||
a territory nested inside its surrounding territory, admits at most two
|
||||
factions, can be shipped into at stronghold cost, and protects occupants from
|
||||
storm and sandworm effects. The last three resolve or become a carried benefit
|
||||
and are removed as stated.
|
||||
|
||||
| Printed token | Type | Verified functional identity |
|
||||
| --- | --- | --- |
|
||||
| Jacurutu Sietch | Hiereg location | Counts as a normal stronghold; its battle winner receives one spice per opposing undialed force sent to the Tanks. |
|
||||
| Cistern | Hiereg location | An occupant gains two spice during Spice Collection. |
|
||||
| Ecological Testing Station | Hiereg location | An occupant may alter storm movement by one in either direction during the Storm phase; Weather Control is unaffected. |
|
||||
| Shrine | Hiereg location | An occupant may use Truthtrance as Karama or Karama as Truthtrance. |
|
||||
| Orgiz Processing Station | Smuggler location | During Spice Collection, an occupant takes one spice from every spice blow that is collected. |
|
||||
| Treachery Card Stash | Smuggler one-shot | Gain one Treachery Card; at the hand limit, gain first and then discard any card. Remove the token. |
|
||||
| Spice Stash | Smuggler one-shot | Gain seven spice from the bank, then remove the token. |
|
||||
| Ornithopter | Smuggler carried/one-shot | Take the token; on a later turn it gives movement three for one movement action, then is removed. |
|
||||
|
||||
Face-down Hiereg tokens may be inspected privately by Fremen at any time;
|
||||
face-down Smuggler tokens have the equivalent Spacing Guild privilege. Other
|
||||
factions with non-advisor forces at the token may inspect it during Spice
|
||||
Collection and choose whether to reveal it.
|
||||
|
||||
## Explicit limits
|
||||
|
||||
- All 15 requested identities (seven cards and eight tokens), the six card
|
||||
placements, and the Hiereg/Smuggler classifications are resolved.
|
||||
- The territory names are directly legible text. The sector numbers are a
|
||||
visual reading of the printed highlighted wedges because the card sentence
|
||||
names the destination territory but does not print its sector number.
|
||||
- No second independent physical scan of the Great Maker face or the eight
|
||||
token faces was found in this bounded pass. Their identities and behavior are
|
||||
verified from the publisher-authored rulebook only.
|
||||
- Card backs, token backs beyond the two type backs pictured in the rulebook,
|
||||
dimensions, exact color, and artwork are not acquired or certified here.
|
||||
@@ -82,3 +82,12 @@ leave the removed recurring automation absent. After `32791ed`, usage was 3% use
|
||||
Use [current status](CURRENT_STATUS.md), [rule decisions](RULE_DECISIONS.md) and
|
||||
[verification workflow](VERIFICATION_WORKFLOW.md) as short entry points. Historical
|
||||
logs remain references, not mandatory full-context input on every turn.
|
||||
|
||||
The next rapid prototype batch begins at aggregate counter 59,982,405 and adds
|
||||
one missing action: CHOAM Nexus Secret Ally Collection trade. A workhorse helper
|
||||
acquires the complete Discovery inventory for the following batch; a reused
|
||||
independent reviewer checks this trade and its queued-Collection lock. The owner
|
||||
connects runtime, private controls, AI and SQLite recovery. The battle inspection
|
||||
alternative stays explicitly missing instead of holding the independent trade
|
||||
for an exhaustive battle-cleanup design. Final checks, counter endpoint and
|
||||
checkpoint scope are recorded in the commit.
|
||||
@@ -1,5 +1,22 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 13 September 2026 — CHOAM Nexus Collection prototype and Discovery inventory
|
||||
|
||||
Adds the missing absent-CHOAM Secret Ally Collection trade through the engine,
|
||||
private physical-card selector/inspector, all four AI profiles and JSON discard
|
||||
continuation. Both cards are spent for exactly two bank spice; stale actions,
|
||||
competing SQL writes and saved replay cannot duplicate the payment. The separate
|
||||
battle inspection remains missing. See [contract and scope](NEXUS_CHOAM_SECRET_ALLY.md).
|
||||
Independent review found a queued Grumman Collection lock mismatch; the server
|
||||
and private offer now share that automatic-continuation block.
|
||||
|
||||
A bounded acquisition helper resolved [all Discovery component identities and
|
||||
card placements](DISCOVERY_COMPONENTS.md). No Discovery runtime is claimed.
|
||||
Focused trade tests pass; checkpoint-wide check/build/HTTP results are recorded
|
||||
in the verified commit and private source-bound report. Existing mode and
|
||||
publication gates remain closed. No server restart or saved-game reset is needed.
|
||||
|
||||
|
||||
## 13 September 2026 — Genuine Ix expansion prototype
|
||||
|
||||
Connected Basic/Advanced Ix setup with both expansion factions, the complete
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# CHOAM Nexus Secret Ally prototype
|
||||
|
||||
13 September 2026. The Spice Collection trade is **Prototyped** in the development
|
||||
Nexus module. Its battle inspection alternative is still missing. This checkpoint
|
||||
does not enable normal Nexus starts, certify the full card family, or open a
|
||||
publication gate.
|
||||
|
||||
## Source and behavior
|
||||
|
||||
The printed CHOAM card's Secret Ally panel allows a Worthless card to be discarded
|
||||
during Spice Collection for two spice, or a random unused opposing hand card to
|
||||
be inspected after a victory. The [common source contract](NEXUS_CARD_RULES.md)
|
||||
records the [photographed publisher component](https://boardgamegeek.com/image/7767032/dune-ecaz-and-moritani)
|
||||
and publisher lifecycle rules. [Native Cunning](NEXUS_CHOAM_RULES.md) has different
|
||||
costs and effects and is not reused as a substitute for this panel.
|
||||
|
||||
Only an unallied holder with CHOAM absent may use this trade, in Basic or Advanced.
|
||||
The server quotes the holder's actual Worthless cards. The player selects one;
|
||||
its printed identity and physical discard custody remain intact. Both that card
|
||||
and the CHOAM Nexus card are spent, and two spice are paid from the bank exactly
|
||||
once. No native faction identity, market sale, Cunning conversion, or Auditor
|
||||
payment is introduced. No blanket Nexus Karama immunity is inferred: this trade
|
||||
uses the absent-faction panel rather than a native CHOAM advantage.
|
||||
|
||||
Collection readiness remains optional; continuing without trading keeps the
|
||||
cards. The action cannot interrupt a decision, Truthtrance, committed discard,
|
||||
exchange, or queued automatic Collection choice. It may still be used while its
|
||||
owner is ready if Collection has not ended. Exhaustive simultaneous Collection
|
||||
combinations remain part of the later integration pass.
|
||||
|
||||
## Connected paths
|
||||
|
||||
- `game/nexus-choam-trade.ts` provides the private quote and saved receipt checks.
|
||||
`game/engine.ts` applies payment, Nexus/card custody and the semantic fresh
|
||||
discard continuation. The completed history remains private server evidence.
|
||||
- `game/nexus-choam-trade-options.ts` supplies the shared human/AI action.
|
||||
`components/nexus-choam-trade.tsx` provides a card picker, inspector, costs and
|
||||
availability reasons at the table. All four AI profiles use eligible trades.
|
||||
- The existing JSON room state stores the receipt. No database migration or
|
||||
server restart is required. Recovery validates the already-paid outcome and
|
||||
retires the discard; it never credits spice a second time.
|
||||
|
||||
## Focused evidence and remaining scope
|
||||
|
||||
Run `npm test -- nexus-choam-trade`. Focused cases cover Basic/Advanced payment,
|
||||
physical custody, all four AI profiles, private rendered controls, wrong-mode and
|
||||
stale action rejection, Truthtrance locking, damaged saved receipts and JSON
|
||||
continuation. Production SQLite tests exercise competing trades, seat restoration,
|
||||
replay rejection and an already-paid discard resume.
|
||||
|
||||
The after-victory inspection still needs an original battle receipt, exclusion of
|
||||
the opponent's used cards, a private one-card sample and composition with winner
|
||||
cleanup. Complete Nexus games, broader Homeworld interactions, strategic choice
|
||||
between the two Secret Ally uses and visual acceptance of that full family remain
|
||||
unfinished. Prototype evidence is deliberately narrower than complete compliance.
|
||||
@@ -14,6 +14,7 @@ Updated 13 September 2026. This is the authoritative navigation index for existi
|
||||
| Nexus lifecycle | Twelve physical cards, phase draw/replacement and alliance forfeiture; native Cunning, absent-faction Secret Ally and Betrayal have separate effects. No blanket Karama immunity. | [Common source contract](NEXUS_CARD_RULES.md), [lifecycle runtime](NEXUS_CARD_RUNTIME.md) |
|
||||
| Nexus faction effects | Preserve physical custody, original faction identity and durable effect receipts; use each printed family instead of borrowing another faction's rules by analogy. | [Atreides](NEXUS_ATREIDES_RULES.md), [Harkonnen](NEXUS_HARKONNEN_RULES.md), [BG](NEXUS_BENE_GESSERIT_RULES.md), [Emperor](NEXUS_EMPEROR_RULES.md), [Fremen](NEXUS_FREMEN_RULES.md), [Guild](NEXUS_GUILD_RULES.md) |
|
||||
| Expansion Nexus families | Source audit coverage does not imply every panel is playable; consult later runtime records in the status log. | [Ixian Cunning](NEXUS_IXIAN_CUNNING_RULES.md), [Ixian replacement](NEXUS_IXIAN_REPLACEMENT_RULES.md), [Tleilaxu](NEXUS_TLEILAXU_RULES.md), [CHOAM](NEXUS_CHOAM_RULES.md), [Richese](NEXUS_RICHESE_RULES.md), [Ecaz](NEXUS_ECAZ_RULES.md), [Moritani](NEXUS_MORITANI_RULES.md) |
|
||||
| CHOAM Secret Ally | Absent-faction Collection trade spends one actual Worthless card and the Nexus for two bank spice. It is separate from native Cunning and Auditor; the battle inspection alternative remains missing. | [Prototype contract](NEXUS_CHOAM_SECRET_ALLY.md) |
|
||||
| Guild Secret Ally | One explicit Guild-priced ordinary shipment; borrowed prices/routes preserve native identity. Free Fremen reinforcement remains a separate choice. | [Route contract](NEXUS_GUILD_SECRET_ALLY_RULES.md), [verified runtime](NEXUS_GUILD_SECRET_ALLY_RUNTIME.md) |
|
||||
| Homeworld custody and mobility | Physical home/visitor groups, population thresholds, tariffs and transport permissions retain distinct sources; Homeworld immunity is not universal immunity. | [Homeworld rules](HOMEWORLD_RULES.md), [benefits](HOMEWORLD_BENEFITS_RULES.md), [mobility](HOMEWORLD_MOBILITY_RULES.md), [invasion](HOMEWORLD_INVASION_RULES.md), [Guild transport](GUILD_HOMEWORLD_TRANSPORT_RULES.md) |
|
||||
| Homeworld effects | Keep original payment/revival/placement identities and qualification observations; observations alone do not choose an occupied-benefit owner. | [Payments](HOMEWORLD_PAYMENT_INCOME_RULES.md), [card economy](HOMEWORLD_CARD_ECONOMY_RULES.md), [Collection](HOMEWORLD_COLLECTION_RULES.md), [revival deployment](HOMEWORLD_REVIVAL_DEPLOYMENT_RULES.md), [victory reinforcement](HOMEWORLD_VICTORY_REINFORCEMENT_RULES.md), [replacement](HOMEWORLD_REPLACEMENT_RULES.md), [Tupile](HOMEWORLD_TUPILE_INTELLIGENCE_RULES.md) |
|
||||
|
||||
Reference in new issue
Block a user