Files
Dune/docs/RICHESE_AUCTION_RULES.md

39 KiB
Raw Permalink Blame History

Richese auction rules and integration contract

Audit: 2026-09-06. This document covers the complete core bidding pipeline: the compulsory cache lot, both alternative methods, advanced Black Market using all three methods, associated acquisition/payment effects, and the separate special Karama purchase. It is a source audit and implementation contract, not certification that Richese or a combined expansion mode is playable. Existing implementation-status gates remain in force.

Evidence and limits

  • R2: GF9 CHOAM & Richese rulebook, pp.4–6 and embedded FAQ pp.10–12. Publisher-indexed text was retrieved for the relevant auction and cancellation pages. Direct publisher PDF access returns 403 in this environment. Both older local files choam-primary.pdf and choam-publisher-audit.pdf are HTML errors.
  • A readable copy of the publisher-authored 12-page rulebook is now at /tmp/dune-rules/choam-lelekan-mirror.pdf, with extracted text alongside it. It was obtained from a retailer mirror. The document's relevant paragraphs agree with the publisher-indexed excerpts. This is a mirror of primary content, not independent retailer rules commentary. Page 5 extraction interleaves a pictured Distrans card with the faction text; the card's restrictions must not be misread as bidding restrictions.
  • B19: GF9 base rulebook, pp.8,12,14: ordinary auctions, hand limits, allied funding, and special Karama.
  • I20: GF9 Ixian & Tleilaxu rulebook, pp.8–9,12: pool preparation, Technology, allied replacement, cancellation. Local ix-official-mirror.txt supplies the full paragraphs; publisher-indexed text corroborates the relevant cancellation table.
  • F20: GF9 November 2020 FAQ, pp.3,6–7: once-per-game special powers and ordinary acquisition/alliance clarifications. It predates Richese and supplies no Richese-specific exception.

The September publisher/designer searches did not resolve every edge case below. The user's 1 October amendment now authorizes the supplied revision, including its identified unofficial rulings; see the source amendment. Its own remaining ambiguity is distinguished from the explicit provisional policies below. Other community/retailer interpretations are not automatically promoted to authority.

Provisional paid Black Market retention — 18 October 2026

The authorized supplied revision's physical p36, printed p34, Richese A/C, gives the shared Emperor/Bank payment rule and Black Market auction methods, but no explicit answer to positive seller participation, self-payment or sale counting. The older official-only uncertainty below remains a source uncertainty. Under the user's 14 October choose-recommended direction, the prototype now explicitly adopts paid retention, not a publisher ruling:

  • A positive seller win retains the same already-held card in place. Pay the actual original price to Emperor, or Bank if absent, including only original authorized ally escrow. No self-refund, duplicate card or new acquisition.
  • Count that completed positive payment as one Black Market sale. Zero/unbid retention is still free and unsold. Once Around keeps its original all-other-pass shortcut rather than inventing another seller opportunity.
  • An already-held full hand needs no extra slot. Shared current-hand legality governs initial eligibility, automatic zero/pass, positive bid, committed reservation and terminal quote. Other full bidders and cache acquisition retain their existing limits.
  • Reuse native Emperor Karama, eligible Bureaucrat, actual Banker legs and original declaration/pool continuation. Retention supplies neither a cache acquisition nor seller-income invoice to the separate Richese veto/Emperor free-seller sources. Existing Nexus cards are not spent on a fabricated gain.

Before repair, an original silent seller bid1 with five real spice rejected unchanged. A genuinely earned full hand then exposed two additional generic assumptions: automatic zero submission and a reserved extra-slot invariant. Both now use the same rule, not special-cased saved data. A real original no-Emperor Nexus table also exposed an acquisition-only source call; it now pays1 to Bank, retains its original card/Nexus state and resumes declaration.

The full-hand producer buys an original cache card1 and two ordinary cards1 each during turn1; a real bribe4 waits for Mentat, leaving Richese6 and four held cards. Actual all14 paid5 retention leaves one spice and the identical four IDs/order; bare no-Skills paid1 leaves five. All four legal seller policies may still submit zero, leaving free unsold retention and no price/count change.

