smoke: pick an AVAILABLE contract (non-DELIVER preferred), accept it through the UI (card flips ACTIVE, button disables), complete via API — scan loop for EXPLORE/FIND, BFS jump path for DELIVER — assert DONE and the reward landed in the hold. state: mission board deep-equal across the mid-run container restart.