{
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "$ref": "#/definitions/SchemaRoot",
    "definitions": {
        "SchemaRoot": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "id": {
                    "type": "string"
                },
                "replaces": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "language": {
                    "type": "string",
                    "enum": ["af", "af-ZA", "ar", "ar-AE", "ar-BH", "ar-DZ", "ar-EG", "ar-IQ", "ar-JO", "ar-KW", "ar-LB", "ar-LY", "ar-MA", "ar-OM", "ar-QA", "ar-SA", "ar-SY", "ar-TN", "ar-YE", "az", "az-AZ", "be", "be-BY", "bg", "bg-BG", "bs-BA", "ca", "ca-ES", "cs", "cs-CZ", "cy", "cy-GB", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "de-LI", "de-LU", "dv", "dv-MV", "el", "el-GR", "en", "en-AU", "en-BZ", "en-CA", "en-CB", "en-GB", "en-IE", "en-JM", "en-NZ", "en-PH", "en-TT", "en-US", "en-ZA", "en-ZW", "eo", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-CR", "es-DO", "es-EC", "es-ES", "es-GT", "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PR", "es-PY", "es-SV", "es-UY", "es-VE", "et", "et-EE", "eu", "eu-ES", "fa", "fa-IR", "fi", "fi-FI", "fo", "fo-FO", "fr", "fr-BE", "fr-CA", "fr-CH", "fr-FR", "fr-LU", "fr-MC", "gl", "gl-ES", "gu", "gu-IN", "he", "he-IL", "hi", "hi-IN", "hr", "hr-BA", "hr-HR", "hu", "hu-HU", "hy", "hy-AM", "id", "id-ID", "is", "is-IS", "it", "it-CH", "it-IT", "ja", "ja-JP", "ka", "ka-GE", "kk", "kk-KZ", "kn", "kn-IN", "ko", "ko-KR", "kok", "kok-IN", "ky", "ky-KG", "lt", "lt-LT", "lv", "lv-LV", "mi", "mi-NZ", "mk", "mk-MK", "mn", "mn-MN", "mr", "mr-IN", "ms", "ms-BN", "ms-MY", "mt", "mt-MT", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "nn-NO", "ns", "ns-ZA", "pa", "pa-IN", "pl", "pl-PL", "ps", "ps-AR", "pt", "pt-BR", "pt-PT", "qu", "qu-BO", "qu-EC", "qu-PE", "ro", "ro-RO", "ru", "ru-RU", "sa", "sa-IN", "se", "se-FI", "se-NO", "se-SE", "sk", "sk-SK", "sl", "sl-SI", "sq", "sq-AL", "sr-BA", "sr-SP", "sv", "sv-FI", "sv-SE", "sw", "sw-KE", "syr", "syr-SY", "ta", "ta-IN", "te", "te-IN", "th", "th-TH", "tl", "tl-PH", "tn", "tn-ZA", "tr", "tr-TR", "tt", "tt-RU", "ts", "uk", "uk-UA", "ur", "ur-PK", "uz", "uz-UZ", "vi", "vi-VN", "xh", "xh-ZA", "zh", "zh-CN", "zh-HK", "zh-MO", "zh-SG", "zh-TW", "zu", "zu-ZA", "af", "af-ZA", "ar", "ar-AE", "ar-BH", "ar-DZ", "ar-EG", "ar-IQ", "ar-JO", "ar-KW", "ar-LB", "ar-LY", "ar-MA", "ar-OM", "ar-QA", "ar-SA", "ar-SY", "ar-TN", "ar-YE", "az", "az-AZ", "be", "be-BY", "bg", "bg-BG", "bs-BA", "ca", "ca-ES", "cs", "cs-CZ", "cy", "cy-GB", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "de-LI", "de-LU", "dv", "dv-MV", "el", "el-GR", "en", "en-AU", "en-BZ", "en-CA", "en-CB", "en-GB", "en-IE", "en-JM", "en-NZ", "en-PH", "en-TT", "en-US", "en-ZA", "en-ZW", "eo", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-CR", "es-DO", "es-EC", "es-ES", "es-GT", "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PR", "es-PY", "es-SV", "es-UY", "es-VE", "et", "et-EE", "eu", "eu-ES", "fa", "fa-IR", "fi", "fi-FI", "fo", "fo-FO", "fr", "fr-BE", "fr-CA", "fr-CH", "fr-FR", "fr-LU", "fr-MC", "gl", "gl-ES", "gu", "gu-IN", "he", "he-IL", "hi", "hi-IN", "hr", "hr-BA", "hr-HR", "hu", "hu-HU", "hy", "hy-AM", "id", "id-ID", "is", "is-IS", "it", "it-CH", "it-IT", "ja", "ja-JP", "ka", "ka-GE", "kk", "kk-KZ", "kn", "kn-IN", "ko", "ko-KR", "kok", "kok-IN", "ky", "ky-KG", "lt", "lt-LT", "lv", "lv-LV", "mi", "mi-NZ", "mk", "mk-MK", "mn", "mn-MN", "mr", "mr-IN", "ms", "ms-BN", "ms-MY", "mt", "mt-MT", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "nn-NO", "ns", "ns-ZA", "pa", "pa-IN", "pl", "pl-PL", "ps", "ps-AR", "pt", "pt-BR", "pt-PT", "qu", "qu-BO", "qu-EC", "qu-PE", "ro", "ro-RO", "ru", "ru-RU", "sa", "sa-IN", "se", "se-FI", "se-NO", "se-SE", "sk", "sk-SK", "sl", "sl-SI", "sq", "sq-AL", "sr-BA", "sr-SP", "sv", "sv-FI", "sv-SE", "sw", "sw-KE", "syr", "syr-SY", "ta", "ta-IN", "te", "te-IN", "th", "th-TH", "tl", "tl-PH", "tn", "tn-ZA", "tr", "tr-TR", "tt", "tt-RU", "ts", "uk", "uk-UA", "ur", "ur-PK", "uz", "uz-UZ", "vi", "vi-VN", "xh", "xh-ZA", "zh", "zh-CN", "zh-HK", "zh-MO", "zh-SG", "zh-TW", "zu", "zu-ZA"]
                },
                "type": {
                    "type": "string",
                    "enum": ["public", "semi-private", "private"]
                },
                "encoding": {
                    "type": "string"
                },
                "followredirect": {
                    "type": "boolean"
                },
                "testlinktorrent": {
                    "type": "boolean"
                },
                "requestDelay": {
                    "type": "number"
                },
                "links": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "format": "uri"
                    }
                },
                "legacylinks": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "format": "uri"
                    }
                },
                "certificates": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string"
                    }
                },
                "caps": {
                    "$ref": "#/definitions/Caps"
                },
                "settings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SettingsField"
                    }
                },
                "login": {
                    "$ref": "#/definitions/Login"
                },
                "search": {
                    "$ref": "#/definitions/Search"
                },
                "download": {
                    "$ref": "#/definitions/DownloadBlock"
                }
            },
            "required": [
                "caps",
                "description",
                "encoding",
                "id",
                "language",
                "links",
                "name",
                "search",
                "type"
            ],
            "title": "SchemaRoot"
        },
        "Caps": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "categories": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^.*$": {
                            "$ref": "#/definitions/IndexerCategories"
                        }
                    }
                },
                "categorymappings": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "$ref": "#/definitions/CategoryMapping"
                    }
                },
                "modes": {
                    "$ref": "#/definitions/Modes"
                },
                "allowrawsearch": {
                    "type": "boolean"
                }
            },
            "required": [
                "modes"
            ],
            "oneOf": [
                {
                    "required": [
                        "categories"
                    ]
                },
                {
                    "required": [
                        "categorymappings"
                    ]
                }
            ],
            "title": "Caps"
        },
        "CategoryMapping": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "id": {
                    "oneOf": [
                        {"type": "integer"},
                        {"type": "string"}
                    ]
                },
                "cat": {
                    "$ref": "#/definitions/IndexerCategories"
                },
                "desc": {
                    "type": "string"
                },
                "default": {
                    "type": "boolean"
                }
            },
            "required": [
                "cat",
                "id"
            ],
            "title": "CategoryMapping"
        },
        "Modes": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "search": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "enum": ["q"]
                    }
                },
                "tv-search": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "enum": ["q", "season", "ep", "imdbid", "tvdbid", "tmdbid", "tvmazeid", "traktid", "doubanid", "year", "genre"]
                    }
                },
                "movie-search": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "enum": ["q", "imdbid", "tmdbid", "traktid", "doubanid", "year", "genre"]
                    }
                },
                "music-search": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "enum": ["q", "album", "artist", "label", "track", "year", "genre"]
                    }
                },
                "book-search": {
                    "type": "array",
                    "uniqueItems": true,
                    "items": {
                        "type": "string",
                        "enum": ["q", "title", "author", "publisher", "year", "genre"]
                    }
                }
            },
            "required": [
                "search"
            ],
            "title": "Modes"
        },
        "SettingsField": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "label": {
                    "type": "string"
                },
                "type":{
                    "type": "string",
                    "enum": ["info", "text", "password", "checkbox", "select", "info_cookie", "info_flaresolverr", "info_useragent"]
                },
                "default": {
                    "oneOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "integer"
                        },
                        {
                            "type": "boolean"
                        }
                    ]
                },
                "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^.*$": {
                            "type": "string"
                        }
                    }
                },
                "defaults": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "name",
                "type"
            ],
            "title": "SettingsField"
        },
        "Login": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "method": {
                    "type": "string",
                    "enum": ["form", "post", "cookie", "get", "oneurl"]
                },
                "cookies": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "path": {
                    "type": "string"
                },
                "submitpath": {
                    "type": "string"
                },
                "form": {
                    "type": "string"
                },
                "captcha": {
                    "$ref": "#/definitions/CaptchaBlock"
                },
                "inputs": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^.*$": {
                            "oneOf": [
                                {"type": "number"},
                                {"type": "string"},
                                {"type": "boolean"}
                            ]
                        }
                    }
                },
                "selectors": {
                    "type": "boolean"
                },
                "selectorinputs": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9_]*$": {
                            "type": "object",
                            "$ref": "#/definitions/SelectorBlock",
                            "not": { "required": ["optional"] }
                        }
                    }
                },
                "getselectorinputs": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9_]*$": {
                            "type": "object",
                            "$ref": "#/definitions/SelectorBlock",
                            "not": { "required": ["optional"] }
                        }
                    }
                },
                "error": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ErrorBlock"
                    }
                },
                "test": {
                    "$ref": "#/definitions/PageTestBlock"
                },
                "headers": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9-]*$": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "title": "Login"
        },
        "PageTestBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "path": {
                    "type": "string"
                },
                "selector": {
                    "type": "string"
                }
            },
            "required": [
                "path"
            ],
            "title": "PageTestBlock"
        },
        "CaptchaBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": {
                    "type": "string",
                    "enum": ["image", "text"]
                },
                "selector": {
                    "type": "string"
                },
                "input": {
                    "type": "string"
                }
            },
            "required": [
                "input",
                "selector",
                "type"
            ],
            "title": "CaptchaBlock"
        },
        "ErrorBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "path": {
                    "type": "string"
                },
                "selector": {
                    "type": "string"
                },
                "message": {
                    "$ref": "#/definitions/SelectorBlock"
                }
            },
            "required": [
                "selector"
            ],
            "title": "ErrorBlock"
        },
        "SelectorBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "selector": {
                    "type": "string"
                },
                "attribute": {
                    "type": "string"
                },
                "optional": {
                    "type": "boolean"
                },
                "default": {
                    "oneOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "number"
                        }
                    ]
                },
                "case": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^.*$": {
                            "oneOf": [
                                {"type": "string"},
                                {"type": "number"}
                            ]
                        }
                    }
                },
                "remove": {
                    "type": "string"
                },
                "text": {
                    "oneOf": [
                        {"type": "string"},
                        {"type": "number"}
                    ]
                },
                "filters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/FilterBlock"
                    }
                }
            },
            "dependentRequired": {
                "default": [
                    "optional"
                ]
            },
            "allOf": [
                {
                    "if": {
                        "properties": {
                            "default": {
                                "not": {
                                    "const": null
                                }
                            }
                        }
                    },
                    "then": {
                        "properties": {
                            "optional": {
                                "const": true
                            }
                        }
                    }
                }
            ],
            "title": "SelectorBlock"
        },
        "Search": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "path": {
                    "type": "string"
                },
                "paths": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SearchPathBlock"
                    }
                },
                "allowEmptyInputs": {
                    "type": "boolean"
                },
                "inputs": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^((\\$raw)|[A-Za-z0-9.\\-_[\\]]*)$": {
                            "oneOf": [
                                {"type": "number"},
                                {"type": "string"},
                                {"type": "boolean"}
                            ]
                        }
                    }
                },
                "headers": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9-]*$": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                },
                "keywordsfilters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/FilterBlock"
                    }
                },
                "error": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ErrorBlock"
                    }
                },
                "preprocessingfilters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/FilterBlock"
                    }
                },
                "rows": {
                    "$ref": "#/definitions/RowsBlock"
                },
                "fields": {
                    "$ref": "#/definitions/FieldsBlock"
                }
            },
            "required": [
                "fields",
                "rows"
            ],
            "oneOf": [
                {
                    "required": [
                        "paths"
                    ]
                },
                {
                    "required": [
                        "path"
                    ]
                }
            ],
            "title": "Search"
        },
        "SearchPathBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "path": {
                    "type": "string"
                },
                "method": {
                    "type": "string"
                },
                "followredirect": {
                    "type": "boolean"
                },
                "categories": {
                    "type": "array",
                    "items": {
                        "oneOf": [
                            {"type": "integer"},
                            {"type": "string"}
                        ]
                    }
                },
                "inputs": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^((\\$raw)|[A-Za-z0-9.\\-_[\\]]*)$": {
                            "oneOf": [
                                {"type": "integer"},
                                {"type": "string"}
                            ]
                        }
                    }
                },
                "inheritinputs": {
                    "type": "boolean"
                },
                "queryseparator": {
                    "type": "string"
                },
                "response": {
                    "$ref": "#/definitions/ResponseBlock"
                }
            },
            "required": [
                "path"
            ],
            "title": "SearchPathBlock"
        },
        "ResponseBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": {
                    "type": "string",
                    "enum": ["json", "xml"]
                },
                "noResultsMessage": {
                    "type": "string"
                }
            },
            "required": [
                "type"
            ],
            "title": "ResponseBlock"
        },
        "RowsBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "after": {
                    "type": "integer"
                },
                "dateheaders": {
                    "$ref": "#/definitions/SelectorBlock"
                },
                "selector": {
                    "type": "string"
                },
                "attribute": {
                    "type": "string"
                },
                "optional": {
                    "type": "boolean"
                },
                "multiple": {
                    "type": "boolean"
                },
                "missingAttributeEqualsNoResults": {
                    "type": "boolean"
                },
                "case": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9]*$": {
                            "type": "string"
                        }
                    }
                },
                "remove": {
                    "type": "string"
                },
                "text": {
                    "oneOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "number"
                        }
                    ]
                },
                "filters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RowFilterBlock"
                    }
                },
                "count": {
                    "$ref": "#/definitions/SelectorBlock"
                }
            },
            "title": "RowsBlock"
        },
        "FieldsBlock": {
            "type": "object",
            "additionalProperties": false,
            "patternProperties": {
                "^_[A-Za-z0-9-_]*$": {
                    "$ref": "#/definitions/SelectorBlock"
                },
                "^((title|description)\\|(append))?$": {
                    "$ref": "#/definitions/SelectorBlock"
                },
                "^((category|categorydesc)\\|(noappend|append))?$": {
                    "$ref": "#/definitions/SelectorBlock"
                },
                "^(download|magnet|infohash|details|comments|title|description|category|categorydesc|size|leechers|seeders|date|files|grabs|downloadvolumefactor|uploadvolumefactor|minimumratio|minimumseedtime|imdb|imdbid|tmdbid|rageid|tvdbid|tvmazeid|traktid|doubanid|poster|genre|year|author|booktitle|publisher|album|artist|label|track)(_([A-Za-z0-9_])*)?$": {
                    "$ref": "#/definitions/SelectorBlock"
                }
            },
            "required": [
                "seeders",
                "size",
                "title"
            ],
            "oneOf": [
                {
                    "required": [
                        "category"
                    ]
                },
                {
                    "required": [
                        "categorydesc"
                    ]
                }
            ],
            "anyOf": [
                {
                    "required": [
                        "download"
                    ]
                },
                {
                    "required": [
                        "infohash"
                    ]
                },
                {
                    "required": [
                        "magnet"
                    ]
                }
            ],
            "title": "FieldsBlock"
        },
        "DownloadBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "method": {
                    "type": "string"
                },
                "before": {
                    "$ref": "#/definitions/BeforeBlock"
                },
                "selectors": {
                    "type": "array"
                },
                "infohash": {
                    "$ref": "#/definitions/InfoHashBlock"
                },
                "headers": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9-]*$": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "title": "DownloadBlock"
        },
        "BeforeBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "path": {
                    "type": "string"
                },
                "pathselector": {
                    "$ref": "#/definitions/SelectorField"
                },
                "method": {
                    "type": "string"
                },
                "inputs": {
                    "type": "object",
                    "additionalProperties": false,
                    "patternProperties": {
                        "^[A-Za-z0-9_]*$": {
                            "oneOf": [
                                {"type": "integer"},
                                {"type": "string"}
                            ]
                        }
                    }
                },
                "queryseparator": {
                    "type": "string"
                }
            },
            "oneOf": [
                {
                    "required": [
                        "path"
                    ]
                },
                {
                    "required": [
                        "pathselector"
                    ]
                }
            ],
            "title": "BeforeBlock"
        },
        "InfoHashBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "hash": {
                    "$ref": "#/definitions/SelectorField"
                },
                "title": {
                    "$ref": "#/definitions/SelectorField"
                },
                "usebeforeresponse": {
                    "type": "boolean"
                }
            },
            "title": "InfoHashBlock"
        },
        "SelectorField": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "selector": {
                    "type": "string"
                },
                "attribute": {
                    "type": "string"
                },
                "usebeforeresponse": {
                    "type": "boolean"
                },
                "filters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/FilterBlock"
                    }
                }
            },
            "title": "SelectorField"
        },
        "RowFilterBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string",
                    "enum": ["andmatch", "strdump"]
                },
                "args": {
                    "oneOf": [
                        {
                            "type": "array",
                            "items": {
                                "oneOf": [
                                    {"type": "string"},
                                    {"type": "number"},
                                    {"type": "boolean"}
                                ]
                            }
                        },
                        {"type": "string"},
                        {"type": "integer"}
                    ]
                }
            },
            "required": [
                "name"
            ],
            "title": "RowFilterBlock"
        },
        "FilterBlock": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string",
                    "enum": ["querystring", "timeparse", "dateparse", "regexp", "re_replace", "split", "replace", "trim", "prepend", "append", "tolower", "toupper", "urldecode", "urlencode", "htmldecode", "htmlencode", "timeago", "reltime", "fuzzytime", "validfilename", "diacritics", "jsonjoinarray", "hexdump", "strdump", "validate"]
                },
                "args": {
                    "oneOf": [
                        {
                            "type": "array",
                            "items": {
                                "oneOf": [
                                    {"type": "string"},
                                    {"type": "number"},
                                    {"type": "boolean"}
                                ]
                            }
                        },
                        {"type": "string"},
                        {"type": "integer"}
                    ]
                }
            },
            "required": [
                "name"
            ],
            "allOf": [
                {
                    "if": {
                        "properties": {
                            "name": {
                                "const": "dateparse"
                            }
                        }
                    },
                    "then": {
                        "properties": {
                            "args": {
                                "type": "string",
                                "not": {
                                    "pattern": "\\d"
                                }
                            }
                        }
                    }
                }
            ],
            "title": "FilterBlock"
        },
        "IndexerCategories": {
            "type": "string",
            "enum": [
                "Console",
                "Console/NDS",
                "Console/PSP",
                "Console/Wii",
                "Console/XBox",
                "Console/XBox 360",
                "Console/Wiiware",
                "Console/XBox 360 DLC",
                "Console/PS3",
                "Console/Other",
                "Console/3DS",
                "Console/PS Vita",
                "Console/WiiU",
                "Console/XBox One",
                "Console/PS4",
                "Movies",
                "Movies/Foreign",
                "Movies/Other",
                "Movies/SD",
                "Movies/HD",
                "Movies/UHD",
                "Movies/BluRay",
                "Movies/3D",
                "Movies/DVD",
                "Movies/WEB-DL",
                "Audio",
                "Audio/MP3",
                "Audio/Video",
                "Audio/Audiobook",
                "Audio/Lossless",
                "Audio/Other",
                "Audio/Foreign",
                "PC",
                "PC/0day",
                "PC/ISO",
                "PC/Mac",
                "PC/Mobile-Other",
                "PC/Games",
                "PC/Mobile-iOS",
                "PC/Mobile-Android",
                "TV",
                "TV/WEB-DL",
                "TV/Foreign",
                "TV/SD",
                "TV/HD",
                "TV/UHD",
                "TV/Other",
                "TV/Sport",
                "TV/Anime",
                "TV/Documentary",
                "XXX",
                "XXX/DVD",
                "XXX/WMV",
                "XXX/XviD",
                "XXX/x264",
                "XXX/UHD",
                "XXX/Pack",
                "XXX/ImageSet",
                "XXX/Other",
                "XXX/SD",
                "XXX/WEB-DL",
                "Books",
                "Books/Mags",
                "Books/EBook",
                "Books/Comics",
                "Books/Technical",
                "Books/Other",
                "Books/Foreign",
                "Other",
                "Other/Misc",
                "Other/Hashed"
            ],
            "title": "IndexerCategories"
        }
    }
}
