{
  "version": 1,
  "synthetic": true,
  "note": "Hand-authored fixtures, not model responses or measured accuracy. expected_disposition requires source and business checks beyond JSON Schema.",
  "cases": [
    {
      "id": "valid-complete",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": 600,
        "total_minor": 10600,
        "status": "complete"
      },
      "expected_schema_valid": true,
      "expected_disposition": "accept",
      "reason": "All values match the source and subtotal plus tax equals total."
    },
    {
      "id": "missing-key",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "total_minor": 10600,
        "status": "complete"
      },
      "expected_schema_valid": false,
      "expected_disposition": "schema_error",
      "reason": "A required key is absent."
    },
    {
      "id": "null-marked-complete",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": null,
        "total_minor": 10600,
        "status": "complete"
      },
      "expected_schema_valid": true,
      "expected_disposition": "business_error",
      "reason": "Unknown tax cannot be marked complete."
    },
    {
      "id": "wrong-type",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": 600,
        "total_minor": "10600",
        "status": "complete"
      },
      "expected_schema_valid": false,
      "expected_disposition": "schema_error",
      "reason": "Do not coerce string amounts into numbers silently."
    },
    {
      "id": "extra-field",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": 600,
        "total_minor": 10600,
        "status": "complete",
        "approved": true
      },
      "expected_schema_valid": false,
      "expected_disposition": "schema_error",
      "reason": "Unrecognized fields are forbidden."
    },
    {
      "id": "wrong-enum",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "EUR",
        "subtotal_minor": 10000,
        "tax_minor": 600,
        "total_minor": 10600,
        "status": "complete"
      },
      "expected_schema_valid": false,
      "expected_disposition": "schema_error",
      "reason": "This example supports only CNY and USD."
    },
    {
      "id": "wrong-total",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": 600,
        "total_minor": 10700,
        "status": "complete"
      },
      "expected_schema_valid": true,
      "expected_disposition": "business_error",
      "reason": "Totals must reconcile and match source facts."
    },
    {
      "id": "wrong-currency",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "USD",
        "subtotal_minor": 10000,
        "tax_minor": 600,
        "total_minor": 10600,
        "status": "complete"
      },
      "expected_schema_valid": true,
      "expected_disposition": "business_error",
      "reason": "A supported currency can still disagree with the source."
    },
    {
      "id": "negative-amount",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; tax 6.00; total 106.00.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": -600,
        "total_minor": 10600,
        "status": "complete"
      },
      "expected_schema_valid": false,
      "expected_disposition": "schema_error",
      "reason": "This contract excludes refunds and negative amounts."
    },
    {
      "id": "missing-source-tax",
      "source": "Quote Q-17. Currency CNY. Subtotal 100.00; total 106.00. Tax is not stated.",
      "output": {
        "quote_id": "Q-17",
        "currency": "CNY",
        "subtotal_minor": 10000,
        "tax_minor": null,
        "total_minor": 10600,
        "status": "needs_review"
      },
      "expected_schema_valid": true,
      "expected_disposition": "needs_review",
      "reason": "Do not infer an unstated tax from the other amounts."
    }
  ]
}
