Connect Moritani Extortion through Mentat settlement

This commit is contained in:
Quintine committed 2026-09-29 14:43:59 +10:00
1 parent 88829b7057
commit 745e4fa8ab
19 files changed
+901 -55

No files matched your search

+12
View File
@@ -6,6 +6,18 @@ Expansion starts and full rules/publication acceptance remain gated.**
## Current checkpoint and work
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
once or decline. Payment removes the revealed token; all declines rotate it
back into hidden supply. The [placement-first order](MORITANI_EXTORTION_RULES.md)
was selected by the user, not sourced as a publisher priority ruling. Public
notices hide the current payer's affordability from other seats. Owner controls,
legal AI, JSON/SQLite CAS, nested Box/gift interruptions and a genuine late
Mentat Ambassador entry have focused coverage; each still settles before the
turn ends. Atomics/Aftermath and complete expansion starts stay gated. This
local change is not in the last verified live image below.
The live NAS Apps `dune` image is the immutable
`ghcr.io/quintine/dune:sha-c9a3625ff2a9ddafdbc08e64de809eca6029db85`
from successful container workflow `36358270534`. The public footer's title and
+35
View File
@@ -1,5 +1,40 @@
# Dune implementation status
## 28 September 2026 — Moritani Extortion saved Mentat continuation
The real Terror-entry reveal now reserves five bank spice without crediting
Moritani. Normal Mentat placement/relocation and any Karama response resolve
first by the user's explicitly selected interpretation; bank collection then
opens one saved storm-order offer for each other faction. The first three-spice
payment removes the physical revealed token and ends the queue; if all decline,
the return helper rotates all hidden supply identities. Insolvent and allied
players retain a decline, and neither the bank award nor a payment replays after
JSON reload or an SQLite compare-and-swap race. Public notice and owner-only
payment controls are connected; the minimal AI declines legally.
Independent review identified three concrete follow-ups, now corrected: the
current payer's affordability is private, Nullentropy Box and Richese gift
continuation frames retain the exact pending payment, and an Extortion
revealed by a real Guild Ambassador shipment after Mentat placement settles
before the turn changes. The focused entry/engine/SQLite/alliance/placement
suite passed 119 cases in eight files. A direct game-engine smoke revealed
Extortion at Moritani spice 12, reached placement before collection to 17,
then two AI payers declined and the revealed token returned under a different
hidden ID. Separately, an offline three-seat Basic Ecaz/Moritani game completed
in 110 accepted actions with two restores and no rejected bot proposals; that
sample did **not** draw the Extortion effect.
The local rules reference displayed the selected order and late-Mentat
continuation in Chromium; the production UI/room flow remains unverified.
After review corrections, `npm run build`, all 5,677 offline tests and all
54 HTTP integration tests against the local server passed. The required
TypeScript/lint umbrella check still cannot finish because a separate
concurrent untracked Fremen Nexus draft references a nonexistent
`Player.fremenNexusMovementBlockedTurn`; no Extortion diagnostic remains.
Atomics/Aftermath, mixed arrival reaction priority, complete faction games
and public expansion starts remain gated. See
[the publisher sequence and user selection](MORITANI_EXTORTION_RULES.md).
## 28 September 2026 — all-expansion Homeworld/Nexus samples
The offline combined audit setup can also enable genuine Homeworld custody with
+8 -5
View File
@@ -1,6 +1,6 @@
# Moritani Extortion: sequence and payment
Bounded primary-source audit, 2026-09-06. No runtime edits or live-room actions were performed.
Initial primary-source audit, 2026-09-06; placement-first implementation interpretation selected by the user on 2026-09-28. No live-room action was performed for this rule work.
## Confirmed sequence
@@ -28,20 +28,23 @@ Current `g.order` is recalculated by storm movement and is not reordered by Guil
Do not silently auto-pass an insolvent player merely to shorten the queue if phase-independent effects can raise that player’s available spice before deciding. A visible pass/payment decision and payment-time balance validation avoid that assumption.
## Material Mentat ordering gap
## Mentat ordering: selected interpretation, not a publisher ruling
Moritani may also place or move one Terror token during Mentat. Neither the placement paragraph nor Extortion specifies their relative order. Recovering Extortion first can permit immediately placing it again; placement first cannot. This changes a substantive option and is not harmless UI serialization. No targeted official or written designer clarification was found. Keep this combination explicitly unresolved or apply a user-approved interpretation; do not infer priority from the engine’s current handler order. [GF9 Ecaz & Moritani, printed pp. 5–6](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf)
Moritani may also place or move one Terror token during Mentat. Neither the placement paragraph nor Extortion specifies their relative order. Recovering Extortion first could permit immediately placing it again; placement first cannot. No targeted publisher/designer clarification was found in the audited sources. **The user selected placement first on 28 September 2026.** Resolve the normal placement/relocation opportunity and its Karama response, then collect the deferred five-spice bank award, then offer the storm-order payment decisions. A recovered token cannot be redeployed during the same Mentat Pause. This is a table policy, not a newly discovered rule. [GF9 Ecaz & Moritani, printed pp. 5–6](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf)
There is likewise no retrieved complete priority rule against Mentat bribe collection, CHOAM’s effects or victory checking. The token’s **own** collection-before-payment sequence is explicit. The general placement/Mentat ordering is not. Current `beginPhase(8)` collects bribes and opens Moritani placement, while `finishMoritaniPlacement` may immediately check victory; neither path should bypass an unresolved Extortion obligation. CHOAM has a later end-phase continuation that must also preserve the obligation.
The token's **own** collection-before-payment sequence is explicit. This implementation preserves the existing Mentat bribe collection before placement, settles Extortion before the no-CHOAM victory check, and keeps CHOAM's later market/Mentat continuation after Extortion. Those cross-effect priorities are software compositions, not separately sourced publisher procedures.
A legal entry may reveal Extortion **during** Mentat after Moritani has already used the placement opportunity (for example, a revived force triggers an Ambassador's free shipment into Terror). Complete the committed entry and its interruptions first, then collect and offer payment before turn advancement. This is the same placement-first table policy applied to a late arrival, not a separate publisher priority ruling. Never let a pending reserve cross a turn boundary.
## Narrow persistence requirements
- Store the specific revealed Extortion token ID, owner, triggering turn and pending five-spice credit. Keep the deferred credit distinct from spendable spice before Mentat. A record separate from aggregate bribes makes once-only collection auditable.
- On Mentat collection, credit exactly five and mark it settled before any payer response. Reloads, failed transactions and nested Truthtrance must not award it again.
- Persist payer order and progress. A valid three-spice payment deducts the payer, credits Moritani and permanently settles non-recovery atomically; later player responses are stale. Declining the final payer returns the exact token once.
- A Nullentropy search or Richese gift can suspend the current payer decision. Validate and restore that exact saved decision through the existing continuation frame without losing the one-time collection or exposing the payer's affordability to other seats.
- Use the existing hidden-supply return helper when recovering. Its identity rotation avoids later linking a public Extortion identity to a newly hidden face. Do not restore the public revealed ID unchanged.
- Treat current-owner eligibility separately from the original entrant. Moritani may have changed allies since revelation; the original target alone is not the payment queue.
- No generic Karama cancellation of revelation/Extortion is stated by the E3 table. Keep existing Terror effect rules and the unanswered separate Mentat-order issue distinct.
- No generic Karama cancellation of revelation/Extortion is stated by the E3 table. Keep existing Terror effect rules and this explicitly selected Mentat-order interpretation distinct.
These are implementation recommendations, not newly asserted publisher procedures.
+6
View File
@@ -122,3 +122,9 @@ Ordinary native Assassination and bounded Sneak Attack now join Robbery and Sabo
## Enemy of My Enemy integration checkpoint
Acceptance/refusal, cancellation, hidden return custody, former-alliance cleanup, unused escrow refunds and AI/UI decisions are now implemented in an isolated draft. Mandatory unsupported effects still prevent an offer before announcement. `MORITANI_ENEMY_ALLIANCE.md` records source precedence and the pending clarification of Karama-before-reply timing. Full expansion starts remain disabled. The added alliance-formation turn also corrects the base next-turn departure deadline for newly allied co-occupants. Complete validation now includes873 unit and45 persisted/API tests.
## Extortion Mentat continuation — 28 September 2026
The earlier Extortion absence and unresolved-order checkpoints above are historical. The user chose normal Terror placement first (including any Karama response), then Extortion bank collection and storm-order payment choices. Revealing Extortion now reserves five bank spice without making it spendable; the placement opportunity closes before the five is credited. A first non-Moritani player's three-spice payment permanently removes the token. If every player declines, the existing return operation rotates all hidden supply IDs before Extortion can be placed on a later turn. The original triggering entry does not replay on reload, and CHOAM/victory continuations wait until the payment window settles. This placement-relative timing is a user interpretation, not a located publisher ruling; see [the exact source sequence and selected boundary](MORITANI_EXTORTION_RULES.md). Atomics/Aftermath and complete Moritani expansion starts remain gated.
Independent review repaired current-payer affordability disclosure and continuation custody for Nullentropy Box and Richese gifts. A real Advanced Homeworld Fremen Ghola return during Mentat triggered a Guild Ambassador shipment into Extortion **after** Moritani's placement; the bank award and payment window settled before the next turn. The late path does not justify opening full Homeworld/expansion combination gates.
+6
View File
@@ -27,6 +27,7 @@ Updated 14 September 2026. This is the authoritative navigation index for existi
| 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) |
| Moritani Advanced assassination preview | After an eligible battle loss, a different opposing-faction Traitor Card may be revealed even if its leader is already dead (zero bounty). Face-up set-aside and one private replacement occur during Mentat; one use per faction. Normal-call duration, uniform hidden-eligibility UX and exceptional combinations remain explicit. | [Runtime/source contract](MORITANI_ASSASSINATE_LEADERS.md) |
| Moritani Extortion at Mentat | The user selected normal Terror placement/relocation first, including any Karama response; only then collect the reserved five bank spice and approach other players in storm order for a possible three-spice payment. Payment removes the token; all declines recover it with rotated hidden supply IDs. The relative placement timing is a user-selected interpretation, not a publisher ruling. | [Publisher sequence and selected timing](MORITANI_EXTORTION_RULES.md#mentat-ordering-selected-interpretation-not-a-publisher-ruling) |
| Fremen/Ecaz final-turn victory | Reciprocal allied Ecaz and Fremen with fighters in Sietch Tabr do not block the Fremen special victory. Ecaz alone/non-allied or a third faction still blocks. The Habbanya extension remains unsupported; ordinary winner/prediction and fallback order are preserved. | [Explicit FAQ and runtime](ECAZ_VICTORY_RULES.md#fremen-final-turn-runtime-follow-up) |
| Truthtrance recorded knowledge | Questions compare an already recorded BG prediction, active submitted storm dial or actually known native Fremen forecast. Missing knowledge is unknown; only the aggregate answer is published. No future promise or unknown deck peek is created. | [Connected predicates and evidence](TRUTHTRANCE_KNOWLEDGE.md) |
| Nexus lifecycle | Twelve physical cards, phase draw/replacement and alliance forfeiture; native Cunning, absent-faction Secret Ally and Betrayal have separate effects. No blanket Karama immunity. | [Common source contract](NEXUS_CARD_RULES.md), [lifecycle runtime](NEXUS_CARD_RUNTIME.md) |
@@ -58,6 +59,11 @@ These are current observations, not future obligations; no typed distribution
is invented when Basic lacks separate starred-counter tracking. See the
[force-fact source composition](TRUTHTRANCE_FORCE_FACTS.md).
For future interactions with no publisher ruling discoverable after targeted research,
use the conservative recommended interpretation and document it as an implementation
choice rather than soliciting another preference. Earlier pending questions below
remain recorded until their relevant work is revisited.
## Pending interpretations: preserve existing questions
These are unresolved in the cited records. Do not infer an answer from elapsed time, a fixture, a related card or this index. Check subsequent recorded user/source decisions before proceeding; do not send duplicate questions.