{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/kometa-config-file/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/kometa-team/kometa/master/json-schema/config-schema.json",
    "sourceSha256": "ed635dc910abdba74136e32dbcfb108bffc99eaeae2c9920ac49f6ae0d73bf07"
  },
  "type": "object",
  "properties": {
    "libraries": {
      "$ref": "#/$defs/library-section"
    },
    "plex": {
      "$ref": "#/$defs/plex-server"
    },
    "tmdb": {
      "$ref": "#/$defs/tmdb-api"
    },
    "tautulli": {
      "$ref": "#/$defs/tautulli-api"
    },
    "webhooks": {
      "$ref": "#/$defs/webhooks"
    },
    "omdb": {
      "$ref": "#/$defs/omdb-api"
    },
    "mdblist": {
      "$ref": "#/$defs/mdblist-api"
    },
    "notifiarr": {
      "$ref": "#/$defs/notifiarr-api"
    },
    "gotify": {
      "$ref": "#/$defs/gotify-api"
    },
    "ntfy": {
      "$ref": "#/$defs/ntfy-api"
    },
    "anidb": {
      "$ref": "#/$defs/anidb-api"
    },
    "sonarr": {
      "$ref": "#/$defs/sonarr-api"
    },
    "radarr": {
      "$ref": "#/$defs/radarr-api"
    },
    "settings": {
      "$ref": "#/$defs/settings"
    },
    "mal": {
      "$ref": "#/$defs/mal-api"
    },
    "trakt": {
      "$ref": "#/$defs/trakt-api"
    }
  },
  "$defs": {
    "plex-server": {
      "description": "Describes the primary Plex server to which Kometa can connect.\nThis attribute is REQUIRED.  It can be overridden at the library level.",
      "type": "object",
      "title": "plex",
      "properties": {
        "url": {
          "description": "URL at which Kometa can connect to your plex server. NOT app.plex.tv",
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "token": {
          "description": "Admin token for this Plex server",
          "type": "string"
        },
        "timeout": {
          "description": "Connection timeout in seconds for this Plex server",
          "type": "integer",
          "minimum": 0
        },
        "db_cache": {
          "description": "Sets DB Cache value for this Plex server in MB",
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string",
              "pattern": "^$"
            }
          ]
        },
        "clean_bundles": {
          "description": "true/false - If 'true', cleans metadata bundles on this Plex server",
          "type": "boolean"
        },
        "empty_trash": {
          "description": "true/false - If 'true', empties trash on this Plex server",
          "type": "boolean"
        },
        "optimize": {
          "description": "true/false - If 'true', optimizes database on this Plex server",
          "type": "boolean"
        },
        "verify_ssl": {
          "description": "Turn SSL Verification on or off for only Plex.",
          "type": "boolean"
        }
      },
      "required": [
        "token",
        "url"
      ],
      "additionalProperties": false
    },
    "plex-server-lib": {
      "description": "Describes the Plex server where this library is found.",
      "type": "object",
      "title": "plex",
      "properties": {
        "url": {
          "description": "URL at which Kometa can connect to this plex server.  NOT app.plex.tv",
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "token": {
          "description": "Admin token for this Plex server",
          "type": "string"
        },
        "timeout": {
          "description": "Connection timeout in seconds for this Plex server",
          "type": "integer",
          "minimum": 0
        },
        "db_cache": {
          "description": "Sets DB Cache value for this Plex server in MB",
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string",
              "pattern": "^$"
            }
          ]
        },
        "clean_bundles": {
          "description": "true/false - If 'true', cleans metadata bundles on this Plex server",
          "type": "boolean"
        },
        "empty_trash": {
          "description": "true/false - If 'true', empties trash on this Plex server",
          "type": "boolean"
        },
        "optimize": {
          "description": "true/false - If 'true', optimizes database on this Plex server",
          "type": "boolean"
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "tmdb-api": {
      "description": "API Information to connect to TMDb; REQUIRED for the script to run",
      "type": "object",
      "title": "tmdb",
      "properties": {
        "apikey": {
          "type": "string",
          "description": "API Key to connect to TMDb; REQUIRED for the script to run"
        },
        "language": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "",
            "aa",
            "ab",
            "ae",
            "af",
            "ak",
            "am",
            "an",
            "ar",
            "as",
            "av",
            "ay",
            "az",
            "ba",
            "be",
            "bg",
            "bi",
            "bm",
            "bn",
            "bo",
            "br",
            "bs",
            "ca",
            "ce",
            "ch",
            "co",
            "cr",
            "cs",
            "cu",
            "cv",
            "cy",
            "da",
            "de",
            "dv",
            "dz",
            "ee",
            "el",
            "en",
            "eo",
            "es",
            "et",
            "eu",
            "fa",
            "ff",
            "fi",
            "fj",
            "fo",
            "fr",
            "fy",
            "ga",
            "gd",
            "gl",
            "gn",
            "gu",
            "gv",
            "ha",
            "he",
            "hi",
            "ho",
            "hr",
            "ht",
            "hu",
            "hy",
            "hz",
            "ia",
            "id",
            "ie",
            "ig",
            "ii",
            "ik",
            "io",
            "is",
            "it",
            "iu",
            "ja",
            "jv",
            "ka",
            "kg",
            "ki",
            "kj",
            "kk",
            "kl",
            "km",
            "kn",
            "ko",
            "kr",
            "ks",
            "ku",
            "kv",
            "kw",
            "ky",
            "la",
            "lb",
            "lg",
            "li",
            "ln",
            "lo",
            "lt",
            "lu",
            "lv",
            "mg",
            "mh",
            "mi",
            "mk",
            "ml",
            "mn",
            "mr",
            "ms",
            "mt",
            "my",
            "na",
            "nb",
            "nd",
            "ne",
            "ng",
            "nl",
            "nn",
            "no",
            "nr",
            "nv",
            "ny",
            "oc",
            "oj",
            "om",
            "or",
            "os",
            "pa",
            "pi",
            "pl",
            "ps",
            "pt",
            "qu",
            "rm",
            "rn",
            "ro",
            "ru",
            "rw",
            "sa",
            "sc",
            "sd",
            "se",
            "sg",
            "si",
            "sk",
            "sl",
            "sm",
            "sn",
            "so",
            "sq",
            "sr",
            "ss",
            "st",
            "su",
            "sv",
            "sw",
            "ta",
            "te",
            "tg",
            "th",
            "ti",
            "tk",
            "tl",
            "tn",
            "to",
            "tr",
            "ts",
            "tt",
            "tw",
            "ty",
            "ug",
            "uk",
            "ur",
            "uz",
            "ve",
            "vi",
            "vo",
            "wa",
            "wo",
            "xh",
            "yi",
            "yo",
            "za",
            "zh",
            "zu"
          ],
          "description": "This field can be either null or a valid ISO 639 language code."
        },
        "region": {
          "type": "string",
          "enum": [
            "",
            "AD",
            "AE",
            "AF",
            "AG",
            "AI",
            "AL",
            "AM",
            "AO",
            "AQ",
            "AR",
            "AS",
            "AT",
            "AU",
            "AW",
            "AX",
            "AZ",
            "BA",
            "BB",
            "BD",
            "BE",
            "BF",
            "BG",
            "BH",
            "BI",
            "BJ",
            "BL",
            "BM",
            "BN",
            "BO",
            "BQ",
            "BR",
            "BS",
            "BT",
            "BV",
            "BW",
            "BY",
            "BZ",
            "CA",
            "CC",
            "CD",
            "CF",
            "CG",
            "CH",
            "CI",
            "CK",
            "CL",
            "CM",
            "CN",
            "CO",
            "CR",
            "CU",
            "CV",
            "CW",
            "CX",
            "CY",
            "CZ",
            "DE",
            "DJ",
            "DK",
            "DM",
            "DO",
            "DZ",
            "EC",
            "EE",
            "EG",
            "EH",
            "ER",
            "ES",
            "ET",
            "FI",
            "FJ",
            "FK",
            "FM",
            "FO",
            "FR",
            "GA",
            "GB",
            "GD",
            "GE",
            "GF",
            "GG",
            "GH",
            "GI",
            "GL",
            "GM",
            "GN",
            "GP",
            "GQ",
            "GR",
            "GS",
            "GT",
            "GU",
            "GW",
            "GY",
            "HK",
            "HM",
            "HN",
            "HR",
            "HT",
            "HU",
            "ID",
            "IE",
            "IL",
            "IM",
            "IN",
            "IO",
            "IQ",
            "IR",
            "IS",
            "IT",
            "JE",
            "JM",
            "JO",
            "JP",
            "KE",
            "KG",
            "KH",
            "KI",
            "KM",
            "KN",
            "KP",
            "KR",
            "KW",
            "KY",
            "KZ",
            "LA",
            "LB",
            "LC",
            "LI",
            "LK",
            "LR",
            "LS",
            "LT",
            "LU",
            "LV",
            "LY",
            "MA",
            "MC",
            "MD",
            "ME",
            "MF",
            "MG",
            "MH",
            "MK",
            "ML",
            "MM",
            "MN",
            "MO",
            "MP",
            "MQ",
            "MR",
            "MS",
            "MT",
            "MU",
            "MV",
            "MW",
            "MX",
            "MY",
            "MZ",
            "NA",
            "NC",
            "NE",
            "NF",
            "NG",
            "NI",
            "NL",
            "NO",
            "NP",
            "NR",
            "NU",
            "NZ",
            "OM",
            "PA",
            "PE",
            "PF",
            "PG",
            "PH",
            "PK",
            "PL",
            "PM",
            "PN",
            "PR",
            "PS",
            "PT",
            "PW",
            "PY",
            "QA",
            "RE",
            "RO",
            "RS",
            "RU",
            "RW",
            "SA",
            "SB",
            "SC",
            "SD",
            "SE",
            "SG",
            "SH",
            "SI",
            "SJ",
            "SK",
            "SL",
            "SM",
            "SN",
            "SO",
            "SR",
            "SS",
            "ST",
            "SV",
            "SX",
            "SY",
            "SZ",
            "TC",
            "TD",
            "TF",
            "TG",
            "TH",
            "TJ",
            "TK",
            "TL",
            "TM",
            "TN",
            "TO",
            "TR",
            "TT",
            "TV",
            "TW",
            "TZ",
            "UA",
            "UG",
            "UM",
            "US",
            "UY",
            "UZ",
            "VA",
            "VC",
            "VE",
            "VG",
            "VI",
            "VN",
            "VU",
            "WF",
            "WS",
            "YE",
            "YT",
            "ZA",
            "ZM",
            "ZW"
          ],
          "description": "This field can be either null or a valid ISO 3166-1 Code."
        },
        "cache_expiration": {
          "type": "integer",
          "minimum": 1,
          "description": "An integer greater than 0 in days"
        }
      },
      "required": [
        "apikey"
      ],
      "additionalProperties": false
    },
    "tautulli-api": {
      "type": "object",
      "title": "tautulli",
      "properties": {
        "apikey": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        }
      },
      "required": [
        "apikey",
        "url"
      ],
      "additionalProperties": false
    },
    "webhooks": {
      "type": "object",
      "title": "webhooks",
      "properties": {
        "error": {
          "type": [
            "string",
            "null"
          ]
        },
        "version": {
          "type": [
            "string",
            "null"
          ]
        },
        "run_start": {
          "type": [
            "string",
            "null"
          ]
        },
        "run_end": {
          "type": [
            "string",
            "null"
          ]
        },
        "changes": {
          "type": [
            "string",
            "null"
          ]
        },
        "delete": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "omdb-api": {
      "type": "object",
      "title": "omdb",
      "properties": {
        "apikey": {
          "type": "string"
        },
        "cache_expiration": {
          "type": "integer",
          "minimum": 1,
          "description": "An integer greater than 0 in days"
        }
      },
      "required": [
        "apikey",
        "cache_expiration"
      ],
      "additionalProperties": false
    },
    "mdblist-api": {
      "type": "object",
      "title": "mdblist",
      "properties": {
        "apikey": {
          "type": "string"
        },
        "cache_expiration": {
          "type": "integer",
          "minimum": 1,
          "description": "An integer greater than 0 in days"
        }
      },
      "required": [
        "apikey",
        "cache_expiration"
      ],
      "additionalProperties": false
    },
    "notifiarr-api": {
      "type": "object",
      "title": "notifiarr",
      "properties": {
        "apikey": {
          "type": "string"
        }
      },
      "required": [
        "apikey"
      ],
      "additionalProperties": false
    },
    "gotify-api": {
      "type": "object",
      "title": "gotify",
      "properties": {
        "url": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "url",
        "token"
      ],
      "additionalProperties": false
    },
    "ntfy-api": {
      "type": "object",
      "title": "ntfy",
      "properties": {
        "url": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "topic": {
          "type": "string"
        }
      },
      "required": [
        "url",
        "token",
        "topic"
      ],
      "additionalProperties": false
    },
    "anidb-api": {
      "type": "object",
      "title": "anidb",
      "properties": {
        "language": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "",
            "aa",
            "ab",
            "ae",
            "af",
            "ak",
            "am",
            "an",
            "ar",
            "as",
            "av",
            "ay",
            "az",
            "ba",
            "be",
            "bg",
            "bi",
            "bm",
            "bn",
            "bo",
            "br",
            "bs",
            "ca",
            "ce",
            "ch",
            "co",
            "cr",
            "cs",
            "cu",
            "cv",
            "cy",
            "da",
            "de",
            "dv",
            "dz",
            "ee",
            "el",
            "en",
            "eo",
            "es",
            "et",
            "eu",
            "fa",
            "ff",
            "fi",
            "fj",
            "fo",
            "fr",
            "fy",
            "ga",
            "gd",
            "gl",
            "gn",
            "gu",
            "gv",
            "ha",
            "he",
            "hi",
            "ho",
            "hr",
            "ht",
            "hu",
            "hy",
            "hz",
            "ia",
            "id",
            "ie",
            "ig",
            "ii",
            "ik",
            "io",
            "is",
            "it",
            "iu",
            "ja",
            "jv",
            "ka",
            "kg",
            "ki",
            "kj",
            "kk",
            "kl",
            "km",
            "kn",
            "ko",
            "kr",
            "ks",
            "ku",
            "kv",
            "kw",
            "ky",
            "la",
            "lb",
            "lg",
            "li",
            "ln",
            "lo",
            "lt",
            "lu",
            "lv",
            "mg",
            "mh",
            "mi",
            "mk",
            "ml",
            "mn",
            "mr",
            "ms",
            "mt",
            "my",
            "na",
            "nb",
            "nd",
            "ne",
            "ng",
            "nl",
            "nn",
            "no",
            "nr",
            "nv",
            "ny",
            "oc",
            "oj",
            "om",
            "or",
            "os",
            "pa",
            "pi",
            "pl",
            "ps",
            "pt",
            "qu",
            "rm",
            "rn",
            "ro",
            "ru",
            "rw",
            "sa",
            "sc",
            "sd",
            "se",
            "sg",
            "si",
            "sk",
            "sl",
            "sm",
            "sn",
            "so",
            "sq",
            "sr",
            "ss",
            "st",
            "su",
            "sv",
            "sw",
            "ta",
            "te",
            "tg",
            "th",
            "ti",
            "tk",
            "tl",
            "tn",
            "to",
            "tr",
            "ts",
            "tt",
            "tw",
            "ty",
            "ug",
            "uk",
            "ur",
            "uz",
            "ve",
            "vi",
            "vo",
            "wa",
            "wo",
            "xh",
            "yi",
            "yo",
            "za",
            "zh",
            "zu"
          ],
          "description": "This field can be either null or a valid ISO 639 language code."
        },
        "cache_expiration": {
          "type": "integer",
          "minimum": 1,
          "description": "An integer greater than 0 in days"
        },
        "enable_mature": {
          "type": "boolean",
          "description": "Enable access to mature/restricted content"
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "sonarr-api": {
      "type": "object",
      "title": "sonarr",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "token": {
          "type": "string"
        },
        "add_missing": {
          "type": "boolean"
        },
        "add_existing": {
          "type": "boolean"
        },
        "ignore_cache": {
          "type": "boolean"
        },
        "upgrade_existing": {
          "type": "boolean"
        },
        "season_folder": {
          "type": "boolean"
        },
        "search": {
          "type": "boolean"
        },
        "cutoff_search": {
          "type": "boolean"
        },
        "root_folder_path": {
          "type": "string"
        },
        "monitor": {
          "type": "string",
          "enum": [
            "all",
            "future",
            "missing",
            "existing",
            "pilot",
            "first",
            "latest",
            "none"
          ]
        },
        "monitor_existing": {
          "description": "Ensures all existing shows in collections match your monitor setting.\nUse the sonarr_monitor_existing Sonarr Setting in the collection definition to match the monitor setting per collection.",
          "type": "boolean"
        },
        "quality_profile": {
          "type": "string"
        },
        "language_profile": {
          "type": "string"
        },
        "series_type": {
          "type": "string",
          "enum": [
            "standard",
            "daily",
            "anime"
          ]
        },
        "tag": {
          "type": [
            "string",
            "null"
          ]
        },
        "sonarr_path": {
          "type": [
            "string",
            "null"
          ]
        },
        "plex_path": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "url",
        "token",
        "quality_profile",
        "root_folder_path"
      ],
      "dependentRequired": {
        "add_existing": [
          "sonarr_path",
          "plex_path"
        ]
      },
      "additionalProperties": false
    },
    "sonarr-api-lib": {
      "type": "object",
      "title": "sonarr",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "token": {
          "type": "string"
        },
        "add_missing": {
          "type": "boolean"
        },
        "add_existing": {
          "type": "boolean"
        },
        "ignore_cache": {
          "type": "boolean"
        },
        "upgrade_existing": {
          "type": "boolean"
        },
        "season_folder": {
          "type": "boolean"
        },
        "search": {
          "type": "boolean"
        },
        "cutoff_search": {
          "type": "boolean"
        },
        "root_folder_path": {
          "type": "string"
        },
        "monitor": {
          "type": "string",
          "enum": [
            "all",
            "future",
            "missing",
            "existing",
            "pilot",
            "first",
            "latest",
            "none"
          ]
        },
        "monitor_existing": {
          "description": "Ensures all existing shows in collections match your monitor setting.\nUse the sonarr_monitor_existing Sonarr Setting in the collection definition to match the monitor setting per collection.",
          "type": "boolean"
        },
        "quality_profile": {
          "type": "string"
        },
        "language_profile": {
          "type": "string"
        },
        "series_type": {
          "type": "string",
          "enum": [
            "standard",
            "daily",
            "anime"
          ]
        },
        "tag": {
          "type": [
            "string",
            "null"
          ]
        },
        "sonarr_path": {
          "type": [
            "string",
            "null"
          ]
        },
        "plex_path": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [],
      "dependentRequired": {
        "add_existing": [
          "sonarr_path",
          "plex_path"
        ]
      },
      "additionalProperties": false
    },
    "radarr-api": {
      "type": "object",
      "title": "radarr",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "token": {
          "type": "string"
        },
        "add_missing": {
          "type": "boolean"
        },
        "add_existing": {
          "type": "boolean"
        },
        "ignore_cache": {
          "type": "boolean"
        },
        "upgrade_existing": {
          "type": "boolean"
        },
        "search": {
          "type": "boolean"
        },
        "root_folder_path": {
          "type": "string"
        },
        "monitor": {
          "type": "boolean"
        },
        "monitor_existing": {
          "type": "boolean"
        },
        "quality_profile": {
          "type": "string"
        },
        "availability": {
          "type": "string",
          "enum": [
            "announced",
            "cinemas",
            "released",
            "db"
          ]
        },
        "tag": {
          "type": [
            "string",
            "null"
          ]
        },
        "radarr_path": {
          "type": [
            "string",
            "null"
          ]
        },
        "plex_path": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "url",
        "token",
        "availability",
        "root_folder_path"
      ],
      "dependentRequired": {
        "add_existing": [
          "radarr_path",
          "plex_path"
        ]
      },
      "additionalProperties": false
    },
    "radarr-api-lib": {
      "type": "object",
      "title": "radarr",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "token": {
          "type": "string"
        },
        "add_missing": {
          "type": "boolean"
        },
        "add_existing": {
          "type": "boolean"
        },
        "ignore_cache": {
          "type": "boolean"
        },
        "upgrade_existing": {
          "type": "boolean"
        },
        "search": {
          "type": "boolean"
        },
        "root_folder_path": {
          "type": "string"
        },
        "monitor": {
          "type": "boolean"
        },
        "monitor_existing": {
          "type": "boolean"
        },
        "quality_profile": {
          "type": "string"
        },
        "availability": {
          "type": "string",
          "enum": [
            "announced",
            "cinemas",
            "released",
            "db"
          ]
        },
        "tag": {
          "type": [
            "string",
            "null"
          ]
        },
        "radarr_path": {
          "type": [
            "string",
            "null"
          ]
        },
        "plex_path": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [],
      "dependentRequired": {
        "add_existing": [
          "radarr_path",
          "plex_path"
        ]
      },
      "additionalProperties": false
    },
    "settings": {
      "type": "object",
      "title": "settings",
      "properties": {
        "cache": {
          "type": "boolean",
          "description": "Used to control Kometa's cache database.\nAllow Kometa to create and maintain a local cache database for faster subsequent processing. The cache file is created in the same directory as the configuration file."
        },
        "cache_expiration": {
          "type": "integer",
          "minimum": 1,
          "description": "Used to control how long data is cached for.\nSet the number of days before each cache mapping expires and has to be re-cached. An integer greater than 0 in days"
        },
        "run_order": {
          "description": "Used to specify the run order of the library components.\nSpecify the run order of the library components [Library Operations, Collection Files and Overlay Files]",
          "type": "array",
          "uniqueItems": true,
          "items": {
            "enum": [
              "operations",
              "metadata",
              "collections",
              "overlays"
            ]
          }
        },
        "asset_directory": {
          "description": "Used to define where local assets are located.\nSpecify the directories where assets (posters, backgrounds, etc) are located.",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "asset_folders": {
          "description": "Used to control the asset directory folder structure.\nWhile true, Kometa will search the asset_directory for a dedicated folder per item vs while false will look for an image.",
          "type": "boolean"
        },
        "asset_depth": {
          "description": "Used to control the depth of search in the asset directory.\nAt each asset level, Kometa will look for either medianame.ext [such as Star Wars.png] or a dedicated folder containing poster.ext. i.e. <path_to_assets>/Star Wars/poster.png and <path_to_assets>/Star Wars.png are both asset depth 0, whilst <path_to_assets>/Movies/Star Wars/poster.png and <path_to_assets>/Movies/Star Wars.png are both asset level 1.",
          "type": "integer",
          "minimum": 0
        },
        "create_asset_folders": {
          "description": "Used to automatically create asset folders when none exist.\nWhilst searching for assets, if an asset folder cannot be found within the asset_directory one will be created. Asset Searches can happen in a number of ways.",
          "type": "boolean"
        },
        "prioritize_assets": {
          "description": "Used to prioritize asset_directory images over all other images types.\nWhen determining which image to use on an item prioritize the asset_directory over all other images types.",
          "type": "boolean"
        },
        "dimensional_asset_rename": {
          "description": "Used to automatically rename asset files based on their dimensions.\nWhilst searching for assets, scan the folders within the asset_directory and if an asset poster (i.e. /ASSET_NAME/poster.ext) was not found, rename the first image found that has a height greater than or equal to its width to poster.ext. If an asset background (i.e. /ASSET_NAME/background.ext), rename the first image found that has a width greater than its height to background.ext.",
          "type": "boolean"
        },
        "download_url_assets": {
          "description": "Used to download url images into the asset directory.\nWhilst searching for assets, download images set within Collection/Metadata/Playlist files( i.e. images set by url_poster or url_background) into the asset folder if none are already present.",
          "type": "boolean"
        },
        "show_missing_season_assets": {
          "description": " Used to show any missing season assets.\nWhilst searching for assets, when scanning for assets for a TV Show, if Season posters are found (i.e. /ASSET_NAME/Season##.ext), notify the user of any seasons which do not have an asset image.",
          "type": "boolean"
        },
        "show_missing_episode_assets": {
          "description": "Used to show any missing episode assets.\nWhilst searching for assets, when scanning for assets for a TV Show, if an Episode Title Card is found (i.e. /ASSET_NAME/S##E##.ext), notify the user of any episodes which do not have an asset image.",
          "type": "boolean"
        },
        "show_asset_not_needed": {
          "description": "Used to show/hide the update not needed messages.\nWhilst searching for assets, show or hide the update not needed messages.",
          "type": "boolean"
        },
        "sync_mode": {
          "description": "Used to set the sync_mode for collections and playlists.\nSets the sync_mode for collections and playlists. Setting the sync_mode directly in a collection or playlist definition will override the sync_mode for that definition.",
          "enum": [
            "sync",
            "append"
          ]
        },
        "minimum_items": {
          "description": "Used to control minimum items requires to build a collection/playlist.\nSet the minimum number of items that must be found in order to build or update a collection/playlist.",
          "type": "integer",
          "minimum": 1
        },
        "default_collection_order": {
          "description": "Used to set the collection_order for every collection run.\nSet the collection_order for every collection run by Kometa unless the collection has a specific collection_order\nTIP: 'custom' cannot be used if more than one builder is being used for the collection (such as imdb_list and trakt_list within the same collection). ",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "added.asc",
            "added.desc",
            "alpha",
            "audience_rating.asc",
            "audience_rating.desc",
            "bitrate.asc",
            "bitrate.desc",
            "content_rating.asc",
            "content_rating.desc",
            "critic_rating.asc",
            "critic_rating.desc",
            "custom",
            "duration.asc",
            "duration.desc",
            "originally_available.asc",
            "originally_available.desc",
            "plays.asc",
            "plays.desc",
            "progress.asc",
            "progress.desc",
            "random",
            "release",
            "release.asc",
            "release.desc",
            "resolution.asc",
            "resolution.desc",
            "title.asc",
            "title.desc",
            "user_rating.asc",
            "user_rating.desc",
            "viewed.asc",
            "viewed.desc",
            "year.asc",
            "year.desc",
            null
          ]
        },
        "delete_below_minimum": {
          "description": "Used to delete collections below minimum_items.\nWhen a collection is run, delete the collection if it is below the minimum number specified by minimum_items.",
          "type": "boolean"
        },
        "delete_not_scheduled": {
          "description": "Used to delete collections not scheduled.\nIf a collection is skipped due to it not being scheduled, delete the collection.",
          "type": "boolean"
        },
        "run_again_delay": {
          "description": "Used to control the number of minutes to delay running run_again collections.\nSet the number of minutes to delay running run_again collections after daily run is finished. For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run 'X' amount of time later so that any downloaded items are processed.",
          "type": "integer",
          "minimum": 0
        },
        "missing_only_released": {
          "description": "Used to filter unreleased items from missing lists.\nWhilst running a collection or playlist, when Kometa handles missing items to either report it to the user, report it to a file, or send it to Radarr/Sonarr all unreleased items will be filtered out.",
          "type": "boolean"
        },
        "only_filter_missing": {
          "description": "Used to have the filter only apply to missing items.\nOnly items missing from a collection will be filtered. Only specific filters can filter missing. See Filters for more information.",
          "type": "boolean"
        },
        "show_unmanaged": {
          "description": "Used to show collections not managed by Kometa.\nList all collections not managed by Kometa at the end of each run.",
          "type": "boolean"
        },
        "show_unconfigured": {
          "description": "Used to show collections not in the current run.\nList all collections not configured in the current Kometa run at the end of each run.",
          "type": "boolean"
        },
        "show_filtered": {
          "description": "Used to show filtered items.\nList all items which have been filtered out of a collection or playlist (i.e. if it doesn't meet the filter criteria)",
          "type": "boolean"
        },
        "show_unfiltered": {
          "description": "Used to show unfiltered items.\nList all items which make it through a filter into a collection or playlist (i.e. if it MEETS the filter criteria)",
          "type": "boolean"
        },
        "show_options": {
          "description": "Used to show attribute options from plex.\nWhile show_options is true the available options for an attribute when using plex_search, smart_filter or filters will be shown. i.e. a smart_filter on the genre attribute will return all of the attributes within the specified library.",
          "type": "boolean"
        },
        "show_missing": {
          "description": "Used to show missing items from collections or playlists.\nWhile show_missing is true items missing from collections or playlists will be displayed.",
          "type": "boolean"
        },
        "show_missing_assets": {
          "description": "Used to print a message when assets are missing.\nDisplay missing asset warnings for items, collections, and playlists.",
          "type": "boolean"
        },
        "save_report": {
          "description": "Used to save a report YAML file.\nSave a report of the items added, removed, filtered, or missing from collections to a YAML file in the same directory as the file run.",
          "type": "boolean"
        },
        "tvdb_language": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "",
            "aar",
            "abk",
            "afr",
            "aka",
            "alb",
            "amh",
            "ara",
            "arg",
            "arm",
            "asm",
            "ava",
            "ave",
            "aym",
            "aze",
            "bak",
            "bam",
            "baq",
            "bel",
            "ben",
            "bis",
            "bos",
            "bre",
            "bul",
            "bur",
            "cat",
            "cha",
            "che",
            "chi",
            "chu",
            "chv",
            "cor",
            "cos",
            "cre",
            "cze",
            "dan",
            "div",
            "dut",
            "dzo",
            "eng",
            "epo",
            "est",
            "ewe",
            "fao",
            "fij",
            "fin",
            "fre",
            "fry",
            "ful",
            "geo",
            "ger",
            "gla",
            "gle",
            "glg",
            "glv",
            "gre",
            "grn",
            "guj",
            "hat",
            "hau",
            "heb",
            "her",
            "hin",
            "hmo",
            "hrv",
            "hun",
            "ibo",
            "ice",
            "ido",
            "iii",
            "iku",
            "ile",
            "ina",
            "ind",
            "ipk",
            "ita",
            "jav",
            "jpn",
            "kal",
            "kan",
            "kas",
            "kau",
            "kaz",
            "khm",
            "kik",
            "kin",
            "kir",
            "kom",
            "kon",
            "kor",
            "kua",
            "kur",
            "lao",
            "lat",
            "lav",
            "lim",
            "lin",
            "lit",
            "ltz",
            "lub",
            "lug",
            "mac",
            "mah",
            "mal",
            "mao",
            "mar",
            "may",
            "mlg",
            "mlt",
            "mon",
            "nau",
            "nav",
            "nbl",
            "nde",
            "ndo",
            "nep",
            "nno",
            "nob",
            "nor",
            "nya",
            "oci",
            "oji",
            "ori",
            "orm",
            "oss",
            "pan",
            "per",
            "pli",
            "pol",
            "por",
            "pus",
            "que",
            "roh",
            "rum",
            "run",
            "rus",
            "sag",
            "san",
            "sin",
            "slo",
            "slv",
            "sme",
            "smo",
            "sna",
            "snd",
            "som",
            "sot",
            "spa",
            "srd",
            "srp",
            "ssw",
            "sun",
            "swa",
            "swe",
            "tah",
            "tam",
            "tat",
            "tel",
            "tgk",
            "tgl",
            "tha",
            "tib",
            "tir",
            "ton",
            "tsn",
            "tso",
            "tuk",
            "tur",
            "twi",
            "uig",
            "ukr",
            "urd",
            "uzb",
            "ven",
            "vie",
            "vol",
            "wel",
            "wln",
            "wol",
            "xho",
            "yid",
            "yor",
            "zha",
            "zul"
          ],
          "description": "Specify the language to query TVDb in.\nThis field can be either null or a valid ISO 639-2 language code."
        },
        "ignore_ids": {
          "description": "List of TMDb/TVDb IDs to ignore.\nSet a null, a single TMDb/TVDb ID, or a comma-separated string of TMDb/TVDb IDs to ignore in all collections.",
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 1
            },
            {
              "type": "string",
              "pattern": "^\\d{1,8}(\\s*,\\s*\\d{1,8})*$"
            },
            {
              "type": "integer"
            }
          ]
        },
        "ignore_imdb_ids": {
          "description": "List of IMDb IDs to ignore.\nSet a null, a single IMDb ID, or a comma-separated string of IMDb IDs to ignore in all collections.",
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "string",
              "pattern": "^(tt\\d{7,8})(,(tt\\d{7,8}))*$"
            },
            {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^tt\\d{7,8}$"
              },
              "minItems": 1
            }
          ]
        },
        "item_refresh_delay": {
          "description": "Time to wait between each item_refresh.\nSpecify the amount of time to wait between each item_refresh of every movie/show in a collection/playlist.",
          "type": "integer",
          "minimum": 0
        },
        "playlist_sync_to_users": {
          "description": "Set the default playlist sync_to_users.\nTo Sync a playlist to only yourself, leave playlist_sync_to_users blank/null. Therefore, leaving it blank, 'all', a list of users, or a comma-separated string of users is accepted",
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "all"
              ]
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1
            },
            {
              "type": "string",
              "pattern": "^([^,]+)(,[^,]+)*$"
            },
            {
              "type": "null"
            }
          ]
        },
        "playlist_exclude_users": {
          "description": "Set the default playlist exclude_users.\nProvide a null value, a list of users, or a comma-separated string of users to be excluded in the playlist.",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1
            },
            {
              "type": "string",
              "pattern": "^([^,]+)(,[^,]+)*$"
            }
          ]
        },
        "playlist_report": {
          "description": "Used to print out a playlist report.\nSet playlist_report to true to print out a playlist report at the end of the log.",
          "type": "boolean"
        },
        "verify_ssl": {
          "description": "Turn SSL Verification on or off.",
          "type": "boolean"
        },
        "custom_repo": {
          "description": "Used to set up the custom repo file block type.\nSpecify where the repo attribute's base is when defining collection_files, metadata_files, playlist_file, and overlay_files.",
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string"
            }
          ]
        },
        "overlay_artwork_filetype": {
          "description": "Used to control the filetype used with overlay images.",
          "enum": [
            "jpg",
            "png",
            "webp_lossy",
            "webp_lossless"
          ]
        },
        "overlay_artwork_quality": {
          "description": "Used to control the JPG or Lossy WEBP quality used with overlay images.",
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "mal-api": {
      "type": "object",
      "title": "mal",
      "properties": {
        "client_id": {
          "type": "string"
        },
        "client_secret": {
          "type": "string"
        }
      },
      "required": [
        "client_id",
        "client_secret"
      ],
      "additionalProperties": true
    },
    "trakt-api": {
      "type": "object",
      "title": "trakt",
      "properties": {
        "client_id": {
          "type": "string"
        },
        "client_secret": {
          "type": "string"
        },
        "pin": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "client_id",
        "client_secret"
      ],
      "additionalProperties": true
    },
    "legacy-default-collection-path": {
      "type": "object",
      "required": [
        "pmm"
      ],
      "properties": {
        "pmm": {
          "type": "string",
          "enum": [
            "actor",
            "anilist",
            "aspect",
            "audio_language",
            "bafta",
            "based",
            "basic",
            "berlinale",
            "cannes",
            "cesar",
            "choice",
            "collectionless",
            "content_rating_au",
            "content_rating_cs",
            "content_rating_de",
            "content_rating_nz",
            "content_rating_mal",
            "content_rating_uk",
            "content_rating_us",
            "continent",
            "country",
            "decade",
            "director",
            "emmy",
            "flixpatrol",
            "franchise",
            "genre",
            "golden",
            "imdb",
            "letterboxd",
            "myanimelist",
            "network",
            "nfr",
            "oscars",
            "other_chart",
            "pca",
            "producer",
            "razzie",
            "region",
            "resolution",
            "sag",
            "seasonal",
            "separator_award",
            "separator_chart",
            "spirit",
            "streaming",
            "studio",
            "subtitle_language",
            "sundance",
            "tautulli",
            "tiff",
            "tmdb",
            "trakt",
            "universe",
            "venice",
            "writer",
            "year"
          ]
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-collections"
        }
      },
      "additionalProperties": false
    },
    "kometa-default-collection-path": {
      "type": "object",
      "required": [
        "default"
      ],
      "properties": {
        "default": {
          "type": "string",
          "enum": [
            "actor",
            "anilist",
            "aspect",
            "audio_language",
            "bafta",
            "based",
            "basic",
            "berlinale",
            "cannes",
            "cesar",
            "choice",
            "collectionless",
            "content_rating_au",
            "content_rating_cs",
            "content_rating_de",
            "content_rating_nz",
            "content_rating_mal",
            "content_rating_uk",
            "content_rating_us",
            "continent",
            "country",
            "decade",
            "director",
            "emmy",
            "flixpatrol",
            "franchise",
            "genre",
            "golden",
            "imdb",
            "letterboxd",
            "myanimelist",
            "network",
            "nfr",
            "oscars",
            "other_chart",
            "pca",
            "producer",
            "razzie",
            "region",
            "resolution",
            "sag",
            "seasonal",
            "separator_award",
            "separator_chart",
            "spirit",
            "streaming",
            "studio",
            "subtitle_language",
            "sundance",
            "tautulli",
            "tiff",
            "tmdb",
            "trakt",
            "universe",
            "venice",
            "writer",
            "year"
          ]
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-collections"
        }
      },
      "additionalProperties": false
    },
    "legacy-default-overlay-path": {
      "type": "object",
      "required": [
        "pmm"
      ],
      "properties": {
        "pmm": {
          "type": "string",
          "enum": [
            "aspect",
            "audio_codec",
            "commonsense",
            "content_rating_au",
            "content_rating_de",
            "content_rating_nz",
            "content_rating_uk",
            "content_rating_us_movie",
            "content_rating_us_show",
            "direct_play",
            "episode_info",
            "language_count",
            "flixpatrol",
            "languages",
            "mediastinger",
            "network",
            "ratings",
            "resolution",
            "ribbon",
            "runtimes",
            "status",
            "streaming",
            "studio",
            "versions",
            "video_format"
          ]
        },
        "remove_overlays": {
          "type": "boolean"
        },
        "reapply_overlays": {
          "type": "boolean"
        },
        "reapply_overlay": {
          "type": "boolean"
        },
        "reset_overlays": {
          "type": "string",
          "enum": [
            "tmdb",
            "plex"
          ]
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-overlays"
        }
      },
      "additionalProperties": false
    },
    "kometa-default-overlay-path": {
      "type": "object",
      "required": [],
      "properties": {
        "default": {
          "type": "string",
          "enum": [
            "aspect",
            "audio_codec",
            "commonsense",
            "content_rating_au",
            "content_rating_de",
            "content_rating_nz",
            "content_rating_uk",
            "content_rating_us_movie",
            "content_rating_us_show",
            "direct_play",
            "episode_info",
            "language_count",
            "flixpatrol",
            "languages",
            "mediastinger",
            "network",
            "ratings",
            "resolution",
            "ribbon",
            "runtimes",
            "status",
            "streaming",
            "studio",
            "versions",
            "video_format"
          ]
        },
        "remove_overlays": {
          "type": "boolean"
        },
        "reapply_overlays": {
          "type": "boolean"
        },
        "reapply_overlay": {
          "type": "boolean"
        },
        "reset_overlays": {
          "type": "string",
          "enum": [
            "tmdb",
            "plex"
          ]
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-overlays"
        }
      },
      "additionalProperties": false
    },
    "legacy-default-playlist-path": {
      "type": "object",
      "required": [
        "pmm"
      ],
      "properties": {
        "pmm": {
          "type": "string",
          "enum": [
            "playlist"
          ]
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-playlists"
        }
      },
      "additionalProperties": false
    },
    "kometa-default-playlist-path": {
      "type": "object",
      "required": [
        "default"
      ],
      "properties": {
        "default": {
          "type": "string",
          "enum": [
            "playlist"
          ]
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-playlists"
        }
      },
      "additionalProperties": false
    },
    "file-path": {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "file-path-collection-with-template-variables": {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-collections"
        }
      },
      "additionalProperties": false
    },
    "file-path-overlay-with-template-variables": {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-overlays"
        }
      },
      "additionalProperties": false
    },
    "file-path-playlist-with-template-variables": {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-playlists"
        }
      },
      "additionalProperties": false
    },
    "folder-path": {
      "type": "object",
      "required": [
        "folder"
      ],
      "properties": {
        "folder": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "url-path": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "url-path-collection-with-template-variables": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-collections"
        }
      },
      "additionalProperties": false
    },
    "url-path-overlay-with-template-variables": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-overlays"
        }
      },
      "additionalProperties": false
    },
    "url-path-playlist-with-template-variables": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-playlists"
        }
      },
      "additionalProperties": false
    },
    "git-path": {
      "type": "object",
      "required": [
        "git"
      ],
      "properties": {
        "git": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "git-path-collection-with-template-variables": {
      "type": "object",
      "required": [
        "git"
      ],
      "properties": {
        "git": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-collections"
        }
      },
      "additionalProperties": false
    },
    "git-path-overlay-with-template-variables": {
      "type": "object",
      "required": [
        "git"
      ],
      "properties": {
        "git": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-overlays"
        }
      },
      "additionalProperties": false
    },
    "git-path-playlist-with-template-variables": {
      "type": "object",
      "required": [
        "git"
      ],
      "properties": {
        "git": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-playlists"
        }
      },
      "additionalProperties": false
    },
    "repo-path": {
      "type": "object",
      "required": [
        "repo"
      ],
      "properties": {
        "repo": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "repo-path-collection-with-template-variables": {
      "type": "object",
      "required": [
        "repo"
      ],
      "properties": {
        "repo": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-collections"
        }
      },
      "additionalProperties": false
    },
    "repo-path-overlay-with-template-variables": {
      "type": "object",
      "required": [
        "repo"
      ],
      "properties": {
        "repo": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-overlays"
        }
      },
      "additionalProperties": false
    },
    "repo-path-playlist-with-template-variables": {
      "type": "object",
      "required": [
        "repo"
      ],
      "properties": {
        "repo": {
          "type": "string"
        },
        "schedule": {
          "type": "string"
        },
        "asset_directory": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "template_variables": {
          "$ref": "#/$defs/template-variables-playlists"
        }
      },
      "additionalProperties": false
    },
    "library-section": {
      "title": "libraries",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^(?!plex|tmdb|tautulli|webhooks|omdb|mdblist|notifiarr|gotify|ntfy|anidb|radarr|sonarr|trakt|mal).+$": {
          "properties": {
            "metadata_files": {
              "description": "The metadata_files attribute is used to define Metadata Files by specifying the path of the files that will be executed against the parent library.",
              "$ref": "#/$defs/metadata-files"
            },
            "collection_files": {
              "description": "The collection_files attribute is used to define Collection Files by specifying the path type and path of the files that will be executed against the parent library.",
              "$ref": "#/$defs/collection-files"
            },
            "overlay_files": {
              "description": "The overlay_files attribute is used to define Overlay Files by specifying the path type and path of the files that will be executed against the parent library.",
              "$ref": "#/$defs/overlay-files"
            },
            "metadata_path": {
              "description": "DEPRECATED! Use: metadata_files.\nThe metadata_path attribute is used to define Metadata Files by specifying the path of the files that will be executed against the parent library.",
              "$ref": "#/$defs/metadata-path"
            },
            "overlay_path": {
              "description": "DEPRECATED! Use: overlay_files.\nThe overlay_path attribute is used to define Overlay Files by specifying the path type and path of the files that will be executed against the parent library.",
              "$ref": "#/$defs/overlay-path"
            },
            "operations": {
              "description": "Used to specify Library Operations to run.",
              "$ref": "#/$defs/operations"
            },
            "library_name": {
              "description": "Used to specify the Library's name.\nRequired only when trying to use multiple servers with the same name. Each library that the user wants Kometa to interact with must be documented with a library attribute. A library attribute is represented by the mapping name (i.e. Movies or TV Shows), this must have a unique name that correlates with a library of the same name within the Plex Media Server. In the situation that two servers are being connected to which both have libraries of the same name, the library_name attribute can be utilized to specify the real Library Name, whilst the library attribute's mapping name can be made into a placeholder.",
              "type": "string"
            },
            "report_path": {
              "description": "Location to save the YAML Report file for a library.\nThe report_path attribute is used to define where to save the YAML Report file. This file is used to store information about what media is added, removed, filtered, and missing from the Plex library compared to what is expected from the Collection, Metadata, Overlay or Playlist file. If your Collection file creates a collection with Movie 1, Movie 2 and Movie 3 but your Plex library only has Movie 1 and Movie 3, then the missing YAML file will be updated to inform the user that Movie 2 was missing from the library.",
              "type": "string"
            },
            "settings": {
              "$ref": "#/$defs/settings"
            },
            "plex": {
              "$ref": "#/$defs/plex-server-lib"
            },
            "radarr": {
              "$ref": "#/$defs/radarr-api-lib"
            },
            "sonarr": {
              "$ref": "#/$defs/sonarr-api-lib"
            },
            "tautulli": {
              "$ref": "#/$defs/tautulli-api"
            },
            "template_variables": {
              "$ref": "#/$defs/template-variables-library"
            },
            "schedule": {
              "description": "Used to schedule when a library is run using the schedule options.",
              "type": "string"
            },
            "remove_overlays": {
              "description": "Used to remove overlays from this library only. \nWhen set to true, this will remove all overlays from your library every run, but will not delete the overlaid images from your system, resulting in image bloat.",
              "type": "boolean"
            },
            "reapply_overlays": {
              "description": "Used to reapply overlays from this library only. This will reapply overlays to every item in your library.\nWhen set to true, this will reapply all overlays on each run even if there is no need to do so, which will result in image bloat.",
              "type": "boolean"
            },
            "reset_overlays": {
              "description": "Used to reset overlays from this library only. This will reset overlays to every item in your library to your source choice. This will use the reset image when overlaying items in your library.\nThis will reset all posters to the desired source on each run and will reapply all overlays on each run, which will result in image bloat.",
              "type": "string",
              "enum": [
                "tmdb",
                "plex"
              ]
            },
            "run_order": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string",
                "enum": [
                  "collections",
                  "metadata",
                  "operations",
                  "overlays"
                ]
              }
            }
          },
          "additionalProperties": false,
          "type": "object"
        },
        "^schedule_.*$": {
          "type": "string"
        }
      }
    },
    "metadata-files": {
      "title": "metadata_files",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/file-path"
          },
          {
            "$ref": "#/$defs/folder-path"
          },
          {
            "$ref": "#/$defs/url-path"
          },
          {
            "$ref": "#/$defs/git-path"
          },
          {
            "$ref": "#/$defs/repo-path"
          }
        ]
      },
      "type": "array",
      "additionalProperties": false
    },
    "collection-files": {
      "title": "collection_files",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/legacy-default-collection-path",
            "deprecated": true
          },
          {
            "$ref": "#/$defs/kometa-default-collection-path"
          },
          {
            "$ref": "#/$defs/file-path"
          },
          {
            "$ref": "#/$defs/file-path-collection-with-template-variables"
          },
          {
            "$ref": "#/$defs/folder-path"
          },
          {
            "$ref": "#/$defs/url-path"
          },
          {
            "$ref": "#/$defs/url-path-collection-with-template-variables"
          },
          {
            "$ref": "#/$defs/git-path"
          },
          {
            "$ref": "#/$defs/git-path-collection-with-template-variables"
          },
          {
            "$ref": "#/$defs/repo-path"
          },
          {
            "$ref": "#/$defs/repo-path-collection-with-template-variables"
          }
        ]
      },
      "type": "array",
      "additionalProperties": false
    },
    "overlay-files": {
      "title": "overlay_files",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/legacy-default-overlay-path",
            "deprecated": true
          },
          {
            "$ref": "#/$defs/kometa-default-overlay-path"
          },
          {
            "$ref": "#/$defs/file-path"
          },
          {
            "$ref": "#/$defs/file-path-overlay-with-template-variables"
          },
          {
            "$ref": "#/$defs/folder-path"
          },
          {
            "$ref": "#/$defs/url-path"
          },
          {
            "$ref": "#/$defs/url-path-overlay-with-template-variables"
          },
          {
            "$ref": "#/$defs/git-path"
          },
          {
            "$ref": "#/$defs/git-path-overlay-with-template-variables"
          },
          {
            "$ref": "#/$defs/repo-path"
          },
          {
            "$ref": "#/$defs/repo-path-overlay-with-template-variables"
          }
        ]
      },
      "type": "array",
      "additionalProperties": false
    },
    "metadata-path": {
      "deprecated": true,
      "title": "metadata_path",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/legacy-default-collection-path",
            "deprecated": true
          },
          {
            "$ref": "#/$defs/kometa-default-collection-path"
          },
          {
            "$ref": "#/$defs/file-path"
          },
          {
            "$ref": "#/$defs/file-path-collection-with-template-variables"
          },
          {
            "$ref": "#/$defs/folder-path"
          },
          {
            "$ref": "#/$defs/url-path"
          },
          {
            "$ref": "#/$defs/url-path-collection-with-template-variables"
          },
          {
            "$ref": "#/$defs/git-path"
          },
          {
            "$ref": "#/$defs/git-path-collection-with-template-variables"
          },
          {
            "$ref": "#/$defs/repo-path"
          },
          {
            "$ref": "#/$defs/repo-path-collection-with-template-variables"
          }
        ]
      },
      "type": "array",
      "additionalProperties": false
    },
    "overlay-path": {
      "deprecated": true,
      "title": "overlay_path",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/legacy-default-overlay-path",
            "deprecated": true
          },
          {
            "$ref": "#/$defs/kometa-default-overlay-path"
          },
          {
            "$ref": "#/$defs/file-path"
          },
          {
            "$ref": "#/$defs/file-path-overlay-with-template-variables"
          },
          {
            "$ref": "#/$defs/folder-path"
          },
          {
            "$ref": "#/$defs/url-path"
          },
          {
            "$ref": "#/$defs/url-path-overlay-with-template-variables"
          },
          {
            "$ref": "#/$defs/git-path"
          },
          {
            "$ref": "#/$defs/git-path-overlay-with-template-variables"
          },
          {
            "$ref": "#/$defs/repo-path"
          },
          {
            "$ref": "#/$defs/repo-path-overlay-with-template-variables"
          }
        ]
      },
      "type": "array",
      "additionalProperties": false
    },
    "playlist-path": {
      "title": "playlist_files",
      "items": {
        "anyOf": [
          {
            "$ref": "#/$defs/legacy-default-playlist-path",
            "deprecated": true
          },
          {
            "$ref": "#/$defs/kometa-default-playlist-path"
          },
          {
            "$ref": "#/$defs/file-path"
          },
          {
            "$ref": "#/$defs/file-path-playlist-with-template-variables"
          },
          {
            "$ref": "#/$defs/folder-path"
          },
          {
            "$ref": "#/$defs/url-path"
          },
          {
            "$ref": "#/$defs/url-path-playlist-with-template-variables"
          },
          {
            "$ref": "#/$defs/git-path"
          },
          {
            "$ref": "#/$defs/git-path-playlist-with-template-variables"
          },
          {
            "$ref": "#/$defs/repo-path"
          },
          {
            "$ref": "#/$defs/repo-path-playlist-with-template-variables"
          }
        ]
      },
      "type": "array",
      "additionalProperties": false
    },
    "operations": {
      "type": "object",
      "title": "operations",
      "properties": {
        "assets_for_all": {
          "type": "boolean"
        },
        "assets_for_all_collections": {
          "type": "boolean"
        },
        "update_blank_track_titles": {
          "type": "boolean"
        },
        "remove_title_parentheses": {
          "type": "boolean"
        },
        "split_duplicates": {
          "type": "boolean"
        },
        "radarr_add_all": {
          "type": "boolean"
        },
        "sonarr_add_all": {
          "type": "boolean"
        },
        "mass_genre_update": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "tmdb",
                "tvdb",
                "imdb",
                "omdb",
                "anidb",
                "anidb_3_0",
                "anidb_2_5",
                "anidb_2_0",
                "anidb_1_5",
                "anidb_1_0",
                "anidb_0_5",
                "mal",
                "lock",
                "unlock",
                "remove",
                "reset"
              ]
            },
            {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "tmdb",
                      "tvdb",
                      "imdb",
                      "omdb",
                      "anidb",
                      "anidb_3_0",
                      "anidb_2_5",
                      "anidb_2_0",
                      "anidb_1_5",
                      "anidb_1_0",
                      "anidb_0_5",
                      "mal",
                      "lock",
                      "unlock",
                      "remove",
                      "reset"
                    ]
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              }
            }
          ]
        },
        "mass_content_rating_update": {
          "type": "array",
          "items": {
            "type": "string",
            "anyOf": [
              {
                "enum": [
                  "mdb",
                  "mdb_commonsense",
                  "mdb_commonsense0",
                  "omdb",
                  "mal",
                  "lock",
                  "unlock",
                  "remove",
                  "reset"
                ]
              },
              {
                "pattern": ".*"
              }
            ]
          }
        },
        "mass_original_title_update": {
          "type": "array",
          "items": {
            "type": "string",
            "anyOf": [
              {
                "enum": [
                  "anidb",
                  "anidb_official",
                  "mal",
                  "mal_english",
                  "mal_japanese",
                  "lock",
                  "unlock",
                  "remove",
                  "reset"
                ]
              },
              {
                "pattern": ".*"
              }
            ]
          }
        },
        "mass_studio_update": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "anidb",
                "mal",
                "tmdb",
                "lock",
                "unlock",
                "remove",
                "reset"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "anidb",
                      "mal",
                      "tmdb",
                      "lock",
                      "unlock",
                      "remove",
                      "reset"
                    ]
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            }
          ]
        },
        "mass_originally_available_update": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "tmdb",
                "tvdb",
                "omdb",
                "mdb",
                "mdb_digital",
                "anidb",
                "mal",
                "lock",
                "unlock",
                "remove",
                "reset"
              ]
            },
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "tmdb",
                      "tvdb",
                      "omdb",
                      "mdb",
                      "mdb_digital",
                      "anidb",
                      "mal",
                      "lock",
                      "unlock",
                      "remove",
                      "reset"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  }
                ]
              }
            }
          ]
        },
        "mass_added_at_update": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "tmdb",
                "tvdb",
                "omdb",
                "mdb",
                "mdb_digital",
                "anidb",
                "mal",
                "lock",
                "unlock",
                "remove",
                "reset"
              ]
            },
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "tmdb",
                      "tvdb",
                      "omdb",
                      "mdb",
                      "mdb_digital",
                      "anidb",
                      "mal",
                      "lock",
                      "unlock",
                      "remove",
                      "reset"
                    ]
                  },
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  }
                ]
              }
            }
          ]
        },
        "mass_audience_rating_update": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "anidb_average",
                "anidb_rating",
                "anidb_score",
                "imdb",
                "lock",
                "mal",
                "mdb",
                "mdb_average",
                "mdb_imdb",
                "mdb_letterboxd",
                "mdb_metacritic",
                "mdb_metacriticuser",
                "mdb_myanimelist",
                "mdb_tomatoes",
                "mdb_tomatoesaudience",
                "mdb_tmdb",
                "mdb_trakt",
                "omdb",
                "omdb_metascore",
                "omdb_tomatoes",
                "plex_imdb",
                "plex_tmdb",
                "plex_tomatoes",
                "plex_tomatoesaudience",
                "remove",
                "reset",
                "tmdb",
                "trakt",
                "trakt_user",
                "unlock"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "anidb_average",
                      "anidb_rating",
                      "anidb_score",
                      "imdb",
                      "lock",
                      "mal",
                      "mdb",
                      "mdb_average",
                      "mdb_imdb",
                      "mdb_letterboxd",
                      "mdb_metacritic",
                      "mdb_metacriticuser",
                      "mdb_myanimelist",
                      "mdb_tomatoes",
                      "mdb_tomatoesaudience",
                      "mdb_tmdb",
                      "mdb_trakt",
                      "omdb",
                      "omdb_metascore",
                      "omdb_tomatoes",
                      "plex_imdb",
                      "plex_tmdb",
                      "plex_tomatoes",
                      "plex_tomatoesaudience",
                      "remove",
                      "reset",
                      "tmdb",
                      "trakt",
                      "trakt_user",
                      "unlock"
                    ]
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        },
        "mass_critic_rating_update": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "anidb_average",
                "anidb_rating",
                "anidb_score",
                "imdb",
                "lock",
                "mal",
                "mdb",
                "mdb_average",
                "mdb_imdb",
                "mdb_letterboxd",
                "mdb_metacritic",
                "mdb_metacriticuser",
                "mdb_myanimelist",
                "mdb_tomatoes",
                "mdb_tomatoesaudience",
                "mdb_tmdb",
                "mdb_trakt",
                "omdb",
                "omdb_metascore",
                "omdb_tomatoes",
                "plex_imdb",
                "plex_tmdb",
                "plex_tomatoes",
                "plex_tomatoesaudience",
                "remove",
                "reset",
                "tmdb",
                "trakt",
                "trakt_user",
                "unlock"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "anidb_average",
                      "anidb_rating",
                      "anidb_score",
                      "imdb",
                      "lock",
                      "mal",
                      "mdb",
                      "mdb_average",
                      "mdb_imdb",
                      "mdb_letterboxd",
                      "mdb_metacritic",
                      "mdb_metacriticuser",
                      "mdb_myanimelist",
                      "mdb_tomatoes",
                      "mdb_tomatoesaudience",
                      "mdb_tmdb",
                      "mdb_trakt",
                      "omdb",
                      "omdb_metascore",
                      "omdb_tomatoes",
                      "plex_imdb",
                      "plex_tmdb",
                      "plex_tomatoes",
                      "plex_tomatoesaudience",
                      "remove",
                      "reset",
                      "tmdb",
                      "trakt",
                      "trakt_user",
                      "unlock"
                    ]
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        },
        "mass_user_rating_update": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "anidb_average",
                "anidb_rating",
                "anidb_score",
                "imdb",
                "lock",
                "mal",
                "mdb",
                "mdb_average",
                "mdb_imdb",
                "mdb_letterboxd",
                "mdb_metacritic",
                "mdb_metacriticuser",
                "mdb_myanimelist",
                "mdb_tomatoes",
                "mdb_tomatoesaudience",
                "mdb_tmdb",
                "mdb_trakt",
                "omdb",
                "omdb_metascore",
                "omdb_tomatoes",
                "plex_imdb",
                "plex_tmdb",
                "plex_tomatoes",
                "plex_tomatoesaudience",
                "remove",
                "reset",
                "tmdb",
                "trakt",
                "trakt_user",
                "unlock"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "anidb_average",
                      "anidb_rating",
                      "anidb_score",
                      "imdb",
                      "lock",
                      "mal",
                      "mdb",
                      "mdb_average",
                      "mdb_imdb",
                      "mdb_letterboxd",
                      "mdb_metacritic",
                      "mdb_metacriticuser",
                      "mdb_myanimelist",
                      "mdb_tomatoes",
                      "mdb_tomatoesaudience",
                      "mdb_tmdb",
                      "mdb_trakt",
                      "omdb",
                      "omdb_metascore",
                      "omdb_tomatoes",
                      "plex_imdb",
                      "plex_tmdb",
                      "plex_tomatoes",
                      "plex_tomatoesaudience",
                      "remove",
                      "reset",
                      "tmdb",
                      "trakt",
                      "trakt_user",
                      "unlock"
                    ]
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        },
        "mass_episode_audience_rating_update": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "anidb_average",
                "anidb_rating",
                "anidb_score",
                "imdb",
                "lock",
                "mal",
                "mdb",
                "mdb_average",
                "mdb_imdb",
                "mdb_letterboxd",
                "mdb_metacritic",
                "mdb_metacriticuser",
                "mdb_myanimelist",
                "mdb_tomatoes",
                "mdb_tomatoesaudience",
                "mdb_tmdb",
                "mdb_trakt",
                "omdb",
                "omdb_metascore",
                "omdb_tomatoes",
                "plex_imdb",
                "plex_tmdb",
                "plex_tomatoes",
                "plex_tomatoesaudience",
                "remove",
                "reset",
                "tmdb",
                "trakt",
                "trakt_user",
                "unlock"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "anidb_average",
                      "anidb_rating",
                      "anidb_score",
                      "imdb",
                      "lock",
                      "mal",
                      "mdb",
                      "mdb_average",
                      "mdb_imdb",
                      "mdb_letterboxd",
                      "mdb_metacritic",
                      "mdb_metacriticuser",
                      "mdb_myanimelist",
                      "mdb_tomatoes",
                      "mdb_tomatoesaudience",
                      "mdb_tmdb",
                      "mdb_trakt",
                      "omdb",
                      "omdb_metascore",
                      "omdb_tomatoes",
                      "plex_imdb",
                      "plex_tmdb",
                      "plex_tomatoes",
                      "plex_tomatoesaudience",
                      "remove",
                      "reset",
                      "tmdb",
                      "trakt",
                      "trakt_user",
                      "unlock"
                    ]
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        },
        "mass_episode_critic_rating_update": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "anidb_average",
                "anidb_rating",
                "anidb_score",
                "imdb",
                "lock",
                "mal",
                "mdb",
                "mdb_average",
                "mdb_imdb",
                "mdb_letterboxd",
                "mdb_metacritic",
                "mdb_metacriticuser",
                "mdb_myanimelist",
                "mdb_tomatoes",
                "mdb_tomatoesaudience",
                "mdb_tmdb",
                "mdb_trakt",
                "omdb",
                "omdb_metascore",
                "omdb_tomatoes",
                "plex_imdb",
                "plex_tmdb",
                "plex_tomatoes",
                "plex_tomatoesaudience",
                "remove",
                "reset",
                "tmdb",
                "trakt",
                "trakt_user",
                "unlock"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "anidb_average",
                      "anidb_rating",
                      "anidb_score",
                      "imdb",
                      "lock",
                      "mal",
                      "mdb",
                      "mdb_average",
                      "mdb_imdb",
                      "mdb_letterboxd",
                      "mdb_metacritic",
                      "mdb_metacriticuser",
                      "mdb_myanimelist",
                      "mdb_tomatoes",
                      "mdb_tomatoesaudience",
                      "mdb_tmdb",
                      "mdb_trakt",
                      "omdb",
                      "omdb_metascore",
                      "omdb_tomatoes",
                      "plex_imdb",
                      "plex_tmdb",
                      "plex_tomatoes",
                      "plex_tomatoesaudience",
                      "remove",
                      "reset",
                      "tmdb",
                      "trakt",
                      "trakt_user",
                      "unlock"
                    ]
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        },
        "mass_episode_user_rating_update": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "enum": [
                "anidb_average",
                "anidb_rating",
                "anidb_score",
                "imdb",
                "lock",
                "mal",
                "mdb",
                "mdb_average",
                "mdb_imdb",
                "mdb_letterboxd",
                "mdb_metacritic",
                "mdb_metacriticuser",
                "mdb_myanimelist",
                "mdb_tomatoes",
                "mdb_tomatoesaudience",
                "mdb_tmdb",
                "mdb_trakt",
                "omdb",
                "omdb_metascore",
                "omdb_tomatoes",
                "plex_imdb",
                "plex_tmdb",
                "plex_tomatoes",
                "plex_tomatoesaudience",
                "remove",
                "reset",
                "tmdb",
                "trakt",
                "trakt_user",
                "unlock"
              ]
            },
            {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "anyOf": [
                  {
                    "enum": [
                      "anidb_average",
                      "anidb_rating",
                      "anidb_score",
                      "imdb",
                      "lock",
                      "mal",
                      "mdb",
                      "mdb_average",
                      "mdb_imdb",
                      "mdb_letterboxd",
                      "mdb_metacritic",
                      "mdb_metacriticuser",
                      "mdb_myanimelist",
                      "mdb_tomatoes",
                      "mdb_tomatoesaudience",
                      "mdb_tmdb",
                      "mdb_trakt",
                      "omdb",
                      "omdb_metascore",
                      "omdb_tomatoes",
                      "plex_imdb",
                      "plex_tmdb",
                      "plex_tomatoes",
                      "plex_tomatoesaudience",
                      "remove",
                      "reset",
                      "tmdb",
                      "trakt",
                      "trakt_user",
                      "unlock"
                    ]
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          ]
        },
        "mass_poster_update": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "enum": [
                "tmdb",
                "plex",
                "lock",
                "unlock"
              ]
            },
            "language": {
              "type": "string"
            },
            "seasons": {
              "type": "boolean"
            },
            "episodes": {
              "type": "boolean"
            },
            "ignore_locked": {
              "type": "boolean"
            },
            "ignore_overlays": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "mass_background_update": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "enum": [
                "tmdb",
                "plex",
                "lock",
                "unlock"
              ]
            },
            "language": {
              "type": "string"
            },
            "seasons": {
              "type": "boolean"
            },
            "episodes": {
              "type": "boolean"
            },
            "ignore_locked": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "mass_imdb_parental_labels": {
          "type": "string",
          "enum": [
            "none",
            "mild",
            "moderate",
            "severe"
          ]
        },
        "mass_collection_mode": {
          "type": "string",
          "enum": [
            "default",
            "hide",
            "hide_items",
            "show_items"
          ]
        },
        "radarr_remove_by_tag": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "sonarr_remove_by_tag": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "delete_collections": {
          "type": "object",
          "properties": {
            "configured": {
              "type": "boolean"
            },
            "managed": {
              "type": "boolean"
            },
            "less": {
              "type": "integer"
            },
            "ignore_empty_smart_collections": {
              "type": "boolean"
            }
          },
          "required": []
        },
        "genre_mapper": {
          "type": "object",
          "properties": {},
          "required": [],
          "patternProperties": {
            "^.*$": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "^.*$"
            }
          }
        },
        "content_rating_mapper": {
          "type": "object",
          "properties": {},
          "required": [],
          "patternProperties": {
            "^.*$": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "^.*$"
            }
          }
        },
        "metadata_backup": {
          "type": "object",
          "properties": {
            "path": {
              "type": "string"
            },
            "exclude": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "sync_tags": {
              "type": "boolean"
            },
            "add_blank_entries": {
              "type": "boolean"
            }
          },
          "required": []
        }
      },
      "required": [],
      "dependentRequired": {},
      "additionalProperties": false
    },
    "template-variables-library": {
      "type": "object",
      "properties": {
        "sep_style": {
          "description": "Multiple styles are available for Separators, to match Plex's 'categories' feature.",
          "type": "string",
          "enum": [
            "amethyst",
            "aqua",
            "blue",
            "forest",
            "fuchsia",
            "gold",
            "gray",
            "green",
            "navy",
            "ocean",
            "olive",
            "orchid",
            "orig",
            "pink",
            "plum",
            "purple",
            "red",
            "rust",
            "salmon",
            "sand",
            "stb",
            "tan"
          ]
        },
        "collection_mode": {
          "description": "Controls the collection mode of all collections in a Defaults file.",
          "type": "string",
          "enum": [
            "default",
            "hide",
            "hide_items",
            "show_items"
          ]
        },
        "language": {
          "description": "Set the language of Collection Names and Summaries that Kometa has been translated to with weblate",
          "type": "string",
          "enum": [
            "en",
            "fr",
            "ar",
            "da",
            "nl",
            "de",
            "it",
            "pt-br",
            "nb-no",
            "es",
            "sv",
            "ru",
            "bg",
            "hu"
          ]
        },
        "placeholder_imdb_id": {
          "description": "Add a placeholder Movie/Show to the Separator to ensure Plex sees a collection with 1 item because 0 item collections can be problematic for Plex.\nValid for Movie or Show libraries assuming the ID points to an item of the correct type and that its in your library.",
          "type": "string",
          "pattern": "^tt\\d{7,8}$"
        }
      },
      "required": [],
      "title": "template_variables"
    },
    "template-variables-collections": {
      "type": "object",
      "properties": {
        "data": {
          "type": "object",
          "properties": {
            "starting": {
              "oneOf": [
                {
                  "type": "integer",
                  "minimum": 0
                },
                {
                  "type": "string",
                  "pattern": "^(current_year(\\s*-\\s*\\d+)?)$|^(first(\\s*\\+\\s*\\d+)?)$|^(latest(\\s*-\\s*\\d+)?)$"
                }
              ]
            },
            "ending": {
              "oneOf": [
                {
                  "type": "integer",
                  "minimum": 1
                },
                {
                  "type": "string",
                  "pattern": "^(current_year(\\s*-\\s*\\d+)?)$|^(first(\\s*\\+\\s*\\d+)?)$|^(latest(\\s*-\\s*\\d+)?)$"
                }
              ]
            },
            "increment": {
              "type": "integer",
              "minimum": 0
            },
            "depth": {
              "type": "integer",
              "minimum": 1
            },
            "limit": {
              "type": "integer",
              "minimum": 1
            }
          },
          "additionalProperties": false
        },
        "style": {
          "type": "string",
          "enum": [
            "color",
            "white",
            "bw",
            "diiivoy",
            "diiivoycolor",
            "rainier",
            "signature",
            "orig",
            "transparent",
            "default",
            "standards"
          ]
        }
      },
      "required": [],
      "dependentRequired": {},
      "title": "template_variables"
    },
    "template-variables-overlays": {
      "type": "object",
      "title": "template_variables",
      "properties": {
        "addon_offset": {
          "type": "integer",
          "minimum": 0
        },
        "addon_position": {
          "type": "string",
          "enum": [
            "left",
            "top",
            "bottom",
            "right"
          ]
        },
        "back_align": {
          "type": "string",
          "enum": [
            "left",
            "right",
            "center",
            "top",
            "bottom"
          ]
        },
        "back_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "back_height": {
          "type": "integer",
          "minimum": 1
        },
        "back_line_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "back_line_width": {
          "type": "integer",
          "minimum": 1
        },
        "back_padding": {
          "type": "integer",
          "minimum": 1
        },
        "back_radius": {
          "type": "integer",
          "minimum": 1
        },
        "back_width": {
          "type": "integer",
          "minimum": 1
        },
        "builder_level": {
          "type": "string",
          "enum": [
            "show",
            "season",
            "episode"
          ]
        },
        "color": {
          "type": "boolean",
          "description": "Toggles color styling for applicable overlays like content ratings."
        },
        "file": {
          "type": "string"
        },
        "final_name": {
          "type": "string"
        },
        "flag_alignment": {
          "type": "string",
          "enum": [
            "left",
            "right"
          ]
        },
        "font_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "font_size": {
          "type": "integer",
          "minimum": 1
        },
        "font_style": {
          "type": "string",
          "enum": [
            "Any",
            "Italic",
            "Normal",
            "Oblique"
          ]
        },
        "font": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "git": {
          "type": "string"
        },
        "group_alignment": {
          "type": "string",
          "enum": [
            "horizontal",
            "vertical"
          ]
        },
        "hide_text": {
          "type": "boolean"
        },
        "horizontal_align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "horizontal_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "horizontal_position": {
          "type": "string",
          "enum": [
            "left",
            "left2",
            "center",
            "center_left",
            "center_right",
            "right",
            "right2"
          ]
        },
        "horizontal_spacing": {
          "type": "integer"
        },
        "initial_horizontal_align": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "initial_horizontal_offset": {
          "type": "integer"
        },
        "initial_vertical_align": {
          "type": "string",
          "enum": [
            "top",
            "center",
            "bottom"
          ]
        },
        "initial_vertical_offset": {
          "type": "integer"
        },
        "languages": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "string",
            "pattern": "^[a-z]{2}$"
          }
        },
        "last": {
          "type": "integer",
          "minimum": 0
        },
        "limit": {
          "type": "integer",
          "minimum": 0
        },
        "location": {
          "type": "string",
          "enum": [
            "world",
            "albania",
            "argentina",
            "armenia",
            "australia",
            "austria",
            "azerbaijan",
            "bahamas",
            "bahrain",
            "bangladesh",
            "belarus",
            "belgium",
            "belize",
            "benin",
            "bolivia",
            "bosnia_and_herzegovina",
            "botswana",
            "brazil",
            "bulgaria",
            "burkina_faso",
            "cambodia",
            "canada",
            "chile",
            "colombia",
            "costa_rica",
            "croatia",
            "cyprus",
            "czech_republic",
            "denmark",
            "dominican_republic",
            "ecuador",
            "egypt",
            "estonia",
            "finland",
            "france",
            "gabon",
            "germany",
            "ghana",
            "greece",
            "guatemala",
            "guinea_bissau",
            "haiti",
            "honduras",
            "hong_kong",
            "hungary",
            "iceland",
            "india",
            "indonesia",
            "ireland",
            "israel",
            "italy",
            "ivory_coast",
            "jamaica",
            "japan",
            "jordan",
            "kazakhstan",
            "kenya",
            "kuwait",
            "kyrgyzstan",
            "laos",
            "latvia",
            "lebanon",
            "lithuania",
            "luxembourg",
            "malaysia",
            "maldives",
            "mali",
            "malta",
            "mexico",
            "moldova",
            "mongolia",
            "montenegro",
            "morocco",
            "mozambique",
            "namibia",
            "netherlands",
            "new_zealand",
            "nicaragua",
            "niger",
            "nigeria",
            "north_macedonia",
            "norway",
            "oman",
            "pakistan",
            "panama",
            "papua_new_guinea",
            "paraguay",
            "peru",
            "philippines",
            "poland",
            "portugal",
            "qatar",
            "romania",
            "russia",
            "rwanda",
            "salvador",
            "saudi_arabia",
            "senegal",
            "serbia",
            "singapore",
            "slovakia",
            "slovenia",
            "south_africa",
            "south_korea",
            "spain",
            "sri_lanka",
            "sweden",
            "switzerland",
            "taiwan",
            "tajikistan",
            "tanzania",
            "thailand",
            "togo",
            "trinidad_and_tobago",
            "turkey",
            "turkmenistan",
            "uganda",
            "ukraine",
            "united_arab_emirates",
            "united_kingdom",
            "united_states",
            "uruguay",
            "uzbekistan",
            "venezuela",
            "vietnam",
            "zambia",
            "zimbabwe"
          ]
        },
        "minimum": {
          "type": "integer"
        },
        "offset": {
          "type": "integer",
          "minimum": 0
        },
        "originals_only": {
          "description": "Changes Streaming Service overlays to only apply to original content produced by the service.\nNote: Cannot be used with region, and only produces overlays for amazon, appletv, disney, max, hulu, netflix, paramount, peacock",
          "type": "boolean"
        },
        "overlay_limit": {
          "description": "Choose the number of overlay this queue displays.\nDefault: 3\nValues: 1, 2, 3, 4, or 5",
          "type": "integer",
          "minimum": 1,
          "maximum": 5
        },
        "position": {
          "type": "string",
          "enum": [
            "left",
            "right"
          ]
        },
        "post_nr_text": {
          "description": "Choose the text after the 'nr' key for the Overlay.\nValues: Any String",
          "type": "string"
        },
        "post_text": {
          "description": "Choose the text after the key for the Overlay.\nDefault: +\nValues: Any String",
          "type": "string"
        },
        "pre_nr_text": {
          "description": "Choose the text before the 'nr' key for the Overlay.\nValues: Any String",
          "type": "string"
        },
        "pre_text": {
          "description": "Choose the text before the key for the Overlay.\nValues: Any String",
          "type": "string"
        },
        "rating_alignment": {
          "type": "string",
          "enum": [
            "vertical",
            "horizontal"
          ]
        },
        "rating1": {
          "type": "string",
          "enum": [
            "critic",
            "audience",
            "user"
          ]
        },
        "rating1_image": {
          "type": "string",
          "enum": [
            "anidb",
            "imdb",
            "letterboxd",
            "tmdb",
            "metacritic",
            "rt_popcorn",
            "rt_tomato",
            "trakt",
            "mal",
            "mdb",
            "star"
          ]
        },
        "rating1_font": {
          "type": "string"
        },
        "rating1_font_size": {
          "type": "integer",
          "minimum": 1
        },
        "rating1_font_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "rating1_stroke_width": {
          "type": "integer",
          "minimum": 1
        },
        "rating1_stroke_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "rating1_horizontal_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "rating1_vertical_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "rating2": {
          "type": "string",
          "enum": [
            "critic",
            "audience",
            "user"
          ]
        },
        "rating2_image": {
          "type": "string",
          "enum": [
            "anidb",
            "imdb",
            "letterboxd",
            "tmdb",
            "metacritic",
            "rt_popcorn",
            "rt_tomato",
            "trakt",
            "mal",
            "mdb",
            "star"
          ]
        },
        "rating2_font": {
          "type": "string"
        },
        "rating2_font_size": {
          "type": "integer",
          "minimum": 1
        },
        "rating2_font_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "rating2_stroke_width": {
          "type": "integer",
          "minimum": 1
        },
        "rating2_stroke_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "rating2_horizontal_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "rating2_vertical_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "rating3": {
          "type": "string",
          "enum": [
            "critic",
            "audience",
            "user"
          ]
        },
        "rating3_image": {
          "type": "string",
          "enum": [
            "anidb",
            "imdb",
            "letterboxd",
            "tmdb",
            "metacritic",
            "rt_popcorn",
            "rt_tomato",
            "trakt",
            "mal",
            "mdb",
            "star"
          ]
        },
        "rating3_font": {
          "type": "string"
        },
        "rating3_font_size": {
          "type": "integer",
          "minimum": 1
        },
        "rating3_font_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "rating3_stroke_width": {
          "type": "integer",
          "minimum": 1
        },
        "rating3_stroke_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "rating3_horizontal_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "rating3_vertical_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "region": {
          "type": "string",
          "enum": [
            "us",
            "uk",
            "ca",
            "da",
            "de",
            "es",
            "fr",
            "it",
            "pt-br"
          ]
        },
        "remove_overlays": {
          "type": "boolean"
        },
        "reapply_overlays": {
          "type": "boolean"
        },
        "reset_overlays": {
          "type": "string",
          "enum": [
            "tmdb",
            "plex"
          ]
        },
        "repo": {
          "type": "string"
        },
        "scale_height": {
          "type": [
            "string",
            "integer"
          ],
          "exclusiveMinimum": 1
        },
        "scale_width": {
          "type": [
            "string",
            "integer"
          ],
          "exclusiveMinimum": 1
        },
        "size": {
          "type": "string",
          "enum": [
            "small",
            "big"
          ]
        },
        "stroke_color": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "stroke_width": {
          "type": "integer",
          "minimum": 1
        },
        "style": {
          "type": "string",
          "enum": [
            "compact",
            "standard",
            "bigger",
            "round",
            "square",
            "half",
            "red",
            "black",
            "yellow",
            "gray",
            "color",
            "white"
          ]
        },
        "text": {
          "type": "string"
        },
        "time_window": {
          "type": "string",
          "enum": [
            "today",
            "yesterday",
            "this_week",
            "last_week",
            "this_month",
            "last_month",
            "this_year",
            "last_year"
          ]
        },
        "url": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "use_edition": {
          "type": "boolean"
        },
        "use_lowercase": {
          "type": "boolean"
        },
        "use_resolution": {
          "type": "boolean"
        },
        "use_subtitles": {
          "type": "boolean"
        },
        "vertical_align": {
          "type": "string",
          "enum": [
            "top",
            "center",
            "bottom"
          ]
        },
        "vertical_offset": {
          "type": [
            "string",
            "integer"
          ]
        },
        "vertical_position": {
          "type": "string",
          "enum": [
            "top",
            "top2",
            "top3",
            "center",
            "center_top",
            "center_bottom",
            "bottom",
            "bottom2",
            "bottom3"
          ]
        },
        "vertical_spacing": {
          "type": "integer"
        }
      },
      "additionalProperties": false,
      "required": [],
      "dependentRequired": {},
      "patternProperties": {
        "^country_.*$": {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "^file_.*$": {
          "type": "string"
        },
        "^git_.*$": {
          "type": "string"
        },
        "^limit_.*$": {
          "type": "integer",
          "minimum": 0
        },
        "^location_.*$": {
          "type": "string",
          "enum": [
            "world",
            "albania",
            "argentina",
            "armenia",
            "australia",
            "austria",
            "azerbaijan",
            "bahamas",
            "bahrain",
            "bangladesh",
            "belarus",
            "belgium",
            "belize",
            "benin",
            "bolivia",
            "bosnia_and_herzegovina",
            "botswana",
            "brazil",
            "bulgaria",
            "burkina_faso",
            "cambodia",
            "canada",
            "chile",
            "colombia",
            "costa_rica",
            "croatia",
            "cyprus",
            "czech_republic",
            "denmark",
            "dominican_republic",
            "ecuador",
            "egypt",
            "estonia",
            "finland",
            "france",
            "gabon",
            "germany",
            "ghana",
            "greece",
            "guatemala",
            "guinea_bissau",
            "haiti",
            "honduras",
            "hong_kong",
            "hungary",
            "iceland",
            "india",
            "indonesia",
            "ireland",
            "israel",
            "italy",
            "ivory_coast",
            "jamaica",
            "japan",
            "jordan",
            "kazakhstan",
            "kenya",
            "kuwait",
            "kyrgyzstan",
            "laos",
            "latvia",
            "lebanon",
            "lithuania",
            "luxembourg",
            "malaysia",
            "maldives",
            "mali",
            "malta",
            "mexico",
            "moldova",
            "mongolia",
            "montenegro",
            "morocco",
            "mozambique",
            "namibia",
            "netherlands",
            "new_zealand",
            "nicaragua",
            "niger",
            "nigeria",
            "north_macedonia",
            "norway",
            "oman",
            "pakistan",
            "panama",
            "papua_new_guinea",
            "paraguay",
            "peru",
            "philippines",
            "poland",
            "portugal",
            "qatar",
            "romania",
            "russia",
            "rwanda",
            "salvador",
            "saudi_arabia",
            "senegal",
            "serbia",
            "singapore",
            "slovakia",
            "slovenia",
            "south_africa",
            "south_korea",
            "spain",
            "sri_lanka",
            "sweden",
            "switzerland",
            "taiwan",
            "tajikistan",
            "tanzania",
            "thailand",
            "togo",
            "trinidad_and_tobago",
            "turkey",
            "turkmenistan",
            "uganda",
            "ukraine",
            "united_arab_emirates",
            "united_kingdom",
            "united_states",
            "uruguay",
            "uzbekistan",
            "venezuela",
            "vietnam",
            "zambia",
            "zimbabwe"
          ]
        },
        "^rating\\d+_(?!(font_|stroke_|horizontal_offset$|vertical_offset$)).*$": {
          "type": "string"
        },
        "^regex_.*$": {
          "type": "string"
        },
        "^repo_.*$": {
          "type": "string"
        },
        "^text_.*$": {
          "type": "string"
        },
        "^time_window_.*$": {
          "type": "string",
          "enum": [
            "today",
            "yesterday",
            "this_week",
            "last_week",
            "this_month",
            "last_month",
            "this_year",
            "last_year"
          ]
        },
        "^url_.*$": {
          "type": "string",
          "format": "uri",
          "pattern": "^(https?)://"
        },
        "^use_.*$": {
          "type": "boolean"
        },
        "^weight_.*$": {
          "type": "integer"
        },
        "^font_(?!size).*": {
          "type": "string"
        },
        "^font_color_.*$": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "^font_size_.*$": {
          "type": "integer",
          "minimum": 1
        },
        "^font_style_.*$": {
          "type": "string",
          "enum": [
            "Any",
            "Italic",
            "Normal",
            "Oblique"
          ]
        },
        "^horizontal_align_.*$": {
          "type": "string",
          "enum": [
            "left",
            "center",
            "right"
          ]
        },
        "^horizontal_offset_.*$": {
          "type": [
            "string",
            "integer"
          ],
          "minimum": 0
        },
        "^vertical_align_.*$": {
          "type": "string",
          "enum": [
            "top",
            "center",
            "bottom"
          ]
        },
        "^vertical_offset_.*$": {
          "type": [
            "string",
            "integer"
          ],
          "minimum": 0
        },
        "^stroke_color_.*$": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "^stroke_width_.*$": {
          "type": "integer",
          "minimum": 1
        },
        "^back_align_.*$": {
          "type": "string",
          "enum": [
            "left",
            "right",
            "center",
            "top",
            "bottom"
          ]
        },
        "^back_color_.*$": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "^back_height_.*$": {
          "type": "integer",
          "minimum": 1
        },
        "^back_line_color_.*$": {
          "type": "string",
          "pattern": "^\\#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
        },
        "^back_line_width_.*$": {
          "type": "integer",
          "minimum": 1
        },
        "^back_padding_.*$": {
          "type": "integer",
          "minimum": 1
        },
        "^back_radius_.*$": {
          "type": "integer",
          "minimum": 1
        },
        "^back_width_.*$": {
          "type": "integer",
          "minimum": 1
        }
      }
    },
    "template-variables-playlists": {
      "type": "array",
      "title": "template_variables",
      "properties": {},
      "required": [],
      "dependentRequired": {},
      "additionalProperties": true
    }
  },
  "required": [
    "plex",
    "tmdb"
  ]
}