Three actual390px controls exercise: full Silent paid5 with native allowance and Bank2 (Emperor13→16, same4/4 hand, one normal lot); Normal5+3 after a real competing1, original income cancellation (Emperor stays11, both costs/escrow paid once, same two cards, no Bureaucrat use); and Once Around final8 after another player's1, full original income (Emperor11→19, same two cards, no use). The notice is visibly provisional before positive bidding. Card stock45, native starting armies, private sealed projection and original continuation remain. No browser errors/overflow. Temporary routes/memory are removed and released204, with no stored-room mutation or server restart.

Meaningful native regressions live in tests/richese-self-purchase-rounds.test.ts and tests/richese-self-purchase-silent.test.ts, with original producers in tests/fixture-richese-self-purchase.ts and tests/fixture-richese-self-purchase-full-hand.ts. Old exclusion, error-wording, strategy-choice and fixture-copy pins are removed, not re-pinned. This remains local prototype evidence, not full Richese/mode, deployed or final assurance.

Authorized Advanced contribution recipients — 4 October 2026

The authorized supplied Advanced source, Richese Bidding, explicitly sends Richese's contribution to an ally's payment to Emperor or the Spice Bank. The private layout extraction records this at lines1463–1476. The publisher-authored R2 p5 instead says Richese collects other buyers' payment and pays Emperor/bank when buying itself, without the extra contributor clause. This recipient cutover is Advanced only; Basic is unchanged.

An Advanced buyer paying4 and receiving4 funded Richese aid buys the original eight-spice cache/Black Market lot once. Richese receives only the buyer's4; Richese's own4 goes to Emperor, even when Emperor is the buyer, or to the Bank when Emperor is absent. The original scalar contribution binds the paid lot; later income settlement does not reconstruct current alliances or charge already-debited donor escrow again. Emperor cancellation sends only its4 to the Bank, not the unrelated buyer-to-Richese share, and does not replay credit or physical card transfer. The existing whole-bank recipient override remains.

Mandatory normal Banker income in fresh supported ordinary Skills setups counts only actual Bank-routed original payer legs. It never treats allowed Emperor income or ordinary seller credit as Bank payments, pools different payers to four, or spends its new front-shield grant before actual Mentat. Advanced Bureaucrat portions now follow the actual separate seller and donor receipts, retaining Basic and the original native counter/card continuation. Positive Black Market self-bidding, exhausted-cache counts and other special-lot boundaries remain; the supplied source excludes Richese lots from Ixian Technology.

Printed rules, by checkpoint

The source anchor is R2 pp.4–6,10–12: ten cache cards stay outside the hand; one revealed cache lot replaces a normal lot and is declared first or last before Ixian preparation. It uses Once Around or Silent. Other buyers pay Richese; Richese pays Emperor/bank. Discards enter normal discard. Ordinary Karama acquisition is barred. Once Around gives each other faction one ascending bid/pass in a chosen direction, then Richese's final opportunity. Silent reveals eligible bidders' simultaneous offers, including zero, with storm-order ties. A zero result permits cache keep/remove. Advanced Black Market offers one concealed hand card before Declaration, permits all three methods, allows Atreides inspection and unverified sales claims, pays Richese, and shrinks the normal pool only after a sale; no bid means retain. Direct-cache purchases cannot use Ixian allied replacement; Black Market purchases can, even for Richese-family cards. Harkonnen bonus applies to both. Juice of Sapho works in Once Around. Cancellation prevents cache auction at round start or Black Market sale. The special power buys a privately chosen cache card for three spice. R2

Detailed implementation consequences, distinguishing derivation from additional printed facts:

