{
    "$schema": "../../../$schemas/mapping-schema.json",
    "default": "program",
    "mappings": {
        "program": {
            "type": "object",
            "properties": {
                "index": {
                    "type": "integer",
                    "ui:title": "Index",
                    "ui:summaryTitle": "Index",
                    "description": "Number of the mix (1 is the main mix, 2-4 are optional Mix Inputs)",
                    "enum": [
                        1,
                        2,
                        3,
                        4
                    ]
                }
            },
            "required": [],
            "additionalProperties": false
        },
        "preview": {
            "type": "object",
            "properties": {
                "index": {
                    "type": "integer",
                    "ui:title": "Index",
                    "ui:summaryTitle": "Index",
                    "description": "Number of the mix (1 is the main mix, 2-4 are optional Mix Inputs)",
                    "enum": [
                        1,
                        2,
                        3,
                        4
                    ]
                }
            },
            "required": [],
            "additionalProperties": false
        },
        "input": {
            "type": "object",
            "properties": {
                "index": {
                    "type": "string",
                    "ui:title": "Index",
                    "ui:description": "Input number or name. Omit if you plan to use the `filePath` property in `TimelineContentVMixInput`.",
                    "ui:summaryTitle": "Index",
                    "description": "Input number or name. Omit if you plan to use the `filePath` property in `TimelineContentVMixInput`.",
                    "TODO": "string | number. this could be done with 'anyOf' or something, but adds complexity for little benefit"
                }
            },
            "required": [],
            "additionalProperties": false
        },
        "audioChannel": {
            "type": "object",
            "properties": {
                "index": {
                    "type": "string",
                    "ui:title": "Index",
                    "ui:description": "Input number or name",
                    "ui:summaryTitle": "Index",
                    "description": "Input number or name",
                    "TODO": "string | number. this could be done with 'anyOf' or something, but adds complexity for little benefit"
                },
                "inputLayer": {
                    "type": "string",
                    "ui:title": "Input Layer",
                    "description": "Input layer name"
                }
            },
            "required": [],
            "additionalProperties": false
        },
        "output": {
            "type": "object",
            "properties": {
                "index": {
                    "type": "string",
                    "ui:title": "Index",
                    "ui:summaryTitle": "Index",
                    "description": "Output",
                    "enum": [
                        "2",
                        "3",
                        "4",
                        "External2",
                        "Fullscreen",
                        "Fullscreen2"
                    ]
                }
            },
            "required": [
                "index"
            ],
            "additionalProperties": false
        },
        "overlay": {
            "type": "object",
            "properties": {
                "index": {
                    "type": "integer",
                    "ui:title": "Index",
                    "ui:summaryTitle": "Index",
                    "description": "Overlay number",
                    "enum": [
                        1,
                        2,
                        3,
                        4
                    ]
                }
            },
            "required": [
                "index"
            ],
            "additionalProperties": false
        },
        "recording": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
        },
        "streaming": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
        },
        "external": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
        },
        "fadeToBlack": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
        },
        "fader": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
        },
        "script": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
        }
    }
}
