{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/espanso-match-yml/latest.json",
  "description": "a schema to validate base.yaml",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/espanso/espanso/refs/heads/dev/schemas/match.schema.json",
    "sourceSha256": "78466f3fc45b22eb875b67a63d0ea9880f35da97c8b613d07f85b29571933db6"
  },
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string"
    },
    "imports": {
      "type": "array",
      "description": "Import other matches from external locations",
      "items": {
        "type": "string"
      }
    },
    "anchors": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/anchor"
      }
    },
    "matches": {
      "type": "array",
      "description": "Array of matches",
      "additionalItems": false,
      "items": {
        "type": "object",
        "$ref": "#/$defs/match"
      },
      "required": []
    },
    "global_vars": {
      "type": "array",
      "items": {
        "type": "object",
        "$ref": "#/$defs/var"
      }
    }
  },
  "required": [],
  "additionalProperties": false,
  "$defs": {
    "match": {
      "description": "Single match",
      "type": "object",
      "dependentRequired": {
        "uppercase_style": [
          "propagate_case"
        ]
      },
      "required": [],
      "properties": {
        "anchor": {
          "$ref": "#/$defs/anchor"
        },
        "comment": {
          "type": "string"
        },
        "force_clipboard": {
          "type": "boolean"
        },
        "force_mode": {
          "type": "string",
          "enum": [
            "clipboard",
            "keys"
          ]
        },
        "form": {
          "type": "string"
        },
        "form_fields": {
          "$ref": "#/$defs/form_field_definition"
        },
        "html": {
          "type": "string"
        },
        "image_path": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "left_word": {
          "description": "The related properties, left_word: true and right_word: true, ensure a match will only occur at the beginning or end of words respectively, and not in the middle.",
          "type": "boolean"
        },
        "markdown": {
          "type": "string"
        },
        "paragraph": {
          "description": "The `paragraph: true` option may be added to markdown replacements to avoid injecting a new-line and new paragraph.",
          "type": "boolean"
        },
        "propagate_case": {
          "type": "boolean"
        },
        "right_word": {
          "description": "The related properties, left_word: true and right_word: true, ensure a match will only occur at the beginning or end of words respectively, and not in the middle.",
          "type": "boolean"
        },
        "search_terms": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "uppercase_style": {
          "type": "string",
          "enum": [
            "capitalize",
            "capitalize_words",
            "uppercase"
          ]
        },
        "regex": {
          "type": "string"
        },
        "replace": {
          "type": [
            "string",
            "null"
          ]
        },
        "trigger": {
          "type": "string"
        },
        "triggers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "vars": {
          "type": "array",
          "additionalItems": false,
          "items": {
            "$ref": "#/$defs/var"
          }
        },
        "word": {
          "type": "boolean"
        }
      },
      "oneOf": [
        {
          "required": [
            "replace"
          ]
        },
        {
          "required": [
            "form"
          ]
        },
        {
          "required": [
            "html"
          ]
        },
        {
          "required": [
            "image_path"
          ]
        },
        {
          "required": [
            "markdown"
          ]
        }
      ],
      "additionalProperties": false
    },
    "var": {
      "oneOf": [
        {
          "$comment": "shell var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "shell"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "shell": {
                  "type": "string",
                  "enum": [
                    "bash",
                    "cmd",
                    "nu",
                    "powershell",
                    "pwsh",
                    "sh",
                    "wsl",
                    "wsl2",
                    "zsh"
                  ]
                },
                "cmd": {
                  "type": "string"
                },
                "trim": {
                  "type": "boolean",
                  "description": "Trim the output of the command. Useful if the cmd has an excess in spaces or newlines"
                },
                "debug": {
                  "type": "boolean",
                  "description": "Add the result of the shell operation in the espanso logs"
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "type",
            "name"
          ],
          "additionalProperties": false
        },
        {
          "$comment": "script var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "script"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "args": {
                  "type": "array",
                  "additionalItems": false,
                  "items": {
                    "type": "string"
                  }
                },
                "trim": {
                  "type": "boolean",
                  "description": "Trim the output of the script. Useful if the script has an excess in spaces or newlines"
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "date var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "date"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "format": {
                  "type": "string"
                },
                "offset": {
                  "type": [
                    "number",
                    "string"
                  ],
                  "description": "Time offset in seconds. Can be a number or a string (to support variable injection like {{hours_offset}})"
                },
                "tz": {
                  "type": "string",
                  "enum": [
                    "Africa/Abidjan",
                    "Africa/Accra",
                    "Africa/Addis_Ababa",
                    "Africa/Algiers",
                    "Africa/Asmara",
                    "Africa/Asmera",
                    "Africa/Bamako",
                    "Africa/Bangui",
                    "Africa/Banjul",
                    "Africa/Bissau",
                    "Africa/Blantyre",
                    "Africa/Brazzaville",
                    "Africa/Bujumbura",
                    "Africa/Cairo",
                    "Africa/Casablanca",
                    "Africa/Ceuta",
                    "Africa/Conakry",
                    "Africa/Dakar",
                    "Africa/Dar_es_Salaam",
                    "Africa/Djibouti",
                    "Africa/Douala",
                    "Africa/El_Aaiun",
                    "Africa/Freetown",
                    "Africa/Gaborone",
                    "Africa/Harare",
                    "Africa/Johannesburg",
                    "Africa/Juba",
                    "Africa/Kampala",
                    "Africa/Khartoum",
                    "Africa/Kigali",
                    "Africa/Kinshasa",
                    "Africa/Lagos",
                    "Africa/Libreville",
                    "Africa/Lome",
                    "Africa/Luanda",
                    "Africa/Lubumbashi",
                    "Africa/Lusaka",
                    "Africa/Malabo",
                    "Africa/Maputo",
                    "Africa/Maseru",
                    "Africa/Mbabane",
                    "Africa/Mogadishu",
                    "Africa/Monrovia",
                    "Africa/Nairobi",
                    "Africa/Ndjamena",
                    "Africa/Niamey",
                    "Africa/Nouakchott",
                    "Africa/Ouagadougou",
                    "Africa/Porto-Novo",
                    "Africa/Sao_Tome",
                    "Africa/Timbuktu",
                    "Africa/Tripoli",
                    "Africa/Tunis",
                    "Africa/Windhoek",
                    "America/Adak",
                    "America/Anchorage",
                    "America/Anguilla",
                    "America/Antigua",
                    "America/Araguaina",
                    "America/Argentina/Buenos_Aires",
                    "America/Argentina/Catamarca",
                    "America/Argentina/ComodRivadavia",
                    "America/Argentina/Cordoba",
                    "America/Argentina/Jujuy",
                    "America/Argentina/La_Rioja",
                    "America/Argentina/Mendoza",
                    "America/Argentina/Rio_Gallegos",
                    "America/Argentina/Salta",
                    "America/Argentina/San_Juan",
                    "America/Argentina/San_Luis",
                    "America/Argentina/Tucuman",
                    "America/Argentina/Ushuaia",
                    "America/Aruba",
                    "America/Asuncion",
                    "America/Atikokan",
                    "America/Atka",
                    "America/Bahia",
                    "America/Bahia_Banderas",
                    "America/Barbados",
                    "America/Belem",
                    "America/Belize",
                    "America/Blanc-Sablon",
                    "America/Boa_Vista",
                    "America/Bogota",
                    "America/Boise",
                    "America/Buenos_Aires",
                    "America/Cambridge_Bay",
                    "America/Campo_Grande",
                    "America/Cancun",
                    "America/Caracas",
                    "America/Catamarca",
                    "America/Cayenne",
                    "America/Cayman",
                    "America/Chicago",
                    "America/Chihuahua",
                    "America/Ciudad_Juarez",
                    "America/Coral_Harbour",
                    "America/Cordoba",
                    "America/Costa_Rica",
                    "America/Coyhaique",
                    "America/Creston",
                    "America/Cuiaba",
                    "America/Curacao",
                    "America/Danmarkshavn",
                    "America/Dawson",
                    "America/Dawson_Creek",
                    "America/Denver",
                    "America/Detroit",
                    "America/Dominica",
                    "America/Edmonton",
                    "America/Eirunepe",
                    "America/El_Salvador",
                    "America/Ensenada",
                    "America/Fort_Nelson",
                    "America/Fort_Wayne",
                    "America/Fortaleza",
                    "America/Glace_Bay",
                    "America/Godthab",
                    "America/Goose_Bay",
                    "America/Grand_Turk",
                    "America/Grenada",
                    "America/Guadeloupe",
                    "America/Guatemala",
                    "America/Guayaquil",
                    "America/Guyana",
                    "America/Halifax",
                    "America/Havana",
                    "America/Hermosillo",
                    "America/Indiana/Indianapolis",
                    "America/Indiana/Knox",
                    "America/Indiana/Marengo",
                    "America/Indiana/Petersburg",
                    "America/Indiana/Tell_City",
                    "America/Indiana/Vevay",
                    "America/Indiana/Vincennes",
                    "America/Indiana/Winamac",
                    "America/Indianapolis",
                    "America/Inuvik",
                    "America/Iqaluit",
                    "America/Jamaica",
                    "America/Jujuy",
                    "America/Juneau",
                    "America/Kentucky/Louisville",
                    "America/Kentucky/Monticello",
                    "America/Knox_IN",
                    "America/Kralendijk",
                    "America/La_Paz",
                    "America/Lima",
                    "America/Los_Angeles",
                    "America/Louisville",
                    "America/Lower_Princes",
                    "America/Maceio",
                    "America/Managua",
                    "America/Manaus",
                    "America/Marigot",
                    "America/Martinique",
                    "America/Matamoros",
                    "America/Mazatlan",
                    "America/Mendoza",
                    "America/Menominee",
                    "America/Merida",
                    "America/Metlakatla",
                    "America/Mexico_City",
                    "America/Miquelon",
                    "America/Moncton",
                    "America/Monterrey",
                    "America/Montevideo",
                    "America/Montreal",
                    "America/Montserrat",
                    "America/Nassau",
                    "America/New_York",
                    "America/Nipigon",
                    "America/Nome",
                    "America/Noronha",
                    "America/North_Dakota/Beulah",
                    "America/North_Dakota/Center",
                    "America/North_Dakota/New_Salem",
                    "America/Nuuk",
                    "America/Ojinaga",
                    "America/Panama",
                    "America/Pangnirtung",
                    "America/Paramaribo",
                    "America/Phoenix",
                    "America/Port-au-Prince",
                    "America/Port_of_Spain",
                    "America/Porto_Acre",
                    "America/Porto_Velho",
                    "America/Puerto_Rico",
                    "America/Punta_Arenas",
                    "America/Rainy_River",
                    "America/Rankin_Inlet",
                    "America/Recife",
                    "America/Regina",
                    "America/Resolute",
                    "America/Rio_Branco",
                    "America/Rosario",
                    "America/Santa_Isabel",
                    "America/Santarem",
                    "America/Santiago",
                    "America/Santo_Domingo",
                    "America/Sao_Paulo",
                    "America/Scoresbysund",
                    "America/Shiprock",
                    "America/Sitka",
                    "America/St_Barthelemy",
                    "America/St_Johns",
                    "America/St_Kitts",
                    "America/St_Lucia",
                    "America/St_Thomas",
                    "America/St_Vincent",
                    "America/Swift_Current",
                    "America/Tegucigalpa",
                    "America/Thule",
                    "America/Thunder_Bay",
                    "America/Tijuana",
                    "America/Toronto",
                    "America/Tortola",
                    "America/Vancouver",
                    "America/Virgin",
                    "America/Whitehorse",
                    "America/Winnipeg",
                    "America/Yakutat",
                    "America/Yellowknife",
                    "Antarctica/Casey",
                    "Antarctica/Davis",
                    "Antarctica/DumontDUrville",
                    "Antarctica/Macquarie",
                    "Antarctica/Mawson",
                    "Antarctica/McMurdo",
                    "Antarctica/Palmer",
                    "Antarctica/Rothera",
                    "Antarctica/South_Pole",
                    "Antarctica/Syowa",
                    "Antarctica/Troll",
                    "Antarctica/Vostok",
                    "Arctic/Longyearbyen",
                    "Asia/Aden",
                    "Asia/Almaty",
                    "Asia/Amman",
                    "Asia/Anadyr",
                    "Asia/Aqtau",
                    "Asia/Aqtobe",
                    "Asia/Ashgabat",
                    "Asia/Ashkhabad",
                    "Asia/Atyrau",
                    "Asia/Baghdad",
                    "Asia/Bahrain",
                    "Asia/Baku",
                    "Asia/Bangkok",
                    "Asia/Barnaul",
                    "Asia/Beirut",
                    "Asia/Bishkek",
                    "Asia/Brunei",
                    "Asia/Calcutta",
                    "Asia/Chita",
                    "Asia/Choibalsan",
                    "Asia/Chongqing",
                    "Asia/Chungking",
                    "Asia/Colombo",
                    "Asia/Dacca",
                    "Asia/Damascus",
                    "Asia/Dhaka",
                    "Asia/Dili",
                    "Asia/Dubai",
                    "Asia/Dushanbe",
                    "Asia/Famagusta",
                    "Asia/Gaza",
                    "Asia/Harbin",
                    "Asia/Hebron",
                    "Asia/Ho_Chi_Minh",
                    "Asia/Hong_Kong",
                    "Asia/Hovd",
                    "Asia/Irkutsk",
                    "Asia/Istanbul",
                    "Asia/Jakarta",
                    "Asia/Jayapura",
                    "Asia/Jerusalem",
                    "Asia/Kabul",
                    "Asia/Kamchatka",
                    "Asia/Karachi",
                    "Asia/Kashgar",
                    "Asia/Kathmandu",
                    "Asia/Katmandu",
                    "Asia/Khandyga",
                    "Asia/Kolkata",
                    "Asia/Krasnoyarsk",
                    "Asia/Kuala_Lumpur",
                    "Asia/Kuching",
                    "Asia/Kuwait",
                    "Asia/Macao",
                    "Asia/Macau",
                    "Asia/Magadan",
                    "Asia/Makassar",
                    "Asia/Manila",
                    "Asia/Muscat",
                    "Asia/Nicosia",
                    "Asia/Novokuznetsk",
                    "Asia/Novosibirsk",
                    "Asia/Omsk",
                    "Asia/Oral",
                    "Asia/Phnom_Penh",
                    "Asia/Pontianak",
                    "Asia/Pyongyang",
                    "Asia/Qatar",
                    "Asia/Qostanay",
                    "Asia/Qyzylorda",
                    "Asia/Rangoon",
                    "Asia/Riyadh",
                    "Asia/Saigon",
                    "Asia/Sakhalin",
                    "Asia/Samarkand",
                    "Asia/Seoul",
                    "Asia/Shanghai",
                    "Asia/Singapore",
                    "Asia/Srednekolymsk",
                    "Asia/Taipei",
                    "Asia/Tashkent",
                    "Asia/Tbilisi",
                    "Asia/Tehran",
                    "Asia/Tel_Aviv",
                    "Asia/Thimbu",
                    "Asia/Thimphu",
                    "Asia/Tokyo",
                    "Asia/Tomsk",
                    "Asia/Ujung_Pandang",
                    "Asia/Ulaanbaatar",
                    "Asia/Ulan_Bator",
                    "Asia/Urumqi",
                    "Asia/Ust-Nera",
                    "Asia/Vientiane",
                    "Asia/Vladivostok",
                    "Asia/Yakutsk",
                    "Asia/Yangon",
                    "Asia/Yekaterinburg",
                    "Asia/Yerevan",
                    "Atlantic/Azores",
                    "Atlantic/Bermuda",
                    "Atlantic/Canary",
                    "Atlantic/Cape_Verde",
                    "Atlantic/Faeroe",
                    "Atlantic/Faroe",
                    "Atlantic/Jan_Mayen",
                    "Atlantic/Madeira",
                    "Atlantic/Reykjavik",
                    "Atlantic/South_Georgia",
                    "Atlantic/St_Helena",
                    "Atlantic/Stanley",
                    "Australia/ACT",
                    "Australia/Adelaide",
                    "Australia/Brisbane",
                    "Australia/Broken_Hill",
                    "Australia/Canberra",
                    "Australia/Currie",
                    "Australia/Darwin",
                    "Australia/Eucla",
                    "Australia/Hobart",
                    "Australia/LHI",
                    "Australia/Lindeman",
                    "Australia/Lord_Howe",
                    "Australia/Melbourne",
                    "Australia/NSW",
                    "Australia/North",
                    "Australia/Perth",
                    "Australia/Queensland",
                    "Australia/South",
                    "Australia/Sydney",
                    "Australia/Tasmania",
                    "Australia/Victoria",
                    "Australia/West",
                    "Australia/Yancowinna",
                    "Brazil/Acre",
                    "Brazil/DeNoronha",
                    "Brazil/East",
                    "Brazil/West",
                    "CET",
                    "CST6CDT",
                    "Canada/Atlantic",
                    "Canada/Central",
                    "Canada/Eastern",
                    "Canada/Mountain",
                    "Canada/Newfoundland",
                    "Canada/Pacific",
                    "Canada/Saskatchewan",
                    "Canada/Yukon",
                    "Chile/Continental",
                    "Chile/EasterIsland",
                    "Cuba",
                    "EET",
                    "EST",
                    "EST5EDT",
                    "Egypt",
                    "Eire",
                    "Etc/GMT",
                    "Etc/GMT+0",
                    "Etc/GMT+1",
                    "Etc/GMT+10",
                    "Etc/GMT+11",
                    "Etc/GMT+12",
                    "Etc/GMT+2",
                    "Etc/GMT+3",
                    "Etc/GMT+4",
                    "Etc/GMT+5",
                    "Etc/GMT+6",
                    "Etc/GMT+7",
                    "Etc/GMT+8",
                    "Etc/GMT+9",
                    "Etc/GMT-0",
                    "Etc/GMT-1",
                    "Etc/GMT-10",
                    "Etc/GMT-11",
                    "Etc/GMT-12",
                    "Etc/GMT-13",
                    "Etc/GMT-14",
                    "Etc/GMT-2",
                    "Etc/GMT-3",
                    "Etc/GMT-4",
                    "Etc/GMT-5",
                    "Etc/GMT-6",
                    "Etc/GMT-7",
                    "Etc/GMT-8",
                    "Etc/GMT-9",
                    "Etc/GMT0",
                    "Etc/Greenwich",
                    "Etc/UCT",
                    "Etc/UTC",
                    "Etc/Universal",
                    "Etc/Zulu",
                    "Europe/Amsterdam",
                    "Europe/Andorra",
                    "Europe/Astrakhan",
                    "Europe/Athens",
                    "Europe/Belfast",
                    "Europe/Belgrade",
                    "Europe/Berlin",
                    "Europe/Bratislava",
                    "Europe/Brussels",
                    "Europe/Bucharest",
                    "Europe/Budapest",
                    "Europe/Busingen",
                    "Europe/Chisinau",
                    "Europe/Copenhagen",
                    "Europe/Dublin",
                    "Europe/Gibraltar",
                    "Europe/Guernsey",
                    "Europe/Helsinki",
                    "Europe/Isle_of_Man",
                    "Europe/Istanbul",
                    "Europe/Jersey",
                    "Europe/Kaliningrad",
                    "Europe/Kiev",
                    "Europe/Kirov",
                    "Europe/Kyiv",
                    "Europe/Lisbon",
                    "Europe/Ljubljana",
                    "Europe/London",
                    "Europe/Luxembourg",
                    "Europe/Madrid",
                    "Europe/Malta",
                    "Europe/Mariehamn",
                    "Europe/Minsk",
                    "Europe/Monaco",
                    "Europe/Moscow",
                    "Europe/Nicosia",
                    "Europe/Oslo",
                    "Europe/Paris",
                    "Europe/Podgorica",
                    "Europe/Prague",
                    "Europe/Riga",
                    "Europe/Rome",
                    "Europe/Samara",
                    "Europe/San_Marino",
                    "Europe/Sarajevo",
                    "Europe/Saratov",
                    "Europe/Simferopol",
                    "Europe/Skopje",
                    "Europe/Sofia",
                    "Europe/Stockholm",
                    "Europe/Tallinn",
                    "Europe/Tirane",
                    "Europe/Tiraspol",
                    "Europe/Ulyanovsk",
                    "Europe/Uzhgorod",
                    "Europe/Vaduz",
                    "Europe/Vatican",
                    "Europe/Vienna",
                    "Europe/Vilnius",
                    "Europe/Volgograd",
                    "Europe/Warsaw",
                    "Europe/Zagreb",
                    "Europe/Zaporozhye",
                    "Europe/Zurich",
                    "GB",
                    "GB-Eire",
                    "GMT",
                    "GMT+0",
                    "GMT-0",
                    "GMT0",
                    "Greenwich",
                    "HST",
                    "Hongkong",
                    "Iceland",
                    "Indian/Antananarivo",
                    "Indian/Chagos",
                    "Indian/Christmas",
                    "Indian/Cocos",
                    "Indian/Comoro",
                    "Indian/Kerguelen",
                    "Indian/Mahe",
                    "Indian/Maldives",
                    "Indian/Mauritius",
                    "Indian/Mayotte",
                    "Indian/Reunion",
                    "Iran",
                    "Israel",
                    "Jamaica",
                    "Japan",
                    "Kwajalein",
                    "Libya",
                    "MET",
                    "MST",
                    "MST7MDT",
                    "Mexico/BajaNorte",
                    "Mexico/BajaSur",
                    "Mexico/General",
                    "NZ",
                    "NZ-CHAT",
                    "Navajo",
                    "PRC",
                    "PST8PDT",
                    "Pacific/Apia",
                    "Pacific/Auckland",
                    "Pacific/Bougainville",
                    "Pacific/Chatham",
                    "Pacific/Chuuk",
                    "Pacific/Easter",
                    "Pacific/Efate",
                    "Pacific/Enderbury",
                    "Pacific/Fakaofo",
                    "Pacific/Fiji",
                    "Pacific/Funafuti",
                    "Pacific/Galapagos",
                    "Pacific/Gambier",
                    "Pacific/Guadalcanal",
                    "Pacific/Guam",
                    "Pacific/Honolulu",
                    "Pacific/Johnston",
                    "Pacific/Kanton",
                    "Pacific/Kiritimati",
                    "Pacific/Kosrae",
                    "Pacific/Kwajalein",
                    "Pacific/Majuro",
                    "Pacific/Marquesas",
                    "Pacific/Midway",
                    "Pacific/Nauru",
                    "Pacific/Niue",
                    "Pacific/Norfolk",
                    "Pacific/Noumea",
                    "Pacific/Pago_Pago",
                    "Pacific/Palau",
                    "Pacific/Pitcairn",
                    "Pacific/Pohnpei",
                    "Pacific/Ponape",
                    "Pacific/Port_Moresby",
                    "Pacific/Rarotonga",
                    "Pacific/Saipan",
                    "Pacific/Samoa",
                    "Pacific/Tahiti",
                    "Pacific/Tarawa",
                    "Pacific/Tongatapu",
                    "Pacific/Truk",
                    "Pacific/Wake",
                    "Pacific/Wallis",
                    "Pacific/Yap",
                    "Poland",
                    "Portugal",
                    "ROC",
                    "ROK",
                    "Singapore",
                    "Turkey",
                    "UCT",
                    "US/Alaska",
                    "US/Aleutian",
                    "US/Arizona",
                    "US/Central",
                    "US/East-Indiana",
                    "US/Eastern",
                    "US/Hawaii",
                    "US/Indiana-Starke",
                    "US/Michigan",
                    "US/Mountain",
                    "US/Pacific",
                    "US/Samoa",
                    "UTC",
                    "Universal",
                    "W-SU",
                    "WET",
                    "Zulu"
                  ],
                  "description": "Timezone name from the IANA timezone database (e.g., 'UTC', 'America/New_York', 'Europe/Paris')"
                },
                "locale": {
                  "type": "string",
                  "enum": [
                    "aa-DJ",
                    "aa-ER",
                    "aa-ET",
                    "af-ZA",
                    "agr-PE",
                    "ak-GH",
                    "am-ET",
                    "an-ES",
                    "anp-IN",
                    "ar-AE",
                    "ar-BH",
                    "ar-DZ",
                    "ar-EG",
                    "ar-IN",
                    "ar-IQ",
                    "ar-JO",
                    "ar-KW",
                    "ar-LB",
                    "ar-LY",
                    "ar-MA",
                    "ar-OM",
                    "ar-QA",
                    "ar-SA",
                    "ar-SD",
                    "ar-SS",
                    "ar-SY",
                    "ar-TN",
                    "ar-YE",
                    "as-IN",
                    "ast-ES",
                    "ayc-PE",
                    "az-AZ",
                    "az-IR",
                    "be-BY",
                    "bem-ZM",
                    "ber-DZ",
                    "ber-MA",
                    "bg-BG",
                    "bhb-IN",
                    "bho-IN",
                    "bho-NP",
                    "bi-VU",
                    "bn-BD",
                    "bn-IN",
                    "bo-CN",
                    "bo-IN",
                    "br-FR",
                    "brx-IN",
                    "bs-BA",
                    "byn-ER",
                    "ca-AD",
                    "ca-ES",
                    "ca-FR",
                    "ca-IT",
                    "ce-RU",
                    "chr-US",
                    "cmn-TW",
                    "crh-UA",
                    "cs-CZ",
                    "csb-PL",
                    "cv-RU",
                    "cy-GB",
                    "da-DK",
                    "de-AT",
                    "de-BE",
                    "de-CH",
                    "de-DE",
                    "de-IT",
                    "de-LI",
                    "de-LU",
                    "doi-IN",
                    "dsb-DE",
                    "dv-MV",
                    "dz-BT",
                    "el-CY",
                    "el-GR",
                    "en-AG",
                    "en-AU",
                    "en-BW",
                    "en-CA",
                    "en-DK",
                    "en-GB",
                    "en-HK",
                    "en-IE",
                    "en-IL",
                    "en-IN",
                    "en-NG",
                    "en-NZ",
                    "en-PH",
                    "en-SC",
                    "en-SG",
                    "en-US",
                    "en-ZA",
                    "en-ZM",
                    "en-ZW",
                    "eo",
                    "es-AR",
                    "es-BO",
                    "es-CL",
                    "es-CO",
                    "es-CR",
                    "es-CU",
                    "es-DO",
                    "es-EC",
                    "es-ES",
                    "es-GT",
                    "es-HN",
                    "es-MX",
                    "es-NI",
                    "es-PA",
                    "es-PE",
                    "es-PR",
                    "es-PY",
                    "es-SV",
                    "es-US",
                    "es-UY",
                    "es-VE",
                    "et-EE",
                    "eu-ES",
                    "fa-IR",
                    "ff-SN",
                    "fi-FI",
                    "fil-PH",
                    "fo-FO",
                    "fr-BE",
                    "fr-CA",
                    "fr-CH",
                    "fr-FR",
                    "fr-LU",
                    "fur-IT",
                    "fy-DE",
                    "fy-NL",
                    "ga-IE",
                    "gd-GB",
                    "gez-ER",
                    "gez-ET",
                    "gl-ES",
                    "gu-IN",
                    "gv-GB",
                    "ha-NG",
                    "hak-TW",
                    "he-IL",
                    "hi-IN",
                    "hif-FJ",
                    "hne-IN",
                    "hr-HR",
                    "hsb-DE",
                    "ht-HT",
                    "hu-HU",
                    "hy-AM",
                    "ia-FR",
                    "id-ID",
                    "ig-NG",
                    "ik-CA",
                    "is-IS",
                    "it-CH",
                    "it-IT",
                    "iu-CA",
                    "ja-JP",
                    "ka-GE",
                    "kab-DZ",
                    "kk-KZ",
                    "kl-GL",
                    "km-KH",
                    "kn-IN",
                    "ko-KR",
                    "kok-IN",
                    "ks-IN",
                    "ku-TR",
                    "kw-GB",
                    "ky-KG",
                    "lb-LU",
                    "lg-UG",
                    "li-BE",
                    "li-NL",
                    "lij-IT",
                    "ln-CD",
                    "lo-LA",
                    "lt-LT",
                    "lv-LV",
                    "lzh-TW",
                    "mag-IN",
                    "mai-IN",
                    "mai-NP",
                    "mfe-MU",
                    "mg-MG",
                    "mhr-RU",
                    "mi-NZ",
                    "miq-NI",
                    "mjw-IN",
                    "mk-MK",
                    "ml-IN",
                    "mn-MN",
                    "mni-IN",
                    "mnw-MM",
                    "mr-IN",
                    "ms-MY",
                    "mt-MT",
                    "my-MM",
                    "nan-TW",
                    "nb-NO",
                    "nds-DE",
                    "nds-NL",
                    "ne-NP",
                    "nhn-MX",
                    "niu-NU",
                    "niu-NZ",
                    "nl-AW",
                    "nl-BE",
                    "nl-NL",
                    "nn-NO",
                    "nr-ZA",
                    "nso-ZA",
                    "oc-FR",
                    "om-ET",
                    "om-KE",
                    "or-IN",
                    "os-RU",
                    "pa-IN",
                    "pa-PK",
                    "pap-AW",
                    "pap-CW",
                    "pl-PL",
                    "ps-AF",
                    "pt-BR",
                    "pt-PT",
                    "quz-PE",
                    "raj-IN",
                    "ro-RO",
                    "ru-RU",
                    "ru-UA",
                    "rw-RW",
                    "sa-IN",
                    "sah-RU",
                    "sat-IN",
                    "sc-IT",
                    "sd-IN",
                    "se-NO",
                    "sgs-LT",
                    "shn-MM",
                    "shs-CA",
                    "si-LK",
                    "sid-ET",
                    "sk-SK",
                    "sl-SI",
                    "sm-WS",
                    "so-DJ",
                    "so-ET",
                    "so-KE",
                    "so-SO",
                    "sq-AL",
                    "sq-MK",
                    "sr-ME",
                    "sr-RS",
                    "ss-ZA",
                    "st-ZA",
                    "sv-FI",
                    "sv-SE",
                    "sw-KE",
                    "sw-TZ",
                    "szl-PL",
                    "ta-IN",
                    "ta-LK",
                    "tcy-IN",
                    "te-IN",
                    "tg-TJ",
                    "th-TH",
                    "the-NP",
                    "ti-ER",
                    "ti-ET",
                    "tig-ER",
                    "tk-TM",
                    "tl-PH",
                    "tn-ZA",
                    "to-TO",
                    "tpi-PG",
                    "tr-CY",
                    "tr-TR",
                    "ts-ZA",
                    "tt-RU",
                    "ug-CN",
                    "uk-UA",
                    "unm-US",
                    "ur-IN",
                    "ur-PK",
                    "uz-UZ",
                    "ve-ZA",
                    "vi-VN",
                    "wa-BE",
                    "wae-CH",
                    "wal-ET",
                    "wo-SN",
                    "xh-ZA",
                    "yi-US",
                    "yo-NG",
                    "yue-HK",
                    "yuw-PG",
                    "zh-CN",
                    "zh-HK",
                    "zh-SG",
                    "zh-TW",
                    "zu-ZA"
                  ]
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "echo var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "echo"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "echo": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "clipboard var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "clipboard"
              ]
            },
            "name": {
              "type": "string"
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "choice var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "choice"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "values": {
                  "type": "array",
                  "items": {
                    "required": [
                      "label",
                      "id"
                    ],
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "form var",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "form"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "layout": {
                  "type": "string"
                },
                "fields": {
                  "$ref": "#/$defs/form_field_definition"
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "random",
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string",
              "enum": [
                "random"
              ]
            },
            "params": {
              "type": "object",
              "properties": {
                "choices": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        {
          "$comment": "Nested match",
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "match"
              ]
            },
            "name": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "properties": {
                "trigger": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "inject_vars": {
              "type": "boolean"
            },
            "depends_on": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "anchor": {
      "$comment": "https://espanso.org/docs/matches/extensions/#anchors-and-aliases",
      "type": "string"
    },
    "form_field_definition": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^.*$": {
          "anyOf": [
            {
              "$ref": "#/$defs/form_multiline_field"
            },
            {
              "$ref": "#/$defs/form_choice_or_list_field"
            }
          ]
        }
      }
    },
    "form_multiline_field": {
      "$comment": "multine string",
      "type": "object",
      "properties": {
        "multiline": {
          "type": "boolean"
        },
        "default": {
          "type": "string",
          "default": ""
        }
      }
    },
    "form_choice_or_list_field": {
      "$comment": "choice or list",
      "type": "object",
      "required": [
        "values",
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "choice",
            "list"
          ]
        },
        "values": {
          "type": [
            "array",
            "string"
          ],
          "items": {
            "type": "string"
          }
        },
        "default": {
          "type": "string",
          "default": ""
        },
        "trim_string_values": {
          "type": "boolean",
          "description": "If you pass the values as a multiline string and this option is true, Espanso will trim the values and remove empty ones.",
          "default": false
        }
      }
    }
  }
}