Checkpoint Consequence for implementation
Setup Instantiate ten distinct physical cards in a separate cache, not ten extra hand cards or ordinary deck entries. The component agent owns the verified face inventory. Preserve card origin after transfers.
Ordinary round Base Declaration precedes dealing and ordinary bidding. Freeze normal lot cardinality at the declaration checkpoint; do not recalculate it after every purchase. Dynamic hand capacity still controls who can bid on each lot.
Black Market prelude Resolve the optional advanced intervention before recording Declaration hand counts. Keep its result, sale flag and normal-method opener continuation. Absent an Ixian Technology exchange, unsold and canceled cards remain the seller's exact physical card; they are not discarded or sent to deck. An exchanged unsold lot has the unresolved custody boundary below.
Cache position Commit first/last at the required early checkpoint. A last-position card is revealed only after normal bidding finishes; do not publish its identity early through state, logs, action metadata or AI explanations. The text does not explicitly require privately committing its identity or method with the position declaration.
First cache lot Resolve it before Ixian pool inspection. Base Declaration-before-bidding supports freezing declared counts before this first auction; this is ordinary-rule composition, not an explicit additional FAQ ordering statement.
Normal pool Begin from the declaration's eligible-player count and track reductions independently. The cache reduction and a completed Black Market sale are separate reasons. Ixians inspect one extra card and remove one, retaining the existing top/bottom choice and shuffle behavior. Do not count the inspection extra as an auction lot.
Ordinary all-pass Return the remaining ordinary pool to the deck as existing rules require. A scheduled last cache lot still needs an explicit continuation decision: the mandatory expansion lot is not a normal leftover deck card. Do not blindly call nextPhase.
Cache zero result Keep/remove is an actual choice when legal. Under the base absolute hand limit, a full-hand Richese cannot gain another card; removal is the legal result by ordinary-rule composition. Removing means permanent out-of-game custody, not ordinary discard.
Black Market zero result Its specific retain requirement overrides the generic methods' cache keep/remove result. Without an intervening Technology exchange, retention preserves the exact seller card without a new acquisition or Harkonnen bonus; exchanged-lot custody remains unresolved.
Payments Losing bids are not purchases. Settle only the winning amount, with the previously authorized own/ally split. An unrelated player's private spice is not available funding. The ordinary ally-payment rule applies during bidding; no Richese exception removes it.
Special purchase This is the once-per-game advanced faction power, distinct from free ordinary Karama acquisition. Keep selected cache identity private; validate exact custody, capacity and three-spice payment before costs. Do not infer a hand-limit exemption or permit buying a card already reserved for a different sale.
Allied gift The separate alliance ability transfers a Richese-family card already in the donor's hand, not a cache card. Recipient capacity and exact donor custody remain necessary. A later Black Market sale does not erase the card's printed family.

Ordinary bidding starts at the eligible storm-order opener, requires positive opening bids and increases, and rotates the next lot's opener from the prior opener rather than the winner. All-full hands cannot bid. Allied funding permits a bid larger than the bidder's own spice; the number of held cards is public during bidding, while spice holdings remain private. B19 pp.8,12

For Black Market with ordinary bidding, preserve the ordinary opener progression into subsequent ordinary lots. Alternative methods return normal bidding to storm order. The once-around traversal uses physical seated-circle order, not g.order (which begins from the storm); reversing direction must also work with unoccupied circles. Silent ties use g.order. A Juice of Sapho modification needs its own validated final-order transformation, not an unrelated reset of the ordinary opener. The component audit read its physical face: it permits intervention during the applicable phase and does not impose a before-first-bid restriction. Together with the Once Around FAQ, moving an eligible unacted bidder after Richese is supported composition; it does not authorize repeating a completed bid. The pure helper exposes moveRicheseBidderLast for that order change, while the engine must validate the actual card and its timing.

Explicit source boundaries

