# Mirror Weapon: source and engine integration audit Audited 6 September 2026 as a proposed contract. The 28 September bounded runtime now admits canonical Mirror in CHOAM/Richese-deck classic/CHOAM/Richese battles without optional combined modules; the hook map and former blockers below describe the earlier audit, not current inactive status. Richese expansion starts remain gated. **28 September ruling and runtime:** the user selected ordinary winner retention for the physical Mirror even when its copy activates Tooth or Artillery. This is an explicit product interpretation, not a located GF9 clarification. `game/effective-weapons.ts` keeps physical identity apart from copied attacks; the engine now connects copied Tooth/Stone choices, Stone comparison, custody, battle controls and legal AI in the bounded configuration. ## Primary evidence and a retention correction The actual face was visually reread at `/tmp/dune-rules/choam-mirror-reading.png`, alongside Stone Burner at `choam-stone-reading.png`. Both derive from the [physical-component photograph](https://cdn.anyfinder.eu/assets/QsUJtVktEC87xwK08oLlwnKyaozUWfuaLzG0LFEn67ENEEVgNrDGoITy3608Dqe7) recorded with its hash and limitations in `RICHESE_COMPONENTS.md`. This is publisher text visible on a physical component; the photographer, publication date and complete printing history remain unverified. No photograph is imported into the application. Mirror Weapon is one physical **Weapon / Special**, canonical ID `richese-mirror-weapon`. Its instruction is to commit it in a Battle Plan, copy the opposing revealed weapon only when that card actually counts as a weapon, and use the copy first when order matters. Its final instruction is “Discard after use.” It does not supply a target selector, a selection of arbitrary weapons, or another player's physical card. The [CHOAM & Richese rulebook](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf), pp4–6, establishes replacement Tooth/Artillery cards, one separate ten-card cache, and normal Treachery discard routing. Local publisher-text mirror: `/tmp/dune-rules/choam-lelekan-mirror.pdf` and `.txt`. Direct GF9 retrieval returned 403; fresh official indexed excerpts corroborated p4. Bounded official-domain Mirror searches yielded no card-specific clarification. **Winner disposal interpretation.** The [November 2020 FAQ](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf), p8, gives winning battle cards a general keep option even without printed retention wording. Page1 names used Tooth and Artillery as exceptions, including when their player wins; an unactivated winning Tooth can be kept. The printed Mirror face says “Discard after use” without a winner exception. The user chose to treat the copied attack as an effect, not a change of the physical Mirror’s identity: a victorious Mirror may be retained even after copying activated Tooth or Artillery. This is a product interpretation, not a GF9 erratum. Losing and mutual-loss cleanup still discard the physical Mirror. ## Weapon matrix Here “copy” means an effective attack belonging to the Mirror player, evaluated against the relevant defenses. It never changes ownership or identity of the opposing card. Descriptions of already supported attacks below map to `game/battle-cards.ts`; their base/Ix behavior is reused rather than replaced. | Opposing revealed selection | Mirror behavior and integration consequence | | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Ordinary projectile, including Ix Hunter Seeker | Effective projectile attack. Resolve against the other player's projectile defense. Both original and copied attacks apply; using the copy first does not make ordinary combat an alternating combat system. | | Ordinary poison, including Ix Basilia | Effective poison attack. Apply existing poison-defense behavior, including supported Portable Snooper. | | Lasgun | Effective Lasgun. Feed the effective weapon into explosion detection, not merely ordinary leader lethality. Any actual Shield/Shield Snooper involved still produces the existing territory-wide explosion unless traitors preempt it. | | Poison Blade | Copy both projectile and poison attack properties together. Do not ask the Mirror owner to select one. | | Weirding Way in the weapon slot | Copy its projectile weapon role. | | Chemistry in the weapon slot | Copy its poison weapon role. The opponent's pair must already be legal. Do not retroactively require the Mirror holder to possess the other defense that made the original Chemistry legal: Mirror is the committed weapon, and copies a card which already counts as a weapon. | | Weirding Way or Chemistry in the defense slot | Do not copy that defense. Inspect the opponent's actual weapon slot instead, which may contain another valid weapon or nothing. | | Poison Tooth | Copy the optional post-reveal attack, not the original owner's eventual answer. The Mirror owner chooses activation first, then the original owner chooses. Persist two separate choices. Reuse the established self-and-opponent attack evaluation; do not apply deaths between these declarations or count a leader death twice. An activated copy does not make the physical Mirror a Tooth for winner disposal. | | Artillery Strike | Copy the attack on both leaders, suppression of surviving leader strength, and no-bounty battle effect. Apply battle-wide suppression once, not twice. No extra mode choice is created. The physical Mirror retains the ordinary winner option. | | Stone Burner | The copied effect needs its own post-reveal choice before the original user's choice. Both effects use the existing undialed physical-token comparison. Either kill choice kills both leaders; one ignore choice cannot reverse that. Share the existing Stone casualty-feasibility and mode logic rather than substituting ordinary weapon kills. | | No weapon, or Worthless in place of a weapon | No effective attack. Mirror remains its physical committed Weapon / Special; an occupied slot alone is insufficient evidence of an opposing weapon. | | Reinforcements or Harass & Withdraw in place of a weapon | No effective attack from those cards. The [Ecaz/Moritani rulebook p11](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf) explicitly says they do not count as a weapon or defense. Their other effects are independent. | | A second Mirror | Not a reachable legal physical inventory: the verified collection has exactly one. Reject duplicated physical custody. A future variant adding another copy needs a cycle rule; do not invent an infinite recursion or pretend two copies become an ordinary attack. | The existing FAQ-backed defense distinctions must survive copying: Chemistry defense protects against Tooth; Snooper-style protection does not. Shield Snooper is a shield, while defensive Weirding Way is not; the latter does not protect against Lasgun or Artillery. Generic versus named Voice applies to actual declared roles. These distinctions are confirmed by November FAQ pp4–5,8–9 and [Ixian/Tleilaxu rules p11](https://www.gf9games.com/dunegame/wp-content/uploads/2020/09/IxianAndTleilaxuRulebook.pdf). Mirror should have a named Special-weapon Voice identity before revelation, not be classified using the opposing hidden weapon. ## Preserve declarations, transform only effective resolution 1. Admit **only the strict canonical Mirror** as a weapon. Do not admit every `kind: 'special'` card. Mirror can support Weirding Way's alternate defense role because it is a real weapon even if it ultimately copies no attack. 2. Keep the original committed weapon ID in plans, ordinary Atreides prescience, whole-plan insight and Truthtrance promises. Revealing Mirror to Atreides is revealing Mirror, not revealing a future synthesized opposing weapon. Do not perform a hidden two-plan lookup in a public or owner-only projection. 3. After both plans actually reveal, derive an effective descriptor from those revealed physical faces and selected slots. A suitable pure helper is `resolveBattleWeapons({attacker:{weapon,defense},defender:{weapon,defense}})`. Each descriptor should retain `physicalId`, `copiedFrom` or null, effective attack kind, any post-reveal choice, and ordering dependencies. Do not overwrite a Card's name/kind/ID to make existing helpers accidentally work. 4. Bind any new choice queue to the battle event. With a copied Tooth or Stone Burner, order the Mirror choice before the corresponding original choice, irrespective of storm order. Use ordinary existing order where no copy dependency exists. Exact repeated submissions must not repeat a choice, random effect, casualty or payment. 5. Resolve traitors and explosion precedence, then calculate ordinary or special battle effects. Copy-first is not permission to skip the second ordinary weapon because its leader would die. Existing ordinary battle rules allow both leaders to die. 6. Derive retention from **physical card identity plus actual effect use**, separately from attack descriptors. Used-card lists, discard, Moritani retention, winner optional disposal, private hand custody and public inspectors must continue to refer to the physical Mirror, never to a second copy of the opponent's card. ## Concrete current hook map | Location | Required change before activation | | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `game/battle-cards.ts`: kind arrays, pair/Voice helpers | Introduce strict identity-aware weapon admission and declared-role matching. Existing `WEAPON_KINDS.includes(card.kind)` cannot recognize a canonical Mirror transported as `special`. Avoid changing every Special's role. | | `engine.ts`: `validatePlan`, `findReachableBattlePlan`, `feasiblePrescience` | Use the same legal weapon admission. Preserve physical IDs and promised slots in all plan searches; a selector-only change would leave authoritative plans impossible. | | `nextRevealedDecision` | Currently detects physical `poisonTooth` and iterates storm order. It misses a copy entirely and orders it incorrectly. Replace or extend with a persisted effective-choice queue. | | `resolveBattle`: explosion and `battleCardEffects` | The existing effective descriptor already feeds explosion and ordinary attacks. Extend Stone comparison, copied mode ownership and full outcome through that same descriptor; never substitute a physical copied card. | | `canRetainBattleCard` and Moritani cleanup | Keep a shared physical cleanup policy. Do not turn the Mirror into a disposable physical Tooth: the user selected ordinary winner retention even for an activated Tooth or Artillery copy. | | `game/bots.ts`: plan candidates, `weaponKills`, `battleCardEffects`, Tooth decision | Use legal physical candidates and effective attacks only from legitimately known plans. A hidden opposing hand is not an AI input. Handle ordered post-reveal copy decisions with the same effect evaluator. | | Battle plan, revealed components and Rules presentation | Name and inspect the original Mirror. An additional public description can name the copied revealed weapon after both plans reveal. No extra acknowledgement is needed for a deterministic copy. | Portable Snooper is concurrently being integrated by the parent. Consume its final shared effective-defense helper and supplemental public defense state; do not duplicate or replace that work. ## Genuine unresolved boundaries and recommended scope **20 September admission review:** the ordinary-copy arithmetic remains useful, but cannot alone open a genuine setup. CHOAM's Treachery deck supplies Poison Tooth and Artillery even without Ix, while the full Richese cache supplies Stone Burner. A public configuration gate therefore cannot isolate ordinary copies. Do not remove physical cards or manufacture a restricted deck to claim complete-game support. The user's copied-disposal interpretation removes that specific blocker. The bounded engine now admits Mirror with physical-card custody, public Stone feasibility and copied-choice event checks; it does not certify combined expansion modes or complete Richese starts. - **Copied compulsory disposal:** the physical Mirror follows ordinary winner retention even if it copies activated Tooth or Artillery, by the user's selected product interpretation. Keep physical identity separate from the effective attack and do not present this as a publisher ruling. - **Stone Burner composition:** the original Stone effect has a runtime foundation with a public precommit casualty-feasibility guard and one saved choice. A copied Stone needs the same feasibility for the Mirror holder without inspecting the opposing sealed plan, plus separate copy-first choice ownership. This is an outcome-integration problem, not uncertainty over whether Mirror copies a valid weapon. - **Higher modules:** inactive leader skills may modify attacks, defenses or card roles. No combined leader-skill certification follows from the matrix. Two physical Mirrors are outside the verified inventory rather than a normal supported interaction. ## Required verification before claiming the slice Tests should cover every matrix row in both attacker/defender positions; paired defenses; no-attack copies; Mirror plus defensive Weirding Way; named Voice and physical prescience/Truth commitments; Lasgun explosion including advisors/spice and traitor preemption; copied Tooth choice order independent of storm order; once-only global Artillery suppression; exact physical retention/discard policy after its ruling; Moritani eligible-card filtering; JSON restoration between reveal and choices; stale event rejection; and identical unauthorized projections with different opposing hands. Run all four AI profiles through a complete supported battle, including a Mirror with no useful copy, without an acknowledgement or deadlock. The earlier five-facet audit is superseded only for the bounded CHOAM/Richese-deck battle path. Combined expansion modules, leader-skill role changes, every historical save and full Richese-game acceptance remain outside this checkpoint. ## User-selected cleanup interpretation (28 September 2026) After a bounded source search, no GF9 passage was found that expressly applies Tooth/Artillery's named winner-discard exception to the physical Mirror. The user selected retention of a victorious Mirror regardless of those copied attacks. The original Tooth/Artillery cards retain their own mandatory-discard rules. The bounded runtime implements this physical-card distinction; it is not a publisher clarification or complete combined-mode acceptance.