feat: support provisional paid Black Market retention

This commit is contained in:
Quintine committed 2026-10-18 03:21:44 +11:00
1 parent 7891517a9b
commit e70cd48172
21 files changed
+862 -151

No files matched your search

+13
View File
@@ -561,3 +561,16 @@ Types and build pass; final lint and focused donor1/1 pass after removing one
unnecessary fixture iterator copy. The eighteen-file413/413 consumer union
preceded that lint-only change. Existing build warnings remain. No recovery,
whole-database, seat-restoration or calibration campaign was added.
## Original paid Black Market retention — 18 October 2026
[Provisional paid seller retention](RICHESE_AUCTION_RULES.md#provisional-paid-black-market-retention--18-october-2026)
keeps the already-held card and pays Emperor/Bank. This is one whole native
invoice, not the other-buyer Richese portion described above: own5/ally3 pays
Emperor8; allowed Bureaucrat sends Bank2 and Emperor6 without trainer income
or a self-refund. Native Karama still precedes that reaction and retains the
full original payer legs for Banker. Already-held full hands need no extra
slot and no new-acquisition/free-seller source is fabricated.
Native controls exercise own5 full-hand diversion, funded8 cancellation and
funded8 full income. The related frozen17-file151/151, types/lint/build pass;
complete modes, original source ambiguity and deferred assurance remain open.
+21
View File
@@ -29,6 +29,27 @@ optional skill bands and combinations remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Paid Black Market retention — 18 October. Prototyped / Partial.**
Under the recorded choose-recommended policy, a positive seller win retains the
same card/order, pays native Emperor/Bank income and counts one sale. Zero/unbid
retention stays free/unsold. The supplied physical36/printed34 source ambiguity
remains explicit; this is not a publisher ruling or full-mode gate opening.
One shared current-hand rule now covers original eligibility, automatic
zero/pass, bid/commitment and settlement. Real earned4/4 hands need no extra
slot. Native Nexus retention supplies no new-acquisition/free-seller invoice;
the original paid path continues without spending a card or inventing a gain.
Actual bare/full/all14/Nexus programmes preserve card IDs/order and native fees.
Three390px flows exercise Silent full5→Bank2/one normal lot, Normal5+3 with
native cancellation and Once Around real1→final8/full income. No errors or
overflow. All four legal full-hand seller policies may retain free/unsold
through zero; strategy remains deferred. Frozen17-file **151/151**, focused1/1
and repaired old-exclusion1/1, types/lint/build pass. Initial native full-hand
auto-zero/slot failures are fixed through the shared rule; old pins are deleted.
Temporary routes/memory removed/released204, no rooms/reset/restart/deployment.
[Source, policy and evidence](RICHESE_AUCTION_RULES.md#provisional-paid-black-market-retention--18-october-2026).
**Advanced Richese split receipts — 18 October. Prototyped / Partial.**
Original buyer3/Richese donor5 wrongly supplied no Bureaucrat opportunity.
New signed seller sources use only the buyer share; the original Emperor
+28
View File
@@ -1,5 +1,33 @@
# Dune implementation status
## 18 October 2026 — Provisional paid Black Market retention
Original funded seller bid1 rejected unchanged. Under standing choose-recommended
authority, explicitly adopt paid retention of the same owned card: full original
price goes to Emperor/Bank, positive paid retention counts one sale, zero/unbid
keeps its unsold/free result. Supplied physical36/printed34 A/C does not explicitly
settle this self-purchase, so the rule and UI remain visibly provisional.
Shared current-hand legality covers eligibility, automatic skips, actor bid,
reserved commitments and terminal quote. A real full4/4 producer exposed old
auto-zero and extra-slot assumptions; both are repaired, not bypassed with a
hand edit. Cache1 + ordinary1 + ordinary1, then real deferred bribe4, earns that
hand/spice6. Retention neither removes/reappends the card nor creates acquisition.
An original Nexus table exposed an acquisition-only invoice call: already-held
retention now supplies no false veto/free-seller source and pays its native fee.
Frozen17-file **151/151**, focused full-hand1/1, repaired old-exclusion1/1,
types/lint/build and actual Normal/full/bare/Nexus programmes pass. One stale
Nexus test asserted the former native exclusion; it is deleted, not re-pinned.
Obsolete seller strategy, error precedence and fixture-copy pins are also removed.
Three390px controls cover full Silent5 with Bank2/one normal lot, Normal5+3
native cancellation, and Once Around real1→final8/full Emperor income. Same
owned cards, original armies/escrow and stock45 remain; no errors/overflow.
Four policies legally choose zero for free unsold full-hand retention.
Temporary routes/memory removed/released204; games/server untouched. Existing
build warnings and complete-mode/deployed/calibration/assurance gates remain.
[Canonical current source/policy](RICHESE_AUCTION_RULES.md#provisional-paid-black-market-retention--18-october-2026).
## 18 October 2026 — Actual Advanced Richese Bureaucrat portions
A real native all14 first turn, deferred bribe1, turn-two worm alliance and
+15
View File
@@ -7,6 +7,21 @@ and fixture opt-ins are removed; existing games are not retrofitted.
Earlier dated references to a separate entry describe historical checkpoints.
See [current activation and limits](SPICE_BANKER_RUNTIME.md#mandatory-ordinary-skills-default--17-october-2026).
## Provisional paid Richese retention — 18 October 2026
Positive Black Market seller wins now retain the same held card/order and pay
the original Emperor/Bank invoice. This visibly provisional policy is not a
retrieved ruling; zero/unbid stays free and unsold. All14 is not required:
real bare full-hand and original Nexus starts also complete native paid retention.
Owned full hands need no new slot. Bureaucrat sees one whole eligible Emperor
payment, not a private Richese portion; cancellation/Banker keep original legs.
Frozen17-file151/151, types/lint/build, three actual390px methods and four legal
full-hand seller policies pass. Native original cards, deferred bribe/acquisitions
and physical counter sources are retained. No new acquisition/free-seller frame,
spurious Nexus spend, full-mode or assurance claim.
[Source, exact receipts and scope](RICHESE_AUCTION_RULES.md#provisional-paid-black-market-retention--18-october-2026).
## Advanced Richese portions — 18 October 2026
Bureaucrat now evaluates buyer-to-Richese and Richese-donor-to-Emperor receipts
+6 -5
View File
@@ -109,13 +109,14 @@ the existing public asset root; this is not complete artwork acceptance.
### Recommended Richese seller-unpaid purchase — 14 October 2026
Original positive Richese cache and Advanced-only Black Market sales now offer
every winning buyer the same Pay confirmation, independently of hidden Nexus
Original positive Richese cache acquisitions and other-buyer Advanced Black
Market sales offer each winning buyer the same Pay confirmation, independently of hidden Nexus
face. Only an actual unallied Emperor-card holder, with native Emperor absent
and the full price personally affordable, can retain that price. Basic cache
and legally offered self-cache are included; original Black Market self-purchase
remains prohibited. Allied funding and ordinary bank-purchase admission are
unchanged.
and legally offered self-cache are included. Already-held Black Market paid
retention supplies no acquisition/free-seller source, so its native price is
paid without inventing this confirmation or spending a Nexus. Allied funding
and ordinary bank-purchase admission remain unchanged.
**Provisional recommendation: the seller is unpaid.** The printed card tells
the buyer to keep spice and prints no bank reimbursement. Do not invent seller
+67 -3
View File
@@ -10,7 +10,61 @@ Audit: 2026-09-06. This document covers the complete core bidding pipeline: the
- **I20**: [GF9 Ixian & Tleilaxu rulebook](https://www.gf9games.com/dunegame/wp-content/uploads/2020/09/IxianAndTleilaxuRulebook.pdf), 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](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf), pp.3,6–7: once-per-game special powers and ordinary acquisition/alliance clarifications. It predates Richese and supplies no Richese-specific exception.
Targeted searches did not yield a newer applicable publisher/designer ruling resolving the edge cases below. This is not a claim that none exists. Tournament rewrites and community compilations are not authority for these cases. Search-result dates do not date a printing.
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](RULE_DECISIONS.md#authorized-source-amendment--1-october-2026). 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
@@ -71,8 +125,8 @@ 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.** The generic alternative methods include Richese, but Black Market says Richese receives all payments and already owns the card. No retrieved paragraph specifies seller exclusion, a self-payment loop, an Emperor payment, or whether self-retention is a sale reducing the normal pool. Do not borrow the cache self-payment exception without a ruling.
4. **Ixian advanced Technology on special lots.** I20 p.9 broadly applies before bidding on a card and before Atreides inspection. R2's explicit restriction concerns the _ally's post-purchase replacement_, not Technology. Consequently that FAQ cannot justify disabling Technology on special lots. No retrieved Richese paragraph explains an exchanged cache lot's new public face, or the custody of a substituted Black Market lot if nobody bids. This is a genuine interaction to resolve before certifying the combined implementation.
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.
@@ -196,3 +250,13 @@ 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](JUICE_OF_SAPHO_RUNTIME.md).
## 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.
+24 -4
View File
@@ -2,6 +2,25 @@
Updated 18 October 2026. This is the authoritative navigation index for existing decisions, not a replacement rulebook or a new ruling. Detailed linked contracts retain their source citations and exact supported boundaries. Runtime follow-ups supersede historical absence claims; passing tests establish software behavior, not publisher authority.
## Provisional paid Black Market retention — 18 October 2026
The supplied revision physical36/printed34, Richese A/C, gives the shared
Richese payment rule and Black Market methods but does not explicitly settle
positive seller participation or sale counting. Under the 14 October
choose-recommended direction, provisionally permit a positive seller win as
**paid retention**: keep the same held card, pay the actual original bid to
Emperor/Bank, and count one completed sale. No self-refund or new acquisition;
full hands need no extra slot. Zero/unbid retention remains free and unsold,
including the original Once Around all-other-pass shortcut.
Native counters, actual allied escrow, Bureaucrat/Banker and original phase
continuation remain. Already-held retention provides neither the cache
acquisition nor seller-income invoice required by the separate Richese veto
and Emperor free-seller acquisition sources; those frames are not invented.
This is an explicit provisional product interpretation, not publisher/user
clarification of the remaining source ambiguity.
[Source, controls and scope](RICHESE_AUCTION_RULES.md#provisional-paid-black-market-retention--18-october-2026).
## Recommended mixed Planetologist advisor gather — 18 October 2026
The supplied authorized revision, physical28/logical26 and physical17/logical15,
@@ -245,9 +264,10 @@ Original Richese cache/Advanced Black Market now use uniform buyer confirmation
after original Richese Betrayal. Self-discard precludes acquisition/Nexus spend;
bank diversion preserves provenance but receives nothing on zero-payment Use.
Original stock, hand limits, bonus and successor continue. Basic/Advanced cache,
legal self-cache and Advanced Black Market are covered; self-Black remains
prohibited. The distinct original Ambassador path follows the current recommendation;
other real purchase sources and full combinations retain separate contracts.
legal self-cache and other-buyer Advanced Black Market are covered. Already-held
Black Market retention supplies no acquisition/free-seller source; its native
paid path follows the separate 18 October policy above. The distinct original
Ambassador path and other real purchase sources retain separate contracts.
Visibly provisional source composition selected under decision priority, not
publisher clarification or a separately answered numerical ruling.
[Canonical policy/proof](NEXUS_EMPEROR_RULES.md#recommended-richese-seller-unpaid-purchase--14-october-2026).
@@ -720,7 +740,7 @@ dedicated retrieved worked FAQs. [Contract and remaining limits](HOMEWORLD_OCCUP
| 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) |
| Advanced Richese ally contribution | The authorized supplied Advanced Richese Bidding clause routes Richese's contribution to its ally's cache/Black Market purchase to Emperor or bank, even when Emperor buys. Preserve the original donor leg separately from buyer-to-Richese credit; cancellation redirects only the Emperor leg without paying twice. Basic retains R2's earlier receipt. Native Banker counts only final bank legs; exhausted-cache counts, positive Black Market self-bidding and Technology custody remain unresolved. | [Source distinction and recipient contract](RICHESE_AUCTION_RULES.md#authorized-advanced-contribution-recipients--4-october-2026) |
| Advanced Richese ally contribution | The authorized supplied Advanced Richese Bidding clause routes Richese's contribution to its ally's cache/Black Market purchase to Emperor or Bank, even when Emperor buys. Preserve that donor leg separately from buyer-to-Richese credit; cancellation redirects only original Emperor income. Basic retains its earlier receipt. Bureaucrat follows the actual separate receipts and normal Banker counts final payer Bank legs. Positive seller retention follows the explicit 18 October provisional policy above; ordinary cache counting and the supplied exclusion of special-lot Ixian Technology remain separate. | [Recipient contract](RICHESE_AUCTION_RULES.md#authorized-advanced-contribution-recipients--4-october-2026), [paid-retention policy](RICHESE_AUCTION_RULES.md#provisional-paid-black-market-retention--18-october-2026) |
| Richese Nexus Betrayal auctions | Pause at a valid original prepayment quote. Public self-cache veto discards the exact card without debit/acquisition; another buyer's positive cache/Black Market invoice keeps price/contributions/delivery and earned Harkonnen bonus while overriding the recipient to bank. All publicly possible unallied other-faction held-Nexus seats acknowledge uniformly; private identity controls only own Use. This neutral protocol is an application choice, not publisher timing. Normal hidden-family self-purchases, special-Karama veto and unsupported overlays remain excluded; no native Karama exception certifies them. Bounded engine/SQL/bot/phone scenarios are verified locally; broader verification remains Partial and public starts/full Nexus gates stay closed. | [Printed face, profile, API and saved continuation](NEXUS_RICHESE_RULES.md#bounded-betrayal-auction-contract--30-september-2026), [common privacy protocol](NEXUS_CARD_RULES.md#richese-betrayal-prepayment-protocol), [auction source boundaries](RICHESE_AUCTION_RULES.md) |
| Guild Nexus Betrayal shipment payment | Replace one original funded positive fee in full, including own pre-funded payment and the printed full occupied-Junction override; preserve original payer/contributions, consume already-debited donor escrow once and deliver the original physical shipment once. Native applicable stop/rate responses precede the bounded gate; zero/stopped shipments supply no award or Nexus cost. Public possible held-Nexus seats acknowledge uniformly; private Use changes no public price/source disclosure. Fresh classic/native-Guild/Nexus with optional genuinely seeded Homeworlds only; unsupported native Cunning/Richese shipment overlays block before card/parent commitment, and restored transport independently requires the native Guild grant. Bounded engine/SQL/bot/CLI/phone custody and refresh are locally verified; no new priority/immunity, ordinary occupation/rounding ruling or extra shipment. Broad/public/live gates remain closed. | [Printed source and bounded contract](NEXUS_GUILD_RULES.md#nexus-guild-betrayal), [common protocol](NEXUS_CARD_RULES.md#guild-betrayal-funded-payment-protocol), [internal checklist](../game/reference.ts) |
| Ixian Nexus Secret Ally replacement | Fresh classic/Tleilaxu/Richese profiles, Ixians absent, unallied buyer and Nexus alone. Normal purchases, positive Richese cache/Advanced Black Market sales and genuine Advanced special-Karama cache acquisition during Bidding bind actual target/payment and original continuation. A direct price3 receipt outranks unrelated rows/income, preserving active player, once-use and suspended controls without an auction. Outside Bidding it adds no offer. Only unpaid bids remain reserved; delivered sale commitments are not charged twice. Cache uses the visible provisional independent-Nexus interpretation; native ally exclusion and BG/Harkonnen source rules remain. Other modules and full acceptance stay separate. | [Current contract](NEXUS_IXIAN_REPLACEMENT_RULES.md#bounded-local-runtime-contract), [actual direct receipt, funding fix and proof](NEXUS_IXIAN_REPLACEMENT_RULES.md#direct-richese-special-purchase-during-bidding--16-october-2026) |