What to build: Implement System Gateway's 8 missing identities, minus any the audit flagged as vanilla (unlikely — identities rarely audit as vanilla). Per-card tickets are generated inside this directory when this ticket starts. Follow docs/adding-a-card.md (post-rewrite) for the definition of done.
Blocked by: 02 — vanilla audit sg; 05, 06, 07, 08 — sg backfill.
Status: fixed
2026-08-01: Of the 8 missing sg identities, 2 were already flagged vanilla: true by the audit (30076 The Catalyst, 30077 The Syndicate — both "Starter game only"), leaving 6 to implement. Per-card tickets generated as 11–16. Implemented 30001 René "Loup" Arcemont, 30010 Zahya Sadeghi, 30035 Haas-Bioroid: Precision Design, 30043 Jinteki: Restoring Humanity, 30051 NBN: Reality Plus, 30059 Weyland Consortium: Built to Last, each as one contiguous hook block in rust/netrunner-core/src/cards/sg.rs with a card_<code>_* test and implemented/has_tests flipped in game/cards_impl/sg.json.
Identities are never installed, so hooks that walked the rig could not carry them: five new registries key off state.<side>.identity.code instead — on_tag, on_access_trash, on_discard_phase_end, on_advance, identity_run_end (46 → 51 registries, 133 → 140 registrations, 72 → 78 cards). Two existing registries grew an identity lookup rather than a new registry: hand_size_bonus (via hooks::corp_total_hand_size) and on_score.
Engine changes behind them: a new engine::give_runner_tags that every tag-granting site now routes through, so Reality Plus fires once per taking-of-tags however many tags it gave; RunSummary.accessed_count for Zahya; a discard-phase-end trigger in pass_turn; an advance trigger in advance_card carrying the pre-advance counter count. Three new decisions (reality_plus, precision_design, zahya) with legal-action options, snapshot shapes, MCTS keys, action labels, rule-based AI policies, and static/game.js prompt entries. Zahya's "you may" is modelled as a real runner decision because the trigger is once per turn — declining leaves it unspent for a later, deeper run.
cargo test --workspace green at 121 (116 core + 5 ai-invariants; was 114) and .venv/bin/pytest green at 109. cargo fmt --check and cargo clippy --all-targets clean. sg is now 63 implemented cards; only ticket 10's remaining non-identity cards stand between the pack and full coverage.
2026-08-01: Review of commit a19c90d completed. Follow-up ticket 40 tracks the remaining Precision Design client hand-limit display mismatch; the ticket remains fixed.