Connect original selected-deck Discovery setup, optional Nexus/World/Skills/phase modules and physical card consumers through shared public capabilities. Retain Cunning revealed-location arrival, Sandtrout suppression, paid nested R/Harass and actual later Recruits revival. Preserve native trained-capture and unrelated-preview boundaries. Validation: frozen 15-file118/118, types/lint/build and six finite original-action/rendered-control programmes; four minimal legal policies. External smoke corrections changed no application source. Existing persistent notices also rechecked23/23. Full combinations, assurance and deployed acceptance remain open; no saved-game, restart or deployment operation.
326 lines
20 KiB
Markdown
326 lines
20 KiB
Markdown
# Harass & Withdraw development prototype
|
||
|
||
Updated 17 October 2026. This connects the physical card to battle plans,
|
||
private inspections, force returns, controls, AI and saved continuation. It does
|
||
not certify the complete independent card variant or a complete rules mode.
|
||
|
||
## Independent Discovery composition — 18 October 2026
|
||
|
||
Original selected36/38/50 cards now compose with Discovery7/8 and optional
|
||
Nexus, World/all14/phase modules. Real Jacurutu reveal/free entry and paid
|
||
shipment precede purchased R/Harass settlement; typed native fees and returns
|
||
retain existing policies. The [canonical source-bound programme](NEXUS_CARD_RULES.md#independent-cards-with-discovery--18-october-2026)
|
||
records actual later Recruits revival, focused proof and remaining limits.
|
||
This prototype does not certify full card/module combinations or complete modes.
|
||
|
||
## Original Skills/phase composition — 17 October 2026
|
||
|
||
Supported classic, selected E1/E2 and standalone/paired E3 all14/card profiles
|
||
retain original Tech3–6 Basic/Advanced and Advanced Strongholds2–6 without
|
||
World/Nexus/Discovery. Exact typed undialed returns, fixed/variable ownership,
|
||
fee-before-return funding and committed-only Suk stay. An earned Stronghold
|
||
funds eligible support, not personal cash or reserve fees; Harass is neither
|
||
free revival nor off-planet shipment and cannot accrue technology that way.
|
||
[Current471/471 composition and evidence](LEADER_SKILLS_RUNTIME.md#independent-cards-with-original-phase-modules--17-october-2026).
|
||
|
||
|
||
## Authority and interpretation
|
||
|
||
The [Ecaz card audit](ECAZ_TREACHERY_RULES.md) records the inspected physical face,
|
||
designer walkthrough and publisher rules. The [GF9 Ecaz & Moritani
|
||
rulebook](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf),
|
||
printed pp. 11 and 16, establishes the slot/category distinction, mandatory
|
||
after-use disposal and the restriction to the card user's undialed forces.
|
||
The [designer walkthrough at 9:11](https://www.youtube.com/watch?v=iF5E3-LOfhY&t=551s)
|
||
and [physical close-up at 4:28](https://www.youtube.com/watch?v=P9ZTV1uZqsM&t=268s)
|
||
establish reveal timing, opponent-Traitor cancellation, ordinary leader death,
|
||
Face Dancer protection for returned forces and the own-Homeworld prohibition.
|
||
|
||
Two implementation inferences are explicit:
|
||
|
||
- Withdrawal precedes weapon/explosion losses because it acts during wheel
|
||
reveal. Execution waits atomically for Traitor declarations so a successful
|
||
opposing call cancels the return without reversing a previous resource change.
|
||
No retrieved publisher FAQ directly answers the explosion combination.
|
||
- Discard the card after use even when its owner wins through a Traitor call.
|
||
The later card-specific instruction overrides ordinary winner retention,
|
||
using the same recorded precedence as [Planetologist](PLANETOLOGIST_RULES.md#mandatory-discard).
|
||
This is a specificity inference, not a dedicated Harass FAQ.
|
||
|
||
Planetologist's existing inspection answers remain unchanged. Ecaz's explicit
|
||
instruction to report no weapon/defense is not silently extended to other
|
||
slot substitutions.
|
||
|
||
## Provisional Stone Burner timing — 16 October 2026
|
||
|
||
The standing 14 October choose-recommended instruction selects the
|
||
post-withdrawal comparison for the development prototype. The earlier question
|
||
remains unanswered; this is an implementation interpretation, not a new
|
||
publisher ruling or a user answer. The Harass face/designer reveal timing above
|
||
and [Stone's physical undialed-token instruction](STONE_BURNER_ENGINE_AUDIT.md#primary-evidence-and-exact-effect)
|
||
support treating returned reserves as no longer in the battle. A fresh text
|
||
lookup in the supplied Advanced PDF found no named Harass/Stone combined rule.
|
||
|
||
Normal Stone resolution compares counters left after successful Harass,
|
||
including same-plan and opposing holders and Mirror-copied Stone. A successful
|
||
opposing Traitor cancels the withdrawal; its validated outcome still wins before
|
||
Stone scoring. Allocation choices and original dial/support legality remain
|
||
mandatory. No return, fee, casualty or card disposal executes twice.
|
||
|
||
Active Occupy returns only the actual card user's pool. Ecaz Harass removes
|
||
the original fixed undialed `floor(E/2)`, leaving the ally variable remainder;
|
||
ally Harass removes variable undialed counters, leaving fixed Ecaz undialed
|
||
forces. Original mandatory `ceil(E/2)` commitment and native ally support stay.
|
||
Canceled Occupy uses its lead's ordinary own pool.
|
||
|
||
Precommit checks use public configuration and selected lead, never a hidden
|
||
opponent Harass/Stone card. If an opposing Ecaz lead may withdraw its fixed
|
||
remainder, each revealed alternative must have an allocation-invariant winner;
|
||
different alternatives may legitimately have different winners. Actual controls
|
||
label post-withdrawal counts as conditional on no opposing successful Traitor.
|
||
|
||
## Connected behavior
|
||
|
||
Use the existing independent Ecaz card development setup. All three cards enter
|
||
the physical deck before genuine Basic or Advanced setup; selecting Ecaz alone
|
||
does not enable this variant. The owner may place Harass in either card slot.
|
||
It supplies no weapon attack or defense, cannot occupy both slots, and cannot
|
||
supply the actual opposite category needed by Chemistry or Weirding Way's
|
||
alternate role. Ordinary leader and Voice requirements remain in force.
|
||
|
||
Atreides receives a category-null answer without learning the physical card's
|
||
identity. The owner can retain a slot-only card after that answer. The sealed
|
||
plan still contains its exact ID. Complete-plan inspection reveals the actual
|
||
physical plan; Truthtrance's existing literal slot-occupancy promises keep their
|
||
meaning. An empty-category answer is not a promise that the physical slot is empty.
|
||
|
||
The shared physical quote validates dialed counters from `casualtyOptions`, then
|
||
returns the undialed normal and elite counters to their owner's reserves. The
|
||
leader resolves normally. An opponent's successful Traitor call, including mutual
|
||
calls, cancels withdrawal. Returned reserves are outside subsequent board losses
|
||
and Face Dancer replacement. Harass is discarded once and excluded from ordinary
|
||
winner retention and Moritani ally retention.
|
||
|
||
Both selectors enforce the complete pair in either selection order. The private
|
||
guide explains unique returns or the later revealed allocation choice. The
|
||
[physical allocation follow-up](HARASS_ALLOCATION.md) connects typed and sector
|
||
selection after reveal, with exact committed winner losses. All four AI
|
||
profiles use the same physical quote and category-aware inspection comparison;
|
||
the card adds no fictitious weapon or defense value. Stronger profiles value
|
||
saved forces when expecting defeat and discourage use when expecting to win.
|
||
This is a legal strategy path, not strength calibration.
|
||
|
||
## Own No-Field composition — 16 October 2026
|
||
|
||
Under standing choose-recommended, this prototype preserves the existing native
|
||
materialization-first order: both plans seal, the original No-Field reveals at
|
||
its actual sector and materializes `min(value, current reserves)`, then Harass
|
||
chooses/returns actual undialed ordinary counters. It never returns a concealed
|
||
marker or resets token/last-shipment history. This is an explicit composition
|
||
of reveal-time instructions, not a newly retrieved combined publisher FAQ.
|
||
|
||
Before commitment, the owner's private force and location quote includes those
|
||
prospective ordinary counters without mutating reserves, board or token. Marker0
|
||
still permits leader/cards; reserve shortage caps the actual materialization.
|
||
Mixed ordinary/marker sectors choose a complete return only after revelation.
|
||
An opposing successful Traitor cancels Harass, not the native marker reveal.
|
||
Original fixed Ecaz and variable ally pools remain owner-labelled.
|
||
|
||
In a supported same-plan Reinforcements profile, the original reserve fee must
|
||
remain funded **after native marker materialization and before Harass returns**.
|
||
Token3/reserves3 therefore cannot seal Reinforcements, even if a later return
|
||
would refill reserves. The same owner may still use Harass alone. Token3/
|
||
reserves6 can materialize3, pay original3, then return its undialed counters.
|
||
Preview facts are owner-only and add no persisted Game field.
|
||
|
||
The [Advanced mixed Occupy extension](RICHESE_NO_FIELD_RULES.md#mixed-native-occupy-pool--16-october-2026)
|
||
also combines original ordinary counters with actual marker materialization.
|
||
Selected Ecaz still returns only its own fixed-pool undialed counters; selected
|
||
Richese returns only its actual ordinary-plus-revealed variable counters.
|
||
Original mandatory Ecaz losses and post-reveal reserve funding do not change.
|
||
|
||
### Scoped native proof
|
||
|
||
The34 new genuine-shipment cases pass; the frozen17-file related union
|
||
passes210/210, with types/lint and application build. Zero and reserve-capped
|
||
markers, both slots, mixed-sector full allocations, real Traitors, original
|
||
fixed/variable owners, first-plan funding rejection and component history are
|
||
covered. Build retains existing module-register, chunk-size and route warnings.
|
||
|
||
Sixteen fresh native programs across all four policies accept48 continuation
|
||
actions. Four styled390px journeys pass without overflow or browser/application
|
||
errors: mixed Basic returns3 marker-sector plus1 other-sector counters and
|
||
loses2; Advanced zero plays the card without invented counters; deficient
|
||
Occupy keeps Reinforcements and legally returns3 with Harass; funded Occupy
|
||
materializes3, pays3, returns2 and loses its original1 variable counter.
|
||
The latter has Richese reserves2/Tanks4 and Ecaz Tanks3, preserving original
|
||
fixed losses. Both co-side journeys finish the actual CHOAM market and clear
|
||
battle/decision into phase7. Owned hosts/tabs/scaffolds were removed; no human
|
||
game, D1, deployment or new recovery campaign changed. Full acceptance remains.
|
||
|
||
## Classic Homeworld reserve routing — 16 October 2026
|
||
|
||
Fresh `--profile ecaz-treachery --homeworlds` selects the independent three
|
||
physical cards before original classic2–6 Basic/Advanced setup: base33+3.
|
||
Harass composes on Arrakis and foreign Homeworlds. The printed own-World
|
||
prohibition remains, including both Advanced Emperor Worlds. Original
|
||
Tech/Advanced Strongholds now follow the [classic World phase contract](ECAZ_TREACHERY_RULES.md#classic-world-phase-module-composition--16-october-2026).
|
||
Selected E1/E2 Worlds use the [native setup contract](ECAZ_TREACHERY_RULES.md#native-selected-family-world-composition--17-october-2026)
|
||
and [original phase-module composition](ECAZ_TREACHERY_RULES.md#native-world-phase-modules--17-october-2026);
|
||
other rosters/overlays, public starts and save conversion remain closed.
|
||
Recruits has a separate
|
||
[native current-rate composition](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026);
|
||
Reinforcements now uses an
|
||
[exact native fee before these returns](REINFORCEMENTS_RUNTIME.md#classic-homeworld-reserve-fees--16-october-2026).
|
||
This is not certification of the entire three-card variant.
|
||
|
||
Arrakis returns remove exact ordinary/elite board counters and use the
|
||
existing native reserve deposit quote. Foreign-World returns atomically
|
||
withdraw the selected visitor pool and deposit into the actor's native
|
||
reserves, rather than inventing `Player.forces` World keys or counting deaths.
|
||
Basic keeps original typed counters at its one primary World. Advanced
|
||
Emperor ordinary counters go to Kaitain and Sardaukar to Salusa; other actors
|
||
use their primary. Reusing that native destination rule for Harass is explicit
|
||
composition, not a new Harass-specific FAQ or a new answer to the earlier
|
||
separate Nexus reserve-placement question.
|
||
|
||
The sealed physical commitment/support and original force-role snapshot
|
||
remain fixed. Returning population updates subsequent native observations,
|
||
not this battle's score or support. The existing Homeworld loss commitment
|
||
now retains Harass's `fullyCommitted` bit: no smaller strength-equivalent
|
||
casualty group can be selected after its complement already returned. The
|
||
remaining physical pool is still validated. This adds no Game root field;
|
||
old non-Harass commitments remain unchanged. Other mid-battle population
|
||
guards, including the separate Ghola threshold question, remain.
|
||
|
||
Original native-only Traitor/Face Dancer authority and late-defense/explosion
|
||
controls remain. Invaders no longer receive an illegal Traitor button; their
|
||
owned late defense still follows the native decision. Successful opposing
|
||
Traitor cancels the return. Returned counters stay outside native casualties,
|
||
revival ledgers and subsequent Face Dance; mandatory card disposal remains.
|
||
Canonical World names label the after-reveal typed allocation.
|
||
|
||
### Scoped Homeworld proof
|
||
|
||
Both modes complete original independent36-card setup with native custody and
|
||
five physical Sardaukar; the custody appears after the real setup decisions,
|
||
not at the earlier undealt snapshot. The foreign-World regression fixture ships
|
||
3 normal plus4 elite, leaving low Salusa and an ambiguous paid typed dial.
|
||
This avoids pretending a unique free-Sardaukar commitment needs a manual choice.
|
||
|
||
Four actual390px journeys reach original Collection with battle/decision/loss
|
||
frames clear: Basic foreign loss, Advanced foreign win, Advanced Arrakis
|
||
Salusa1→4 and own-Salusa prohibition with a plain legal plan. The first three
|
||
select2 normal/3 elite returns, preserve the original2-counter commitment and
|
||
end Emperor reserves18/Tanks2, elite reserves4/Tanks1. Basic deposits both
|
||
types on Kaitain; Advanced splits14 normal Kaitain/4 Sardaukar Salusa. Original
|
||
Advanced support1 still costs1. Own-Salusa offers no Harass slot, keeps its card
|
||
unplayed, and completes the native-only vote without an invader action.
|
||
|
||
The World winner regression exposed a lost `fullyCommitted` receipt bit:
|
||
revalidating all smaller strength-equivalent loss groups stalled the accepted
|
||
selected complement. Retaining/filtering the original commitment fixes that
|
||
path without weakening physical-pool checks. Fixture wallets now distinguish
|
||
original advanced Collection income and losing/mutual-Traitor support from a
|
||
sole winner's waiver. Incidental receipt/default/log-text assertions and an
|
||
older obsolete Stone/validated-Traitor ambiguity expectation are removed, not
|
||
re-pinned.
|
||
|
||
Sixteen fresh programs/four policies accept36 allocation/vote/own-plan
|
||
continuation actions and validate native precommit proposals; normal, explosion
|
||
and own-World alternatives reach phase7. CLI help executes and the generated
|
||
guide imports with36 evidence paths/source anchor valid; five Harass facets and
|
||
both coverages remain Partial. No overflow/application exception; initial Vite
|
||
optimization aborted four old dependency requests before rendered journeys.
|
||
Owned hosts/tab/scaffolds were removed. These are native setup/shipment/control
|
||
programs, not full unstaged modes, new recovery assurance or deployed proof.
|
||
|
||
Final frozen proof:23 new regressions, related27 offline files246/246,
|
||
types/lint and app build pass. Existing build deprecation/large-chunk/Unknown
|
||
route warnings remain; no HTTP or database boundary changed.
|
||
|
||
## Current boundaries
|
||
|
||
- Basic and Advanced now support explicit ordinary/elite and sector allocation
|
||
after reveal. Unique returns are automatic; previously valid legacy battles
|
||
retain unique-only derivation. See the [allocation contract](HARASS_ALLOCATION.md).
|
||
- Clean classic Homeworlds use the [native reserve-routing contract](#classic-homeworld-reserve-routing--16-october-2026).
|
||
Classic or selected Ix/CHOAM rosters, including Worlds, may retain
|
||
[original Tech3+ and Advanced Strongholds2+](ECAZ_TREACHERY_RULES.md#native-world-phase-modules--17-october-2026).
|
||
All14/card profiles without Worlds now retain those original phase modules.
|
||
World+Skills, Nexus/Discovery and broader combinations retain their guards.
|
||
- Richese card-family configurations now admit Harass under the
|
||
[provisional post-withdrawal policy](#provisional-stone-burner-timing--16-october-2026).
|
||
The ordinary invariant-allocation guard remains. Clean selected Ix follows
|
||
the [separate priority contract](MIRROR_WEAPON_ENGINE_AUDIT.md#clean-selected-ix-composition--16-october-2026);
|
||
other profile/module limits, public starts and played-game retrofit stay gated.
|
||
Own concealed No-Field use follows the
|
||
[materialization-first contract](#own-no-field-composition--16-october-2026).
|
||
Other profile/module boundaries remain unchanged.
|
||
- Unsupported co-present armies and Basic mixed markers remain guarded.
|
||
Supported native Basic/Advanced [Occupy](ECAZ_OCCUPY_RULES.md#paired-native-skills--17-october-2026)
|
||
returns only actual card-user forces: original fixed Ecaz commitment or the
|
||
selected ally's native variable commitment. It never returns the other ally
|
||
or recomputes mandatory fixed losses from the diminished board.
|
||
- [Bounded Reinforcements](REINFORCEMENTS_RUNTIME.md) may appear in the opposing
|
||
or the same supported Battle Plan. Same-plan use provisionally pays the
|
||
original reserve quote before returning undialed counters; a future return
|
||
cannot fund or change that cost. Both prototypes retain their separate
|
||
provisional outcome interpretations. See the
|
||
[combined policy](REINFORCEMENTS_RUNTIME.md#combined-utility-plan--16-october-2026).
|
||
|
||
## Scoped interaction proof — 16 October 2026
|
||
|
||
- The affected thirteen-file offline union passes **161/161**, including
|
||
Stone/Harass pure and native battle cases, original fixed/variable Occupy,
|
||
typed/sector returns, Mirror retention and Traitor cancellation. Types/lint
|
||
and production build pass; build retains module-register, large-chunk and
|
||
Unknown-route warnings.
|
||
- Eight genuine Richese/classic Basic/Advanced same-plan policy programs
|
||
exercised all four profiles and24 accepted continuation actions. This is
|
||
minimal legal participation, not strategic calibration.
|
||
- Two actual styled390px table journeys used original native controls from
|
||
before plan commitment through winner retention and collection. Basic
|
||
Harass dial2 returns3, leaving0 versus Stone dial4's1: defender wins, the
|
||
two committed attackers reach Tanks, and Harass discards once. Advanced
|
||
dial2/support1 exposes the actual typed choice; selecting one elite
|
||
commitment returns three ordinary counters, charges support once30→29,
|
||
kills both original leaders and awards bounty11. Stone winner keeps its
|
||
physical card and the original battle/decision clears. Conditional revealed
|
||
counts and the provisional warning are visible; no root overflow or
|
||
application/browser error occurred in the corrected host's journeys.
|
||
- Native fixtures exposed two driver assumptions: a Richese Bidding lot can
|
||
exist without an ordinary row, and shared preparation still needs its actual
|
||
ready actions. Both now follow native controls. Bounty is compared between
|
||
paired modes rather than pinning a wallet before automatic collection.
|
||
- Current reference parses;33 evidence paths across both topics resolve and
|
||
all ten checklist facets remain Partial. Runtime artifacts stay outside Git.
|
||
No human server, saved room, D1, deployment or public start changed. No new
|
||
broad, HTTP, recovery/privacy/custody assurance campaign ran.
|
||
|
||
## Historical verification and preservation — 14 September 2026
|
||
|
||
Focused rules, controls, AI and authenticated recovery suites record the exact
|
||
supported paths. Fixtures explicitly distinguish genuine variant setup from
|
||
later conserved battle staging. Independent review precedes final complete-game
|
||
samples and browser checks. Final commands and source fingerprints are retained
|
||
in the private checkpoint report and Git message; a sample does not certify
|
||
every faction or expansion combination.
|
||
|
||
The opening baseline contains 936 rooms and 1,959 seats. Every room and original
|
||
seat/recovery/entry/handover record survived the reported outage unchanged;
|
||
SQLite integrity and foreign-key checks passed. Browser refresh restored the
|
||
existing test seat. The server was reused without a reset or scheduled restart.
|
||
|
||
The isolated browser room used a genuine three-seat Emperor/Atreides/Tleilaxu
|
||
setup, followed by an explicitly conserved battle fixture. Actual controls
|
||
verified full-card inspection, the category-None answer, Defense-first selection
|
||
without a duplicate Harass or alternate Chemistry weapon, a one-force plan,
|
||
public reveal and the owner’s traitor decline. Four forces returned; one went to
|
||
the Tanks and the leader died. Opposing decisions completed through the engine,
|
||
including a genuine Face Dancer replacement of the other army. Refresh restored
|
||
the collection-phase state, exact private views and the single discarded Harass.
|
||
The private script’s first comparison failed only because its expected version
|
||
omitted the HTTP layer’s increment; the preserved failure was corrected without
|
||
changing production code or overwriting a game.
|