These questions cannot be silently represented as settled FAQ compliance:

  1. Canceled compulsory lot and an exhausted cache — resolved 7 October 2026 by user ruling; connected 8 October. When no cache lot can run, the ordinary pool retains its full declared count without the cache deduction. Printed Karama can now cancel the declared cache opportunity in Basic or Advanced; Advanced Bene Gesserit conversion retains its separate response. Cancellation leaves every cached card in place and skips both first- and last-position offers. The before-cache count is frozen at declaration, so spending a cancellation card cannot recount live hand capacity, and the independent completed-Black-Market deduction remains. Five direct engine smoke scenarios cover first/last, printed/BG cancellation and countered conversion; no broad suite was run for this change.
  2. Black Market count wording. Its specific rule conditions reduction on a sale. The embedded Ixian answer refers more broadly to cards put up for auction. The more specific sale condition supports no reduction for an unsold/canceled Black Market offer. Record that composition explicitly; do not decrement merely on declaration.
  3. Self-purchase of a Black Market card — source unresolved, provisional policy connected 18 October. The generic methods include Richese, while Black Market already has an owned seller card and no explicit self-payment/count answer. Under choose-recommended, the visibly labelled prototype inherits native Emperor/Bank payment for positive paid retention, keeps the same card without another slot, and counts one sale. Zero/unbid remains unsold. This is the recorded product interpretation above, not a retrieved ruling or free self-refund.
  4. Ixian advanced Technology on special lots — superseded 8 October. The authorized supplied revision, physical p34 Ixians D, expressly excludes Richese auctions. Cache/Black Market lots therefore open directly and retain the Technology use for ordinary lots. The older publisher-only uncertainty below is historical evidence, not a current replacement-custody permission.
  5. Economic interruptions during Silent. Printed simultaneous physical offers do not specify asynchronous network reservation or what to do when a later effect changes funds. Internal reservations are necessary to reproduce simultaneous commitment, but a policy allowing players to revise already revealed information or silently reducing bids would be an extra rule. Use immutable hidden submissions and prevent double-spending without exposing reserved amounts.
  6. Separate Richese income cancellation. The R2 table specifies preventing the sale/auction. It does not expressly create an additional post-sale cancel-income window. Reusing Emperor's income response for a sale paid to Richese would invent that window and potentially misroute money. General Karama composition may require further review; do not assume two independent chances from one listed power.
  7. Mandatory last lot after a normal all-pass ending. Mandatory cache auction plus its last-position FAQ supports running it after the ordinary pool ends. This is a defensible composition, not a directly answered all-pass example. Store this boundary explicitly and test it.

Technology is once per bidding round, occurs before the next card's bidding/Atreides inspection, and swaps an exact hand card for the offered card. The Ixian ally ability is a different post-purchase discard/draw transaction. I20 pp.8–9

Bounded official-only follow-up: self-bidding and Technology

A second targeted check on 2026-09-06 searched GF9/GF9Games publisher pages and the publisher's BattlefrontGroup site for Richese Black Market self-purchase, self-payment, advanced Technology swaps, replacement and errata. It again retrieved R2's embedded FAQ, not a new specific ruling. The publisher Dune landing page could not be opened in this environment. No community answer, retailer interpretation, tournament amendment or designer inference was promoted to GF9 authority. This bounded negative result does not establish that an unindexed official ruling cannot exist.

Exact question Official evidence retrieved Result
May the Black Market seller place a positive bid on its own card? R2 p.6 permits alternative methods; p.5 includes Richese's final opportunity for the cache auction. No explicit Black Market seller-participation answer was retrieved. Unresolved. Generic method reuse supports a possible reading, not a specific ruling.
If Richese wins its own Black Market lot, who receives the spice? R2 p.5 expressly assigns cache self-purchase to Emperor/bank. Its p.6 Black Market paragraph directs payments to Richese without stating a self-payment exception. Unresolved. Neither copying the cache exception nor a free self-payment loop is verified.
Does retention count as a sale? R2 p.6 distinguishes no-spice retention from a sale that reduces the ordinary pool. A zero-bid retained card is not a completed sale under that text. A positive seller self-bid's classification is unresolved; do not conflate the two scenarios.
May advanced Ixian Technology exchange a direct cache or Black Market lot? I20 p.9 gives a general pre-bid swap; R2 p.10 specifically addresses an Ixian ally's post-purchase discard/draw. No specific inclusion or exclusion of Technology on these lots was retrieved. The ally FAQ cannot be cited as a Technology prohibition.
Who owns the replacement card when an exchanged Black Market lot is unsold? The swap rule transfers the offered card to Ixians and substitutes a hand card; R2's no-bid rule predates no additional explicit exchange-resolution instruction in the retrieved text. Unresolved. Neither assigning the substitute to Richese nor rewinding the completed swap is explicitly answered. An engine must not duplicate either physical card.

