{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "match_id": {
            "type": "string"
        },
        "faceit_match_id": {
            "type": "string"
        },
        "game": {
            "type": "string"
        },
        "region": {
            "type": "string"
        },
        "round": {
            "type": "integer"
        },
        "competition": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            },
            "required": [
                "id",
                "type"
            ]
        },
        "factions": {
            "type": "object",
            "additionalProperties": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "leader": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "avatar": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "players": {
                        "type": "array",
                        "items": [
                            {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "nickname": {
                                        "type": "string"
                                    },
                                    "game_id": {
                                        "type": "string"
                                    },
                                    "game_name": {
                                        "type": "string"
                                    },
                                    "anticheat_required": {
                                        "type": "boolean"
                                    }
                                },
                                "required": [
                                    "id",
                                    "nickname",
                                    "game_id",
                                    "game_name",
                                    "anticheat_required"
                                ]
                            }
                        ]
                    },
                    "coaches": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": [
                            {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "nickname": {
                                        "type": "string"
                                    },
                                    "game_id": {
                                        "type": "string"
                                    },
                                    "game_name": {
                                        "type": "string"
                                    },
                                    "anticheat_required": {
                                        "type": "boolean"
                                    }
                                },
                                "required": [
                                    "id",
                                    "nickname",
                                    "game_id",
                                    "game_name",
                                    "anticheat_required"
                                ]
                            }
                        ]
                    }
                },
                "required": [
                    "id",
                    "leader",
                    "name",
                    "players"
                ]
            }
        },
        "game_custom_data": {
            "type": "object"
        },
        "type": {
            "type": "string"
        },
        "allow_ongoing_join": {
            "type": "boolean"
        },
        "series_id": {
            "type": [
                "string",
                "null"
            ]
        },
        "roster_with_substitutes": {
            "type": "boolean"
        },
        "version": {
            "type": "integer"
        }
    },
    "required": [
        "match_id",
        "faceit_match_id",
        "game",
        "region",
        "round",
        "competition",
        "factions",
        "game_custom_data",
        "type",
        "allow_ongoing_join",
        "roster_with_substitutes",
        "version"
    ]
}