{
  "asyncapi": "3.1.0",
  "info": {
    "title": "Lacrosse Live Downstream WebSocket",
    "version": "2.0.0",
    "description": "Live PLL/WLL fixture, match, and verified market stream. Endpoint wss://lacrosse-api.com/v1/live"
  },
  "servers": {
    "production": {
      "host": "lacrosse-api.com",
      "pathname": "/v1/live",
      "protocol": "wss"
    }
  },
  "channels": {
    "live": {
      "address": "/v1/live",
      "messages": {
        "clientMessage": {
          "payload": {
            "$ref": "#/definitions/DownstreamClientMessage",
            "definitions": {
              "DownstreamClientMessage": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "subscribe"
                      },
                      "topics": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "minItems": 1
                      }
                    },
                    "required": [
                      "type",
                      "topics"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "unsubscribe"
                      },
                      "topics": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "minItems": 1
                      }
                    },
                    "required": [
                      "type",
                      "topics"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "resume"
                      },
                      "cursor": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "cursor"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "pong"
                      },
                      "at": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$"
                      }
                    },
                    "required": [
                      "type",
                      "at"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        },
        "serverMessage": {
          "payload": {
            "$ref": "#/definitions/DownstreamServerMessage",
            "definitions": {
              "DownstreamServerMessage": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "connection.ready"
                      },
                      "protocol_version": {
                        "type": "string",
                        "const": "2.0.0"
                      },
                      "event_id": {
                        "type": "string"
                      },
                      "sequence": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "topic": {
                        "type": "string"
                      },
                      "fixture_id": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "match_id": {
                        "anyOf": [
                          {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id/anyOf/0"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "occurred_at": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "connection_id": {
                            "type": "string"
                          },
                          "replay_minutes": {
                            "type": "integer",
                            "minimum": 0
                          }
                        },
                        "required": [
                          "connection_id",
                          "replay_minutes"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "subscription.ack"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "topics": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "topics"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "snapshot"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {}
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "match.observation"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "sequence": {
                            "type": "integer"
                          },
                          "observed_at": {
                            "type": "string",
                            "minLength": 1
                          },
                          "received_at": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/observed_at"
                          },
                          "source": {
                            "type": "string"
                          },
                          "lifecycle": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "period": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "clock_minutes": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "clock_seconds": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "side_0_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "side_1_points": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "side_0_goals": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "side_1_goals": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "winner_side": {
                            "anyOf": [
                              {
                                "type": "number",
                                "enum": [
                                  0,
                                  1
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "sequence",
                          "observed_at",
                          "received_at",
                          "source",
                          "lifecycle",
                          "period",
                          "clock_minutes",
                          "clock_seconds",
                          "side_0_points",
                          "side_1_points",
                          "side_0_goals",
                          "side_1_goals",
                          "winner_side"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "fixture.updated"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "event_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "scheduled",
                              "in_progress",
                              "completed",
                              "cancelled"
                            ]
                          },
                          "scheduled_at": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "venue": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "week": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "game_number": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "season_segment": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "broadcaster": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "is_provisional": {
                            "type": "boolean"
                          },
                          "sides": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "side": {
                                  "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/winner_side/anyOf/0"
                                },
                                "team": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/4/properties/data/properties/id"
                                        },
                                        "name": {
                                          "type": "string"
                                        },
                                        "abbreviation": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        },
                                        "location": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        },
                                        "location_code": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        },
                                        "conference": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        },
                                        "logo_url": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        },
                                        "team_color": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        },
                                        "background_color": {
                                          "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                        }
                                      },
                                      "required": [
                                        "id",
                                        "name",
                                        "abbreviation",
                                        "location",
                                        "location_code",
                                        "conference",
                                        "logo_url",
                                        "team_color",
                                        "background_color"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "label": {
                                  "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                },
                                "score": {
                                  "type": "integer"
                                },
                                "goals": {
                                  "anyOf": [
                                    {
                                      "type": "integer"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "side",
                                "team",
                                "label",
                                "score",
                                "goals"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "id",
                          "event_id",
                          "status",
                          "scheduled_at",
                          "venue",
                          "week",
                          "game_number",
                          "season_segment",
                          "broadcaster",
                          "is_provisional",
                          "sides"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "event.updated"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/4/properties/data/properties/id"
                          },
                          "season_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "venue_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "name": {
                            "type": "string"
                          },
                          "starts_on": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "ends_on": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "timezone": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "week": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "season_segment": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                          },
                          "active": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "id",
                          "season_id",
                          "venue_id",
                          "name",
                          "starts_on",
                          "ends_on",
                          "timezone",
                          "week",
                          "season_segment",
                          "active"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "market.price_changed"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "market_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id/anyOf/0"
                          },
                          "outcome_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id/anyOf/0"
                          },
                          "price": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "market_id",
                          "outcome_id",
                          "price"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "market.book_changed"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "market_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id/anyOf/0"
                          },
                          "outcome_id": {
                            "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id/anyOf/0"
                          },
                          "best_bid": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "best_ask": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "spread": {
                            "type": [
                              "number",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "market_id",
                          "outcome_id",
                          "best_bid",
                          "best_ask",
                          "spread"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "market.context"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "event": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "$ref": "#/definitions/DownstreamServerMessage/anyOf/4/properties/data/properties/id"
                                },
                                "league": {
                                  "type": "string"
                                },
                                "starts_at": {
                                  "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                },
                                "link_status": {
                                  "type": "string",
                                  "enum": [
                                    "unlinked",
                                    "suggested",
                                    "verified",
                                    "rejected"
                                  ]
                                },
                                "fixture_id": {
                                  "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                },
                                "home_team": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                    },
                                    "name": {
                                      "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "name"
                                  ],
                                  "additionalProperties": false
                                },
                                "away_team": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                    },
                                    "name": {
                                      "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "name"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "id",
                                "league",
                                "starts_at",
                                "link_status",
                                "fixture_id",
                                "home_team",
                                "away_team"
                              ],
                              "additionalProperties": false
                            },
                            "prices": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "provider": {
                                    "type": "string"
                                  },
                                  "market_id": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/4/properties/data/properties/id"
                                  },
                                  "market_key": {
                                    "type": "string",
                                    "enum": [
                                      "moneyline",
                                      "spread",
                                      "total",
                                      "futures",
                                      "prop"
                                    ]
                                  },
                                  "provider_market_label": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  },
                                  "period": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  },
                                  "line": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  },
                                  "status": {
                                    "type": "string"
                                  },
                                  "outcome": {
                                    "type": "string"
                                  },
                                  "decimal_odds": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  },
                                  "original_price": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  },
                                  "original_format": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  },
                                  "is_live": {
                                    "type": "boolean"
                                  },
                                  "suspended": {
                                    "type": "boolean"
                                  },
                                  "observed_at": {
                                    "$ref": "#/definitions/DownstreamServerMessage/anyOf/3/properties/data/properties/lifecycle"
                                  }
                                },
                                "required": [
                                  "provider",
                                  "market_id",
                                  "market_key",
                                  "provider_market_label",
                                  "period",
                                  "line",
                                  "status",
                                  "outcome",
                                  "decimal_odds",
                                  "original_price",
                                  "original_format",
                                  "is_live",
                                  "suspended",
                                  "observed_at"
                                ],
                                "additionalProperties": false
                              }
                            }
                          },
                          "required": [
                            "event",
                            "prices"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "resync_required"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "reason": {
                            "type": "string"
                          },
                          "snapshot_url": {
                            "type": "string",
                            "format": "uri"
                          }
                        },
                        "required": [
                          "reason",
                          "snapshot_url"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "rate_limit"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "retry_after_seconds": {
                            "type": "integer",
                            "exclusiveMinimum": 0
                          }
                        },
                        "required": [
                          "retry_after_seconds"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "error"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "ping"
                      },
                      "protocol_version": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/protocol_version"
                      },
                      "event_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/event_id"
                      },
                      "sequence": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/sequence"
                      },
                      "topic": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/topic"
                      },
                      "fixture_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/fixture_id"
                      },
                      "match_id": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/match_id"
                      },
                      "occurred_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "published_at": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "server_time": {
                        "$ref": "#/definitions/DownstreamServerMessage/anyOf/0/properties/occurred_at"
                      },
                      "data": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "type",
                      "protocol_version",
                      "event_id",
                      "topic",
                      "published_at",
                      "server_time",
                      "data"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            },
            "$schema": "http://json-schema.org/draft-07/schema#"
          }
        }
      }
    }
  },
  "operations": {
    "receiveLive": {
      "action": "receive",
      "channel": {
        "$ref": "#/channels/live"
      },
      "messages": [
        {
          "$ref": "#/channels/live/messages/serverMessage"
        }
      ]
    },
    "sendCommand": {
      "action": "send",
      "channel": {
        "$ref": "#/channels/live"
      },
      "messages": [
        {
          "$ref": "#/channels/live/messages/clientMessage"
        }
      ]
    }
  }
}