The all-zero Black Market case is thus source-backed; positive self-purchase and Technology's special-lot custody are not newly resolved by this follow-up. The same distinction applies to an exchanged cache lot's zero-bid disposition: normal cache keep/remove rules exist, but treating the substituted card as that cache lot's new property is a composition, not a separately verified FAQ. R2 pp.5–6,10, I20 p.9

No new authoritative permission or prohibition was found for these interactions. Keep the policy boundary explicit while implementing independently verified bidding behavior; do not describe a provisional resolution as official compliance.

Concrete engine contract

This section records the original software proposal. The implemented checkpoint below supersedes its proposed field names where different; it does not resolve the listed source ambiguities.

Use a persisted phase wrapper separate from the existing normal Game.auction. Suggested checkpoints are blackMarketOffer, blackMarketLot, declaration, cachePosition, cacheFirst, normalPreparation, normalLots, cacheLast, and complete. Store declaration eligibility/count, each justified pool reduction, cache position, Black Market outcome and normal opener cursor. A checkpoint is consumed once; JSON reload must not repeat RNG, collection, pool preparation or sale effects.

Game.richeseAuction should discriminate origin: 'cache' | 'blackMarket' and method: 'normal' | 'onceAround' | 'silent'. Store seller, lot ID, exact physical card ID, face visibility, pending declaration/cancellation, eligible participants, order/cursor or sealed offers, winning bid/funding, zero disposition, and a typed resume checkpoint. Physical identity and transaction origin must remain separate. The wrapper owns the pending lot; no second mutable copy of its card can appear in hand, cache or ordinary pool. A reserved hand card must still count against hand capacity until the sale transfers custody.

For ordinary-method Black Market, adapt existing ascending bid validation without letting ordinary all-pass cleanup touch a seller's card. Once Around needs one immutable turn per eligible participant plus Richese's final opportunity; an ordinary repeated-bid loop is incorrect. Silent needs a server-private submission map with each submitter's amount and authorized funding split. Public projection shows submitted status only until atomic revelation; the submitter alone sees their offer. Do not expose other players' maximum bids or pledge balances. Capture the applicable tie order for the lot.

Introduce a sale adapter rather than constructing a fake ordinary auction:

  • currentSale: winner, card, amount, declared funding, origin, recipient policy, Ix-ally eligibility, and typed continuation.
  • Cache purchase by another player routes money to seller; self-purchase uses the ordinary Emperor/bank rule. Black Market uses its own recipient policy, with the self-purchase ambiguity isolated.
  • Payment occurs once before existing post-purchase decisions. Ixian ally replacement applies by sale origin, then the applicable income handling and Harkonnen bonus continue once. Do not award bonuses on an unsold retained card.
  • Preserve current ordinary Emperor self-buy behavior, cancellation, Harkonnen capacity checks and no-choice automatic completion. A Richese lot must never reach ordinary Karama free-purchase, auction-payment conversion or Karama-backed unaffordable bidding paths.
  • Cancellation stores no untrusted arbitrary action. Revalidate the intended card and continuation, preserve concealed identities, and let the shared automatic-response machinery close windows with no eligible cancellation choice.

