151 lines
21 KiB
Markdown
151 lines
21 KiB
Markdown
# Richese acquisition, transfer and discard-search audit
|
||
|
||
Audit: 2026-09-06. Scope: the advanced special Karama purchase, Richese alliance hand gift, Distrans and Nullentropy Box. This is an implementation contract and source-boundary record, not a completed gameplay or expansion certification. The source audit initially changed no runtime; the bounded special-purchase integration checkpoint below records subsequent work.
|
||
|
||
## Primary evidence
|
||
|
||
- **R2**: [GF9 CHOAM & Richese rulebook](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf), p4 special Karama and discard secrecy; pp5–6 cache, disposal and alliance; pp10–11 Ixian/Harkonnen/Box FAQ; p12 Karama table. A readable publisher-authored mirror is `/tmp/dune-rules/choam-lelekan-mirror.pdf` and its `.txt`, obtained from the [retailer-hosted copy](https://lelekan.com.ua/files/rules/2082/pravila-nastilnoyi-gri-dyuna-kooan-ta-richez-dune-choam-amp-amp-richese-dopovnennya-angl-anglijskoyu-movoyu.0.pdf). SHA256: `b628cef05b167953c2f192c8acfdefea92aee8f5497eea779edacf7be25e6299`. Publisher-indexed paragraphs agree with the mirror. Direct GF9 downloads returned HTML errors; the older local `choam-primary.pdf` and `choam-publisher-audit.pdf` are not valid PDFs.
|
||
- **B19**: [GF9 base rulebook](https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf), p8 hand limits, p12 alliances, p14 special Karama, p19 Emperor income. Local `/tmp/dune-rules/base.pdf` and `.txt`.
|
||
- **I20**: [GF9 Ixian & Tleilaxu rulebook](https://www.gf9games.com/dunegame/wp-content/uploads/2020/09/IxianAndTleilaxuRulebook.pdf), p9 allied replacement, read in `/tmp/dune-rules/ix-official-mirror.txt`.
|
||
- **Physical faces**: the photographed publisher components linked from the [Tabletop Finder product gallery](https://www.tabletopfinder.eu/en/boardgame/32692/dune-choam-richese), [full photograph](https://cdn.anyfinder.eu/assets/QsUJtVktEC87xwK08oLlwnKyaozUWfuaLzG0LFEn67ENEEVgNrDGoITy3608Dqe7). Local `/tmp/dune-rules/choam-cards-gallery1.jpg`, SHA256 `9c1d3e65fa33489e7675055ed1fc932fefcb79f6053ee365ddee6737ae10b81f`. Distrans, Nullentropy Box and updated Karama were independently enlarged and visually read again for this audit. R2 p5 also depicts Distrans, p11 corroborates Box exclusion, and p4 identifies replacement Karama cards. The gallery's photographer/date/printing provenance is unverified; the evidence is the visible physical text, not third-party rules commentary.
|
||
|
||
Targeted searches found discussion titles concerning full hands and alliance cancellation, but no retrievable designer answer resolving these cases. The November 2020 FAQ predates this expansion and was not freshly retrievable here. Do not cite inaccessible forum answers, tournament amendments, or community compilations as a verified resolution. In particular, a community rule adding a bidding exclusion to the Richese alliance gift is not the R2 wording.
|
||
|
||
## 1. Advanced special Karama purchase
|
||
|
||
### Richese Nexus pre-cost response — 25 October 2026
|
||
|
||
The supported Richese Betrayal preview now offers neutral acknowledgements
|
||
after preparing the exact private purchase, before its activation costs. Under
|
||
the explicitly provisional selected ordering, a veto discards only the intended
|
||
cache card: Karama, three spice and special once-use remain unspent, including
|
||
an intended joint Emperor Nexus. All-pass executes the original paid/joint
|
||
intent and separate income once, preserving an already pending parent response.
|
||
The nominal-price prompt grants no selected-face or private-funding inspection.
|
||
Ordinary Karama immunity alone does not establish Nexus immunity.
|
||
[Source, selected policy and evidence](NEXUS_RICHESE_RULES.md#karama-acquisition-betrayal--25-october-2026).
|
||
|
||
### Emperor Nexus joint purchase composition — 14 October 2026
|
||
|
||
The original source explicitly calls this a purchase; the printed Emperor
|
||
Nexus panel has no Bidding qualifier. Selected visibly provisional composition
|
||
adds a private joint option for an actual unallied holder with Emperor absent:
|
||
spend the original Karama plus Nexus at purchase commit, prove and retain three
|
||
own uncommitted spice, acquire one exact native cache card and set original
|
||
once-use. No new public automatic pause, bank payment/reimbursement, Hark ally
|
||
bonus, Ixian replacement or fake auction. Ordinary Pay3 is unchanged.
|
||
Original full-hand/final-cache policy, reservations, timing and enclosing
|
||
continuation remain. Version-four receipt binds original activation/acquisition,
|
||
phase/price and retained wallet; preparation/projecting spends neither card.
|
||
Native Kull with Richese remains outside existing producer admission, not
|
||
fabricated to claim combined coverage.
|
||
|
||
Affected13-file union112/112, types/lint/build and twelve native API profiles
|
||
pass. Four actual390px surfaces prove normal retain5→5, full-hand4→4/spice3,
|
||
final-cache1→0/turn9 and ordinary paid5→2 with an irrelevant Nexus retained.
|
||
Both real costs and original once-use commit once; depleted cache proceeds to
|
||
ordinary Bidding. No overflow/errors or saved/deployed rooms touched.
|
||
[Canonical composition and evidence](NEXUS_EMPEROR_RULES.md#recommended-joint-richese-special-purchase--14-october-2026).
|
||
|
||
### Full-hand/final-cache follow-up — 8 October 2026
|
||
|
||
The 7 October exhausted-cache ruling also permits spending special Karama
|
||
to acquire the final cached card. The subsequent native Bidding opening
|
||
uses its ordinary pool without an unavailable compulsory cache lot.
|
||
The currently offered/reserved auction card remains ineligible.
|
||
|
||
**Provisional full-hand policy:** spend the physically held Karama and
|
||
acquire one cache card in the same action, leaving the final hand within
|
||
its current limit. The executor already discards the activation before
|
||
placing the acquisition. This is a visibly qualified first version,
|
||
not a numerical user ruling or publisher timing clarification. An already
|
||
over-limit hand is not eligible. Funds, commitments, once-use, private
|
||
identity and the separate Emperor-income response retain their safeguards.
|
||
|
||
Three native before/after smokes cover last-card, full-hand and combined
|
||
edges. Easy submits the actual purchase, one Karama leaves, three spice
|
||
settle to Emperor when allowed, and the combined result is hand4/cache0.
|
||
Both exhausted-cache positions enter native ordinary Bidding afterward.
|
||
In Chromium, live owned controls show the provisional notice and reach
|
||
hand4/cache0/spice7; the independent income acknowledgement then produces
|
||
Emperor13 without another purchase. No broad suite or deployed proof.
|
||
|
||
|
||
**Directly supported.** Richese's once-per-game special Karama use spends a Karama and three spice to choose one card secretly from its own remaining cache. The new power is advanced-only; ordinary Karama acquisition cannot buy cache lots or Black Market lots. The special rule is its own exception and is not an auction. The selected card enters Richese's hand, not an ally's. The played Karama is discarded normally. The updated Karama face expressly prevents using Karama to cancel another special Karama power. This does not waive a separate prohibition on playing a Karama, such as an applicable CHOAM effect.
|
||
|
||
**Normal composition, with provenance.** The special paragraph does not name the payment recipient. B19 p19 sends payments by another faction for a Treachery Card to Emperor instead of the bank, and this special power explicitly purchases a card. Apply that general rule: three to Emperor when present and eligible, otherwise bank. This is a general-rule composition, not a Richese-specific FAQ answer. Do not silently treat it as the bank-only activation fee explicitly printed on Box. Any distinct Emperor-income cancellation must affect that income only, never cancel or repeat the special purchase.
|
||
|
||
Richese itself is the buyer. Harkonnen's extra-card-on-purchase power therefore does not trigger, including when Harkonnen is the ally. An ensuing hand gift is not a Harkonnen purchase either. Ixian allied replacement requires a bidding purchase and R2 expressly excludes direct-cache acquisitions; this purchase neither creates an auction nor changes its acquisition origin. Do not trigger Ixian allied replacement. Ordinary bidding aid does not automatically authorize spending an ally's funds on this separate action; use Richese's spendable spice unless a separately verified payment permission applies.
|
||
|
||
**Timing remains unresolved:** the retrieved paragraphs do not specify full-hand acquisition/discard precedence. The current visibly provisional exchange policy above supersedes the earlier spare-slot guard; it is not a publisher answer. The final-cache boundary is resolved by the 7 October exhausted-cache ruling. Reserved auction custody remains binding.
|
||
|
||
**Atomic contract.** Validate advanced Richese ownership, unused special power, exact owned Karama, exact unreserved cached identity, funds, capacity policy and timing before paying or consuming either card. Persist a normalized intent if an independent response is required. Apply the purchase, discard and once-per-game flag once; resume the original phase/auction checkpoint without rebuilding pools. Project the selected face only to the entitled owner; other players do not receive the cache list or selected identity through pending intent, validation errors or logs. Cache/hand counts may update without naming the acquired face.
|
||
|
||
## 2. Richese alliance gift
|
||
|
||
**Directly supported.** R2 p6 permits Richese to give its ally a Richese-family Treachery Card already in Richese's hand when the recipient has capacity. Cache cards are ineligible. A base/Ix card held by Richese is not made a Richese-family card by ownership. Giving transfers custody without discarding, purchasing, collecting payment or drawing a Harkonnen bonus. The timing says any time; it has no printed Distrans-style bidding exclusion.
|
||
|
||
The updated physical Karama explicitly includes alliance abilities among cancellable faction powers. Consequently a declared gift has a cancellation opportunity under the general card rule. R2 p12 lists auction/No-Field/Black Market cases but does not expressly repeal alliance cancellation or explain the gift's response ordering. Use a separate gift intent and preserve its exact card/recipient across a counter window; on cancellation leave that card with Richese. The played cancelling Karama has its normal disposal. Do not silently reselect a gift after responses.
|
||
|
||
**Recipient choice.** The printed gift has no accept/refuse step. Do not invent a mandatory recipient acknowledgement or permission dialog. A recipient who can legally block an alliance power may have the ordinary Karama response choice; that is different from a free veto. Revalidate recipient capacity and reciprocal alliance before settlement. If those can change during an allowed interruption, preserve the pending operation and resolve that case explicitly rather than losing a card or exceeding the cap.
|
||
|
||
**Timing boundary.** Between ordinary actions, a supported gift can be offered during Bidding as well as other phases. During an active lot it can affect capacity, later bidder eligibility and existing commitments. During another response it could supply a Karama to a would-be blocker. These compositions require a response stack and stable auction reservations; “any time” is not permission to overwrite a pending decision. While a Truthtrance question is awaiting its answer, preserve the existing answer-first overlay rather than mutate the queried hand. Gifts must also respect committed battle cards, sale reservations and enforceable Truthtrance promises. These are explicit continuation/implementation guards, not a newly discovered general no-gifts rule. Already revealed plans cannot gain or replace a played card through a hand transfer.
|
||
|
||
**Privacy.** Donor and recipient need the exact transferred face. Other players need the public use/cancellation event and appropriate counts, not an automatic card reveal. A secret transfer's pending projection must not leak the face to countering players. No ordinary discard entry is created.
|
||
|
||
## 3. Distrans
|
||
|
||
**Directly supported by the face.** Its owner gives another player one Treachery Card from the owner's hand, provided the other player's hand is not full. Any other faction can receive it, without requiring an alliance. The effect has no printed spice fee. Distrans is discarded after use; the gifted card transfers without being discarded. The printed exception is “other than during a bid.” The effect is a card effect, not itself a faction/alliance power that generic Karama cancels. No recipient accept/refuse step is printed.
|
||
|
||
**Selected provisional span — 26 October 2026.** No retrieved primary answer defines whether “a bid” means the complete auction of one card or only an individual bid declaration. Treating the whole Bidding phase as forbidden is broader than the face. Under the 14 October recommended-policy authority, an untouched ordinary lot now permits use before its first bid or pass, with its dealt pool and cycle intact. Active bids and unpaid special lots, including Silent submissions, remain guarded; paid-sale use keeps its existing separate allowance. [Current timing and live hand-capacity contract](RICHESE_DISTRANS_ENGINE_AUDIT.md#untouched-ordinary-lot--26-october-2026). Never use a transfer between Silent submissions to probe hidden commitments or invalidate fixed eligibility without a settlement policy.
|
||
|
||
Distrans itself as the gifted card is not resolved by the face's give-then-discard instruction. Do not put the same physical card in both the recipient's hand and discard; reject that target as unsupported pending clarification. Other reserved/committed-card and answer-first constraints are the same continuation concerns as the alliance gift. A successful ordinary transfer consumes exactly the chosen separate card plus Distrans from the donor's hand, adds the chosen card to the recipient, and puts only Distrans in normal discard. This produces a new discard event relevant to future Semuta integration.
|
||
|
||
## 4. Nullentropy Box
|
||
|
||
**8 October runtime amendment:** Nullentropy Box supports a visibly
|
||
provisional full-hand atomic exchange in Basic and Advanced, preserving
|
||
the final limit and discarding the used Box last. Intermediate capacity is
|
||
not adjudicated. [Current Box contract](NULLENTROPY_BOX_ENGINE_AUDIT.md).
|
||
|
||
**Exact printed sequence, in original prose:**
|
||
|
||
1. Pay two spice to the bank.
|
||
2. Privately examine the Treachery discard pile and select a card other than any Nullentropy Box to add to the user's hand.
|
||
3. Shuffle the remaining discard pile and return it face up.
|
||
4. Discard the used Box on top of that pile.
|
||
|
||
R2 p4 supplies the private-search exception and p11 confirms that a Box cannot retrieve a Box. This searches discards, never the deck; no fallback deck draw is authorized. The fee goes to the bank, not Emperor: this is an explicit card activation payment, not a Treachery purchase. No Harkonnen purchase bonus or Ixian purchase replacement follows. Ordinary Karama does not cancel the card effect itself.
|
||
|
||
**Capacity and empty search remain material gaps.** The literal sequence adds a retrieved card before disposing of Box, whereas the base cap is continuous. No retrieved primary clarification decides a full-hand activation. Requiring a pre-existing free slot is a conservative unsupported-case boundary, not proof that a net-neutral exchange is officially disallowed. An empty pile or a pile containing only Boxes provides no legal selection; the sources do not say whether the user may deliberately pay and discard for no card. Reject that case atomically rather than invent a deck draw or silently waste the effect. Do not expose whether particular hidden discard faces exist through targeted guesses before paying for search; only expose the minimum action-availability information needed under the chosen policy.
|
||
|
||
**Private, resumable search contract.** A begin action validates and pays once, reserves the played Box and creates an event-bound search decision. Only that player receives eligible discard faces. A choose action names an eligible physical ID, verifies the same search event/custody, transfers that card, shuffles the remainder once with server randomness, and places Box last/on top. Persist the selected result/order and ordinary room version so refresh or retry never charges again, chooses a different card, or rerolls the shuffle. Other actions that could mutate discard custody must be paused or explicitly sequenced; the decision must not browse a stale arbitrary snapshot. Search permission ends on completion; no public discard browser or opponent/AI projection receives the list. Do not log the selected face publicly. The final top Box can be public without exposing the shuffled remainder.
|
||
|
||
Semuta's response to the final Box discard, multiple discard triggers, deck recycling during the search, battle/Truthtrance interruptions and future duplicate Box inventories need separate continuation tests or guards. The returned face-up pile is not a grant to search it: the specific R2 secrecy clarification remains in force.
|
||
|
||
## Implementation and verification checklist
|
||
|
||
- **Engine:** distinct purchase, alliance transfer, card transfer and paid search intents; strict physical custody; no auction count changes from gifts/search; independent Emperor income versus special-power immunity; explicit unsupported timing/capacity guards.
|
||
- **Player controls:** exact eligible cache/hand/recipient choices and costs; gift recipient capacity; separate Karama response; no invented acceptance acknowledgement; paid Box search showing only authorized faces; stable event-bound reconnect state. Explanations should distinguish a development guard from a game rule.
|
||
- **AI:** consume only the owner's projected options; never inspect opponents' hands or the unsearched discard pile; make one valid search/transfer choice, preserve reservations and do not loop on guarded timing. Test all four profiles.
|
||
- **Documentation:** keep this source boundary and the card guides aligned when each path is activated. These cards' acquisition does not make their other effects functional. Selectable Richese/combined expansion starts remain gated.
|
||
- **Verification:** exact conservation and payments; full/empty/reserved/stale rejection leaves state unchanged; once-per-game use and reload; Emperor present/absent and independent income reaction; Hark ally receives no purchase bonus; Ix ally gets no cache replacement; gift counter cancellation and private identity; no invented recipient veto; Distrans lot/response/Truth guards; Box one fee, eligible-only private projection, one shuffle, all-Box exclusion and final top card. Validate saved games and every viewer, then inspect browser controls. This audit itself adds no runtime test-pass claim.
|
||
|
||
## Bounded special-purchase integration checkpoint
|
||
|
||
SpecialKaramaIntent has a Richese branch and separate Emperor income. The owner-only projection supplies legal cache choices, spendable Karamas, availability and payee. Full-hand exchange and final-cache acquisition are connected above. Gift, Distrans and Box remain separate effects with their own current contracts.
|
||
|
||
`components/richese-special-karama.tsx` is integrated beside the private hand's other faction tools. It has separate activation/cache selectors and enlarged inspectors, a three-spice/once-per-game explanation, payment recipient and authoritative unavailable reason. It sends the exact activating and acquired physical IDs. There is no acknowledgement step or public cache projection. `game/reference.ts` adds `richese-acquisition` with all five checklist facets and source-boundary explanations.
|
||
|
||
The bot policy consumes the same private projection only after current response/decision/Truthtrance priority. With the other nine effects unfinished, it optionally acquires only the canonical usable Richese Karama. Easy/Medium/Hard/Brutal require respectively 6/7/8/8 available own spice before this optional purchase; the authoritative projection still validates actual spendable funds. This is a conservative development policy, not a claim of optimal strategy.
|
||
|
||
Four named scenarios in `tests/richese-acquisition-bots.test.ts` pass across all four profiles: actual engine acquisition and finite income continuation, persisted once-only state, blocked/low-budget/full/basic/used cases, strict identity and projected-information choice, and response/decision/Truthtrance priority. Ten reference tests, full typecheck and targeted lint also pass. Independent engine review, browser purchase controls, mobile and complete Richese games remain unverified at this checkpoint.
|
||
|
||
## Integrated purchase checkpoint
|
||
|
||
The normalized-intent validator/executor checks canonical cache custody, unused Advanced Richese power, spendable held Karama and three uncommitted own spice. An offered cache card stays reserved. Full-hand exchange uses the provisional final-capacity policy; final-cache purchase follows the resolved exhausted-cache rule.
|
||
|
||
The completed purchase discards the activating Karama, moves the selected physical card to the hand and consumes the once-per-game power atomically. Its identity is absent from public response state and logs. An independent Emperor-income response preserves the exact parent response, decision and pending Bene Gesserit conversion; payment goes to Emperor or the bank after that response, without an auction bonus or Ixian replacement. Restored continuations never replay the acquisition.
|
||
|
||
**Historical initial checkpoint:** eight engine, nine review, four AI and two persisted concurrency/restart scenarios plus QPNV5XJJ desktop purchase/restoration established the earlier bounded flow. Those dated results do not verify today's capacity/exhaustion changes. Current full-hand/final-cache behavior and separate gift/Distrans/Box contracts supersede the old absence claims; full Richese certification remains open.
|