Status: fixed
What to fix: Review of tickets 09 and 10 found four rules/UI gaps not covered by ticket 39's card-selection decisions.
1. Above the Law (30060) — Its "you may trash 1 installed resource" decision currently offers only targets. Add an explicit decline action so the Corp can leave installed resources untouched.
2. Malapert Data Vault (30066) — Its R&D search is optional but the shared stack_search decision has only choose_search_card actions. Add a decline path that preserves R&D and correctly restores priority.
3. Clearinghouse (30061) — Offer its optional self-trash even at zero advancement counters. Trashing it for zero damage remains a legal choice and can clear a remote slot.
4. Haas-Bioroid: Precision Design (30035) — The engine uses the identity's effective hand limit, but server/serialize.py exposes the base corp.max_hand_size, so static/game.js displays an incorrect Corp discard count. Serialize or derive the effective Corp hand size for the client.
Definition of done:
cargo fmt --check, cargo clippy --workspace -- -D warnings, cargo test --workspace, and uv run pytest -q pass.
2026-08-01: Created from review of commits a19c90d and e194ac6. Ticket 39 already tracks Carnivore, Longevity Serum, Hansei Review, and Anoetic Void's unresolved card-selection choices.
2026-08-01: All four fixed. (1) Action::DeclineAboveTheLaw + engine::decline_above_the_law. (2) DecisionData::StackSearch gained an optional flag (true only for Malapert) and Action::DeclineSearch + engine::decline_search, which pops, restores priority and leaves R&D unshuffled. (3) Clearinghouse's turn-start window is pushed at any advancement count; the rule-based Corp AI declines explicitly at zero so its old play is unchanged. (4) server/serialize.py::_corp_total_hand_size derives the identity bonus, mirroring hooks::corp_total_hand_size. Both new declines go last in legal_actions so the first-legal-action AI fallback keeps its old behavior. Tests: three new Rust card tests (30060 decline, 30061 zero-counter trash, 30066 decline) plus two API serialization tests.