Audit cross-cutting spend paths: pledgeAid, uncommittedSpice, payWithAlly, karamaSpendingBlock, CHOAM cash-in, Harkonnen exchanges, special purchases, allied gifts and Truthtrance promises currently assume ordinary auction/battle commitments. Adding only a second auction object will otherwise allow a reserved bid's spice or a seller's card to be spent elsewhere.

Current relevant functions are setAuction, offerAuctionTechnology, offerAuctionPeek, auctionNext, settleAuction, continueAuctionSale, auctionBonus, nextAuction, recoverAuctionPayment, and the pendingIxAlly response/decision paths in game/engine.ts. Their direct g.auction! assumptions need the sale adapter or an explicit ordinary-only guard. nextPhase must be reached only after the wrapper has consumed the last required checkpoint.

Required evidence before enabling the faction

Test both cache positions and both cache methods; all three Black Market methods; changing/full hand eligibility; all-zero, exhausted/short ordinary deck and ordinary early termination; both direction choices with sparse circles; Silent equal bids, zero bids and simultaneous submissions; own/allied payment conservation; exact custody across Karama cancellation and restart; private last-lot/Black Market/sealed-offer projections; Harkonnen and Ixian origin distinctions; all four AI profiles using only their views; duplicate submissions and stale CAS at each suspended checkpoint. Explicitly test special purchases and gifts against reserved cards. Any unresolved combined-rule behavior stays identified and gated, rather than being described as complete rules compliance.

The source audit itself changed no runtime code or availability gates. The first bounded implementation added the isolated pure mechanism in game/richese-auction.ts and 13 focused tests in tests/richese-auction.test.ts; all 13 passed, with TypeScript and targeted lint passing. Card custody, phase integration, payment and unresolved source policies remain the engine integration owner’s responsibility. No live room or availability gate was changed by this subtask.

Initial integrated development checkpoint — 6 September 2026 (superseded by final verification below)

The current wrapper is Game.richeseBidding, with blackMarketOffer, declaration, cacheOffer, lot, normal and complete stages. Event IDs distinguish owner decisions and auction submissions. Game.richeseAuction carries the separate lot; richeseFunding tracks its own/ally commitments, and currentAuctionSale preserves origin and continuation through the existing post-sale windows. No selectable mode gate was opened.

Implemented within the reviewed boundary:

  • Basic cache first/last declaration and both alternative methods; normal-pool preparation/continuation, including reaching the last cache lot after ordinary bidding finishes. Cache identity remains owner-private before its offer.
  • Advanced Black Market normal, Once Around and Silent offers; other-buyer sales; zero retention and cancellation without a fictitious sale reduction. Seller-positive bids are rejected pending the self-purchase ruling. Public claims are distinct from the hidden face.
  • Exact own/authorized ally payment, reserved funding, eligibility and event validation; private sealed submissions followed by joint revelation. Cache self-payment routes to Emperor/bank; other-buyer proceeds route to Richese.
  • Atreides Black Market inspection and applicable income/Harkonnen continuation; Ixian ally replacement follows transaction origin rather than the printed card family. Advanced Ixian Technology on special lots is separately guarded pending replacement-custody interpretation.
  • Owner-only declaration/offer/disposition controls and entitled card inspectors, plus funded bid/pass or zero submission. Existing interruption/decision UI priority is preserved.
  • Four AI profiles use their own projections for cache choices and all offered bidding methods. They currently decline optional Black Market at the prelude, and never submit a positive seller Black Market bid. This is a bounded policy, not a complete strategic evaluation.

Still blocked or incomplete: compulsory-cache cancellation count, exhausted-cache arithmetic, positive Black Market self-purchase, special-lot Technology custody, all ordinary Richese card-effect actions, actual Juice of Sapho play, and the full combined expansion rules. The pure Sapho reorder helper does not expose a playable card action. Special Karama acquisition and allied card gifting are not certified by this auction checkpoint.

