{
  "purpose": "Offline conformance examples only; no endpoint or order transmission. Schema-valid is not receiver-accepted.",
  "schema_url": "https://tradecopier.org/downloads/trading-webhook-record-only.schema.json",
  "requirements": [
    "Use JSON Schema draft 2020-12 with date-time format assertions.",
    "Reject duplicate keys before JSON object construction; reject nonstandard NaN/Infinity JSON tokens.",
    "Temporal fixtures test only clock/window rules, not authentication, idempotency or ordering.",
    "All symbols, identifiers, quantities and times are fictional."
  ],
  "schema_cases": [
    {
      "name": "baseline",
      "expected_schema_valid": true,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "lower_condition_lots",
      "expected_schema_valid": true,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_below_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "0.00000001",
          "unit": "lots"
        }
      }
    },
    {
      "name": "maximum_transport_bounds",
      "expected_schema_valid": true,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "strategy_version": "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
        "stream_id": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
        "sequence": 2147483647,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
        "quantity": {
          "value": "999999999999.99999999",
          "unit": "contracts"
        }
      }
    },
    {
      "name": "valid_leap_date",
      "expected_schema_valid": true,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2024-02-29T12:00:00Z",
        "valid_until_utc": "2024-02-29T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'0'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "0",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'0.00000000'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "0.00000000",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'-1'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "-1",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'+1'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "+1",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1e2'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1e2",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'NaN'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "NaN",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'Infinity'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "Infinity",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'01'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "01",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'00.1'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "00.1",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'.5'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": ".5",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1.'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1.",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1.000000001'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1.000000001",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1000000000000'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1000000000000",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_' 1'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": " 1",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1 '",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1 ",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1\\n'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1\n",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'\u0661'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "\u0661",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_'1,000'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "1,000",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_1",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": 1,
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_None",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": null,
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_quantity_True",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": true,
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_schema_version_1",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 1,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_schema_version_'2'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": "2",
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_schema_version_True",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": true,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_mode_'execute'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "execute",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_event_id_''",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_event_id_'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_event_id_'id\\n'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "id\n",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_event_id_'../path'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "../path",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_stream_id_' space'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": " space",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_strategy_version_'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_sequence_0",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 0,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_sequence_2147483648",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 2147483648,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_sequence_1.5",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1.5,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_sequence_True",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": true,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_sequence_'1'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": "1",
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_condition_'buy'",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "buy",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_symbol_reference_''",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_2026-02-29T12:00:00Z",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-02-29T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_2026-09-22T24:00:00Z",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T24:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_2026-09-22T12:00:60Z",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:60Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_2026-09-22T12:00:00+00:00",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00+00:00",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_2026-09-22T12:00:00.000Z",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00.000Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_2026-09-22t12:00:00z",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22t12:00:00z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "invalid_datetime_0000-01-01T12:00:00Z",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "0000-01-01T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "extra_top_level_field",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        },
        "api_key": "NOT_A_KEY"
      }
    },
    {
      "name": "extra_quantity_field",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units",
          "currency": "USD"
        }
      }
    },
    {
      "name": "ambiguous_unit",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "shares_or_contracts"
        }
      }
    },
    {
      "name": "missing_schema_version",
      "expected_schema_valid": false,
      "payload": {
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_mode",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_event_id",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_strategy_version",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_stream_id",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_sequence",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_event_time_utc",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_valid_until_utc",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_condition",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "symbol_reference": "DEMO:INSTRUMENT_A",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_symbol_reference",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "quantity": {
          "value": "2.50",
          "unit": "units"
        }
      }
    },
    {
      "name": "missing_quantity",
      "expected_schema_valid": false,
      "payload": {
        "schema_version": 2,
        "mode": "record_only",
        "event_id": "demo-alert-0001",
        "strategy_version": "demo-v1",
        "stream_id": "demo-stream-A",
        "sequence": 1,
        "event_time_utc": "2026-09-22T12:00:00Z",
        "valid_until_utc": "2026-09-22T12:02:00Z",
        "condition": "bar_close_above_demo_threshold",
        "symbol_reference": "DEMO:INSTRUMENT_A"
      }
    }
  ],
  "temporal_policy": {
    "maximum_age_seconds": 120,
    "maximum_future_skew_seconds": 5,
    "maximum_validity_window_seconds": 120,
    "expiry_exclusive": true
  },
  "temporal_cases": [
    {
      "name": "fresh",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:02:00Z",
      "receiver_time_utc": "2026-09-22T12:00:01Z",
      "expected_temporal_accept": true
    },
    {
      "name": "just_before_expiry",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:02:00Z",
      "receiver_time_utc": "2026-09-22T12:01:59Z",
      "expected_temporal_accept": true
    },
    {
      "name": "expiry_is_exclusive",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:02:00Z",
      "receiver_time_utc": "2026-09-22T12:02:00Z",
      "expected_temporal_accept": false
    },
    {
      "name": "past_expiry",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:02:00Z",
      "receiver_time_utc": "2026-09-22T12:02:01Z",
      "expected_temporal_accept": false
    },
    {
      "name": "future_skew_boundary",
      "event_time_utc": "2026-09-22T12:00:05Z",
      "valid_until_utc": "2026-09-22T12:02:05Z",
      "receiver_time_utc": "2026-09-22T12:00:00Z",
      "expected_temporal_accept": true
    },
    {
      "name": "future_skew_exceeded",
      "event_time_utc": "2026-09-22T12:00:06Z",
      "valid_until_utc": "2026-09-22T12:02:06Z",
      "receiver_time_utc": "2026-09-22T12:00:00Z",
      "expected_temporal_accept": false
    },
    {
      "name": "expiry_equals_event",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:00:00Z",
      "receiver_time_utc": "2026-09-22T12:00:00Z",
      "expected_temporal_accept": false
    },
    {
      "name": "expiry_before_event",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T11:59:59Z",
      "receiver_time_utc": "2026-09-22T12:00:00Z",
      "expected_temporal_accept": false
    },
    {
      "name": "window_exceeds_policy",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:02:01Z",
      "receiver_time_utc": "2026-09-22T12:00:01Z",
      "expected_temporal_accept": false
    },
    {
      "name": "short_window_expired",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:00:10Z",
      "receiver_time_utc": "2026-09-22T12:00:10Z",
      "expected_temporal_accept": false
    },
    {
      "name": "short_window_fresh",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:00:10Z",
      "receiver_time_utc": "2026-09-22T12:00:09Z",
      "expected_temporal_accept": true
    },
    {
      "name": "old_event_even_with_long_expiry",
      "event_time_utc": "2026-09-22T11:57:59Z",
      "valid_until_utc": "2026-09-22T12:00:01Z",
      "receiver_time_utc": "2026-09-22T12:00:00Z",
      "expected_temporal_accept": false
    },
    {
      "name": "valid_120_second_window",
      "event_time_utc": "2026-09-22T12:00:00Z",
      "valid_until_utc": "2026-09-22T12:02:00Z",
      "receiver_time_utc": "2026-09-22T12:00:00Z",
      "expected_temporal_accept": true
    },
    {
      "name": "maximum_datetime_cannot_expire_later",
      "event_time_utc": "9999-12-31T23:59:59Z",
      "valid_until_utc": "9999-12-31T23:59:59Z",
      "receiver_time_utc": "9999-12-31T23:59:58Z",
      "expected_temporal_accept": false
    },
    {
      "name": "near_maximum_datetime_valid",
      "event_time_utc": "9999-12-31T23:59:58Z",
      "valid_until_utc": "9999-12-31T23:59:59Z",
      "receiver_time_utc": "9999-12-31T23:59:58Z",
      "expected_temporal_accept": true
    }
  ],
  "raw_json_rejection_cases": [
    {
      "name": "duplicate_mode",
      "raw_json": "{\"mode\":\"record_only\",\"mode\":\"execute\"}",
      "expected_parser_reject": true
    },
    {
      "name": "nonstandard_nan",
      "raw_json": "{\"quantity\":NaN}",
      "expected_parser_reject": true
    },
    {
      "name": "overflow_positive",
      "raw_json": "{\"sequence\":1e999}",
      "expected_parser_reject": true
    },
    {
      "name": "overflow_negative",
      "raw_json": "{\"sequence\":-1e999}",
      "expected_parser_reject": true
    },
    {
      "name": "duplicate_nested_quantity",
      "raw_json": "{\"quantity\":{\"value\":\"2\",\"value\":\"3\"}}",
      "expected_parser_reject": true
    }
  ],
  "fingerprint_recipe": "Validate v2 ASCII-only schema, normalize schema_version/sequence to integers, recursively sort ASCII object keys, compact JSON with no whitespace or trailing newline, preserve string values, UTF-8 encode, SHA-256. Not general JSON canonicalization. Authenticated namespace is a separate durable-key component.",
  "fingerprint_cases": [
    {
      "name": "baseline_fingerprint",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"2.50\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "b80b0c10117ff930f6df75bb4e248575651111323a91326f439c46a25736b90d",
      "same_as_example": true
    },
    {
      "name": "key_order_and_whitespace",
      "raw_json": "{\n    \"quantity\": {\n        \"unit\": \"units\",\n        \"value\": \"2.50\"\n    },\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"sequence\": 1,\n    \"stream_id\": \"demo-stream-A\",\n    \"strategy_version\": \"demo-v1\",\n    \"event_id\": \"demo-alert-0001\",\n    \"mode\": \"record_only\",\n    \"schema_version\": 2\n}",
      "expected_sha256": "b80b0c10117ff930f6df75bb4e248575651111323a91326f439c46a25736b90d",
      "same_as_example": true
    },
    {
      "name": "schema_integer_normalization",
      "raw_json": "{\n    \"schema_version\": 2.0,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1.0,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"2.50\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "b80b0c10117ff930f6df75bb4e248575651111323a91326f439c46a25736b90d",
      "same_as_example": true
    },
    {
      "name": "quantity_string_lexeme",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"2.5\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "efe55b44d01eb68103c6ba1f5f28957ed069ce51de50219aec9ea1642d48898a",
      "same_as_example": false
    },
    {
      "name": "changed_quantity",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"3\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "94e2ff8ba13dab9be1bd1703d1ea012c3f43a05a4759d2584f9bba9aa07d3f61",
      "same_as_example": false
    },
    {
      "name": "changed_strategy_version",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v2\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"2.50\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "6cf473e03c3f33f1c98476b1efbc83f0770b9c465619932e3a7f8f72e08d26c0",
      "same_as_example": false
    },
    {
      "name": "changed_symbol",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_B\",\n    \"quantity\": {\n        \"value\": \"2.50\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "e2f3a1122f0e3897fd0337133f337787c5f5422e66f2f20fe605c4c7b769b684",
      "same_as_example": false
    },
    {
      "name": "changed_expiry",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-A\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:01:59Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"2.50\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "68d6fca873b36c1027fab9beb955ad439098f2fbb0031576544d5d9810e1b663",
      "same_as_example": false
    },
    {
      "name": "changed_stream",
      "raw_json": "{\n    \"schema_version\": 2,\n    \"mode\": \"record_only\",\n    \"event_id\": \"demo-alert-0001\",\n    \"strategy_version\": \"demo-v1\",\n    \"stream_id\": \"demo-stream-B\",\n    \"sequence\": 1,\n    \"event_time_utc\": \"2026-09-22T12:00:00Z\",\n    \"valid_until_utc\": \"2026-09-22T12:02:00Z\",\n    \"condition\": \"bar_close_above_demo_threshold\",\n    \"symbol_reference\": \"DEMO:INSTRUMENT_A\",\n    \"quantity\": {\n        \"value\": \"2.50\",\n        \"unit\": \"units\"\n    }\n}",
      "expected_sha256": "89401aec28fcb99c422d4b835f12aef375aea9519f7c03faa2c02069e2176bf0",
      "same_as_example": false
    }
  ],
  "retry_cases": [
    {
      "name": "first_retry",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "retry",
        "delay_ms": 1000,
        "attempt_timeout_ms": 2000
      }
    },
    {
      "name": "maximum_jitter",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 250
      },
      "expected": {
        "action": "retry",
        "delay_ms": 1250,
        "attempt_timeout_ms": 2000
      }
    },
    {
      "name": "second_retry",
      "inputs": {
        "attempts_completed": 2,
        "elapsed_ms": 5000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "retry",
        "delay_ms": 2000,
        "attempt_timeout_ms": 2000
      }
    },
    {
      "name": "third_retry_fits_exact_total",
      "inputs": {
        "attempts_completed": 3,
        "elapsed_ms": 9000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "retry",
        "delay_ms": 4000,
        "attempt_timeout_ms": 2000
      }
    },
    {
      "name": "third_retry_jitter_exceeds_total",
      "inputs": {
        "attempts_completed": 3,
        "elapsed_ms": 9000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 1
      },
      "expected": {
        "action": "stop",
        "reason": "total_deadline"
      }
    },
    {
      "name": "four_attempts_exhausted",
      "inputs": {
        "attempts_completed": 4,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "stop",
        "reason": "attempt_limit"
      }
    },
    {
      "name": "unknown_receipt",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "unknown",
        "jitter_ms": 0
      },
      "expected": {
        "action": "reconcile",
        "reason": "receipt_unknown"
      }
    },
    {
      "name": "permanent_failure",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "permanent_failure",
        "jitter_ms": 0
      },
      "expected": {
        "action": "stop",
        "reason": "permanent_failure"
      }
    },
    {
      "name": "already_succeeded",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "success",
        "jitter_ms": 0
      },
      "expected": {
        "action": "stop",
        "reason": "success"
      }
    },
    {
      "name": "exact_expiry_rejected",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 3000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "stop",
        "reason": "exclusive_expiry"
      }
    },
    {
      "name": "one_ms_expiry_headroom",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 3001,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "retry",
        "delay_ms": 1000,
        "attempt_timeout_ms": 2000
      }
    },
    {
      "name": "expired",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": -1,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "stop",
        "reason": "exclusive_expiry"
      }
    },
    {
      "name": "boolean_attempt",
      "inputs": {
        "attempts_completed": true,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "reject_invalid_input"
      }
    },
    {
      "name": "fraction_elapsed",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 0.5,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "reject_invalid_input"
      }
    },
    {
      "name": "negative_elapsed",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": -1,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "reject_invalid_input"
      }
    },
    {
      "name": "jitter_exceeds_bound",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 251
      },
      "expected": {
        "action": "reject_invalid_input"
      }
    },
    {
      "name": "zero_attempts",
      "inputs": {
        "attempts_completed": 0,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "transient_no_commit",
        "jitter_ms": 0
      },
      "expected": {
        "action": "reject_invalid_input"
      }
    },
    {
      "name": "unknown_outcome",
      "inputs": {
        "attempts_completed": 1,
        "elapsed_ms": 2000,
        "validity_remaining_ms": 120000,
        "outcome": "retry_anything",
        "jitter_ms": 0
      },
      "expected": {
        "action": "reject_invalid_input"
      }
    }
  ],
  "lexical_schema_cases": [
    {
      "name": "precise_fraction_not_integer",
      "raw_json": "{\"schema_version\": 2, \"mode\": \"record_only\", \"event_id\": \"demo-alert-0001\", \"strategy_version\": \"demo-v1\", \"stream_id\": \"demo-stream-A\", \"sequence\": 1.00000000000000000001, \"event_time_utc\": \"2026-09-22T12:00:00Z\", \"valid_until_utc\": \"2026-09-22T12:02:00Z\", \"condition\": \"bar_close_above_demo_threshold\", \"symbol_reference\": \"DEMO:INSTRUMENT_A\", \"quantity\": {\"value\": \"2.50\", \"unit\": \"units\"}}",
      "expected_schema_valid": false
    },
    {
      "name": "fraction_below_integer",
      "raw_json": "{\"schema_version\": 2, \"mode\": \"record_only\", \"event_id\": \"demo-alert-0001\", \"strategy_version\": \"demo-v1\", \"stream_id\": \"demo-stream-A\", \"sequence\": 0.99999999999999999999, \"event_time_utc\": \"2026-09-22T12:00:00Z\", \"valid_until_utc\": \"2026-09-22T12:02:00Z\", \"condition\": \"bar_close_above_demo_threshold\", \"symbol_reference\": \"DEMO:INSTRUMENT_A\", \"quantity\": {\"value\": \"2.50\", \"unit\": \"units\"}}",
      "expected_schema_valid": false
    },
    {
      "name": "integral_decimal_accepted",
      "raw_json": "{\"schema_version\": 2, \"mode\": \"record_only\", \"event_id\": \"demo-alert-0001\", \"strategy_version\": \"demo-v1\", \"stream_id\": \"demo-stream-A\", \"sequence\": 1.0, \"event_time_utc\": \"2026-09-22T12:00:00Z\", \"valid_until_utc\": \"2026-09-22T12:02:00Z\", \"condition\": \"bar_close_above_demo_threshold\", \"symbol_reference\": \"DEMO:INSTRUMENT_A\", \"quantity\": {\"value\": \"2.50\", \"unit\": \"units\"}}",
      "expected_schema_valid": true
    },
    {
      "name": "integral_exponent_accepted",
      "raw_json": "{\"schema_version\": 2, \"mode\": \"record_only\", \"event_id\": \"demo-alert-0001\", \"strategy_version\": \"demo-v1\", \"stream_id\": \"demo-stream-A\", \"sequence\": 1e0, \"event_time_utc\": \"2026-09-22T12:00:00Z\", \"valid_until_utc\": \"2026-09-22T12:02:00Z\", \"condition\": \"bar_close_above_demo_threshold\", \"symbol_reference\": \"DEMO:INSTRUMENT_A\", \"quantity\": {\"value\": \"2.50\", \"unit\": \"units\"}}",
      "expected_schema_valid": true
    },
    {
      "name": "fractional_exponent_rejected",
      "raw_json": "{\"schema_version\": 2, \"mode\": \"record_only\", \"event_id\": \"demo-alert-0001\", \"strategy_version\": \"demo-v1\", \"stream_id\": \"demo-stream-A\", \"sequence\": 15e-1, \"event_time_utc\": \"2026-09-22T12:00:00Z\", \"valid_until_utc\": \"2026-09-22T12:02:00Z\", \"condition\": \"bar_close_above_demo_threshold\", \"symbol_reference\": \"DEMO:INSTRUMENT_A\", \"quantity\": {\"value\": \"2.50\", \"unit\": \"units\"}}",
      "expected_schema_valid": false
    }
  ]
}
