ROW_FIELDS = {"instance": str, "classical_cost": int, "quantum_cost": int,
              "cost_unit": str, "quantum_feasible": bool}
def score_benchmark(card, win_threshold):
    errors = []
    if card.get("scenario") != "held-out routing benchmark" or not card.get("source_ids"):
        errors.append("scenario_or_sources")
    if type(card.get("test_frozen")) is not bool or type(card.get("tuning_minutes")) is not int:
        errors.append("freeze_or_tuning_type")
    if card.get("tuning_unit") != "minutes" or not card.get("test_frozen"):
        errors.append("freeze_or_tuning_unit")
    winners = []
    for row in card.get("rows", []):
        missing = [name for name, kind in ROW_FIELDS.items()
                   if name not in row or type(row[name]) is not kind]
        if missing or row.get("cost_unit") != "route-cost units":
            errors.append(row.get("instance", "row") + "_schema")
            continue
        winners.append("quantum" if row["quantum_feasible"] and
                       row["quantum_cost"] < row["classical_cost"] else "classical")
    wins = winners.count("quantum")
    decision = "invalid" if errors else ("retest" if wins >= win_threshold else "no-advantage")
    return {"decision": decision, "errors": sorted(set(errors)), "winners": winners,
            "quantum_wins": wins, "reported_tuning_minutes": card.get("tuning_minutes")}
card = {"scenario": "held-out routing benchmark", "source_ids": ["benchmarking-2025"],
        "test_frozen": True, "tuning_minutes": 47, "tuning_unit": "minutes",
        "rows": [{"instance": "route-a", "classical_cost": 101, "quantum_cost": 99,
                  "cost_unit": "route-cost units", "quantum_feasible": True},
                 {"instance": "route-b", "classical_cost": 108, "quantum_cost": 106,
                  "cost_unit": "route-cost units", "quantum_feasible": False},
                 {"instance": "route-c", "classical_cost": 95, "quantum_cost": 98,
                  "cost_unit": "route-cost units", "quantum_feasible": True}]}
base_result = score_benchmark(card, 2)
bad = {**card, "rows": [{key: value for key, value in card["rows"][0].items()
        if key != "quantum_feasible"}, *card["rows"][1:]]}
bad_result = score_benchmark(bad, 2)
improved = {**card, "rows": [*card["rows"][:2], {**card["rows"][2], "quantum_cost": 94}]}
improved_result = score_benchmark(improved, 2)
assert base_result["winners"] == ["quantum", "classical", "classical"]
assert bad_result["decision"] == "invalid" and "route-a_schema" in bad_result["errors"]
assert improved_result["decision"] == "retest" and improved_result["quantum_wins"] == 2
print(f"PASS: 67 benchmark base_wins={base_result['quantum_wins']} invalid={bad_result['errors']} counterfactual={improved_result['decision']} tuning={base_result['reported_tuning_minutes']}min")
