{
  "schemaVersion": "1.0",
  "workflowVersion": "1.0",
  "experimentId": "gk-contribution-api-acceptance-2026-10-04-v1",
  "startedAt": "2026-10-04T14:22:52.767Z",
  "finishedAt": "2026-10-04T14:22:54.266Z",
  "runtime": "v22.20.0",
  "base": "https://www.iamgeorgekelly.com",
  "userAgent": "iamgeorgekelly-ContentQA-contribution-api-acceptance/1.0",
  "measurementClass": "Internal acceptance QA; synthetic inputs; exclude from audience and independent-use interpretation.",
  "summary": {
    "contractPassed": true,
    "httpCases": 14,
    "httpPassed": 14,
    "expectedSuccessResponses": 8,
    "expectedRejections": 6,
    "callerCases": 5,
    "callerPassed": 5,
    "callerHeld": 4,
    "totalHttpRequests": 15
  },
  "contract": {
    "requestedAt": "2026-10-04T14:22:52.776Z",
    "receivedAt": "2026-10-04T14:22:52.990Z",
    "url": "https://www.iamgeorgekelly.com/openapi.json",
    "method": "GET",
    "status": 200,
    "headers": {
      "content-type": "application/json",
      "cache-control": "public, max-age=0, must-revalidate",
      "access-control-allow-origin": "*",
      "x-robots-tag": null,
      "link": null
    },
    "body": {
      "openapi": "3.1.1",
      "info": {
        "title": "George Kelly Contribution Calculator",
        "version": "1.0.0",
        "description": "Read-only arithmetic for commerce scenarios. No authentication, transactions, external data retrieval, or side effects. Use the same currency for every monetary input. GET query strings can appear in hosting or client logs; use the local browser calculator for sensitive figures."
      },
      "servers": [
        {
          "url": "https://www.iamgeorgekelly.com"
        }
      ],
      "paths": {
        "/api/tools/contribution": {
          "get": {
            "operationId": "calculateContribution",
            "summary": "Calculate contribution after advertising and explicit return ratios",
            "description": "All four parameters are required exactly once as non-negative decimal numbers, at most 1e12. Unknown, duplicate, empty, signed, exponent, and non-finite values are rejected. Excludes fixed overhead. Zero ad spend returns null spend ratios; non-positive pre-ad margin returns null breakEvenRoas. Calculations use JavaScript double precision. Inputs that underflow to zero or cause a non-finite output are rejected. No display rounding is applied to the JSON result.",
            "parameters": [
              {
                "name": "netRevenue",
                "in": "query",
                "required": true,
                "description": "Net revenue. Revenue after discounts and refunds, excluding sales tax.",
                "schema": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000000000000
                },
                "example": 1000
              },
              {
                "name": "costOfGoods",
                "in": "query",
                "required": true,
                "description": "Cost of goods. Cost assigned to the items sold.",
                "schema": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000000000000
                },
                "example": 550
              },
              {
                "name": "variableCosts",
                "in": "query",
                "required": true,
                "description": "Other variable costs. Other variable order costs not already included in costOfGoods.",
                "schema": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000000000000
                },
                "example": 150
              },
              {
                "name": "adSpend",
                "in": "query",
                "required": true,
                "description": "Advertising spend. Advertising spend for the same cohort.",
                "schema": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000000000000
                },
                "example": 200
              }
            ],
            "responses": {
              "200": {
                "description": "Calculated scenario, not a forecast or attribution claim",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "required": [
                        "formulaVersion",
                        "input",
                        "grossProfit",
                        "contributionBeforeAds",
                        "contributionAfterAds",
                        "revenueRoas",
                        "grossProfitReturn",
                        "contributionReturn",
                        "breakEvenRoas",
                        "contributionMarginBeforeAds",
                        "units",
                        "scope"
                      ],
                      "properties": {
                        "formulaVersion": {
                          "const": "1.0"
                        },
                        "input": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "netRevenue",
                            "costOfGoods",
                            "variableCosts",
                            "adSpend"
                          ],
                          "properties": {
                            "netRevenue": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1000000000000
                            },
                            "costOfGoods": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1000000000000
                            },
                            "variableCosts": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1000000000000
                            },
                            "adSpend": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 1000000000000
                            }
                          }
                        },
                        "grossProfit": {
                          "type": "number"
                        },
                        "contributionBeforeAds": {
                          "type": "number"
                        },
                        "contributionAfterAds": {
                          "type": "number"
                        },
                        "revenueRoas": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "A multiple, or null when the denominator is zero. Negative returns are possible."
                        },
                        "grossProfitReturn": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "A multiple, or null when the denominator is zero. Negative returns are possible."
                        },
                        "contributionReturn": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "A multiple, or null when the denominator is zero. Negative returns are possible."
                        },
                        "breakEvenRoas": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "Net revenue divided by contribution before ads when both are positive; otherwise null."
                        },
                        "contributionMarginBeforeAds": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "Contribution before ads divided by net revenue, as a decimal fraction; null when revenue is zero."
                        },
                        "units": {
                          "type": "string"
                        },
                        "scope": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "400": {
                "description": "Missing or invalid input",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "properties": {
                        "error": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "networkError": null,
    "failures": [],
    "passed": true
  },
  "httpCases": [
    {
      "id": "positive-control",
      "observation": {
        "requestedAt": "2026-10-04T14:22:52.991Z",
        "receivedAt": "2026-10-04T14:22:53.073Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=200",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 1000,
            "costOfGoods": 550,
            "variableCosts": 150,
            "adSpend": 200
          },
          "grossProfit": 450,
          "contributionBeforeAds": 300,
          "contributionAfterAds": 100,
          "revenueRoas": 5,
          "grossProfitReturn": 2.25,
          "contributionReturn": 1.5,
          "breakEvenRoas": 3.3333333333333335,
          "contributionMarginBeforeAds": 0.3,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "negative-contribution",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.073Z",
        "receivedAt": "2026-10-04T14:22:53.217Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=700&variableCosts=400&adSpend=200",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 1000,
            "costOfGoods": 700,
            "variableCosts": 400,
            "adSpend": 200
          },
          "grossProfit": 300,
          "contributionBeforeAds": -100,
          "contributionAfterAds": -300,
          "revenueRoas": 5,
          "grossProfitReturn": 1.5,
          "contributionReturn": -0.5,
          "breakEvenRoas": null,
          "contributionMarginBeforeAds": -0.1,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "zero-ad-spend",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.217Z",
        "receivedAt": "2026-10-04T14:22:53.278Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=0",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 1000,
            "costOfGoods": 550,
            "variableCosts": 150,
            "adSpend": 0
          },
          "grossProfit": 450,
          "contributionBeforeAds": 300,
          "contributionAfterAds": 300,
          "revenueRoas": null,
          "grossProfitReturn": null,
          "contributionReturn": null,
          "breakEvenRoas": 3.3333333333333335,
          "contributionMarginBeforeAds": 0.3,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "zero-revenue",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.278Z",
        "receivedAt": "2026-10-04T14:22:53.344Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=0&costOfGoods=55&variableCosts=15&adSpend=20",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 0,
            "costOfGoods": 55,
            "variableCosts": 15,
            "adSpend": 20
          },
          "grossProfit": -55,
          "contributionBeforeAds": -70,
          "contributionAfterAds": -90,
          "revenueRoas": 0,
          "grossProfitReturn": -2.75,
          "contributionReturn": -3.5,
          "breakEvenRoas": null,
          "contributionMarginBeforeAds": null,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "zero-pre-ad-margin",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.344Z",
        "receivedAt": "2026-10-04T14:22:53.402Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=700&variableCosts=300&adSpend=200",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 1000,
            "costOfGoods": 700,
            "variableCosts": 300,
            "adSpend": 200
          },
          "grossProfit": 300,
          "contributionBeforeAds": 0,
          "contributionAfterAds": -200,
          "revenueRoas": 5,
          "grossProfitReturn": 1.5,
          "contributionReturn": 0,
          "breakEvenRoas": null,
          "contributionMarginBeforeAds": 0,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "all-zero",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.402Z",
        "receivedAt": "2026-10-04T14:22:53.462Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=0&costOfGoods=0&variableCosts=0&adSpend=0",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 0,
            "costOfGoods": 0,
            "variableCosts": 0,
            "adSpend": 0
          },
          "grossProfit": 0,
          "contributionBeforeAds": 0,
          "contributionAfterAds": 0,
          "revenueRoas": null,
          "grossProfitReturn": null,
          "contributionReturn": null,
          "breakEvenRoas": null,
          "contributionMarginBeforeAds": null,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "decimal-inputs",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.462Z",
        "receivedAt": "2026-10-04T14:22:53.538Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=100.50&costOfGoods=55.25&variableCosts=15.25&adSpend=20.00",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 100.5,
            "costOfGoods": 55.25,
            "variableCosts": 15.25,
            "adSpend": 20
          },
          "grossProfit": 45.25,
          "contributionBeforeAds": 30,
          "contributionAfterAds": 10,
          "revenueRoas": 5.025,
          "grossProfitReturn": 2.2625,
          "contributionReturn": 1.5,
          "breakEvenRoas": 3.35,
          "contributionMarginBeforeAds": 0.29850746268656714,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "upper-input-bound",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.538Z",
        "receivedAt": "2026-10-04T14:22:53.607Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000000000000&costOfGoods=1000000000000&variableCosts=1000000000000&adSpend=1000000000000",
        "method": "GET",
        "status": 200,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "formulaVersion": "1.0",
          "input": {
            "netRevenue": 1000000000000,
            "costOfGoods": 1000000000000,
            "variableCosts": 1000000000000,
            "adSpend": 1000000000000
          },
          "grossProfit": 0,
          "contributionBeforeAds": -1000000000000,
          "contributionAfterAds": -2000000000000,
          "revenueRoas": 1,
          "grossProfitReturn": 0,
          "contributionReturn": -1,
          "breakEvenRoas": null,
          "contributionMarginBeforeAds": -1,
          "units": "Use the same currency for all monetary inputs and outputs. Returns are multiples; contributionMarginBeforeAds is a decimal fraction.",
          "scope": "Arithmetic scenario only; excludes fixed overhead and does not establish incrementality."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "missing-ad-spend",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.607Z",
        "receivedAt": "2026-10-04T14:22:53.740Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150",
        "method": "GET",
        "status": 400,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "error": "adSpend is required exactly once as a non-negative decimal number."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "duplicate-ad-spend",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.740Z",
        "receivedAt": "2026-10-04T14:22:53.883Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=200&adSpend=200",
        "method": "GET",
        "status": 400,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "error": "adSpend is required exactly once as a non-negative decimal number."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "negative-input",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.883Z",
        "receivedAt": "2026-10-04T14:22:53.961Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=-1",
        "method": "GET",
        "status": 400,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "error": "adSpend is required exactly once as a non-negative decimal number."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "exponent-input",
      "observation": {
        "requestedAt": "2026-10-04T14:22:53.961Z",
        "receivedAt": "2026-10-04T14:22:54.089Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=2e2",
        "method": "GET",
        "status": 400,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "error": "adSpend is required exactly once as a non-negative decimal number."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "above-input-bound",
      "observation": {
        "requestedAt": "2026-10-04T14:22:54.089Z",
        "receivedAt": "2026-10-04T14:22:54.147Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=1000000000001",
        "method": "GET",
        "status": 400,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "error": "Advertising spend must be a finite number between 0 and 1,000,000,000,000."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    },
    {
      "id": "unknown-currency-parameter",
      "observation": {
        "requestedAt": "2026-10-04T14:22:54.148Z",
        "receivedAt": "2026-10-04T14:22:54.265Z",
        "url": "https://www.iamgeorgekelly.com/api/tools/contribution?netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=200&currency=USD",
        "method": "GET",
        "status": 400,
        "headers": {
          "content-type": "application/json",
          "cache-control": "no-store",
          "access-control-allow-origin": "*",
          "x-robots-tag": "noindex",
          "link": "<https://www.iamgeorgekelly.com/openapi.json>; rel=\"service-desc\""
        },
        "body": {
          "error": "Unknown parameter. Use netRevenue, costOfGoods, variableCosts, and adSpend only."
        },
        "networkError": null
      },
      "failures": [],
      "passed": true
    }
  ],
  "callerCases": [
    {
      "id": "matching-labels-ready",
      "observed": {
        "status": "ready",
        "failures": [],
        "currency": "USD",
        "cohortId": "fictional-orders-2026-09-settled-v1",
        "request": "netRevenue=1000&costOfGoods=550&variableCosts=150&adSpend=200"
      },
      "passed": true,
      "httpRequests": 0
    },
    {
      "id": "mixed-currency-hold",
      "observed": {
        "status": "hold",
        "failures": [
          "Currencies disagree; reconcile or convert before calculating."
        ],
        "request": null
      },
      "passed": true,
      "httpRequests": 0
    },
    {
      "id": "missing-currency-hold",
      "observed": {
        "status": "hold",
        "failures": [
          "variableCosts: supply an uppercase three-letter currency label."
        ],
        "request": null
      },
      "passed": true,
      "httpRequests": 0
    },
    {
      "id": "different-cohort-hold",
      "observed": {
        "status": "hold",
        "failures": [
          "Cohort IDs disagree; reconcile the revenue, costs and spend before calculating."
        ],
        "request": null
      },
      "passed": true,
      "httpRequests": 0
    },
    {
      "id": "missing-cohort-hold",
      "observed": {
        "status": "hold",
        "failures": [
          "netRevenue: supply a nonempty cohortId."
        ],
        "request": null
      },
      "passed": true,
      "httpRequests": 0
    }
  ],
  "notTested": [
    "Independent integrations, adoption, repeat use, or audience demand",
    "Any language model, tool-selection policy, or model performance",
    "Correctness, settlement, authenticity, currency conversion, or cohort assignment of real business data",
    "Advertising incrementality, forecasting, profit after fixed overhead, or a spend recommendation",
    "Exhaustive input space, load, uptime, latency, security, or compatibility with every API client",
    "Provider validation of an OpenAPI document or admission to any tool directory"
  ],
  "provenance": {
    "fixtureSha256": "448cd1847edc9178785191dcddf5d286ea54893f33dd5425d50c6bb9e0883edf",
    "runnerSha256": "2c0473d748f204a7c16e1c3dc43ffabad9ecaead78a63ffc9cb51d348275dba9",
    "sourceSnapshotSha256": "c5b90187c9f9850e4370f442d9d6d2bb3dfc910deec99e506dd6f7fe950f093b",
    "contractResponseSha256": "e327a93653f3272f20792fa347a9d77687ce7a563a7c8cf28cb6d615cead2d1a",
    "localSourceRevision": "f9ce30befba0ed093cf11e52ba33afe9a934c7cf",
    "localSourceLimit": "These are local reviewed source files, captured before the run. Their hashes bind this source snapshot; they do not independently identify the code deployed behind the public endpoint. The observed HTTP contract and complete responses are recorded separately."
  }
}
