What to build: Implement 30066 — Malapert Data Vault. Card text: "Whenever you score an agenda from the root of this server, you may search R&D for 1 non-agenda card and reveal it. Add that card to HQ." Follow docs/adding-a-card.md for the definition of done: one contiguous hook block in rust/netrunner-core/src/cards/sg.rs, at least one card_30066_* Rust test, and implemented/has_tests flipped in game/cards_impl/sg.json.
Blocked by: 10 — implement sg remaining (this ticket's parent).
Status: fixed
2026-08-01: New ON_SCORE_IN_SERVER registry, fired from engine::score_agenda for every rezzed card left in the scoring server's root. The search reuses the shared card-search decision (a new "malapert" arm in engine::choose_search_card); the free card is always taken, the corp chooses which. server/serialize.py now shows a card search only to the side deciding it — the corp's R&D dig would otherwise have been rendered on the runner's screen. Landed with ticket 10.
2026-08-01: Ticket 40 — the search is a "you may", so DecisionData::StackSearch gained an optional flag and Malapert's dig now also offers Action::DeclineSearch (engine::decline_search): R&D keeps its cards and its order, and priority is restored the same way a pick does. Mandatory searches (Mutual Favor, Beta Build) are unaffected.