{
  "scenario": "ts-retry-circuit-circuit-half-open-concurrency",
  "transports": [
    {
      "attempts": 4,
      "events": [
        {
          "atMs": 0,
          "attempt": 1,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 0,
          "attempt": 1,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/trip"
          }
        },
        {
          "atMs": 0,
          "attempt": 1,
          "type": "response:headers",
          "data": {
            "status": 503
          }
        },
        {
          "atMs": 101,
          "attempt": 2,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 101,
          "attempt": 2,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/probe-after-boundary"
          }
        },
        {
          "atMs": 121,
          "attempt": 2,
          "type": "response:headers",
          "data": {
            "status": 503
          }
        },
        {
          "atMs": 222,
          "attempt": 3,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 222,
          "attempt": 3,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/recovery-after-boundary"
          }
        },
        {
          "atMs": 242,
          "attempt": 3,
          "type": "response:headers",
          "data": {
            "status": 200
          }
        },
        {
          "atMs": 242,
          "attempt": 4,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 242,
          "attempt": 4,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/after-recovery"
          }
        },
        {
          "atMs": 262,
          "attempt": 4,
          "type": "response:headers",
          "data": {
            "status": 200
          }
        }
      ]
    },
    {
      "attempts": 4,
      "events": [
        {
          "atMs": 0,
          "attempt": 1,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 0,
          "attempt": 1,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/old"
          }
        },
        {
          "atMs": 0,
          "attempt": 2,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 0,
          "attempt": 2,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/trip"
          }
        },
        {
          "atMs": 0,
          "attempt": 2,
          "type": "response:headers",
          "data": {
            "status": 503
          }
        },
        {
          "atMs": 101,
          "attempt": 3,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 101,
          "attempt": 3,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/probe-after-boundary"
          }
        },
        {
          "atMs": 121,
          "attempt": 3,
          "type": "response:headers",
          "data": {
            "status": 503
          }
        },
        {
          "atMs": 150,
          "attempt": 1,
          "type": "response:headers",
          "data": {
            "status": 200
          }
        },
        {
          "atMs": 150,
          "attempt": 4,
          "type": "attempt:start",
          "data": {}
        },
        {
          "atMs": 150,
          "attempt": 4,
          "type": "request",
          "data": {
            "method": "GET",
            "url": "https://example.test/still-open"
          }
        },
        {
          "atMs": 150,
          "attempt": 4,
          "type": "response:headers",
          "data": {
            "status": 200
          }
        }
      ]
    }
  ]
}
