{
  "intent": "Fix ProtonDB acceptance rule so gold+silver combinations are accepted, and add explicit skip-reason logging.",
  "scope": [
    "python_pkg/steam_backlog_enforcer/protondb.py",
    "python_pkg/steam_backlog_enforcer/scanning.py",
    "python_pkg/steam_backlog_enforcer/tests/test_protondb.py",
    "python_pkg/steam_backlog_enforcer/tests/test_scanning.py",
    "No changes to config, API clients, or other modules"
  ],
  "changes": [
    "Updated is_playable: both ratings must be >= silver AND at least one must be gold+",
    "Added unplayable_reason property returning terse diagnostic string",
    "Updated _pick_playable_candidate skip log to include unplayable_reason",
    "Added/updated tests for new acceptance rule and unplayable_reason"
  ],
  "verification": [
    {
      "command": "pre-commit run --files python_pkg/steam_backlog_enforcer/protondb.py python_pkg/steam_backlog_enforcer/scanning.py python_pkg/steam_backlog_enforcer/tests/test_protondb.py python_pkg/steam_backlog_enforcer/tests/test_scanning.py",
      "result": "pass",
      "evidence": "All hooks passed (trim whitespace, ruff, ruff-format, codespell, etc.)"
    },
    {
      "command": "pytest python_pkg/steam_backlog_enforcer/tests/",
      "result": "pass",
      "evidence": "63 passed, 0 failed"
    }
  ],
  "risks": [
    "Games with gold+silver were previously rejected; they will now be assigned — intended behaviour change"
  ],
  "rollback": [
    "Revert is_playable to require both ratings to be gold+",
    "Validate with pytest python_pkg/steam_backlog_enforcer/tests/"
  ]
}
