Add prepayment Guild rate Karama response
This commit is contained in:
1 parent
745e4fa8ab
commit
8a23b5ccd2
17 files changed
+567
-21
No files matched your search
@@ -6,6 +6,19 @@ Expansion starts and full rules/publication acceptance remain gated.**
|
||||
|
||||
## Current checkpoint and work
|
||||
|
||||
A bounded [Guild reserve-rate Karama path](GUILD_RATE_KARAMA_RULES.md#selected-ordinary-reserve-interpretation--28-september-2026)
|
||||
now interrupts a Guild or reciprocal ally's ordinary shipment before payment
|
||||
in classic Basic/Advanced tables without optional modules. Canceling the rate
|
||||
charges full price for the same forces and originally approved funding split.
|
||||
If that split cannot pay, the Karama is spent but the uncommitted shipment
|
||||
returns; its replacement uses full price until turn end. This withdrawal
|
||||
policy is a conservative implementation interpretation, not a publisher
|
||||
affordability ruling. Guild income and independently purchased Karama rates
|
||||
remain separate. Saved room/CAS recovery, a legal AI path and a local
|
||||
read-only browser preview of the cancel button and full-price replacement
|
||||
quote are connected. Cross-shipment, return and optional-module rate
|
||||
cancellation remain gated; this change is not in the verified live image.
|
||||
|
||||
Moritani Extortion now has a bounded local reveal-to-Mentat continuation:
|
||||
five bank spice stays reserved until Moritani finishes normal Terror placement
|
||||
and any Karama response; then non-Moritani seats in storm order may pay three
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
# Guild shipment rates and ordinary Karama
|
||||
|
||||
Bounded primary-source and engine audit, 2026-09-06. This records the missing cancellation contract; it does not activate a new rule or resolve the pending affordability choice.
|
||||
Initial primary-source and engine audit, 2026-09-06. The bounded ordinary-reserve cancellation policy below was selected on 2026-09-28 after a targeted publisher-source search found no affordability procedure; the later original audit remains historical evidence for unfinished transport and module combinations.
|
||||
|
||||
## Implemented payment follow-up
|
||||
|
||||
The shared contributor-income calculation and private Guild transport quotes are now integrated and verified. November2020 direct contribution routing now also credits a non-Guild ally’s contribution when Guild is the shipper; Guild’s own contribution still goes to the bank. This corrects the reverse-direction omission not identified in the original audit below. The source adjudication, 1,600-check checkpoint and browser evidence are in [GUILD_SHIPMENT_PAYMENTS.md](GUILD_SHIPMENT_PAYMENTS.md). It does not implement the unresolved cancellation/intent contract.
|
||||
The shared contributor-income calculation and private Guild transport quotes were integrated in the earlier payment checkpoint. November 2020 direct contribution routing credits a non-Guild ally’s contribution when Guild ships; Guild’s own contribution still goes to the bank. The source adjudication, earlier 1,600-check checkpoint and browser evidence are in [GUILD_SHIPMENT_PAYMENTS.md](GUILD_SHIPMENT_PAYMENTS.md). That checkpoint preceded the bounded rate-cancellation path below.
|
||||
|
||||
## Selected ordinary-reserve interpretation — 28 September 2026
|
||||
|
||||
In classic-faction Basic and Advanced tables without optional modules, Guild or its reciprocal ally declaring an ordinary reserve shipment at the Guild rate opens a **prepayment** Karama response. Advanced Guild's separate special shipment-stop decision resolves first. A Karama spent against the rate does not cancel Guild income, permission to ship, or an independent Karama-purchased discount. The original number and types of forces, destination and approved ally contribution are fixed while opponents respond.
|
||||
|
||||
If Karama cancels the rate, recalculate the same force shipment at the normal one/two-spice-per-force price. If the shipper and the **original approved split** can fund it, transfer that exact amount and then commit the original shipment once; another faction's pledge is never silently increased. Otherwise the declaration returns with no spice, forces or shipment allowance spent. The responding Karama is still discarded. A replacement ordinary shipment in this turn uses full price; the restriction expires at turn end. An independent purchased Karama rate remains separate. This is the recommended conservative software interpretation where the publisher does not prescribe the unaffordable outcome: no forced debt, retroactive cancellation or unauthorized ally charge. It is **not** an asserted GF9 timing/refund ruling. [GF9 November FAQ, p. 7](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=7)
|
||||
|
||||
Guild cross-planet and return shipments, optional-module rate sources, Homeworld advantages and special combinations still need their own integration; this first version does not certify the complete Guild faction or public Advanced rules.
|
||||
|
||||
## Confirmed source contract
|
||||
|
||||
@@ -38,9 +46,9 @@ The retrieved publisher sources do **not** state whether a declared shipment can
|
||||
|
||||
Likewise, no retrieved primary passage orders ordinary rate cancellation against Guild's Advanced shipment-stop declaration, a second payment-contributor choice, or a newly played independent rate card. The base Advanced Guild power stops a shipment; it is not the ordinary discount cancellation. Existing implementation's canceled-special-shipment settlement is already marked provisional and must not silently become authority for this new case.
|
||||
|
||||
A pre-payment declaration window is a safe software architecture for applying the printed price effect without undoing arrival. Its exact user-visible sequencing remains implementation composition. Parent has asked the user about the unaffordable outcome; this audit does not supply that answer.
|
||||
For the bounded ordinary reserve path, the user’s later instruction to choose the conservative recommended option where no publisher ruling exists is applied above. Other transport, repeated-declaration and combined-response questions retain the source boundaries below until connected.
|
||||
|
||||
## Current implementation findings
|
||||
## Initial implementation findings (before the bounded rate response)
|
||||
|
||||
- `ship` computes a valid discounted quote and exact typed reserve count. Its existing `pendingShipment` only pauses for Advanced Guild's special shipment-stop choice. Ordinary games call `commitShipment` directly.
|
||||
- `commitShipment` pays, transfers forces, marks shipment used and generates technology/arrival effects before opening `guildIncome`. That existing response can redirect income, but is too late for discount cancellation. Reusing it to reprice would require undoing already-settled effects and is unsafe.
|
||||
@@ -51,7 +59,7 @@ A pre-payment declaration window is a safe software architecture for applying th
|
||||
|
||||
Proposed intent fields are shipper ID, source kind and exact force groups, destination/sector, typed amounts/advisor stance, turn/phase, rate source, quoted costs, and chosen ally contribution. Record which one-use windows have resolved, so JSON resume cannot reopen a canceled discount or replay payments. Revalidate custody, legal destination, alliance and contribution before committing once. This is a software proposal, not a stored arbitrary Action or printed rule.
|
||||
|
||||
## Focused checks before integration
|
||||
## Initial focused acceptance targets
|
||||
|
||||
Cover own and allied reserve shipments at both destination prices; odd force counts; cross/return transport separately; free Fremen; independent Karama rates; explicit/default aid splits; Guild versus non-Guild contributors; separate income cancellation; nested Bene Gesserit Worthless conversion and cancellation; JSON reload/stale submissions; unchanged forces/payment/technology before settlement; and exactly one final commit. Include both sufficient and insufficient full-price budgets, but bind the latter tests only after the pending interpretation is selected.
|
||||
|
||||
|
||||
@@ -1,5 +1,42 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 29 September 2026 — bounded Guild rate Karama before payment
|
||||
|
||||
In classic-faction Basic/Advanced tables without optional modules, an ordinary
|
||||
Guild or reciprocal ally reserve shipment priced at the Guild half-rate waits
|
||||
for a Karama response before any spice or forces move. Advanced Guild's
|
||||
separate special stop resolves first. A canceled discount reprices the exact
|
||||
declared force cohort at full destination tariff without enlarging the
|
||||
original approved ally contribution. If that split cannot fund full price,
|
||||
the spent Karama withdraws the uncommitted shipment; a later ordinary
|
||||
declaration in the same turn uses full price. This conservative withdrawal is
|
||||
an explicit table policy, not an identified GF9 refund ruling. Independent
|
||||
Karama rates and later Guild-income cancellation remain distinct; Guild
|
||||
cross-shipment, return and optional-module combinations remain gated.
|
||||
|
||||
New focused engine tests cover physical custody, exact funding, unaffordable
|
||||
withdrawal/replacement and turn expiry, Advanced stop priority, BG Worthless
|
||||
conversion, legal AI, corrupt saves and validated unstamped Advanced saves.
|
||||
An in-memory SQLite room test exercises authenticated private views, restart,
|
||||
CAS race and duplicate cancellation. A direct non-test engine smoke showed
|
||||
20 Guild spice and 20 reserves held during response, then 17 spice, 17
|
||||
reserves, three Arrakeen forces and exactly one discarded Karama after JSON
|
||||
restore/cancellation. In a local read-only Chromium QA view, the cancel
|
||||
button was visible before payment; after unaffordable cancellation the
|
||||
replacement form quoted **two spice for two Arrakeen forces**, selected the
|
||||
existing two-spice ally pledge and enabled shipment. No live room was
|
||||
modified. Independent review identified and verified fixes for the quote
|
||||
projection and older unstamped Guild-stop declarations. This is a bounded
|
||||
prototype, not complete Guild or deployed evidence; see
|
||||
[the publisher distinction and selected policy](GUILD_RATE_KARAMA_RULES.md).
|
||||
|
||||
The focused Guild rate, existing Guild income, pending shipment and BG Karama
|
||||
group passed 43 cases in seven files. All 5,689 offline tests, the local
|
||||
client/server build and all 54 HTTP integration cases passed. `npm run check`
|
||||
stops in TypeScript on a separate concurrent untracked Fremen Nexus draft
|
||||
referencing missing `Player.fremenNexusMovementBlockedTurn`; the separate lint
|
||||
command reports only that same draft error. No source or saved room was reset.
|
||||
|
||||
## 28 September 2026 — Moritani Extortion saved Mentat continuation
|
||||
|
||||
The real Terror-entry reveal now reserves five bank spice without crediting
|
||||
|
||||
@@ -23,6 +23,7 @@ Updated 14 September 2026. This is the authoritative navigation index for existi
|
||||
| Source and readiness | Separate published rules, explicit implementation choices and unfinished interpretations; Advanced/expansion gates stay closed. | [Base/Advanced audit](BASE_ADVANCED_READINESS_20260907.md), [checklist](../game/reference.ts) |
|
||||
| Setup and Fremen movement | Preserve source-ordered setup and the distinct declared-movement cancellation; do not recreate fixed historical gaps. | [Setup contract](ADVANCED_SETUP_TEST_SEAM.md), [Fremen Karama](FREMEN_MOVEMENT_KARAMA_RULES.md) |
|
||||
| Guild payment | Rate, transport permission and income are distinct; power owner, shipper, contributors and independent rate-card beneficiary remain distinct. | [Rate/cancellation sources](GUILD_RATE_KARAMA_RULES.md), [implemented payment routing](GUILD_SHIPMENT_PAYMENTS.md) |
|
||||
| Guild discounted reserve shipment Karama | In bounded classic-faction Basic/Advanced tables, a separate prepayment response can cancel Guild’s or its ally’s half rate on an ordinary reserve shipment without canceling transport permission or income. The original authorized contributor split must cover full price; otherwise the Karama is spent but the uncommitted declaration returns and a replacement this turn uses full price. This conservative withdrawal is an implementation interpretation, not a found publisher procedure; independent Karama-purchased rates, cross-shipments and modules remain separate. | [Publisher distinction and selected ordinary-reserve policy](GUILD_RATE_KARAMA_RULES.md#selected-ordinary-reserve-interpretation--28-september-2026) |
|
||||
| Deferred shipment arrival | Quote unsupported ordinary arrivals before saving Guild interception. A validated legacy ordinary declaration may return unspent on the typed arrival error; corrupted declarations and special parent/card receipts are not silently cleared. This repairs continuation without deciding simultaneous reaction priority. | [Reproduction and bounded recovery](DEFERRED_SHIPMENT_ARRIVAL.md) |
|
||||
| Truthtrance | Current facts are boolean disclosures, not promises to preserve resources. Structured Basic and base Advanced active-opportunity shipment promises bind within their documented scope (Advanced excludes Guild and optional modules); prose is not automatically enforced. | [Spice facts](TRUTHTRANCE_SPICE_FACTS.md), [card facts](TRUTHTRANCE_CARD_COUNT.md), [shipment promises](TRUTHTRANCE_SHIPMENT_PROMISES.md), [remaining audit](TRUTHTRANCE_NONBATTLE_READINESS_20260907.md) |
|
||||
| Truthtrance hand categories | Count current physical hand custody by explicitly named primary role; alternate battle slots and faction powers do not reclassify cards. Only an aggregate answer is disclosed. | [Hand inventory](TRUTHTRANCE_HAND_INVENTORY.md) |
|
||||
|
||||
Reference in new issue
Block a user