{
  "business_contract_id": "inventory_receipts_v1",
  "business_contract_sha256": "ab7cd9e2880dde7d5c935b0f9873512a7b8bc954abd28c462eff527bb4f94fbc",
  "candidate_observed_parts": 20,
  "checks": [
    {
      "expected": 10,
      "name": "Old version is healthy before candidate rollout",
      "observed": 10,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": true,
      "name": "Retry across versions is idempotent",
      "observed": true,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": 20,
      "name": "Candidate v2 reads correct parts",
      "observed": 20,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": 20,
      "name": "Old v1 reads candidate-written records safely",
      "observed": 20,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": 20,
      "name": "Rollback preserves business quantity",
      "observed": 20,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": 2,
      "name": "Accepted receipt count did not change on retry",
      "observed": 2,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": 1,
      "name": "Stored legacy quantity has carton semantics (8e4f5546479d-old-1)",
      "observed": 1,
      "passed": true,
      "release_blocker": true
    },
    {
      "expected": 1,
      "name": "Stored legacy quantity has carton semantics (8e4f5546479d-new-1)",
      "observed": 1,
      "passed": true,
      "release_blocker": true
    }
  ],
  "disclaimer": "Only the named SKU and test event sequence were checked. Not a guarantee of universal rollback safety.",
  "expected_parts": 20,
  "failed_checks": [],
  "generated_at_utc": "2026-10-25T07:34:36.247668+00:00",
  "projections": [
    {
      "event_id": "8e4f5546479d-new-1",
      "parts_per_carton": 10,
      "quantity": 1,
      "quantity_parts": 10,
      "writer_version": "v2"
    },
    {
      "event_id": "8e4f5546479d-old-1",
      "parts_per_carton": 10,
      "quantity": 1,
      "quantity_parts": null,
      "writer_version": "v1"
    }
  ],
  "rollback_observed_parts": 20,
  "run_id": "8e4f5546479d",
  "scenario": "inventory-mixed-version-v1",
  "schema_version": "switchback.report/v1",
  "sha256": "374c1daaaec2b2a9382dd2e9b2da4848d26414020ac475a6a29d5df96d876c80",
  "sku": "SB8E4F5546479D",
  "source": {
    "commit_sha": "eef3d44d332a4ca93b8f06083ff1ab568072f7eb",
    "job_url": "https://gitlab.com/aidash-group1/switchback/-/jobs/17445996215",
    "merge_request_iid": null,
    "pipeline_url": "https://gitlab.com/aidash-group1/switchback/-/pipelines/2986086247",
    "ref": "main",
    "release_py_sha256": "e7ec2a348aed6d67a9ac6c5432c8d9b5ebb9ab2d032a46ba1b5aedf2dfe8d8ca",
    "resolved_strategy": "compatible"
  },
  "tested_strategy": "current",
  "trace": [
    {
      "operation": "old v1 accepts first carton",
      "response": {
        "accepted_parts": 10,
        "event_id": "8e4f5546479d-old-1",
        "replayed": false,
        "served_by": "v1"
      }
    },
    {
      "operation": "v2 candidate accepts second carton",
      "response": {
        "accepted_parts": 10,
        "event_id": "8e4f5546479d-new-1",
        "replayed": false,
        "served_by": "v2"
      }
    },
    {
      "operation": "v1 retries the candidate receipt",
      "response": {
        "accepted_parts": 10,
        "event_id": "8e4f5546479d-new-1",
        "replayed": true,
        "served_by": "v1"
      }
    },
    {
      "operation": "mixed rollout: v2 reads both receipts",
      "response": {
        "parts": 20,
        "receipts": 2,
        "served_by": "v2",
        "sku": "SB8E4F5546479D"
      }
    },
    {
      "operation": "mixed rollout: v1 reads v2 data",
      "response": {
        "parts": 20,
        "receipts": 2,
        "served_by": "v1",
        "sku": "SB8E4F5546479D"
      }
    },
    {
      "operation": "ROLLBACK: all inventory traffic returns to v1",
      "response": {
        "parts": 20,
        "receipts": 2,
        "served_by": "v1",
        "sku": "SB8E4F5546479D"
      }
    }
  ],
  "verdict": "ALLOW"
}