Evidence Passing named scenarios at checkpoint Scope
tests/richese-engine.test.ts 10 Engine pipeline, custody, origins and explicit guards
tests/richese-auction-bots.test.ts 8 Four profiles, finite bidding continuation, legality, secrecy and funding
tests/richese-auction.test.ts 18 Pure auction ordering, submissions, outcomes and reorder helper
tests/richese-funding.test.ts 9 Own/ally split and commitment lifecycle
tests/richese-cards.test.ts 6 Exact ten-card inventory and component contracts
tests/richese-card-presentation.test.ts 5 Printed categories, complete original guide, privacy and gating
tests/choam-richese-leaders.test.ts 5 Source-verified ordinary rosters and stable identities

Independent engine/continuation review, room-recovery verification and integrated browser checks are still running. Their pending status is intentional; this checkpoint does not certify a full Richese game, hosted liveness, every combined interaction or all card behaviors. The in-game five-facet checklist links these actual test files and keeps implementation, controls, AI, documentation and verification independently Partial.

Runtime inheritance and reservation clarification

The physical Richese Karama has effect: 'karama' and inherits the existing generic handler if acquired in a development fixture. Earlier statements that all ten effects were wholly disabled should be read as the original inventory checkpoint, not the current runtime state. Remaining card-effect integration and full interaction verification are incomplete; actual Juice of Sapho card play remains inert and live expansion starts stay gated.

The engine now rejects playing a Black Market card reserved for sale and prevents a donor reducing pledged funding during unfinished Silent bidding. The latter avoids probing private sealed commitments through success/error limits. Independent review, recovery and browser verification remain pending until their checks finish. Internal rule navigation now tracks query changes and controlled topic-open state, preserving the destination after filter resets; browser confirmation of that fix is pending.

Final bounded review and verification

Independent engine/continuation review and persisted-room checks are now complete for the tested boundary. Full-hand bidders automatically pass or submit zero, a full-hand owner automatically removes its unbid cache card, and an all-full normal pool does not discard unseen draws. These recovery paths preserve card custody.

Passing evidence Named scenarios
tests/richese-engine.test.ts 13
tests/richese-engine-review.test.ts 11
tests/richese-auction-recovery.test.ts 7
tests/richese-auction-bots.test.ts 8
tests/richese-auction.test.ts + tests/richese-auction-review.test.ts 13 + 5 = 18
tests/richese-funding.test.ts 9
tests/richese-cards.test.ts 6
tests/richese-card-presentation.test.ts 6
tests/choam-richese-leaders.test.ts 5

Root’s global run passed 1,106 rules and 81 recovery tests, production build, lint and typecheck. All 120 Basic AI calibration games completed with unchanged outcomes. That calibration did not exercise complete Richese games and does not certify full expansion compliance.

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 — superseded 8 October

Genuine combined Advanced faction play once exposed a pre-offer guard as a deadlock when Ixians retained their optional Technology use, so a temporary per-lot decline continuation was added. The authorized supplied UNOFFICIAL_Revised_Dune_Rulebook_v.2.3_web.pdf, physical p34, Ixians D, expressly excludes Richese auctions from Ixian Technology. That source resolves the recorded custody question by exclusion, so the whole per-lot offer, its pending receipt, its decision/control and its AI continuation were removed.

A Richese cache or Black Market lot now opens directly. ixTechnologyTurn and the once-per-round Technology use remain available for ordinary lots only. The obsolete decline scaffolding, components/ix-richese-technology.tsx and its three focused test files were deleted; tests/richese-engine-review.test.ts now asserts the direct lot opening. Historical absence claims about ordinary Richese technology cards above are superseded by their later runtime contracts, including Juice of Sapho.

Paid-retention frozen verification

The affected seventeen-file union151/151, focused full-hand1/1 and repaired old-exclusion1/1 pass, with parent-owned types/lint and app build. The former native exclusion assertion inside the Emperor source test is deleted; actual free-acquisition corruption boundaries remain. Seven meaningful native regressions cover the new methods/full-hand/bare/payment/source behavior. Existing build warnings remain. No recovery/whole-database/seat campaign or AI calibration/deployed acceptance is claimed.