{
  "schemaVersion": 1,
  "cases": [
    {
      "id": "unary-deadline-exceeded",
      "operation": "Invoke",
      "clientDeadline": "2s",
      "grpcStatusCode": "DEADLINE_EXCEEDED",
      "clientErrorCategory": "TimeoutError",
      "gatewayWaitBehavior": "stops_waiting_for_reply",
      "workerCommandBehavior": "continues_until_worker_reply_or_worker_fault",
      "sessionExpectation": "session_state_is_unknown_until_follow_up_status_or_close",
      "expectedClientAction": "issue GetSessionState or CloseSession before reusing handles"
    },
    {
      "id": "stream-cancel",
      "operation": "StreamEvents",
      "clientDeadline": "5s",
      "grpcStatusCode": "CANCELLED",
      "clientErrorCategory": "CancelledError",
      "gatewayWaitBehavior": "stops_streaming_to_that_call",
      "workerCommandBehavior": "does_not_cancel_worker_session",
      "sessionExpectation": "session_remains_ready_if_worker_stays_healthy",
      "expectedClientAction": "open a new StreamEvents call with the last observed worker sequence"
    }
  ]
}
