Files
Dune/docs/SPICE_BANKER_RUNTIME.md
T

173 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## 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 private-backed-up profile admits unique2..6 classic factions,
Basic or Advanced, base33 Treachery and all14 Leader Skills alone. 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.
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.