Require executable action targets and post-onset responses in scoring
The current scorer accepts score(scenario("sensor_bias", 1), {"actions": [(100, "mark_sensor_invalid", {})], "damage": False}) as successful even though the command lacks both zone and sensor. Missing wheel/zone targets can likewise count, and a response before fault onset can be credited as solving the future fault.
Require the action's zone/sensor/wheel to match the injected fault, and require the first response time to be at or after fault onset. Simulator physics and FDIR behavior are unchanged.
Run python -B -m unittest test_decision_contract -v: both portable tests fail on the base revision and pass after the patch. They cover three missing-target action kinds plus a pre-onset counterexample and correctly targeted post-onset positive control. The original runtime.py CRLF endings are preserved. This is a scorer contract repair; it is not a rerun of the published 1,700-scenario result.
Base revision: 3538060dbb55f287d060820f7b7c42fe3487632d.