Files
Dune/docs/SPICE_BANKER_RUNTIME.md
T

16 KiB
Raw Blame History

Spice Banker battle commitment and normal income prototypes

2 October normal-band checkpoint: a separate fresh local banker-income classic/base33/all-fourteen-skills-only Basic/Advanced profile connects actual positive bank payments to automatic current Mentat collection. Bounded coverage is Partial / Development Verified. No public start, old-game retrofit or other module is enabled; this is not deployed acceptance.

4 October composition: the separate banker-income entry additionally admits bounded Advanced native Ixians and/or CHOAM plus classic seats and their distinct required family decks. Actual native support payment grants one unavailable front-shield spice and original Mentat collects it once. See the current native contract. Ordinary/default activation and provisional earned custody are unchanged. The bounded Advanced Tleilaxu composition also shares this separate opt-in. Its foreign revival never creates a Banker assignment; original paid bank legs and own native trainer eligibility remain. The bounded Advanced Moritani composition also shares this separate opt-in with its original assassination preview. Native Terror placement remains free, not an invented qualifying bank payment.

Normal income local contract — 2 October 2026

The original photographed card says gain one spice when another player makes one bank payment of at least four, once per phase. This is a mandatory additional bank grant, not skimming the original payer or recipient; no new action, Karama response or confirmation is invented. Ordinary costs and their original counters/recipient/physical suffix finish once before the grant.

The original private-backed-up branch admits unique2..6 classic factions, Basic or Advanced, base33 Treachery and all14 Leader Skills alone; the native section below adds supported Basic native skill profiles. Actual paid normal auctions, funded shipments, paid force/leader/KH/Emperor-extra revivals and resolved bank support use original final-bank receipts. Player income, free/waived/stopped/invalid sources and self-payment do not qualify. The original bank recipient matters: canceled Emperor or Guild income may leave a bank payment, while income actually received by a player does not.

One payment is not several smaller payments summed together. Actual own/donor legs keep their payer identity; two payers at two each do not make one payer at four. The lower1..3 Banker battle payment stays separate from support. This per-payer/source composition is a conservative local interpretation, not a separately located publisher split-funding example. No future award can finance the original payment.

An actual available living native trainer supplies new normal income. A captive supplies no upper band; concealed unselected skills are unavailable. Own-battle selected-trainer eligibility uses actual resolved survival, not private pre-reveal timing. One physical card's turn/phase stamp cannot reset through death, return, refresh or same-phase reassignment.

The already-earned front-shield pile remains bound to its ORIGINAL gaining faction provisionally in this fresh profile even if the trainer dies, is captured or the card returns/reassigns. This conserves earned currency and does not transfer it with a skill card. It does not answer the previously asked death/capture question or create universal completed-mode authority. The historical pending boundary below remains recorded outside this profile.

Deferred spice is not added to a spendable wallet before actual native Mentat opening. Human/four-policy bids, shipping, revival, support and lower Banker spending use original available money. Mentat atomically marks/credits each uncollected grant once before optional work/victory; collection is not a qualifying payment and creates no recursive income. There is no arbitrary read heal or fictitious persisted half-phase collect choice.

Only physical public front-shield owner/count and current-phase use are projected. Private bank amounts, source/receipt, hidden plans and later skill entitlement stay private. Current-source corrupt/stale/duplicate/foreign actions and recovery reject immutably; closed history no longer requires the original trainer/card or old wallet to remain in place. Bounded signatures check consistency, not authentication of wholesale rewritten saved JSON.

Frozen verification passes types/lint, 6,487 offline tests, the 140-case Banker/profile union and build. Eighteen actual native producer/threshold/ trainer cases conserve all33 Treachery Cards and14 skills through original payment and real Mentat; independent combat/Collection quotes separate native bounty/income from support costs. All four minimal legal policies exclude the front-shield pile from available budgets. Native death/capture/reassignment, once-phase and separate payer legs have meaningful JSON/authenticated SQLite regressions, including actual final Collection races and private suspended Emperor/Guild invoices. Two final independent scoped reviews have no finding.

