Selector match coverage for every rule in rulesRun, in the same order.
This is the raw signal for distinguishing "ran and found nothing" from
"no rule matched anything in this model" — see
classifyRuleCoverage for the presentation-facing classification.
Populated by every engine-produced result (runClash, findDuplicates);
optional only so hand-built ClashResult fixtures in tests don't need it.
Selector match coverage for every rule in
rulesRun, in the same order. This is the raw signal for distinguishing "ran and found nothing" from "no rule matched anything in this model" — see classifyRuleCoverage for the presentation-facing classification. Populated by every engine-produced result (runClash,findDuplicates); optional only so hand-builtClashResultfixtures in tests don't need it.