336 lines
21 KiB
Markdown
336 lines
21 KiB
Markdown
# Spice Banker battle commitment and normal income prototypes
|
||
|
||
## Classic Nexus income composition — 13 October 2026
|
||
|
||
`banker-income --nexus-cards` now connects the existing mandatory normal band
|
||
to fresh classic Basic/Advanced Nexus Skills games. Original Tech requires3+;
|
||
Strongholds require Advanced2+, optionally both. This does not admit Homeworlds,
|
||
Discovery, expansion-family Nexus, Semuta or Betrayal previews, change ordinary
|
||
skill defaults, or retrofit played games. All33 Treachery, all14 Skills and
|
||
all12 undealt Nexus remain native. There is no fabricated starting Nexus hand.
|
||
|
||
The previous entry rejected this fresh composition before offers. The shared
|
||
classic Nexus skill predicate now recognizes the explicit income overlay, and
|
||
the Banker initializer passes the original Nexus setup path. Existing payment,
|
||
recipient, front-shield, per-phase and Mentat calculations are unchanged.
|
||
|
||
Native Guild self-shipment to Polar Sink pays4 (wallet5→1) and grants Atreides
|
||
one unavailable spice. Three paid earns none; Emperor's four paid to Guild earns
|
||
none. Advanced original Tech/Strongholds retain native Guild timing; actual
|
||
Heighliners income settles at phase end rather than becoming a Banker invoice.
|
||
The existing legal policy continues without spending deferred currency.
|
||
Actual390px table shows front1 while available wallet remains10; the last
|
||
ordinary Collection Ready enters real Mentat, credits10→11 and removes the
|
||
front-shield notice without an extra action. Browser errors empty; no root
|
||
overflow. `/tmp/dune-classic-nexus-banker-ui-proof.json` records local proof.
|
||
|
||
Actual isolated CLI `BANKERQA v8` reaches `leaderSkills`, income-v1, all14
|
||
original cards in deck/offers and all12 Nexus in deck. No existing room or
|
||
database is changed. Evidence:
|
||
`tests/classic-nexus-banker-income.test.ts` and
|
||
`tests/fixture-classic-nexus-banker-income.ts`.
|
||
Original earned-custody and per-payer policies remain provisional; wider
|
||
printed effects, combination and deployed acceptance are not certified.
|
||
|
||
```sh
|
||
node --import tsx tools/start-prototype.ts --profile banker-income --nexus-cards \
|
||
--db /private/local.sqlite --room ROOMCODE --version 7 \
|
||
--out /private/new-classic-nexus-banker-entry
|
||
```
|
||
|
||
**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 standalone E3 modules:** original Ecaz/Moritani skills preserve
|
||
Tech Basic/Advanced3..6 and Strongholds Advanced2..6, optionally both.
|
||
Banker stays a separate opt-in: actual opposing paid4 qualifies, not bank2
|
||
subsidy or paid1. Original Mentat collects once. Duke assignment and Moritani
|
||
assassination/normal-call limits remain; see
|
||
[combined source and cases](LEADER_SKILLS_RUNTIME.md#standalone-e3-module-composition--4-october-2026).
|
||
|
||
**4 October Advanced Stronghold composition:** the same separate local entry
|
||
preserves unused Stronghold Cards in Advanced classic or supported E1/E2
|
||
native2..6-seat skills; optional Tech still needs3..6. Arrakeen bank support
|
||
is not payer spending: declared0/2/5/6 means actual own0/0/3/4, and only4
|
||
qualifies a grant. Human **HERCFX3B v20/Mentat** pays4 after bank2 while Suk
|
||
rescues3 without refunding support. Atreides retains wallet12/front1 until
|
||
actual Mentat, then13/front0. See the [combined source and evidence](LEADER_SKILLS_RUNTIME.md#advanced-stronghold-composition--4-october-2026).
|
||
Original earned-custody/separate-payer policies remain; no public activation.
|
||
|
||
**4 October native Tech composition:** the same separate opt-in preserves
|
||
unused original Tech in fresh3..6-seat supported Ixian/Tleilaxu/CHOAM/Richese
|
||
Basic/Advanced lobbies. Native deck/roster limits and payment recipients remain.
|
||
Richese marker invoices retain native `noField`/`event` validation. Human
|
||
**YWVH5XQF v8** pays1 for a concealed5 plus one free companion, wallet6→5;
|
||
the earlier actual four-spice Emperor revival leaves Atreides Banker-front1
|
||
unavailable while its Heighliners separately accrues1. A Tech credit is not
|
||
another bank-payment producer. See the [native contract and evidence](LEADER_SKILLS_RUNTIME.md#native-e1e2-tech-tokens-composition--4-october-2026).
|
||
|
||
**4 October classic Tech composition:** a fresh classic3..6 Basic/Advanced
|
||
`banker-income` lobby may retain canonical unused Tech Tokens. Original
|
||
phase-end Tech income is independent of the front-shield grant; neither credit
|
||
is another player's bank payment. Human **63LV57W2 v13** paid actual Smuggler4
|
||
for physical5, accrued one unavailable grant and one original Heighliners spice,
|
||
then collected Tech at phase end and Banker at actual Mentat. Ordinary city
|
||
Collection stays separately quoted. Native/other overlays and pending earned
|
||
custody/split questions are unchanged; see the [combined contract and evidence](LEADER_SKILLS_RUNTIME.md#classic-tech-tokens-composition--4-october-2026).
|
||
|
||
**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](LEADER_SKILLS_RUNTIME.md#advanced-native-ixian-and-choam-composition--4-october-2026).
|
||
Ordinary/default activation and provisional earned custody are unchanged.
|
||
The bounded [Advanced Tleilaxu composition](TLEILAXU_LEADER_SKILLS.md#advanced-native-composition--4-october-2026)
|
||
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](MORITANI_LEADER_SKILLS.md#advanced-assassination-composition--4-october-2026)
|
||
also shares this separate opt-in with its original assassination preview.
|
||
Native Terror placement remains free, not an invented qualifying bank payment.
|
||
The [native Richese composition](LEADER_SKILLS_RUNTIME.md#native-richese-composition--4-october-2026)
|
||
adds Basic/Advanced Richese and its required CHOAM deck. Advanced Richese's
|
||
funded ally contribution follows the authorized Emperor/bank recipient rule;
|
||
the buyer-to-Richese share does not count as a bank payment. Basic retains its
|
||
publisher receipt. Actual human **E2K2U5ZW v26** paid the original eight-spice
|
||
Ornithopter invoice as buyer4/Richese4, earned one unavailable Guild Banker
|
||
spice, and collected it once at native Mentat after ordinary Collection.
|
||
The front-shield pile stayed separate through Revival and movement; refresh
|
||
retains Mentat/wallet7/empty pile. No public-mode or deployed acceptance.
|
||
The [native Ecaz ordinary-disc profile](LEADER_SKILLS_RUNTIME.md#native-ecaz-ordinary-disc-composition--4-october-2026)
|
||
also admits this separate Basic/Advanced opt-in with its original five-disc
|
||
training and Ambassador custody. Actual Emperor ordinary shipment pays4 for
|
||
two counters and grants native Ecaz Banker one deferred spice without changing
|
||
its available wallet in both bands. An Ambassador bank grant is not a payer
|
||
payment. Shared-Duke assignment and combined Occupy skills remain separate.
|
||
|
||
|
||
## 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 **6785e622a7bc8b850aa5e3d338c63be5a33a9403** is pushed;
|
||
[exact CI36923901367](https://github.com/Quintine/Dune/actions/runs/36923901367)
|
||
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](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf),
|
||
pages 8–9 and 12, and [Jack Reda's walkthrough](https://www.youtube.com/watch?v=XT_azRVLq_0&t=1029s),
|
||
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](https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf)
|
||
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.
|