Original private-backed-up six-seat CLI setups were continued without redealing: Basic 6VZ8G5BY v38 used native Emperor self-auction payment to the Bank; Advanced 8TN8BTLT v31 used native Guild own-bank shipment and its genuine allow decision. Human390px controls earned1 without changing the Banker's available wallet, retained the notice through refresh and collected at actual final Collection readiness to Mentat exactly once (10→11 and3→4). The notice's initial26px player-strip squeeze was reproduced visually and fixed by placing it in the main column; fresh proof shows354px width. All cards/skills/normal and elite force inventories remain conserved, with the23 prior isolated QA rooms' states/versions unchanged. Final guide10/10, types/lint/build and expanded390px guidance pass; all82 original seats in25 targeted QA rooms restore after final worker reload without double collection. Local HTTP is 49/55, with six known upstream503 rejection failures: not a green suite. Code 6785e622a7 is pushed; exact CI36923901367 and container job110576362446 completed/success with mandatory isolated storage/HTTP verification before verified-image publication. Image: ghcr.io/quintine/dune:sha-6785e622a7bc8b850aa5e3d338c63be5a33a9403. Deployment and complete skill/module acceptance remain open.

Basic native Banker integration — 2 October 2026

This additive local integration connects the four already-supported Basic native Leader Skill families: Ixians (alone or with Tleilaxu), Tleilaxu alone, CHOAM alone, and Moritani alone, otherwise classic opponents. Each uses its single required Ix, CHOAM, or Ecaz Treachery deck and all fourteen original Leader Skills. Advanced native factions, other overlays, mixed expansion families, public starts and old-game retrofit remain outside this boundary. The classic Basic/Advanced base33 contract above is retained.

tests/fixture-native-banker-income.ts creates ready fresh native lobbies and calls initializeSpiceBankerIncomeGameForAudit, never setting the income flag on a played game. Only the original skill shuffle is controlled to obtain a real Banker offer; native Treachery, Traitor/Face Dancer and Terror shuffles retain their original entropy. Original Ix starting-card selection, skill assignment, Traitor/Face Dancer setup, Moritani placement and CHOAM setup continue through the engine. Revival examples label their staging: conserved normal/cyborg forces move from reserves to Tanks after genuine setup; cancellation cases move an original Karama from the remaining deck only if the owner lacks one. No sale, payment receipt, pending continuation or deferred grant is fabricated.

The reusable createNativeBankerIncomeFixture({ family: 'ixians', withTleilaxu: true }) case stops before the original final auction payment: another payer, the Emperor, buys its native lot for four paid to the Bank. payNativeBankerIncomeFixture executes that action and its original response suffix; advanceNativeBankerIncomeToPhase(game, 7) and the existing advanceSpiceBankerIncomeToMentat continue the real Collection-to-Mentat path. The focused regressions cover each native family, actual card delivery and debit, unchanged pre-Mentat Banker wallet, deferred collection, Emperor player income, and free/paid Tleilaxu-recipient revival. A Tleilaxu own-revival case distinguishes its actual four-spice bank debit from the separate printed free-revival bank reward; the reward is not another player's payment. Canceled Tleilaxu income cases distinguish the actual payer's zero/three/four bank debit from the separate free-revival reward included in the native income response. In particular, an original three-spice cyborg debit plus one free reward must not be mistaken for another player's four-spice bank payment.

Authority remains the photographed Banker card, the existing Leader Skill rules and original native payment/recipient rules. This composition does not resolve the previously open earned-spice death/capture question. Original gaining-faction custody and separate-payer threshold interpretation remain the explicitly provisional local policies above; no broader ruling is inferred.

Bounded runtime evidence: twelve actual native Banker scenarios pass, including all five native compositions through real Mentat, native player-recipient exclusions, self-bank revival and canceled income at actual cost0/3/4. Three initially failing collection cases stopped at phase8 while the existing Ix Amal opening was still pending; the helper now finishes that native opening before observing automatic collection. Engine phase ordering is unchanged. Final parent checks and human controls are recorded with the native payment checkpoint; this is not whole-faction/module certification.

The affected payment rule batch110/110, final native/guide26/26, types/lint and build pass. Four additional native post-income policy continuations are legal. Genuine CLI 7B55PLA5 v8 reaches original native setup. Human390px 86WQMSZV v18 closes the actual Emperor self-auction4, observes Ix available10 and deferred1, then finishes original Collection and the existing Amal opening before automatic Mentat collection to11. This does not approve the pending universal earned-custody policy or enable public starts.

