{
  "bundle_version": "v0.2.0",
  "result_schema_version": 2,
  "evidence_manifest_version": 2,
  "genieguard_version": "0.2.0",
  "git_sha": "d83dad2053cb1377676e39f2ff53fcc7c341c133",
  "created_at": "2026-02-21T13:31:01.946637+00:00",
  "python_version": "3.11.14",
  "platform": "Linux-6.11.0-1018-azure-x86_64-with-glibc2.39",
  "result": {
    "gate_passed": true,
    "schema_version": 2,
    "before_metrics": {
      "deadlock_rate": 0.25,
      "win_rate_A": 0.6667,
      "win_skew": 0.1667,
      "exploit_dominance": 0.0
    },
    "after_metrics": {
      "deadlock_rate": 0.0,
      "win_rate_A": 0.499,
      "win_skew": 0.001,
      "exploit_dominance": 0.0
    },
    "selected_patch": {
      "patch_ops": [
        {
          "op": "remove_wall",
          "pos": [
            6,
            5
          ]
        },
        {
          "op": "move_flag",
          "team": "B",
          "to": [
            9,
            0
          ]
        },
        {
          "op": "set_param",
          "key": "capture_range",
          "value": 2
        },
        {
          "op": "set_param",
          "key": "deadlock_repeat",
          "value": 120
        }
      ],
      "rationale": "Break loop states and rebalance objective pressure with minimal structural edits.",
      "expected_effect": {
        "deadlock_rate": "down",
        "win_skew": "down",
        "exploit_dominance": "down"
      }
    },
    "paths": {
      "report_sample_html": "dist/report.sample.html",
      "demo_case_zip": "dist/demo_case_ctf10.zip",
      "evidence_sample_zip": "dist/evidence.sample.zip",
      "sample_run_dir": "dist/sample_run"
    }
  }
}