Compose Guild Cunning with physical Ornithopter movement

Provisionally let either physical card mode replace an earned unused Hajr movement after the second shipment. Keep active group rights separate from actual completed credits and original movement counts. Add v3 original-count receipts while preserving old formats; abandon partial flights through a bound discard suffix before Cunning resumes. Connect persistent controls and minimal legal bot candidates.

Validation: frozen13-file125/125, types/lint/build and eight original-action/rendered-table continuations. Public ready/start, cache1/Hajr1 purchases, real worm/alliance/Guild Nexus draw and paid first2/second1 shipments cover both modes, earlier flights and Basic early endings. Eight minimal policy proposals are legal. No frozen repair; bounded continuation review found no concrete defect. New Semuta grammar lacks direct combined claim/capture proof. Wider combinations, complete modes, final assurance and browser/deployed acceptance remain open. No saved-room/reset/restart/deployment operation.
This commit is contained in:
Quintine committed 2026-10-18 13:10:12 +11:00
1 parent 7fe84ffbbd
commit 561152d58e
16 files changed
+887 -54

No files matched your search

+2 -2
View File
@@ -57,7 +57,7 @@ Search results concerning tournament house rules and the separate 2021 movie gam
**Movement remains bounded.** The second shipment does not grant an ordinary movement. Ending the first ordinary movement by declining it cannot leave an ordinary move available for newly shipped forces. The express exception is Hajr. If Hajr is played after the second shipment, retain the same active player until its optional legal extra move finishes or is declined. A previously played but unspent Hajr move can remain available under ordinary allowance composition; a Hajr move already consumed before the second shipment cannot grant a third move. Track the actual remaining allowance, not merely whether Hajr appears in a played-card list. A later move checks current ornithopter access normally.
The card does not establish how an independent Richese Ornithopter movement card combines with this exception or with earlier Hajr usage. Preserve the already documented [Hajr/Ornithopter boundary](RICHESE_ORNITHOPTER_ENGINE_AUDIT.md) instead of assuming a third/fourth move. Native city ornithopter range is a different matter from that physical Treachery Card.
The card does not expressly establish how the separate physical Richese Ornithopter combines with this exception. The [18 October provisional composition](NEXUS_GUILD_CUNNING_RUNTIME.md#physical-ornithopter-composition--18-october-2026) permits it to replace one earned unused Hajr allowance, retaining actual completed-group counts and no abandoned-group credit. This supersedes the earlier software exclusion; it is not a dedicated publisher ruling. Native city range remains a different ability.
**Separate native cancellations.** Cunning creates an enhanced native shipment allowance. Treating its declaration as a cancelable native enhancement is the common Cunning/general Karama composition. Cancellation consumes the attempted Nexus use but grants no second shipment and cannot undo the first shipment or completed movement. This is distinct from permitting a second shipment while canceling its discounted rate or its cross/return form. The base FAQ explicitly treats those native advantages separately; one generic cancellation must not silently choose all three outcomes. Existing rate/route cancellation limitations remain implementation work. Independent Karama shipment permission also has its own payment route; it must not silently authorize a second shipment after Cunning itself was canceled.
@@ -89,7 +89,7 @@ Preserve distinct settlement adapters: ordinary reserve shipment, `guildShip`, n
The pure [Cunning receipt module](../game/nexus-guild-cunning.ts) records the original combined-turn event, native Guild owner, turn, canonical faction roster, original shipment flag, original movement count and whether Hajr had been played. `createNexusGuildCunning` checks the unallied owner's active phase-five turn. `validateNexusGuildCunning` checks historical facts without reading current hands, resources, alliances or force custody. The engine owns the independently bound mutable lifecycle and second-shipment intent/receipt. Actual shipment custody and payment remain in their existing continuations. Do not clear a shipped flag as the sole source of the extra right, and do not use current hand membership as proof after spending the Nexus. Reconnect and uncertain responses must preserve one debit, one arrival and one consumed allowance.
`nexusGuildCunningMoves(receipt, currentHajrUsed, movesAfterSecond)` returns only the remaining Hajr extra allowance. Ending ordinary movement forgoes at least one ordinary slot, so original movement counts zero and one both permit at most one Hajr move; an original count of two permits none. A newly played Hajr supplies that same one extra slot, while losing a previously recorded Hajr or claiming more moves than that allowance rejects. This bounded helper excludes the separate physical Ornithopter-card composition; it does not reset or mutate the original movement counter. Its [pure tests](../tests/nexus-guild-cunning.test.ts) cover declined and used first actions, Hajr before and after, spent allowances, native ownership, exact signatures, JSON restoration and private-field getter traps.
`nexusGuildCunningMoves(receipt, currentHajrUsed, movesAfterSecond)` returns only the remaining Hajr extra allowance. Ending ordinary movement forgoes at least one ordinary slot, so original movement counts zero and one both permit at most one Hajr move; an original count of two permits none. A newly played Hajr supplies that same one extra slot, while losing a previously recorded Hajr or claiming more moves than that allowance rejects. That original v1 bound remains compatible. Counted v2 supports genuinely replayed Hajr; v3 additionally records actual completed physical Ornithopter credits through the optional fourth current-count argument. The engine retains unfinished-flight rights separately; the helper does not reset or mutate the original movement counter. Its [pure tests](../tests/nexus-guild-cunning.test.ts) cover declined and used first actions, Hajr before and after, spent allowances, native ownership, exact signatures, JSON restoration and private-field getter traps.
Integrated verification should exercise first shipment followed by moved/declined ordinary movement, all three second-shipment forms, Hajr before/after and already consumed, cancellation of only the selected native advantage, paid BG/entry continuations, native Homeworld routes, private offers, stale requests and actual SQLite restoration. Passing the pure receipt tests does not establish those engine or persistence behaviors.