The historical13 September checkpoint below is Prototyped, with Partial rules coverage, and connects the lower battle band only. The normal band is now connected solely in the fresh profile above; combined acceptance and public mode starts remain gated.

Source and payment contract

The physical card permits spending one through three own spice with the Battle Plan to add the same amount to the selected leader's strength, independently of force support. A captured skilled leader can supply this battle band with the captor's spice. The common skill rules remove the bonus if that leader dies. See GF9 CHOAM & Richese rules and Q&A, pages 8–9 and 12, and Jack Reda's walkthrough, 17:09–17:37. The existing physical card image and sourced full paraphrase are retained; this creates no new card, resource or leader identity.

The core rulebook provides the payment precedence in its Traitor and Advanced Combat sections: a sole successful traitor caller loses nothing; otherwise committed Battle Plan spice goes to the Bank on either outcome. The prototype therefore spends Banker spice even on leader death or traitor loss, and waives it for a sole traitor-call winner. Death removes the strength bonus, not the already chosen plan cost. This is an explicit composition of the card and core payment rules, not a separately located Banker death FAQ. It supersedes the earlier private research suggestion that death should release the commitment. Printed disc strength, Zoal's copied value and leader bounty are unchanged.

The normal band is mandatory once per phase when another player makes one payment of at least four spice to the Bank; multiple smaller payments do not combine. Revival qualifies. Earned spice waits in front of the shield until Mentat Pause. Neither publisher nor designer material located in the renewed search settles custody of that accumulated income if the trainer dies or is captured first. The user has been asked whether to retain the pending boundary or rule that already-earned spice stays with the original faction. No answer is assumed; only the explicitly provisional fresh profile above implements normal income. This historical question remains open outside that profile.

Connected behavior

bankerSpice is an optional sealed-plan amount; absence or zero declines. The engine validates an actual living controlled skilled disc, its battle posture, integer range and own funds remaining after force support. Ally aid and Stronghold support cannot fund this separate commitment. Saved plans reserve the amount against bribes and other spending. The same checks run before views, automatic normalization and actions. Legacy plans retain zero Banker spending.

The battle quote computes a separate payment alongside the existing support settlement and a surviving-leader score bonus. It does not add Banker spice to CHOAM's force-support share. Payment and resolution commit atomically through the existing versioned room write, with an automatic explanatory history entry.

The battle panel distinguishes support and Banker amounts and shows the combined own commitment. The owner and authorized full-plan inspector can see the sealed amount; rivals see it only when both plans are public. All four AI profiles use the public skill and private own budget to submit funded plans. This is legal prototype behavior, not calibrated Banker strategy.

Evidence and remaining scope

Focused engine checks cover one through three spice, win/loss, death, traitor win/loss/mutual calls, captured-leader funds, printed values, own-support funding, private views, malformed saved fields, JSON restoration and all four profiles. SQLite checks cover reserved-spice diversion, private restart, concurrent final resolution, exact waiver/bounty and legacy absence. Controls and inspector checks retain the private/public boundary. Independent rules, persistence and UI review cover this supported boundary.

Two genuine four-profile Basic/Advanced samples completed with 99/212 actions, 3/6 JSON restorations and no rejected candidates. Their first seat explicitly selected its offered Banker, but neither game used Banker spending. These are continuation samples; the targeted tests establish the effect. A fresh browser room assigned Banker through genuine setup, followed by a conserved staged battle. The player selected Hasimir Fenring, Baliset, four dialed forces and three Banker spice. Pending refresh restored that commitment with five spice still held. Settlement paid three, added three strength and left one Arrakeen force, fifteen reserves, four Tanks and two spice. Another refresh retained those values and the same private Crysknife, Baliset and Burseg while card cleanup awaited the player. This targeted scenario is not a complete human game. Required broad results are recorded with the checkpoint.

Remaining work includes normal income, all economic trigger routes and ordering, its public deferred custody, combined modules, wider full-game interaction and strategy refinement. The existing development gates remain unchanged.