Connect classic Homeworld Banker final Bank income and ruled rounding

This commit is contained in:
Quintine committed 2026-10-14 13:10:33 +11:00
1 parent 2efa69d10f
commit 373badd560
27 files changed
+1624 -280

No files matched your search

+8 -2
View File
@@ -124,8 +124,14 @@ native3 + occupied3. The new receipt records `bankDiversion:2` while retaining
original `payment.paid:8` and each full actual payer contribution; its allocatable
`source.amount` is6. Decline splits8 into4+4. Karama before Bureaucrat instead
banks the native4, preserves the occupied4 and spends no Bureaucrat use.
The original two-odd Guild contributor rounding guard remains separate:6+2
is admitted, whereas5+3/3+5/5+5 reject before costs at low/occupied Junction.
The 14 October user ruling supersedes the former two-odd fence: low native income
rounds the whole remaining eligible invoice once. Both5+3 and3+5 are admitted.
The internal diversion payer is the first individually eligible contribution:
declared payer first, ally second, never pooled. Final Bank parts of that same
payer/invoice combine for Banker; no funding or eligibility identity is disclosed.
The separate fresh `banker-income --homeworlds` entry retains these original
receipts and automatically collects earned Bank income at native Mentat. See
[current accounting and proof](SPICE_BANKER_RUNTIME.md#classic-homeworld-final-bank-income--14-october-2026).
The new consumers are `tests/bureaucrat-occupied-guild.test.ts` and
`tests/bureaucrat-occupied-emperor.test.ts`, with original-army fixtures of the
+21
View File
@@ -29,6 +29,27 @@ optional skill bands, combinations and public expansion starts remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Classic Homeworld normal Banker and whole-invoice accounting — 14 October.**
Fresh `banker-income --homeworlds` reuses original classic Basic/Advanced
occupation/all14 setup and income-v1, without Nexus/Discovery/Tech/Strongholds
or native expansion overlays. The user selected same-payer/same-invoice Bank
combination, first eligible Bureaucrat contributor primary-first internally,
and low native whole-invoice rounding with primary-first extra Bank units.
Original payer shares and private prompts remain unchanged. The two-odd
declaration/UI/AI fence is removed; actual final native/occupied receipts,
not wallet deltas or full canceled occupied gross, authorize grants.
Native5+3 without tax banks3/1 and earns none; tax2 banks4/1 and earns one.
Occupied cancellation preserves occupier4 and banks only native4 as3/1.
Actual world-to-world4 and sponsored board-return4 bank fees qualify; low
Kaitain’s later eight-spice native auction yields Emperor4/Bank4.
Actual390px **Redirect2** leaves wallet11/front1; ordinary city Collection
makes13, last native **Ready** enters Mentat and makes14/front0 with one credit.
Browser errors empty, no root overflow. Isolated actual `HWBANKQA v8` CLI
retains original setup/custody. Related18-file union292/292, types/lint and
app build pass with existing warnings. [Accounting contract and proof](SPICE_BANKER_RUNTIME.md#classic-homeworld-final-bank-income--14-october-2026).
No existing save conversion, complete-mode, broad-assurance or deployed claim.
Recommended options are chosen without another clarification question.
**Ruled Grumman removal and Cunning addition — 14 October.**
The user selected supply-only Cunning, HMS exclusion, preserved Grumman
addition prerequisite and unrevealed return to hidden supply. Native removal
+6 -6
View File
@@ -105,17 +105,17 @@ stale permission must not remove the card or pay income. Keep the market and
its parent continuation recoverable. This requirement is independent of the
older unresolved Kull and Worthless-cancellation interpretation questions.
## Deferred payment splitting
## Payment splitting: ruled whole invoice
E3 p.15 explicitly splits a five-spice Treachery payment into three for Emperor
and two for Kaitain's occupier, even if that occupier bought the card. It does
not give an allied-contribution example. The inspected reverse-face record
assigns rounded-up half of shipment receipts to low Junction. Neither evidence
establishes separate rounding per contributor versus once per purchase or
shipment. Preserve payment identity, actual payer contributions and income
source separately before integrating those effects; do not infer an answer
from existing integer arithmetic. Occupation lifecycle questions remain in
[Homeworld rules](HOMEWORLD_RULES.md).
establishes separate rounding per contributor versus once per invoice.
The 14 October user ruling now selects whole-invoice native rounding and
primary-first internal attribution of extra Bank rounding units. Preserve
original payment identity and full payer shares; never pool different payers
or unrelated invoices. [Current source and runtime](HOMEWORLD_PAYMENT_INCOME_RULES.md#supported-receipts-and-ruled-whole-invoice-rounding).
Runtime verification should cover Basic/Advanced and module-off parity,
threshold transitions, exact card custody, private view/AI boundaries,
+1 -1
View File
@@ -58,7 +58,7 @@ The same fresh `homeworld-occupation` entry connects these original producers:
| Printed source | Original consumer and ownership |
| --- | --- |
| Kaitain | Eligible paid Treachery receipt: native rounded-up half, occupied rounded-down half; buyer payment occurs once. |
| Junction | Eligible other-player shipping receipt after original Guild-funded exclusions and routing; the existing two-odd-contributor guard remains. |
| Junction | Eligible other-player shipping receipt after original Guild-funded exclusions and routing; the 14 October user ruling rounds the whole invoice once and admits two odd contributors. |
| Richese income | Rounded-down half of actual seller net received, not the gross sale or contribution routed to Emperor. |
| Southern Hemisphere | One completed actual native Collection aggregate, including settled shared and occupied-bank credits; round once and redistribute the already credited amount. |
| Caladan | Native and occupier inspect the original admitted lot, never the occupier’s ally. Canceling native inspection hides its face from native while the separately admitted printed share survives. |
+12 -11
View File
@@ -15,17 +15,17 @@ The E3 Kaitain FAQ's five-spice purchase produces Emperor three and occupier two
Preserve the November FAQ's contribution routing before applying Junction's cut: non-Guild contributions eligible for shipment income go to Guild; Guild's own contribution goes to the bank. Preserve the existing independent-Karama bank-only route. The later funding answer replaces the earlier transfer-to-shipper instruction. This source adjudication and its Guild-as-shipper application are already documented in [Guild shipment payments](GUILD_SHIPMENT_PAYMENTS.md#publisher-contract-and-precedence), with the [November FAQ, p.2](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=2). No new contributor-rounding ruling was retrieved in this audit.
## Supported receipts and pending contributor-rounding question
## Supported receipts and ruled whole-invoice rounding
The coordinating implementation keeps these operations separate:
1. Validate the transaction's actual authorized contributions. Before a low-Junction shipment declaration or cost commits, reject a split whose two positive eligible contributions are both odd: the two plausible rounding interpretations differ. This is an unsupported-case guard, not a printed prohibition. Complete admitted purchases or shipments and debit each contribution once under the transaction's own source rule.
1. Validate the transaction’s actual authorized contributions. Complete admitted purchases or shipments and debit each contribution once under the transaction’s own source rule. Two eligible odd contributions are admitted under the 14 October user ruling; the former comparative fence is removed.
2. Determine the amount that the existing ordinary income rule would deliver to the eligible faction. This `gross` is the faction's eligible receipt, not necessarily the total cost.
3. If ordinary faction-income cancellation succeeds, credit zero and leave that eligible amount in the bank. Homeworld immunity does not immunize the separate ordinary income advantage.
4. Otherwise evaluate the native world's current low condition at income settlement. For supported low receipts, credit `ceil(gross / 2)` and leave the remainder in the bank. This aggregate arithmetic agrees with per-contributor rounding only where the contributor guard admits the transaction; it does not establish a rule for blocked cases. Without the low condition, credit `gross`.
5. Keep the original gross transaction receipt and the original positive eligible contribution amounts immutable through responses and restore. These source amounts remain server-private. Recompute the current low-state preview; do not overwrite the original amount with an earlier preview, merge away payer evidence or halve an already reduced amount. Threshold changes must not let a previously high receipt bypass the unresolved-case check when it settles low.
4. Otherwise evaluate the native world’s current low condition at income settlement. Credit `ceil(gross / 2)` once for the whole eligible invoice and leave the remainder in the Bank. Without the low condition, credit `gross`. Payer costs and contribution routing do not change.
5. Keep original gross and positive eligible contributions immutable and server-private through responses. Recompute current low-state previews without repricing the purchase, merging payer evidence or halving an already reduced amount.
**Contributor rounding remains unanswered.** The coordinating agent has sent a second user question: for low Guild income on a shipment funded by two non-Guild contributions of one spice each, is the income one spice (round the total) or two spice (round each contribution)? Neither interpretation is selected for cases where they differ. Do not duplicate the question, treat elapsed time as an answer, or present the pending aggregate hypothesis as a verified rule. Single positive eligible contributions are unaffected by this distinction; with two contributors, the alternatives coincide unless both are odd. Do not pool unrelated purchases or shipments either. The [payment source gap](HOMEWORLD_CARD_ECONOMY_RULES.md#deferred-payment-splitting) remains open. The separate occupation-lifecycle question is also pending.
**14 October user ruling:** round the whole eligible invoice once, not each contribution. For final Bank attribution, floor each remaining contribution’s half, then assign extra Bank rounding units primary payer first and ally second internally. Bureaucrat’s flat two is attributed to the first individually eligible contribution in that same order; it combines only with that payer’s other actual Bank portions of this original invoice. No funding/eligibility identity is exposed and unrelated invoices or different payers never pool. These are selected user interpretations, not new publisher examples.
**Current population at actual income settlement is also a source composition.** Continuous threshold wording supports applying the condition when the faction receives spice. The publisher supplies no worked example of Ghola changing the native population during an already-open payment response. The implementation must label this composition honestly and test it; it must not reprice the buyer's completed purchase or shipment when the recipient's population changes.
@@ -71,18 +71,19 @@ history remain distinct. Native income Karama sends only its native portion to
the Bank; the printed occupied portion survives under Homeworld immunity and may
be immediately shared with the reciprocal ally. This is explicit source
composition, not a dedicated retrieved worked cancellation FAQ. The payer’s
completed debit and delivery never repeat. Existing two-odd contributor ambiguity,
independent-Karama bank routing and Guild Nexus full-fee overrides remain separate.
No past receipt is back-awarded and no overlay combination is admitted here.
completed debit and delivery never repeat. Whole-invoice rounding is now ruled;
independent-Karama Bank routing and Guild Nexus full-fee overrides remain distinct.
No past receipt is back-awarded. The separate fresh classic Homeworld Banker entry
is documented in [the current runtime](SPICE_BANKER_RUNTIME.md#classic-homeworld-final-bank-income--14-october-2026).
### Guild Nexus Betrayal is a full-fee exception
The [original Guild Nexus face and bounded payment contract](NEXUS_GUILD_RULES.md#nexus-guild-betrayal) expressly take one whole shipment payment, including one's own, and override occupied Junction income. For an accepted use, preserve the original **charged total**, not only this document's eligible `gross` or `ceil(gross / 2)`: the holder receives all of that fee once, and ordinary Guild/bank/occupier settlement for this invoice is suppressed. A four-spice fee yields four to the holder, not two plus two to an occupier. The original payer and authorized escrow still fund it once before any own-payment refund; future receipt is not upfront funding.
This exception does not resolve ordinary two-odd-contributor rounding, occupation owner/expiry or retained penalties. All-pass/no-use settlement retains its native routing and guards; no hypothetical card play may admit an otherwise unresolved ordinary invoice. Free or stopped transport has no positive fee to redirect. The explicit fresh classic/Guild/Nexus profile uses genuinely seeded Homeworld custody and existing legal shipment/Junction adapters; it grants no new route or sponsorship. Its [direct bounded local verification](NEXUS_GUILD_RULES.md#verification-and-release-boundary) includes full occupied low-Junction fees, independently of this document's historical unoccupied-income evidence and broader Homeworld gates.
This exception does not decide occupation owner/expiry or retained penalties. All-pass/no-use settlement retains original routing with the separately ruled whole-invoice rounding; hypothetical Nexus play supplies no new ordinary permission. Free or stopped transport has no positive fee to redirect. The explicit fresh classic/Guild/Nexus profile uses genuine Homeworld custody and existing shipment/Junction adapters, not a new route or sponsorship. Its [bounded local verification](NEXUS_GUILD_RULES.md#verification-and-release-boundary) remains distinct from the new Homeworld Banker entry, which excludes Nexus.
## Required verification before a runtime claim
Meaningful regressions cover odd/even and zero receipts, rejection of two eligible odd contributions before declaration or payment, coincident 2 + 1 rounding, both contributor identities, protected original contribution evidence, module-off parity, current 4-to-5 and 5-to-4 changes across legal Ghola interruptions, cancellation without refund, all listed Emperor sources, all admitted shipment adapters and exact parent restoration. Save/recovery tests should prove no repeat debit, card acquisition, force move or faction credit, and reject altered gross/source/owner binding without persistence. Public previews may show the current numeric split but must not expose the purchased card's private face.
Meaningful regressions cover odd/even and zero receipts, whole-invoice two-odd contributions, both original contributor identities, final per-payer Bank thresholds, cancellation without refund and preserved occupied shares. Existing threshold-change, source-binding and native routing regressions remain relevant. Comprehensive recovery, privacy and full-family acceptance follow all rules; targeted payment evidence is not a substitute.
This documentation pass reviewed source links, referenced local targets, the limited adapter wiring and whitespace only. The contributor guard and unpublished development code are not a completed runtime checkpoint. Runtime tests, full checks and release evidence belong to the coordinating implementation checkpoint; no such result is claimed here.
The 9 September source audit is historical. Current native consumers, actual CLI/phone proof and the frozen292-case related union are recorded in [the current runtime](HOMEWORLD_PAYMENT_INCOME_RUNTIME.md) and [Banker contract](SPICE_BANKER_RUNTIME.md#classic-homeworld-final-bank-income--14-october-2026), not full-module certification.
+5 -5
View File
@@ -1,6 +1,6 @@
# Homeworld payment income runtime
Development checkpoint, 9 September 2026. Low Kaitain and low Junction now reduce supported native faction payment receipts while preserving the payer's original cost. Occupation and divergent allied-contributor rounding remain unfinished. The [source contract](HOMEWORLD_PAYMENT_INCOME_RULES.md) distinguishes printed rules from timing composition and records the pending user question. No Homeworld, Advanced or expansion start gate is opened by this checkpoint.
The 14 October 2026 user ruling resolves allied rounding: low native income is `ceil(total eligible invoice / 2)` once, not a sum of rounded contributor legs. Original payer costs and eligibility stay unchanged. Fresh classic `banker-income --homeworlds` additionally connects actual final Bank portions to original Mentat; occupation receipts remain authoritative. See [the current Banker contract](SPICE_BANKER_RUNTIME.md#classic-homeworld-final-bank-income--14-october-2026). This is not complete Homeworld or deployed acceptance.
## Calculation and settlement
@@ -12,11 +12,11 @@ Ordinary Karama can prevent the separate Emperor or Guild income advantage. The
Emperor adapters include ordinary paid auctions, the existing Richese cache self-purchase destination, Richese's advanced three-spice special purchase and successful Richese Ambassador paid draws. Emperor buying for itself creates no self-income. Richese's own seller receipts retain their destination. Guild adapters preserve ordinary and legacy shipment, native return, Homeworld shipment and Junction-sponsored route classifications. Free transport and unrelated bank rewards create no new payment income.
## Unanswered contributor rounding
## Ruled whole-invoice rounding — 14 October 2026
For two eligible odd contributions, rounding the combined payment and rounding each contributor separately differ. A one-spice plus one-spice non-Guild payment would produce either one or two spice for low Guild. The user question is pending; neither result has been adopted for that case.
Two eligible odd contributions are now admitted; the former comparative fence and UI/AI exclusion are removed. Five plus three yields native4 and Bank4 when unoccupied and low. Attribution floors each remaining contribution’s half and assigns any extra Bank rounding unit to the declared primary payer first, then the ally. This is internal only: no payer, funding, eligibility or rounding identity is newly projected.
The engine rejects that unsupported split before a low-Junction shipment declaration or cost commits. This is a temporary scope guard, not a printed prohibition. Single positive eligible contributions and two-contributor splits on which both interpretations agree remain supported. The aggregate quote implements their common result; it must not be cited as resolving blocked cases. Original contribution evidence accompanies the receipt for later validation, including population-sensitive settlement. Player shipment controls and all four AI profiles use the same public funding guard; blocked candidates are excluded before declaration.
When Bureaucrat redirects two, choose the first individually eligible contribution (declared payer first, ally second), subtract two before the native/occupied calculation, and combine that payer’s two with their own other final Bank portions of this invoice. Never pool payers or unrelated invoices. Thus low unoccupied5+3 becomes native3, retained Bank3, diversion2 and final payer Bank legs4/1; it earns one deferred Banker spice. Occupied cancellation instead banks only the native share;5+3 then leaves Bank legs3/1 and earns none. These accounting choices are user rulings, not publisher worked examples.
## Saved receipts and private information
@@ -43,6 +43,6 @@ HTTP test rooms. No saved game was reset.
Desktop and phone browser checks exercised a five-spice bid yielding three to low-population Emperor and two to the bank. Keyboard allowance and refresh of all three seats passed. The coordinating agent inspected the resulting views and reported no page overflow or browser errors. These are bounded payment-flow checks, not complete Homeworld-game acceptance.
Focused entry point: `npm test -- homeworld-payment-income`. The relevant suites are [pure rules](../tests/homeworld-payment-income.test.ts), [engine flows](../tests/homeworld-payment-income-engine.test.ts) and [production SQLite recovery](../tests/homeworld-payment-income-recovery.test.ts). Their coverage includes source routing, unchanged payer cost, native threshold crossings, allowed/canceled receipt recovery, divergence rejection before commitment, proof validation and private projection. The implementation-status checkpoint records the same scoped evidence; complete expansion games and occupation behavior are not certified.
Focused current evidence includes [whole-invoice quotes](../tests/homeworld-payment-income.test.ts), [Bank attribution](../tests/homeworld-bank-payment.test.ts), [native Banker consumers](../tests/homeworld-banker-income.test.ts), [actual off-planet transport](../tests/homeworld-banker-transport.test.ts) and [existing engine flows](../tests/homeworld-payment-income-engine.test.ts). The 9 September recovery/full-suite counts above are historical evidence; comprehensive assurance is deferred until all rules are implemented. The current frozen related18-file union passes292/292, types/lint and app build pass; actual390px Bureaucrat and native Mentat controls are recorded in the linked Banker contract.
This documentation/reference pass changes no database or automation. The removed automation remains removed. Occupation retention, occupied percentage recipients and Collection income, remaining Homeworld effects and complete expansion acceptance retain their existing release gates.
+40
View File
@@ -1,5 +1,45 @@
# Dune implementation status
## 14 October 2026 — classic Homeworld final Bank income and ruled accounting
The user selected whole-invoice low Guild/Emperor rounding, first eligible
Bureaucrat contribution primary-first internally, and same-payer/same-invoice
combination of redirected2 with other actual final Bank portions. No distinct
payers/invoices pool and no funding or eligibility identity is newly projected.
Recommended options are selected without further clarification questions.
BEFORE fresh Homeworld normal Banker admission rejected; original occupied
5+3 rejected the comparative rounding guard before costs. AFTER the separate
classic `banker-income --homeworlds` path reuses actual occupation/all14 setup,
admits original odd funding and preserves original price, escrow, force sources
and recipient continuations. The old comparison export, table warning and AI
exclusion are removed without aliases. Expansions, Nexus, Discovery, Tech,
Strongholds and other overlays stay excluded from this new income branch.
Final receipts supply actual retained Bank amounts. Low unoccupied5+3 gives
3/1 and no grant; tax2 gives4/1 and one unavailable spice. Occupied allowed
income banks0 (tax variant only2); cancellation banks native4, not full8,
and preserves occupied4. Genuine odd11, first-eligible fallback, later same-
phase payment and replay rejection retain physical native stock and full debits.
Actual world-to-world4 and half-rate sponsored board-return4 are Bank fees,
not Guild income. Actual Kaitain capital4 after original eleven-force shipment
supports a later Guild eight-spice Treachery purchase: native4/Bank4/front1.
Actual isolated `HWBANKQA v8` CLI reaches native setup/income-v1. Actual390px
Bureaucrat **Redirect2** settles4/1, wallet11/front1; native city Collection
makes13, and the last original **Ready for next phase** enters Mentat and makes
14/front0, credit1 once. Browser errors empty; no root overflow. A text wait
for title-case Mentat timed out because the actual heading is uppercase;
fresh accessibility/server evidence proves the click succeeded without replay.
Private local proof: `/tmp/dune-homeworld-banker-ui-proof.json`.
Frozen related18-file union292/292, types/lint and production app build pass.
Build retains module-registration, chunk-size and unknown-route warnings.
Pure accounting21 cases and new native14 cases also passed earlier; no
comprehensive recovery/privacy/custody campaign or deployed acceptance is claimed.
Fixtures, docs/checklist and obsolete rounding-rejection tests are migrated.
The user PDF and all existing saves remain untouched.
## 14 October 2026 — ruled Grumman hidden return and Cunning addition
Four user decisions resolve the earlier Moritani boundaries: Cunning enhances
+15
View File
@@ -4,6 +4,21 @@ Updated 14 October 2026. This is the authoritative navigation index for existing
## User decisions — 14 October 2026
- **Recommended-option priority:** choose an available recommended option and
continue without further clarification questions. Record its interpretation
and scope; no new external privilege or destructive-action authorization.
- **Banker / Bureaucrat:** combine the redirected two with the same original
payer's other final Bank portions of that invoice for the four-spice threshold.
Do not pool distinct payers or distinct invoices.
- **Bureaucrat allied attribution:** use the first eligible contribution:
declared primary payer first, then ally if necessary. Determine it internally;
preserve the existing gross-only prompt and funding privacy.
- **Low-Homeworld funded income:** round the whole Guild/Emperor invoice once.
Allocate any extra Bank rounding unit primary-payer first, then ally,
internally without disclosing funding shares. Full payer debits remain
unchanged. This resolves the previous two-odd-contribution fence.
[Connected final Bank runtime and evidence](SPICE_BANKER_RUNTIME.md#classic-homeworld-final-bank-income--14-october-2026).
- **Moritani Cunning / relocation:** supply placement only. Ordinary relocation
remains available, but Cunning does not broaden its destinations.
- **Moritani Cunning / HMS:** keep the Hidden Mobile Stronghold itself excluded.
+51
View File
@@ -1,5 +1,56 @@
# Spice Banker battle commitment and normal income prototypes
## Classic Homeworld final Bank income — 14 October 2026
Fresh classic Basic/Advanced `banker-income --homeworlds` composes original
occupation setup and all14 Skills with income-v1. This branch excludes Nexus,
Discovery, Tech, Strongholds and native expansion/Betrayal overlays. Other
existing Banker entries remain unchanged; no public activation or played-game
conversion is added.
Three user rulings define accounting: combine only the same payer’s final Bank
portions of one original invoice; attribute Bureaucrat’s two to the first
individually eligible contribution (declared payer, then ally); round low native
income on the whole remaining eligible invoice once. Floor each remaining
contribution’s half and assign extra Bank rounding units primary-first internally.
No funding or eligibility identity is exposed. The former two-odd declaration,
UI and AI fence is removed, without changing original prices or payer shares.
Original native or occupied-percentage receipts supply the actual retained
Bank amount; original payment carriers preserve full payer evidence. Allowed
unoccupied5+3 gives native4/Bank4, final Bank legs3/1 and no grant. Diverting2
gives native3/Bank3 plus diversion2, final legs4/1 and one deferred spice.
Occupied allowed income banks none (or just diversion2); occupied cancellation
preserves occupier4 and banks native4 as3/1, not the full8, so grants none.
Odd11 and first-eligible fallback cases retain real payer shares and stock.
Native world-to-world4 and half-rate Junction board-return4 each remain Bank
fees, grant one unavailable spice and do not manufacture Guild income.
Actual low Kaitain after11 native normal counters leave has4 capital counters;
the later actual Guild eight-spice Treachery purchase gives Emperor4, Bank4,
and one deferred Banker grant.
Actual390px Bureaucrat **Redirect2** settles final Bank legs4/1, available
Atreides wallet11/front1. Ordinary city Collection separately makes wallet13;
the real last **Ready for next phase** enters Mentat and makes14/front0, with
one collection credit1. Browser errors empty; no root overflow. Private local
proof: `/tmp/dune-homeworld-banker-ui-proof.json`. The isolated actual CLI
`HWBANKQA v8` reaches original setup with income-v1 and occupation custody.
Existing games and databases are untouched.
Frozen related18-file union292/292, types/lint and app build pass. Build retains
the existing module-registration, chunk-size and route-classification warnings.
Evidence: `tests/fixture-homeworld-banker-income.ts`,
`tests/homeworld-banker-income.test.ts`,
`tests/homeworld-banker-transport.test.ts` and
`tests/homeworld-bank-payment.test.ts`. Comprehensive assurance, wider module
combinations, public starts and deployed acceptance remain open.
```sh
node --import tsx tools/start-prototype.ts --profile banker-income --homeworlds \
--db /private/local.sqlite --room ROOMCODE --version 7 \
--out /private/new-homeworld-banker-entry
```
## Classic Nexus income composition — 13 October 2026
`banker-income --nexus-cards` now connects the existing mandatory normal band