{
  "$comment": "请使用 vscode，否则 markdownDescription 可能无效",
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "https://schema.abgox.com/scoop-manifest.zh-CN.json",
  "title": "Scoop 软件包清单(manifest) 的 JSON Schema",
  "type": "object",
  "required": [
    "version",
    "description",
    "homepage",
    "license"
  ],
  "definitions": {
    "bool": {
      "type": "boolean",
      "examples": [
        true
      ]
    },
    "str": {
      "type": "string",
      "minLength": 1,
      "allOf": [
        {
          "not": {
            "pattern": "^\\s[^\\s]"
          },
          "errorMessage": "请删除开头的空格"
        },
        {
          "not": {
            "pattern": "[^\\s]\\s$"
          },
          "errorMessage": "请删除末尾的空格"
        }
      ]
    },
    "str_or_arr": {
      "type": [
        "string",
        "array"
      ],
      "items": {
        "type": "string",
        "allOf": [
          {
            "not": {
              "maxLength": 0
            },
            "errorMessage": "字符串短于最小长度 1\n如果只是想避免警告，可以添加一个空格"
          }
        ]
      },
      "minLength": 1,
      "minItems": 1,
      "$ref": "#/definitions/use_string_if_single"
    },
    "use_string_if_single": {
      "if": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "then": {
        "not": {
          "minItems": 1,
          "maxItems": 1
        },
        "errorMessage": "当数组只有一项时，应该使用字符串"
      }
    },
    "spdx_license_identifier": {
      "enum": [
        "0BSD",
        "3D-Slicer-1.0",
        "AAL",
        "Abstyles",
        "AdaCore-doc",
        "Adobe-2006",
        "Adobe-Display-PostScript",
        "Adobe-Glyph",
        "Adobe-Utopia",
        "ADSL",
        "Advanced-Cryptics-Dictionary",
        "AFL-1.1",
        "AFL-1.2",
        "AFL-2.0",
        "AFL-2.1",
        "AFL-3.0",
        "Afmparse",
        "AGPL-1.0-only",
        "AGPL-1.0-or-later",
        "AGPL-3.0-only",
        "AGPL-3.0-or-later",
        "Aladdin",
        "ALGLIB-Documentation",
        "AMD-newlib",
        "AMDPLPA",
        "AML",
        "AML-glslang",
        "AMPAS",
        "ANTLR-PD",
        "ANTLR-PD-fallback",
        "any-OSI",
        "any-OSI-perl-modules",
        "Apache-1.0",
        "Apache-1.1",
        "Apache-2.0",
        "APAFML",
        "APL-1.0",
        "App-s2p",
        "APSL-1.0",
        "APSL-1.1",
        "APSL-1.2",
        "APSL-2.0",
        "Arphic-1999",
        "Artistic-1.0",
        "Artistic-1.0-cl8",
        "Artistic-1.0-Perl",
        "Artistic-2.0",
        "Artistic-dist",
        "Aspell-RU",
        "ASWF-Digital-Assets-1.0",
        "ASWF-Digital-Assets-1.1",
        "Baekmuk",
        "Bahyph",
        "Barr",
        "bcrypt-Solar-Designer",
        "Beerware",
        "Bitstream-Charter",
        "Bitstream-Vera",
        "BitTorrent-1.0",
        "BitTorrent-1.1",
        "blessing",
        "BlueOak-1.0.0",
        "Boehm-GC",
        "Boehm-GC-without-fee",
        "BOLA-1.1",
        "Borceux",
        "Brian-Gladman-2-Clause",
        "Brian-Gladman-3-Clause",
        "BSD-1-Clause",
        "BSD-2-Clause",
        "BSD-2-Clause-Darwin",
        "BSD-2-Clause-first-lines",
        "BSD-2-Clause-Patent",
        "BSD-2-Clause-pkgconf-disclaimer",
        "BSD-2-Clause-Views",
        "BSD-3-Clause",
        "BSD-3-Clause-acpica",
        "BSD-3-Clause-Attribution",
        "BSD-3-Clause-Clear",
        "BSD-3-Clause-flex",
        "BSD-3-Clause-HP",
        "BSD-3-Clause-LBNL",
        "BSD-3-Clause-Modification",
        "BSD-3-Clause-No-Military-License",
        "BSD-3-Clause-No-Nuclear-License",
        "BSD-3-Clause-No-Nuclear-License-2014",
        "BSD-3-Clause-No-Nuclear-Warranty",
        "BSD-3-Clause-Open-MPI",
        "BSD-3-Clause-Sun",
        "BSD-3-Clause-Tso",
        "BSD-4-Clause",
        "BSD-4-Clause-Shortened",
        "BSD-4-Clause-UC",
        "BSD-4.3RENO",
        "BSD-4.3TAHOE",
        "BSD-Advertising-Acknowledgement",
        "BSD-Attribution-HPND-disclaimer",
        "BSD-Inferno-Nettverk",
        "BSD-Mark-Modifications",
        "BSD-Protection",
        "BSD-Source-beginning-file",
        "BSD-Source-Code",
        "BSD-Systemics",
        "BSD-Systemics-W3Works",
        "BSL-1.0",
        "Buddy",
        "BUSL-1.1",
        "bzip2-1.0.6",
        "C-UDA-1.0",
        "CAL-1.0",
        "CAL-1.0-Combined-Work-Exception",
        "Caldera",
        "Caldera-no-preamble",
        "CAPEC-tou",
        "Catharon",
        "CATOSL-1.1",
        "CC-BY-1.0",
        "CC-BY-2.0",
        "CC-BY-2.5",
        "CC-BY-2.5-AU",
        "CC-BY-3.0",
        "CC-BY-3.0-AT",
        "CC-BY-3.0-AU",
        "CC-BY-3.0-DE",
        "CC-BY-3.0-IGO",
        "CC-BY-3.0-NL",
        "CC-BY-3.0-US",
        "CC-BY-4.0",
        "CC-BY-NC-1.0",
        "CC-BY-NC-2.0",
        "CC-BY-NC-2.5",
        "CC-BY-NC-3.0",
        "CC-BY-NC-3.0-DE",
        "CC-BY-NC-4.0",
        "CC-BY-NC-ND-1.0",
        "CC-BY-NC-ND-2.0",
        "CC-BY-NC-ND-2.5",
        "CC-BY-NC-ND-3.0",
        "CC-BY-NC-ND-3.0-DE",
        "CC-BY-NC-ND-3.0-IGO",
        "CC-BY-NC-ND-4.0",
        "CC-BY-NC-SA-1.0",
        "CC-BY-NC-SA-2.0",
        "CC-BY-NC-SA-2.0-DE",
        "CC-BY-NC-SA-2.0-FR",
        "CC-BY-NC-SA-2.0-UK",
        "CC-BY-NC-SA-2.5",
        "CC-BY-NC-SA-3.0",
        "CC-BY-NC-SA-3.0-DE",
        "CC-BY-NC-SA-3.0-IGO",
        "CC-BY-NC-SA-4.0",
        "CC-BY-ND-1.0",
        "CC-BY-ND-2.0",
        "CC-BY-ND-2.5",
        "CC-BY-ND-3.0",
        "CC-BY-ND-3.0-DE",
        "CC-BY-ND-4.0",
        "CC-BY-SA-1.0",
        "CC-BY-SA-2.0",
        "CC-BY-SA-2.0-UK",
        "CC-BY-SA-2.1-JP",
        "CC-BY-SA-2.5",
        "CC-BY-SA-3.0",
        "CC-BY-SA-3.0-AT",
        "CC-BY-SA-3.0-DE",
        "CC-BY-SA-3.0-IGO",
        "CC-BY-SA-4.0",
        "CC-PDDC",
        "CC-PDM-1.0",
        "CC-SA-1.0",
        "CC0-1.0",
        "CDDL-1.0",
        "CDDL-1.1",
        "CDL-1.0",
        "CDLA-Permissive-1.0",
        "CDLA-Permissive-2.0",
        "CDLA-Sharing-1.0",
        "CECILL-1.0",
        "CECILL-1.1",
        "CECILL-2.0",
        "CECILL-2.1",
        "CECILL-B",
        "CECILL-C",
        "CERN-OHL-1.1",
        "CERN-OHL-1.2",
        "CERN-OHL-P-2.0",
        "CERN-OHL-S-2.0",
        "CERN-OHL-W-2.0",
        "CFITSIO",
        "check-cvs",
        "checkmk",
        "ClArtistic",
        "Clips",
        "CMU-Mach",
        "CMU-Mach-nodoc",
        "CNRI-Jython",
        "CNRI-Python",
        "CNRI-Python-GPL-Compatible",
        "COIL-1.0",
        "Community-Spec-1.0",
        "Condor-1.1",
        "copyleft-next-0.3.0",
        "copyleft-next-0.3.1",
        "Cornell-Lossless-JPEG",
        "CPAL-1.0",
        "CPL-1.0",
        "CPOL-1.02",
        "Cronyx",
        "Crossword",
        "CryptoSwift",
        "CrystalStacker",
        "CUA-OPL-1.0",
        "Cube",
        "curl",
        "cve-tou",
        "D-FSL-1.0",
        "DEC-3-Clause",
        "diffmark",
        "DL-DE-BY-2.0",
        "DL-DE-ZERO-2.0",
        "DOC",
        "DocBook-DTD",
        "DocBook-Schema",
        "DocBook-Stylesheet",
        "DocBook-XML",
        "Dotseqn",
        "DRL-1.0",
        "DRL-1.1",
        "DSDP",
        "dtoa",
        "dvipdfm",
        "ECL-1.0",
        "ECL-2.0",
        "EFL-1.0",
        "EFL-2.0",
        "eGenix",
        "Elastic-2.0",
        "Entessa",
        "EPICS",
        "EPL-1.0",
        "EPL-2.0",
        "ErlPL-1.1",
        "ESA-PL-permissive-2.4",
        "ESA-PL-strong-copyleft-2.4",
        "ESA-PL-weak-copyleft-2.4",
        "etalab-2.0",
        "EUDatagrid",
        "EUPL-1.0",
        "EUPL-1.1",
        "EUPL-1.2",
        "Eurosym",
        "Fair",
        "FBM",
        "FDK-AAC",
        "Ferguson-Twofish",
        "Frameworx-1.0",
        "FreeBSD-DOC",
        "FreeImage",
        "FSFAP",
        "FSFAP-no-warranty-disclaimer",
        "FSFUL",
        "FSFULLR",
        "FSFULLRSD",
        "FSFULLRWD",
        "FSL-1.1-ALv2",
        "FSL-1.1-MIT",
        "FTL",
        "Furuseth",
        "fwlw",
        "Game-Programming-Gems",
        "GCR-docs",
        "GD",
        "generic-xts",
        "GFDL-1.1-invariants-only",
        "GFDL-1.1-invariants-or-later",
        "GFDL-1.1-no-invariants-only",
        "GFDL-1.1-no-invariants-or-later",
        "GFDL-1.1-only",
        "GFDL-1.1-or-later",
        "GFDL-1.2-invariants-only",
        "GFDL-1.2-invariants-or-later",
        "GFDL-1.2-no-invariants-only",
        "GFDL-1.2-no-invariants-or-later",
        "GFDL-1.2-only",
        "GFDL-1.2-or-later",
        "GFDL-1.3-invariants-only",
        "GFDL-1.3-invariants-or-later",
        "GFDL-1.3-no-invariants-only",
        "GFDL-1.3-no-invariants-or-later",
        "GFDL-1.3-only",
        "GFDL-1.3-or-later",
        "Giftware",
        "GL2PS",
        "Glide",
        "Glulxe",
        "GLWTPL",
        "gnuplot",
        "GPL-1.0-only",
        "GPL-1.0-or-later",
        "GPL-2.0-only",
        "GPL-2.0-or-later",
        "GPL-3.0-only",
        "GPL-3.0-or-later",
        "Graphics-Gems",
        "gSOAP-1.3b",
        "gtkbook",
        "Gutmann",
        "HaskellReport",
        "HDF5",
        "hdparm",
        "HIDAPI",
        "Hippocratic-2.1",
        "HP-1986",
        "HP-1989",
        "HPND",
        "HPND-DEC",
        "HPND-doc",
        "HPND-doc-sell",
        "HPND-export-US",
        "HPND-export-US-acknowledgement",
        "HPND-export-US-modify",
        "HPND-export2-US",
        "HPND-Fenneberg-Livingston",
        "HPND-INRIA-IMAG",
        "HPND-Intel",
        "HPND-Kevlin-Henney",
        "HPND-Markus-Kuhn",
        "HPND-merchantability-variant",
        "HPND-MIT-disclaimer",
        "HPND-Netrek",
        "HPND-Pbmplus",
        "HPND-sell-MIT-disclaimer-xserver",
        "HPND-sell-regexpr",
        "HPND-sell-variant",
        "HPND-sell-variant-critical-systems",
        "HPND-sell-variant-MIT-disclaimer",
        "HPND-sell-variant-MIT-disclaimer-rev",
        "HPND-SMC",
        "HPND-UC",
        "HPND-UC-export-US",
        "HTMLTIDY",
        "hyphen-bulgarian",
        "IBM-pibs",
        "ICU",
        "IEC-Code-Components-EULA",
        "IJG",
        "IJG-short",
        "ImageMagick",
        "iMatix",
        "Imlib2",
        "Info-ZIP",
        "Inner-Net-2.0",
        "InnoSetup",
        "Intel",
        "Intel-ACPI",
        "Interbase-1.0",
        "IPA",
        "IPL-1.0",
        "ISC",
        "ISC-Veillard",
        "ISO-permission",
        "Jam",
        "JasPer-2.0",
        "jove",
        "JPL-image",
        "JPNIC",
        "JSON",
        "Kastrup",
        "Kazlib",
        "Knuth-CTAN",
        "LAL-1.2",
        "LAL-1.3",
        "Latex2e",
        "Latex2e-translated-notice",
        "Leptonica",
        "LGPL-2.0-only",
        "LGPL-2.0-or-later",
        "LGPL-2.1-only",
        "LGPL-2.1-or-later",
        "LGPL-3.0-only",
        "LGPL-3.0-or-later",
        "LGPLLR",
        "Libpng",
        "libpng-1.6.35",
        "libpng-2.0",
        "libselinux-1.0",
        "libtiff",
        "libutil-David-Nugent",
        "LiLiQ-P-1.1",
        "LiLiQ-R-1.1",
        "LiLiQ-Rplus-1.1",
        "Linux-man-pages-1-para",
        "Linux-man-pages-copyleft",
        "Linux-man-pages-copyleft-2-para",
        "Linux-man-pages-copyleft-var",
        "Linux-OpenIB",
        "LOOP",
        "LPD-document",
        "LPL-1.0",
        "LPL-1.02",
        "LPPL-1.0",
        "LPPL-1.1",
        "LPPL-1.2",
        "LPPL-1.3a",
        "LPPL-1.3c",
        "lsof",
        "Lucida-Bitmap-Fonts",
        "LZMA-SDK-9.11-to-9.20",
        "LZMA-SDK-9.22",
        "Mackerras-3-Clause",
        "Mackerras-3-Clause-acknowledgment",
        "magaz",
        "mailprio",
        "MakeIndex",
        "man2html",
        "Martin-Birgmeier",
        "McPhee-slideshow",
        "metamail",
        "Minpack",
        "MIPS",
        "MirOS",
        "MIT",
        "MIT-0",
        "MIT-advertising",
        "MIT-Click",
        "MIT-CMU",
        "MIT-enna",
        "MIT-feh",
        "MIT-Festival",
        "MIT-Khronos-old",
        "MIT-Modern-Variant",
        "MIT-open-group",
        "MIT-STK",
        "MIT-testregex",
        "MIT-Wu",
        "MITNFA",
        "MMIXware",
        "MMPL-1.0.1",
        "Motosoto",
        "MPEG-SSG",
        "mpi-permissive",
        "mpich2",
        "MPL-1.0",
        "MPL-1.1",
        "MPL-2.0",
        "MPL-2.0-no-copyleft-exception",
        "mplus",
        "MS-LPL",
        "MS-PL",
        "MS-RL",
        "MTLL",
        "MulanPSL-1.0",
        "MulanPSL-2.0",
        "Multics",
        "Mup",
        "NAIST-2003",
        "NASA-1.3",
        "Naumen",
        "NBPL-1.0",
        "NCBI-PD",
        "NCGL-UK-2.0",
        "NCL",
        "NCSA",
        "NetCDF",
        "Newsletr",
        "NGPL",
        "ngrep",
        "NICTA-1.0",
        "NIST-PD",
        "NIST-PD-fallback",
        "NIST-PD-TNT",
        "NIST-Software",
        "NLOD-1.0",
        "NLOD-2.0",
        "NLPL",
        "Nokia",
        "NOSL",
        "Noweb",
        "NPL-1.0",
        "NPL-1.1",
        "NPOSL-3.0",
        "NRL",
        "NTIA-PD",
        "NTP",
        "NTP-0",
        "O-UDA-1.0",
        "OAR",
        "OCCT-PL",
        "OCLC-2.0",
        "ODbL-1.0",
        "ODC-By-1.0",
        "OFFIS",
        "OFL-1.0",
        "OFL-1.0-no-RFN",
        "OFL-1.0-RFN",
        "OFL-1.1",
        "OFL-1.1-no-RFN",
        "OFL-1.1-RFN",
        "OGC-1.0",
        "OGDL-Taiwan-1.0",
        "OGL-Canada-2.0",
        "OGL-UK-1.0",
        "OGL-UK-2.0",
        "OGL-UK-3.0",
        "OGTSL",
        "OLDAP-1.1",
        "OLDAP-1.2",
        "OLDAP-1.3",
        "OLDAP-1.4",
        "OLDAP-2.0",
        "OLDAP-2.0.1",
        "OLDAP-2.1",
        "OLDAP-2.2",
        "OLDAP-2.2.1",
        "OLDAP-2.2.2",
        "OLDAP-2.3",
        "OLDAP-2.4",
        "OLDAP-2.5",
        "OLDAP-2.6",
        "OLDAP-2.7",
        "OLDAP-2.8",
        "OLFL-1.3",
        "OML",
        "OpenMDW-1.0",
        "OpenPBS-2.3",
        "OpenSSL",
        "OpenSSL-standalone",
        "OpenVision",
        "OPL-1.0",
        "OPL-UK-3.0",
        "OPUBL-1.0",
        "OSC-1.0",
        "OSET-PL-2.1",
        "OSL-1.0",
        "OSL-1.1",
        "OSL-2.0",
        "OSL-2.1",
        "OSL-3.0",
        "OSSP",
        "PADL",
        "ParaType-Free-Font-1.3",
        "Parity-6.0.0",
        "Parity-7.0.0",
        "PDDL-1.0",
        "PHP-3.0",
        "PHP-3.01",
        "Pixar",
        "pkgconf",
        "Plexus",
        "pnmstitch",
        "PolyForm-Noncommercial-1.0.0",
        "PolyForm-Small-Business-1.0.0",
        "PostgreSQL",
        "PPL",
        "PSF-2.0",
        "psfrag",
        "psutils",
        "Python-2.0",
        "Python-2.0.1",
        "python-ldap",
        "Qhull",
        "QPL-1.0",
        "QPL-1.0-INRIA-2004",
        "radvd",
        "Rdisc",
        "RHeCos-1.1",
        "RPL-1.1",
        "RPL-1.5",
        "RPSL-1.0",
        "RSA-MD",
        "RSCPL",
        "Ruby",
        "Ruby-pty",
        "SAX-PD",
        "SAX-PD-2.0",
        "Saxpath",
        "SCEA",
        "SchemeReport",
        "Sendmail",
        "Sendmail-8.23",
        "Sendmail-Open-Source-1.1",
        "SGI-B-1.0",
        "SGI-B-1.1",
        "SGI-B-2.0",
        "SGI-OpenGL",
        "SGMLUG-PM",
        "SGP4",
        "SHL-0.5",
        "SHL-0.51",
        "SimPL-2.0",
        "SISSL",
        "SISSL-1.2",
        "SL",
        "Sleepycat",
        "SMAIL-GPL",
        "SMLNJ",
        "SMPPL",
        "SNIA",
        "snprintf",
        "SOFA",
        "softSurfer",
        "Soundex",
        "Spencer-86",
        "Spencer-94",
        "Spencer-99",
        "SPL-1.0",
        "ssh-keyscan",
        "SSH-OpenSSH",
        "SSH-short",
        "SSLeay-standalone",
        "SSPL-1.0",
        "SugarCRM-1.1.3",
        "SUL-1.0",
        "Sun-PPP",
        "Sun-PPP-2000",
        "SunPro",
        "SWL",
        "swrule",
        "Symlinks",
        "TAPR-OHL-1.0",
        "TCL",
        "TCP-wrappers",
        "TekHVC",
        "TermReadKey",
        "TGPPL-1.0",
        "ThirdEye",
        "threeparttable",
        "TMate",
        "TORQUE-1.1",
        "TOSL",
        "TPDL",
        "TPL-1.0",
        "TrustedQSL",
        "TTWL",
        "TTYP0",
        "TU-Berlin-1.0",
        "TU-Berlin-2.0",
        "Ubuntu-font-1.0",
        "UCAR",
        "UCL-1.0",
        "ulem",
        "UMich-Merit",
        "Unicode-3.0",
        "Unicode-DFS-2015",
        "Unicode-DFS-2016",
        "Unicode-TOU",
        "UnixCrypt",
        "Unlicense",
        "Unlicense-libtelnet",
        "Unlicense-libwhirlpool",
        "UnRAR",
        "UPL-1.0",
        "URT-RLE",
        "Vim",
        "Vixie-Cron",
        "VOSTROM",
        "VSL-1.0",
        "W3C",
        "W3C-19980720",
        "W3C-20150513",
        "w3m",
        "Watcom-1.0",
        "Widget-Workshop",
        "WordNet",
        "Wsuipa",
        "WTFNMFPL",
        "WTFPL",
        "wwl",
        "X11",
        "X11-distribute-modifications-variant",
        "X11-no-permit-persons",
        "X11-swapped",
        "Xdebug-1.03",
        "Xerox",
        "Xfig",
        "XFree86-1.1",
        "xinetd",
        "xkeyboard-config-Zinoviev",
        "xlock",
        "Xnet",
        "xpp",
        "XSkat",
        "xzoom",
        "YPL-1.0",
        "YPL-1.1",
        "Zed",
        "Zeeff",
        "Zend-2.0",
        "Zimbra-1.3",
        "Zimbra-1.4",
        "Zlib",
        "zlib-acknowledgement",
        "ZPL-1.1",
        "ZPL-2.0",
        "ZPL-2.1"
      ],
      "markdownEnumDescriptions": [
        "[BSD Zero Clause License](https://spdx.org/licenses/0BSD.html)",
        "[3D Slicer License v1.0](https://spdx.org/licenses/3D-Slicer-1.0.html)",
        "[Attribution Assurance License](https://spdx.org/licenses/AAL.html)",
        "[Abstyles License](https://spdx.org/licenses/Abstyles.html)",
        "[AdaCore Doc License](https://spdx.org/licenses/AdaCore-doc.html)",
        "[Adobe Systems Incorporated Source Code License Agreement](https://spdx.org/licenses/Adobe-2006.html)",
        "[Adobe Display PostScript License](https://spdx.org/licenses/Adobe-Display-PostScript.html)",
        "[Adobe Glyph List License](https://spdx.org/licenses/Adobe-Glyph.html)",
        "[Adobe Utopia Font License](https://spdx.org/licenses/Adobe-Utopia.html)",
        "[Amazon Digital Services License](https://spdx.org/licenses/ADSL.html)",
        "[Advanced Cryptics Dictionary License](https://spdx.org/licenses/Advanced-Cryptics-Dictionary.html)",
        "[Academic Free License v1.1](https://spdx.org/licenses/AFL-1.1.html)",
        "[Academic Free License v1.2](https://spdx.org/licenses/AFL-1.2.html)",
        "[Academic Free License v2.0](https://spdx.org/licenses/AFL-2.0.html)",
        "[Academic Free License v2.1](https://spdx.org/licenses/AFL-2.1.html)",
        "[Academic Free License v3.0](https://spdx.org/licenses/AFL-3.0.html)",
        "[Afmparse License](https://spdx.org/licenses/Afmparse.html)",
        "[Affero General Public License v1.0 only](https://spdx.org/licenses/AGPL-1.0-only.html)",
        "[Affero General Public License v1.0 or later](https://spdx.org/licenses/AGPL-1.0-or-later.html)",
        "[GNU Affero General Public License v3.0 only](https://spdx.org/licenses/AGPL-3.0-only.html)",
        "[GNU Affero General Public License v3.0 or later](https://spdx.org/licenses/AGPL-3.0-or-later.html)",
        "[Aladdin Free Public License](https://spdx.org/licenses/Aladdin.html)",
        "[ALGLIB Documentation License](https://spdx.org/licenses/ALGLIB-Documentation.html)",
        "[AMD newlib License](https://spdx.org/licenses/AMD-newlib.html)",
        "[AMD's plpa_map.c License](https://spdx.org/licenses/AMDPLPA.html)",
        "[Apple MIT License](https://spdx.org/licenses/AML.html)",
        "[AML glslang variant License](https://spdx.org/licenses/AML-glslang.html)",
        "[Academy of Motion Picture Arts and Sciences BSD](https://spdx.org/licenses/AMPAS.html)",
        "[ANTLR Software Rights Notice](https://spdx.org/licenses/ANTLR-PD.html)",
        "[ANTLR Software Rights Notice with license fallback](https://spdx.org/licenses/ANTLR-PD-fallback.html)",
        "[Any OSI License](https://spdx.org/licenses/any-OSI.html)",
        "[Any OSI License - Perl Modules](https://spdx.org/licenses/any-OSI-perl-modules.html)",
        "[Apache License 1.0](https://spdx.org/licenses/Apache-1.0.html)",
        "[Apache License 1.1](https://spdx.org/licenses/Apache-1.1.html)",
        "[Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html)",
        "[Adobe Postscript AFM License](https://spdx.org/licenses/APAFML.html)",
        "[Adaptive Public License 1.0](https://spdx.org/licenses/APL-1.0.html)",
        "[App::s2p License](https://spdx.org/licenses/App-s2p.html)",
        "[Apple Public Source License 1.0](https://spdx.org/licenses/APSL-1.0.html)",
        "[Apple Public Source License 1.1](https://spdx.org/licenses/APSL-1.1.html)",
        "[Apple Public Source License 1.2](https://spdx.org/licenses/APSL-1.2.html)",
        "[Apple Public Source License 2.0](https://spdx.org/licenses/APSL-2.0.html)",
        "[Arphic Public License](https://spdx.org/licenses/Arphic-1999.html)",
        "[Artistic License 1.0](https://spdx.org/licenses/Artistic-1.0.html)",
        "[Artistic License 1.0 w/clause 8](https://spdx.org/licenses/Artistic-1.0-cl8.html)",
        "[Artistic License 1.0 (Perl)](https://spdx.org/licenses/Artistic-1.0-Perl.html)",
        "[Artistic License 2.0](https://spdx.org/licenses/Artistic-2.0.html)",
        "[Artistic License 1.0 (dist)](https://spdx.org/licenses/Artistic-dist.html)",
        "[Aspell Russian License](https://spdx.org/licenses/Aspell-RU.html)",
        "[ASWF Digital Assets License version 1.0](https://spdx.org/licenses/ASWF-Digital-Assets-1.0.html)",
        "[ASWF Digital Assets License 1.1](https://spdx.org/licenses/ASWF-Digital-Assets-1.1.html)",
        "[Baekmuk License](https://spdx.org/licenses/Baekmuk.html)",
        "[Bahyph License](https://spdx.org/licenses/Bahyph.html)",
        "[Barr License](https://spdx.org/licenses/Barr.html)",
        "[bcrypt Solar Designer License](https://spdx.org/licenses/bcrypt-Solar-Designer.html)",
        "[Beerware License](https://spdx.org/licenses/Beerware.html)",
        "[Bitstream Charter Font License](https://spdx.org/licenses/Bitstream-Charter.html)",
        "[Bitstream Vera Font License](https://spdx.org/licenses/Bitstream-Vera.html)",
        "[BitTorrent Open Source License v1.0](https://spdx.org/licenses/BitTorrent-1.0.html)",
        "[BitTorrent Open Source License v1.1](https://spdx.org/licenses/BitTorrent-1.1.html)",
        "[SQLite Blessing](https://spdx.org/licenses/blessing.html)",
        "[Blue Oak Model License 1.0.0](https://spdx.org/licenses/BlueOak-1.0.0.html)",
        "[Boehm-Demers-Weiser GC License](https://spdx.org/licenses/Boehm-GC.html)",
        "[Boehm-Demers-Weiser GC License (without fee)](https://spdx.org/licenses/Boehm-GC-without-fee.html)",
        "[Buena Onda License Agreement v1.1](https://spdx.org/licenses/BOLA-1.1.html)",
        "[Borceux license](https://spdx.org/licenses/Borceux.html)",
        "[Brian Gladman 2-Clause License](https://spdx.org/licenses/Brian-Gladman-2-Clause.html)",
        "[Brian Gladman 3-Clause License](https://spdx.org/licenses/Brian-Gladman-3-Clause.html)",
        "[BSD 1-Clause License](https://spdx.org/licenses/BSD-1-Clause.html)",
        "[BSD 2-Clause \"Simplified\" License](https://spdx.org/licenses/BSD-2-Clause.html)",
        "[BSD 2-Clause - Ian Darwin variant](https://spdx.org/licenses/BSD-2-Clause-Darwin.html)",
        "[BSD 2-Clause - first lines requirement](https://spdx.org/licenses/BSD-2-Clause-first-lines.html)",
        "[BSD-2-Clause Plus Patent License](https://spdx.org/licenses/BSD-2-Clause-Patent.html)",
        "[BSD 2-Clause pkgconf disclaimer variant](https://spdx.org/licenses/BSD-2-Clause-pkgconf-disclaimer.html)",
        "[BSD 2-Clause with views sentence](https://spdx.org/licenses/BSD-2-Clause-Views.html)",
        "[BSD 3-Clause \"New\" or \"Revised\" License](https://spdx.org/licenses/BSD-3-Clause.html)",
        "[BSD 3-Clause acpica variant](https://spdx.org/licenses/BSD-3-Clause-acpica.html)",
        "[BSD with attribution](https://spdx.org/licenses/BSD-3-Clause-Attribution.html)",
        "[BSD 3-Clause Clear License](https://spdx.org/licenses/BSD-3-Clause-Clear.html)",
        "[BSD 3-Clause Flex variant](https://spdx.org/licenses/BSD-3-Clause-flex.html)",
        "[Hewlett-Packard BSD variant license](https://spdx.org/licenses/BSD-3-Clause-HP.html)",
        "[Lawrence Berkeley National Labs BSD variant license](https://spdx.org/licenses/BSD-3-Clause-LBNL.html)",
        "[BSD 3-Clause Modification](https://spdx.org/licenses/BSD-3-Clause-Modification.html)",
        "[BSD 3-Clause No Military License](https://spdx.org/licenses/BSD-3-Clause-No-Military-License.html)",
        "[BSD 3-Clause No Nuclear License](https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.html)",
        "[BSD 3-Clause No Nuclear License 2014](https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.html)",
        "[BSD 3-Clause No Nuclear Warranty](https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.html)",
        "[BSD 3-Clause Open MPI variant](https://spdx.org/licenses/BSD-3-Clause-Open-MPI.html)",
        "[BSD 3-Clause Sun Microsystems](https://spdx.org/licenses/BSD-3-Clause-Sun.html)",
        "[BSD 3-Clause Tso variant](https://spdx.org/licenses/BSD-3-Clause-Tso.html)",
        "[BSD 4-Clause \"Original\" or \"Old\" License](https://spdx.org/licenses/BSD-4-Clause.html)",
        "[BSD 4 Clause Shortened](https://spdx.org/licenses/BSD-4-Clause-Shortened.html)",
        "[BSD-4-Clause (University of California-Specific)](https://spdx.org/licenses/BSD-4-Clause-UC.html)",
        "[BSD 4.3 RENO License](https://spdx.org/licenses/BSD-4.3RENO.html)",
        "[BSD 4.3 TAHOE License](https://spdx.org/licenses/BSD-4.3TAHOE.html)",
        "[BSD Advertising Acknowledgement License](https://spdx.org/licenses/BSD-Advertising-Acknowledgement.html)",
        "[BSD with Attribution and HPND disclaimer](https://spdx.org/licenses/BSD-Attribution-HPND-disclaimer.html)",
        "[BSD-Inferno-Nettverk](https://spdx.org/licenses/BSD-Inferno-Nettverk.html)",
        "[BSD Mark Modifications License](https://spdx.org/licenses/BSD-Mark-Modifications.html)",
        "[BSD Protection License](https://spdx.org/licenses/BSD-Protection.html)",
        "[BSD Source Code Attribution - beginning of file variant](https://spdx.org/licenses/BSD-Source-beginning-file.html)",
        "[BSD Source Code Attribution](https://spdx.org/licenses/BSD-Source-Code.html)",
        "[Systemics BSD variant license](https://spdx.org/licenses/BSD-Systemics.html)",
        "[Systemics W3Works BSD variant license](https://spdx.org/licenses/BSD-Systemics-W3Works.html)",
        "[Boost Software License 1.0](https://spdx.org/licenses/BSL-1.0.html)",
        "[Buddy License](https://spdx.org/licenses/Buddy.html)",
        "[Business Source License 1.1](https://spdx.org/licenses/BUSL-1.1.html)",
        "[bzip2 and libbzip2 License v1.0.6](https://spdx.org/licenses/bzip2-1.0.6.html)",
        "[Computational Use of Data Agreement v1.0](https://spdx.org/licenses/C-UDA-1.0.html)",
        "[Cryptographic Autonomy License 1.0](https://spdx.org/licenses/CAL-1.0.html)",
        "[Cryptographic Autonomy License 1.0 (Combined Work Exception)](https://spdx.org/licenses/CAL-1.0-Combined-Work-Exception.html)",
        "[Caldera License](https://spdx.org/licenses/Caldera.html)",
        "[Caldera License (without preamble)](https://spdx.org/licenses/Caldera-no-preamble.html)",
        "[Common Attack Pattern Enumeration and Classification License](https://spdx.org/licenses/CAPEC-tou.html)",
        "[Catharon License](https://spdx.org/licenses/Catharon.html)",
        "[Computer Associates Trusted Open Source License 1.1](https://spdx.org/licenses/CATOSL-1.1.html)",
        "[Creative Commons Attribution 1.0 Generic](https://spdx.org/licenses/CC-BY-1.0.html)",
        "[Creative Commons Attribution 2.0 Generic](https://spdx.org/licenses/CC-BY-2.0.html)",
        "[Creative Commons Attribution 2.5 Generic](https://spdx.org/licenses/CC-BY-2.5.html)",
        "[Creative Commons Attribution 2.5 Australia](https://spdx.org/licenses/CC-BY-2.5-AU.html)",
        "[Creative Commons Attribution 3.0 Unported](https://spdx.org/licenses/CC-BY-3.0.html)",
        "[Creative Commons Attribution 3.0 Austria](https://spdx.org/licenses/CC-BY-3.0-AT.html)",
        "[Creative Commons Attribution 3.0 Australia](https://spdx.org/licenses/CC-BY-3.0-AU.html)",
        "[Creative Commons Attribution 3.0 Germany](https://spdx.org/licenses/CC-BY-3.0-DE.html)",
        "[Creative Commons Attribution 3.0 IGO](https://spdx.org/licenses/CC-BY-3.0-IGO.html)",
        "[Creative Commons Attribution 3.0 Netherlands](https://spdx.org/licenses/CC-BY-3.0-NL.html)",
        "[Creative Commons Attribution 3.0 United States](https://spdx.org/licenses/CC-BY-3.0-US.html)",
        "[Creative Commons Attribution 4.0 International](https://spdx.org/licenses/CC-BY-4.0.html)",
        "[Creative Commons Attribution Non Commercial 1.0 Generic](https://spdx.org/licenses/CC-BY-NC-1.0.html)",
        "[Creative Commons Attribution Non Commercial 2.0 Generic](https://spdx.org/licenses/CC-BY-NC-2.0.html)",
        "[Creative Commons Attribution Non Commercial 2.5 Generic](https://spdx.org/licenses/CC-BY-NC-2.5.html)",
        "[Creative Commons Attribution Non Commercial 3.0 Unported](https://spdx.org/licenses/CC-BY-NC-3.0.html)",
        "[Creative Commons Attribution Non Commercial 3.0 Germany](https://spdx.org/licenses/CC-BY-NC-3.0-DE.html)",
        "[Creative Commons Attribution Non Commercial 4.0 International](https://spdx.org/licenses/CC-BY-NC-4.0.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic](https://spdx.org/licenses/CC-BY-NC-ND-1.0.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic](https://spdx.org/licenses/CC-BY-NC-ND-2.0.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic](https://spdx.org/licenses/CC-BY-NC-ND-2.5.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported](https://spdx.org/licenses/CC-BY-NC-ND-3.0.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany](https://spdx.org/licenses/CC-BY-NC-ND-3.0-DE.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO](https://spdx.org/licenses/CC-BY-NC-ND-3.0-IGO.html)",
        "[Creative Commons Attribution Non Commercial No Derivatives 4.0 International](https://spdx.org/licenses/CC-BY-NC-ND-4.0.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 1.0 Generic](https://spdx.org/licenses/CC-BY-NC-SA-1.0.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 2.0 Generic](https://spdx.org/licenses/CC-BY-NC-SA-2.0.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 2.0 Germany](https://spdx.org/licenses/CC-BY-NC-SA-2.0-DE.html)",
        "[Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France](https://spdx.org/licenses/CC-BY-NC-SA-2.0-FR.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales](https://spdx.org/licenses/CC-BY-NC-SA-2.0-UK.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 2.5 Generic](https://spdx.org/licenses/CC-BY-NC-SA-2.5.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 3.0 Unported](https://spdx.org/licenses/CC-BY-NC-SA-3.0.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 3.0 Germany](https://spdx.org/licenses/CC-BY-NC-SA-3.0-DE.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 3.0 IGO](https://spdx.org/licenses/CC-BY-NC-SA-3.0-IGO.html)",
        "[Creative Commons Attribution Non Commercial Share Alike 4.0 International](https://spdx.org/licenses/CC-BY-NC-SA-4.0.html)",
        "[Creative Commons Attribution No Derivatives 1.0 Generic](https://spdx.org/licenses/CC-BY-ND-1.0.html)",
        "[Creative Commons Attribution No Derivatives 2.0 Generic](https://spdx.org/licenses/CC-BY-ND-2.0.html)",
        "[Creative Commons Attribution No Derivatives 2.5 Generic](https://spdx.org/licenses/CC-BY-ND-2.5.html)",
        "[Creative Commons Attribution No Derivatives 3.0 Unported](https://spdx.org/licenses/CC-BY-ND-3.0.html)",
        "[Creative Commons Attribution No Derivatives 3.0 Germany](https://spdx.org/licenses/CC-BY-ND-3.0-DE.html)",
        "[Creative Commons Attribution No Derivatives 4.0 International](https://spdx.org/licenses/CC-BY-ND-4.0.html)",
        "[Creative Commons Attribution Share Alike 1.0 Generic](https://spdx.org/licenses/CC-BY-SA-1.0.html)",
        "[Creative Commons Attribution Share Alike 2.0 Generic](https://spdx.org/licenses/CC-BY-SA-2.0.html)",
        "[Creative Commons Attribution Share Alike 2.0 England and Wales](https://spdx.org/licenses/CC-BY-SA-2.0-UK.html)",
        "[Creative Commons Attribution Share Alike 2.1 Japan](https://spdx.org/licenses/CC-BY-SA-2.1-JP.html)",
        "[Creative Commons Attribution Share Alike 2.5 Generic](https://spdx.org/licenses/CC-BY-SA-2.5.html)",
        "[Creative Commons Attribution Share Alike 3.0 Unported](https://spdx.org/licenses/CC-BY-SA-3.0.html)",
        "[Creative Commons Attribution Share Alike 3.0 Austria](https://spdx.org/licenses/CC-BY-SA-3.0-AT.html)",
        "[Creative Commons Attribution Share Alike 3.0 Germany](https://spdx.org/licenses/CC-BY-SA-3.0-DE.html)",
        "[Creative Commons Attribution-ShareAlike 3.0 IGO](https://spdx.org/licenses/CC-BY-SA-3.0-IGO.html)",
        "[Creative Commons Attribution Share Alike 4.0 International](https://spdx.org/licenses/CC-BY-SA-4.0.html)",
        "[Creative Commons Public Domain Dedication and Certification](https://spdx.org/licenses/CC-PDDC.html)",
        "[Creative Commons Public Domain Mark 1.0 Universal](https://spdx.org/licenses/CC-PDM-1.0.html)",
        "[Creative Commons Share Alike 1.0 Generic](https://spdx.org/licenses/CC-SA-1.0.html)",
        "[Creative Commons Zero v1.0 Universal](https://spdx.org/licenses/CC0-1.0.html)",
        "[Common Development and Distribution License 1.0](https://spdx.org/licenses/CDDL-1.0.html)",
        "[Common Development and Distribution License 1.1](https://spdx.org/licenses/CDDL-1.1.html)",
        "[Common Documentation License 1.0](https://spdx.org/licenses/CDL-1.0.html)",
        "[Community Data License Agreement Permissive 1.0](https://spdx.org/licenses/CDLA-Permissive-1.0.html)",
        "[Community Data License Agreement Permissive 2.0](https://spdx.org/licenses/CDLA-Permissive-2.0.html)",
        "[Community Data License Agreement Sharing 1.0](https://spdx.org/licenses/CDLA-Sharing-1.0.html)",
        "[CeCILL Free Software License Agreement v1.0](https://spdx.org/licenses/CECILL-1.0.html)",
        "[CeCILL Free Software License Agreement v1.1](https://spdx.org/licenses/CECILL-1.1.html)",
        "[CeCILL Free Software License Agreement v2.0](https://spdx.org/licenses/CECILL-2.0.html)",
        "[CeCILL Free Software License Agreement v2.1](https://spdx.org/licenses/CECILL-2.1.html)",
        "[CeCILL-B Free Software License Agreement](https://spdx.org/licenses/CECILL-B.html)",
        "[CeCILL-C Free Software License Agreement](https://spdx.org/licenses/CECILL-C.html)",
        "[CERN Open Hardware Licence v1.1](https://spdx.org/licenses/CERN-OHL-1.1.html)",
        "[CERN Open Hardware Licence v1.2](https://spdx.org/licenses/CERN-OHL-1.2.html)",
        "[CERN Open Hardware Licence Version 2 - Permissive](https://spdx.org/licenses/CERN-OHL-P-2.0.html)",
        "[CERN Open Hardware Licence Version 2 - Strongly Reciprocal](https://spdx.org/licenses/CERN-OHL-S-2.0.html)",
        "[CERN Open Hardware Licence Version 2 - Weakly Reciprocal](https://spdx.org/licenses/CERN-OHL-W-2.0.html)",
        "[CFITSIO License](https://spdx.org/licenses/CFITSIO.html)",
        "[check-cvs License](https://spdx.org/licenses/check-cvs.html)",
        "[Checkmk License](https://spdx.org/licenses/checkmk.html)",
        "[Clarified Artistic License](https://spdx.org/licenses/ClArtistic.html)",
        "[Clips License](https://spdx.org/licenses/Clips.html)",
        "[CMU Mach License](https://spdx.org/licenses/CMU-Mach.html)",
        "[CMU Mach - no notices-in-documentation variant](https://spdx.org/licenses/CMU-Mach-nodoc.html)",
        "[CNRI Jython License](https://spdx.org/licenses/CNRI-Jython.html)",
        "[CNRI Python License](https://spdx.org/licenses/CNRI-Python.html)",
        "[CNRI Python Open Source GPL Compatible License Agreement](https://spdx.org/licenses/CNRI-Python-GPL-Compatible.html)",
        "[Copyfree Open Innovation License](https://spdx.org/licenses/COIL-1.0.html)",
        "[Community Specification License 1.0](https://spdx.org/licenses/Community-Spec-1.0.html)",
        "[Condor Public License v1.1](https://spdx.org/licenses/Condor-1.1.html)",
        "[copyleft-next 0.3.0](https://spdx.org/licenses/copyleft-next-0.3.0.html)",
        "[copyleft-next 0.3.1](https://spdx.org/licenses/copyleft-next-0.3.1.html)",
        "[Cornell Lossless JPEG License](https://spdx.org/licenses/Cornell-Lossless-JPEG.html)",
        "[Common Public Attribution License 1.0](https://spdx.org/licenses/CPAL-1.0.html)",
        "[Common Public License 1.0](https://spdx.org/licenses/CPL-1.0.html)",
        "[Code Project Open License 1.02](https://spdx.org/licenses/CPOL-1.02.html)",
        "[Cronyx License](https://spdx.org/licenses/Cronyx.html)",
        "[Crossword License](https://spdx.org/licenses/Crossword.html)",
        "[CryptoSwift License](https://spdx.org/licenses/CryptoSwift.html)",
        "[CrystalStacker License](https://spdx.org/licenses/CrystalStacker.html)",
        "[CUA Office Public License v1.0](https://spdx.org/licenses/CUA-OPL-1.0.html)",
        "[Cube License](https://spdx.org/licenses/Cube.html)",
        "[curl License](https://spdx.org/licenses/curl.html)",
        "[Common Vulnerability Enumeration ToU License](https://spdx.org/licenses/cve-tou.html)",
        "[Deutsche Freie Software Lizenz](https://spdx.org/licenses/D-FSL-1.0.html)",
        "[DEC 3-Clause License](https://spdx.org/licenses/DEC-3-Clause.html)",
        "[diffmark license](https://spdx.org/licenses/diffmark.html)",
        "[Data licence Germany – attribution – version 2.0](https://spdx.org/licenses/DL-DE-BY-2.0.html)",
        "[Data licence Germany – zero – version 2.0](https://spdx.org/licenses/DL-DE-ZERO-2.0.html)",
        "[DOC License](https://spdx.org/licenses/DOC.html)",
        "[DocBook DTD License](https://spdx.org/licenses/DocBook-DTD.html)",
        "[DocBook Schema License](https://spdx.org/licenses/DocBook-Schema.html)",
        "[DocBook Stylesheet License](https://spdx.org/licenses/DocBook-Stylesheet.html)",
        "[DocBook XML License](https://spdx.org/licenses/DocBook-XML.html)",
        "[Dotseqn License](https://spdx.org/licenses/Dotseqn.html)",
        "[Detection Rule License 1.0](https://spdx.org/licenses/DRL-1.0.html)",
        "[Detection Rule License 1.1](https://spdx.org/licenses/DRL-1.1.html)",
        "[DSDP License](https://spdx.org/licenses/DSDP.html)",
        "[David M. Gay dtoa License](https://spdx.org/licenses/dtoa.html)",
        "[dvipdfm License](https://spdx.org/licenses/dvipdfm.html)",
        "[Educational Community License v1.0](https://spdx.org/licenses/ECL-1.0.html)",
        "[Educational Community License v2.0](https://spdx.org/licenses/ECL-2.0.html)",
        "[Eiffel Forum License v1.0](https://spdx.org/licenses/EFL-1.0.html)",
        "[Eiffel Forum License v2.0](https://spdx.org/licenses/EFL-2.0.html)",
        "[eGenix.com Public License 1.1.0](https://spdx.org/licenses/eGenix.html)",
        "[Elastic License 2.0](https://spdx.org/licenses/Elastic-2.0.html)",
        "[Entessa Public License v1.0](https://spdx.org/licenses/Entessa.html)",
        "[EPICS Open License](https://spdx.org/licenses/EPICS.html)",
        "[Eclipse Public License 1.0](https://spdx.org/licenses/EPL-1.0.html)",
        "[Eclipse Public License 2.0](https://spdx.org/licenses/EPL-2.0.html)",
        "[Erlang Public License v1.1](https://spdx.org/licenses/ErlPL-1.1.html)",
        "[European Space Agency Public License – v2.4 – Permissive (Type 3)](https://spdx.org/licenses/ESA-PL-permissive-2.4.html)",
        "[European Space Agency Public License (ESA-PL) - V2.4 - Strong Copyleft (Type 1)](https://spdx.org/licenses/ESA-PL-strong-copyleft-2.4.html)",
        "[European Space Agency Public License – v2.4 – Weak Copyleft (Type 2)](https://spdx.org/licenses/ESA-PL-weak-copyleft-2.4.html)",
        "[Etalab Open License 2.0](https://spdx.org/licenses/etalab-2.0.html)",
        "[EU DataGrid Software License](https://spdx.org/licenses/EUDatagrid.html)",
        "[European Union Public License 1.0](https://spdx.org/licenses/EUPL-1.0.html)",
        "[European Union Public License 1.1](https://spdx.org/licenses/EUPL-1.1.html)",
        "[European Union Public License 1.2](https://spdx.org/licenses/EUPL-1.2.html)",
        "[Eurosym License](https://spdx.org/licenses/Eurosym.html)",
        "[Fair License](https://spdx.org/licenses/Fair.html)",
        "[Fuzzy Bitmap License](https://spdx.org/licenses/FBM.html)",
        "[Fraunhofer FDK AAC Codec Library](https://spdx.org/licenses/FDK-AAC.html)",
        "[Ferguson Twofish License](https://spdx.org/licenses/Ferguson-Twofish.html)",
        "[Frameworx Open License 1.0](https://spdx.org/licenses/Frameworx-1.0.html)",
        "[FreeBSD Documentation License](https://spdx.org/licenses/FreeBSD-DOC.html)",
        "[FreeImage Public License v1.0](https://spdx.org/licenses/FreeImage.html)",
        "[FSF All Permissive License](https://spdx.org/licenses/FSFAP.html)",
        "[FSF All Permissive License (without Warranty)](https://spdx.org/licenses/FSFAP-no-warranty-disclaimer.html)",
        "[FSF Unlimited License](https://spdx.org/licenses/FSFUL.html)",
        "[FSF Unlimited License (with License Retention)](https://spdx.org/licenses/FSFULLR.html)",
        "[FSF Unlimited License (with License Retention and Short Disclaimer)](https://spdx.org/licenses/FSFULLRSD.html)",
        "[FSF Unlimited License (With License Retention and Warranty Disclaimer)](https://spdx.org/licenses/FSFULLRWD.html)",
        "[Functional Source License, Version 1.1, ALv2 Future License](https://spdx.org/licenses/FSL-1.1-ALv2.html)",
        "[Functional Source License, Version 1.1, MIT Future License](https://spdx.org/licenses/FSL-1.1-MIT.html)",
        "[Freetype Project License](https://spdx.org/licenses/FTL.html)",
        "[Furuseth License](https://spdx.org/licenses/Furuseth.html)",
        "[fwlw License](https://spdx.org/licenses/fwlw.html)",
        "[Game Programming Gems License](https://spdx.org/licenses/Game-Programming-Gems.html)",
        "[Gnome GCR Documentation License](https://spdx.org/licenses/GCR-docs.html)",
        "[GD License](https://spdx.org/licenses/GD.html)",
        "[Generic XTS License](https://spdx.org/licenses/generic-xts.html)",
        "[GNU Free Documentation License v1.1 only - invariants](https://spdx.org/licenses/GFDL-1.1-invariants-only.html)",
        "[GNU Free Documentation License v1.1 or later - invariants](https://spdx.org/licenses/GFDL-1.1-invariants-or-later.html)",
        "[GNU Free Documentation License v1.1 only - no invariants](https://spdx.org/licenses/GFDL-1.1-no-invariants-only.html)",
        "[GNU Free Documentation License v1.1 or later - no invariants](https://spdx.org/licenses/GFDL-1.1-no-invariants-or-later.html)",
        "[GNU Free Documentation License v1.1 only](https://spdx.org/licenses/GFDL-1.1-only.html)",
        "[GNU Free Documentation License v1.1 or later](https://spdx.org/licenses/GFDL-1.1-or-later.html)",
        "[GNU Free Documentation License v1.2 only - invariants](https://spdx.org/licenses/GFDL-1.2-invariants-only.html)",
        "[GNU Free Documentation License v1.2 or later - invariants](https://spdx.org/licenses/GFDL-1.2-invariants-or-later.html)",
        "[GNU Free Documentation License v1.2 only - no invariants](https://spdx.org/licenses/GFDL-1.2-no-invariants-only.html)",
        "[GNU Free Documentation License v1.2 or later - no invariants](https://spdx.org/licenses/GFDL-1.2-no-invariants-or-later.html)",
        "[GNU Free Documentation License v1.2 only](https://spdx.org/licenses/GFDL-1.2-only.html)",
        "[GNU Free Documentation License v1.2 or later](https://spdx.org/licenses/GFDL-1.2-or-later.html)",
        "[GNU Free Documentation License v1.3 only - invariants](https://spdx.org/licenses/GFDL-1.3-invariants-only.html)",
        "[GNU Free Documentation License v1.3 or later - invariants](https://spdx.org/licenses/GFDL-1.3-invariants-or-later.html)",
        "[GNU Free Documentation License v1.3 only - no invariants](https://spdx.org/licenses/GFDL-1.3-no-invariants-only.html)",
        "[GNU Free Documentation License v1.3 or later - no invariants](https://spdx.org/licenses/GFDL-1.3-no-invariants-or-later.html)",
        "[GNU Free Documentation License v1.3 only](https://spdx.org/licenses/GFDL-1.3-only.html)",
        "[GNU Free Documentation License v1.3 or later](https://spdx.org/licenses/GFDL-1.3-or-later.html)",
        "[Giftware License](https://spdx.org/licenses/Giftware.html)",
        "[GL2PS License](https://spdx.org/licenses/GL2PS.html)",
        "[3dfx Glide License](https://spdx.org/licenses/Glide.html)",
        "[Glulxe License](https://spdx.org/licenses/Glulxe.html)",
        "[Good Luck With That Public License](https://spdx.org/licenses/GLWTPL.html)",
        "[gnuplot License](https://spdx.org/licenses/gnuplot.html)",
        "[GNU General Public License v1.0 only](https://spdx.org/licenses/GPL-1.0-only.html)",
        "[GNU General Public License v1.0 or later](https://spdx.org/licenses/GPL-1.0-or-later.html)",
        "[GNU General Public License v2.0 only](https://spdx.org/licenses/GPL-2.0-only.html)",
        "[GNU General Public License v2.0 or later](https://spdx.org/licenses/GPL-2.0-or-later.html)",
        "[GNU General Public License v3.0 only](https://spdx.org/licenses/GPL-3.0-only.html)",
        "[GNU General Public License v3.0 or later](https://spdx.org/licenses/GPL-3.0-or-later.html)",
        "[Graphics Gems License](https://spdx.org/licenses/Graphics-Gems.html)",
        "[gSOAP Public License v1.3b](https://spdx.org/licenses/gSOAP-1.3b.html)",
        "[gtkbook License](https://spdx.org/licenses/gtkbook.html)",
        "[Gutmann License](https://spdx.org/licenses/Gutmann.html)",
        "[Haskell Language Report License](https://spdx.org/licenses/HaskellReport.html)",
        "[HDF5 License](https://spdx.org/licenses/HDF5.html)",
        "[hdparm License](https://spdx.org/licenses/hdparm.html)",
        "[HIDAPI License](https://spdx.org/licenses/HIDAPI.html)",
        "[Hippocratic License 2.1](https://spdx.org/licenses/Hippocratic-2.1.html)",
        "[Hewlett-Packard 1986 License](https://spdx.org/licenses/HP-1986.html)",
        "[Hewlett-Packard 1989 License](https://spdx.org/licenses/HP-1989.html)",
        "[Historical Permission Notice and Disclaimer](https://spdx.org/licenses/HPND.html)",
        "[Historical Permission Notice and Disclaimer - DEC variant](https://spdx.org/licenses/HPND-DEC.html)",
        "[Historical Permission Notice and Disclaimer - documentation variant](https://spdx.org/licenses/HPND-doc.html)",
        "[Historical Permission Notice and Disclaimer - documentation sell variant](https://spdx.org/licenses/HPND-doc-sell.html)",
        "[HPND with US Government export control warning](https://spdx.org/licenses/HPND-export-US.html)",
        "[HPND with US Government export control warning and acknowledgment](https://spdx.org/licenses/HPND-export-US-acknowledgement.html)",
        "[HPND with US Government export control warning and modification rqmt](https://spdx.org/licenses/HPND-export-US-modify.html)",
        "[HPND with US Government export control and 2 disclaimers](https://spdx.org/licenses/HPND-export2-US.html)",
        "[Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant](https://spdx.org/licenses/HPND-Fenneberg-Livingston.html)",
        "[Historical Permission Notice and Disclaimer - INRIA-IMAG variant](https://spdx.org/licenses/HPND-INRIA-IMAG.html)",
        "[Historical Permission Notice and Disclaimer - Intel variant](https://spdx.org/licenses/HPND-Intel.html)",
        "[Historical Permission Notice and Disclaimer - Kevlin Henney variant](https://spdx.org/licenses/HPND-Kevlin-Henney.html)",
        "[Historical Permission Notice and Disclaimer - Markus Kuhn variant](https://spdx.org/licenses/HPND-Markus-Kuhn.html)",
        "[Historical Permission Notice and Disclaimer - merchantability variant](https://spdx.org/licenses/HPND-merchantability-variant.html)",
        "[Historical Permission Notice and Disclaimer with MIT disclaimer](https://spdx.org/licenses/HPND-MIT-disclaimer.html)",
        "[Historical Permission Notice and Disclaimer - Netrek variant](https://spdx.org/licenses/HPND-Netrek.html)",
        "[Historical Permission Notice and Disclaimer - Pbmplus variant](https://spdx.org/licenses/HPND-Pbmplus.html)",
        "[Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer](https://spdx.org/licenses/HPND-sell-MIT-disclaimer-xserver.html)",
        "[Historical Permission Notice and Disclaimer - sell regexpr variant](https://spdx.org/licenses/HPND-sell-regexpr.html)",
        "[Historical Permission Notice and Disclaimer - sell variant](https://spdx.org/licenses/HPND-sell-variant.html)",
        "[HPND - sell variant with safety critical systems clause](https://spdx.org/licenses/HPND-sell-variant-critical-systems.html)",
        "[HPND sell variant with MIT disclaimer](https://spdx.org/licenses/HPND-sell-variant-MIT-disclaimer.html)",
        "[HPND sell variant with MIT disclaimer - reverse](https://spdx.org/licenses/HPND-sell-variant-MIT-disclaimer-rev.html)",
        "[Historical Permission Notice and Disclaimer - SMC variant](https://spdx.org/licenses/HPND-SMC.html)",
        "[Historical Permission Notice and Disclaimer - University of California variant](https://spdx.org/licenses/HPND-UC.html)",
        "[Historical Permission Notice and Disclaimer - University of California, US export warning](https://spdx.org/licenses/HPND-UC-export-US.html)",
        "[HTML Tidy License](https://spdx.org/licenses/HTMLTIDY.html)",
        "[hyphen-bulgarian License](https://spdx.org/licenses/hyphen-bulgarian.html)",
        "[IBM PowerPC Initialization and Boot Software](https://spdx.org/licenses/IBM-pibs.html)",
        "[ICU License](https://spdx.org/licenses/ICU.html)",
        "[IEC Code Components End-user licence agreement](https://spdx.org/licenses/IEC-Code-Components-EULA.html)",
        "[Independent JPEG Group License](https://spdx.org/licenses/IJG.html)",
        "[Independent JPEG Group License - short](https://spdx.org/licenses/IJG-short.html)",
        "[ImageMagick License](https://spdx.org/licenses/ImageMagick.html)",
        "[iMatix Standard Function Library Agreement](https://spdx.org/licenses/iMatix.html)",
        "[Imlib2 License](https://spdx.org/licenses/Imlib2.html)",
        "[Info-ZIP License](https://spdx.org/licenses/Info-ZIP.html)",
        "[Inner Net License v2.0](https://spdx.org/licenses/Inner-Net-2.0.html)",
        "[Inno Setup License](https://spdx.org/licenses/InnoSetup.html)",
        "[Intel Open Source License](https://spdx.org/licenses/Intel.html)",
        "[Intel ACPI Software License Agreement](https://spdx.org/licenses/Intel-ACPI.html)",
        "[Interbase Public License v1.0](https://spdx.org/licenses/Interbase-1.0.html)",
        "[IPA Font License](https://spdx.org/licenses/IPA.html)",
        "[IBM Public License v1.0](https://spdx.org/licenses/IPL-1.0.html)",
        "[ISC License](https://spdx.org/licenses/ISC.html)",
        "[ISC Veillard variant](https://spdx.org/licenses/ISC-Veillard.html)",
        "[ISO permission notice](https://spdx.org/licenses/ISO-permission.html)",
        "[Jam License](https://spdx.org/licenses/Jam.html)",
        "[JasPer License](https://spdx.org/licenses/JasPer-2.0.html)",
        "[Jove License](https://spdx.org/licenses/jove.html)",
        "[JPL Image Use Policy](https://spdx.org/licenses/JPL-image.html)",
        "[Japan Network Information Center License](https://spdx.org/licenses/JPNIC.html)",
        "[JSON License](https://spdx.org/licenses/JSON.html)",
        "[Kastrup License](https://spdx.org/licenses/Kastrup.html)",
        "[Kazlib License](https://spdx.org/licenses/Kazlib.html)",
        "[Knuth CTAN License](https://spdx.org/licenses/Knuth-CTAN.html)",
        "[Licence Art Libre 1.2](https://spdx.org/licenses/LAL-1.2.html)",
        "[Licence Art Libre 1.3](https://spdx.org/licenses/LAL-1.3.html)",
        "[Latex2e License](https://spdx.org/licenses/Latex2e.html)",
        "[Latex2e with translated notice permission](https://spdx.org/licenses/Latex2e-translated-notice.html)",
        "[Leptonica License](https://spdx.org/licenses/Leptonica.html)",
        "[GNU Library General Public License v2 only](https://spdx.org/licenses/LGPL-2.0-only.html)",
        "[GNU Library General Public License v2 or later](https://spdx.org/licenses/LGPL-2.0-or-later.html)",
        "[GNU Lesser General Public License v2.1 only](https://spdx.org/licenses/LGPL-2.1-only.html)",
        "[GNU Lesser General Public License v2.1 or later](https://spdx.org/licenses/LGPL-2.1-or-later.html)",
        "[GNU Lesser General Public License v3.0 only](https://spdx.org/licenses/LGPL-3.0-only.html)",
        "[GNU Lesser General Public License v3.0 or later](https://spdx.org/licenses/LGPL-3.0-or-later.html)",
        "[Lesser General Public License For Linguistic Resources](https://spdx.org/licenses/LGPLLR.html)",
        "[libpng License](https://spdx.org/licenses/Libpng.html)",
        "[PNG Reference Library License v1 (for libpng 0.5 through 1.6.35)](https://spdx.org/licenses/libpng-1.6.35.html)",
        "[PNG Reference Library version 2](https://spdx.org/licenses/libpng-2.0.html)",
        "[libselinux public domain notice](https://spdx.org/licenses/libselinux-1.0.html)",
        "[libtiff License](https://spdx.org/licenses/libtiff.html)",
        "[libutil David Nugent License](https://spdx.org/licenses/libutil-David-Nugent.html)",
        "[Licence Libre du Québec – Permissive version 1.1](https://spdx.org/licenses/LiLiQ-P-1.1.html)",
        "[Licence Libre du Québec – Réciprocité version 1.1](https://spdx.org/licenses/LiLiQ-R-1.1.html)",
        "[Licence Libre du Québec – Réciprocité forte version 1.1](https://spdx.org/licenses/LiLiQ-Rplus-1.1.html)",
        "[Linux man-pages - 1 paragraph](https://spdx.org/licenses/Linux-man-pages-1-para.html)",
        "[Linux man-pages Copyleft](https://spdx.org/licenses/Linux-man-pages-copyleft.html)",
        "[Linux man-pages Copyleft - 2 paragraphs](https://spdx.org/licenses/Linux-man-pages-copyleft-2-para.html)",
        "[Linux man-pages Copyleft Variant](https://spdx.org/licenses/Linux-man-pages-copyleft-var.html)",
        "[Linux Kernel Variant of OpenIB.org license](https://spdx.org/licenses/Linux-OpenIB.html)",
        "[Common Lisp LOOP License](https://spdx.org/licenses/LOOP.html)",
        "[LPD Documentation License](https://spdx.org/licenses/LPD-document.html)",
        "[Lucent Public License Version 1.0](https://spdx.org/licenses/LPL-1.0.html)",
        "[Lucent Public License v1.02](https://spdx.org/licenses/LPL-1.02.html)",
        "[LaTeX Project Public License v1.0](https://spdx.org/licenses/LPPL-1.0.html)",
        "[LaTeX Project Public License v1.1](https://spdx.org/licenses/LPPL-1.1.html)",
        "[LaTeX Project Public License v1.2](https://spdx.org/licenses/LPPL-1.2.html)",
        "[LaTeX Project Public License v1.3a](https://spdx.org/licenses/LPPL-1.3a.html)",
        "[LaTeX Project Public License v1.3c](https://spdx.org/licenses/LPPL-1.3c.html)",
        "[lsof License](https://spdx.org/licenses/lsof.html)",
        "[Lucida Bitmap Fonts License](https://spdx.org/licenses/Lucida-Bitmap-Fonts.html)",
        "[LZMA SDK License (versions 9.11 to 9.20)](https://spdx.org/licenses/LZMA-SDK-9.11-to-9.20.html)",
        "[LZMA SDK License (versions 9.22 and beyond)](https://spdx.org/licenses/LZMA-SDK-9.22.html)",
        "[Mackerras 3-Clause License](https://spdx.org/licenses/Mackerras-3-Clause.html)",
        "[Mackerras 3-Clause - acknowledgment variant](https://spdx.org/licenses/Mackerras-3-Clause-acknowledgment.html)",
        "[magaz License](https://spdx.org/licenses/magaz.html)",
        "[mailprio License](https://spdx.org/licenses/mailprio.html)",
        "[MakeIndex License](https://spdx.org/licenses/MakeIndex.html)",
        "[man2html License](https://spdx.org/licenses/man2html.html)",
        "[Martin Birgmeier License](https://spdx.org/licenses/Martin-Birgmeier.html)",
        "[McPhee Slideshow License](https://spdx.org/licenses/McPhee-slideshow.html)",
        "[metamail License](https://spdx.org/licenses/metamail.html)",
        "[Minpack License](https://spdx.org/licenses/Minpack.html)",
        "[MIPS License](https://spdx.org/licenses/MIPS.html)",
        "[The MirOS Licence](https://spdx.org/licenses/MirOS.html)",
        "[MIT License](https://spdx.org/licenses/MIT.html)",
        "[MIT No Attribution](https://spdx.org/licenses/MIT-0.html)",
        "[Enlightenment License (e16)](https://spdx.org/licenses/MIT-advertising.html)",
        "[MIT Click License](https://spdx.org/licenses/MIT-Click.html)",
        "[CMU License](https://spdx.org/licenses/MIT-CMU.html)",
        "[enna License](https://spdx.org/licenses/MIT-enna.html)",
        "[feh License](https://spdx.org/licenses/MIT-feh.html)",
        "[MIT Festival Variant](https://spdx.org/licenses/MIT-Festival.html)",
        "[MIT Khronos - old variant](https://spdx.org/licenses/MIT-Khronos-old.html)",
        "[MIT License Modern Variant](https://spdx.org/licenses/MIT-Modern-Variant.html)",
        "[MIT Open Group variant](https://spdx.org/licenses/MIT-open-group.html)",
        "[MIT-STK License](https://spdx.org/licenses/MIT-STK.html)",
        "[MIT testregex Variant](https://spdx.org/licenses/MIT-testregex.html)",
        "[MIT Tom Wu Variant](https://spdx.org/licenses/MIT-Wu.html)",
        "[MIT +no-false-attribs license](https://spdx.org/licenses/MITNFA.html)",
        "[MMIXware License](https://spdx.org/licenses/MMIXware.html)",
        "[Minecraft Mod Public License v1.0.1](https://spdx.org/licenses/MMPL-1.0.1.html)",
        "[Motosoto License](https://spdx.org/licenses/Motosoto.html)",
        "[MPEG Software Simulation](https://spdx.org/licenses/MPEG-SSG.html)",
        "[mpi Permissive License](https://spdx.org/licenses/mpi-permissive.html)",
        "[mpich2 License](https://spdx.org/licenses/mpich2.html)",
        "[Mozilla Public License 1.0](https://spdx.org/licenses/MPL-1.0.html)",
        "[Mozilla Public License 1.1](https://spdx.org/licenses/MPL-1.1.html)",
        "[Mozilla Public License 2.0](https://spdx.org/licenses/MPL-2.0.html)",
        "[Mozilla Public License 2.0 (no copyleft exception)](https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.html)",
        "[mplus Font License](https://spdx.org/licenses/mplus.html)",
        "[Microsoft Limited Public License](https://spdx.org/licenses/MS-LPL.html)",
        "[Microsoft Public License](https://spdx.org/licenses/MS-PL.html)",
        "[Microsoft Reciprocal License](https://spdx.org/licenses/MS-RL.html)",
        "[Matrix Template Library License](https://spdx.org/licenses/MTLL.html)",
        "[Mulan Permissive Software License, Version 1](https://spdx.org/licenses/MulanPSL-1.0.html)",
        "[Mulan Permissive Software License, Version 2](https://spdx.org/licenses/MulanPSL-2.0.html)",
        "[Multics License](https://spdx.org/licenses/Multics.html)",
        "[Mup License](https://spdx.org/licenses/Mup.html)",
        "[Nara Institute of Science and Technology License (2003)](https://spdx.org/licenses/NAIST-2003.html)",
        "[NASA Open Source Agreement 1.3](https://spdx.org/licenses/NASA-1.3.html)",
        "[Naumen Public License](https://spdx.org/licenses/Naumen.html)",
        "[Net Boolean Public License v1](https://spdx.org/licenses/NBPL-1.0.html)",
        "[NCBI Public Domain Notice](https://spdx.org/licenses/NCBI-PD.html)",
        "[Non-Commercial Government Licence](https://spdx.org/licenses/NCGL-UK-2.0.html)",
        "[NCL Source Code License](https://spdx.org/licenses/NCL.html)",
        "[University of Illinois/NCSA Open Source License](https://spdx.org/licenses/NCSA.html)",
        "[NetCDF license](https://spdx.org/licenses/NetCDF.html)",
        "[Newsletr License](https://spdx.org/licenses/Newsletr.html)",
        "[Nethack General Public License](https://spdx.org/licenses/NGPL.html)",
        "[ngrep License](https://spdx.org/licenses/ngrep.html)",
        "[NICTA Public Software License, Version 1.0](https://spdx.org/licenses/NICTA-1.0.html)",
        "[NIST Public Domain Notice](https://spdx.org/licenses/NIST-PD.html)",
        "[NIST Public Domain Notice with license fallback](https://spdx.org/licenses/NIST-PD-fallback.html)",
        "[NIST Public Domain Notice TNT variant](https://spdx.org/licenses/NIST-PD-TNT.html)",
        "[NIST Software License](https://spdx.org/licenses/NIST-Software.html)",
        "[Norwegian Licence for Open Government Data (NLOD) 1.0](https://spdx.org/licenses/NLOD-1.0.html)",
        "[Norwegian Licence for Open Government Data (NLOD) 2.0](https://spdx.org/licenses/NLOD-2.0.html)",
        "[No Limit Public License](https://spdx.org/licenses/NLPL.html)",
        "[Nokia Open Source License](https://spdx.org/licenses/Nokia.html)",
        "[Netizen Open Source License](https://spdx.org/licenses/NOSL.html)",
        "[Noweb License](https://spdx.org/licenses/Noweb.html)",
        "[Netscape Public License v1.0](https://spdx.org/licenses/NPL-1.0.html)",
        "[Netscape Public License v1.1](https://spdx.org/licenses/NPL-1.1.html)",
        "[Non-Profit Open Software License 3.0](https://spdx.org/licenses/NPOSL-3.0.html)",
        "[NRL License](https://spdx.org/licenses/NRL.html)",
        "[NTIA Public Domain Notice](https://spdx.org/licenses/NTIA-PD.html)",
        "[NTP License](https://spdx.org/licenses/NTP.html)",
        "[NTP No Attribution](https://spdx.org/licenses/NTP-0.html)",
        "[Open Use of Data Agreement v1.0](https://spdx.org/licenses/O-UDA-1.0.html)",
        "[OAR License](https://spdx.org/licenses/OAR.html)",
        "[Open CASCADE Technology Public License](https://spdx.org/licenses/OCCT-PL.html)",
        "[OCLC Research Public License 2.0](https://spdx.org/licenses/OCLC-2.0.html)",
        "[Open Data Commons Open Database License v1.0](https://spdx.org/licenses/ODbL-1.0.html)",
        "[Open Data Commons Attribution License v1.0](https://spdx.org/licenses/ODC-By-1.0.html)",
        "[OFFIS License](https://spdx.org/licenses/OFFIS.html)",
        "[SIL Open Font License 1.0](https://spdx.org/licenses/OFL-1.0.html)",
        "[SIL Open Font License 1.0 with no Reserved Font Name](https://spdx.org/licenses/OFL-1.0-no-RFN.html)",
        "[SIL Open Font License 1.0 with Reserved Font Name](https://spdx.org/licenses/OFL-1.0-RFN.html)",
        "[SIL Open Font License 1.1](https://spdx.org/licenses/OFL-1.1.html)",
        "[SIL Open Font License 1.1 with no Reserved Font Name](https://spdx.org/licenses/OFL-1.1-no-RFN.html)",
        "[SIL Open Font License 1.1 with Reserved Font Name](https://spdx.org/licenses/OFL-1.1-RFN.html)",
        "[OGC Software License, Version 1.0](https://spdx.org/licenses/OGC-1.0.html)",
        "[Taiwan Open Government Data License, version 1.0](https://spdx.org/licenses/OGDL-Taiwan-1.0.html)",
        "[Open Government Licence - Canada](https://spdx.org/licenses/OGL-Canada-2.0.html)",
        "[Open Government Licence v1.0](https://spdx.org/licenses/OGL-UK-1.0.html)",
        "[Open Government Licence v2.0](https://spdx.org/licenses/OGL-UK-2.0.html)",
        "[Open Government Licence v3.0](https://spdx.org/licenses/OGL-UK-3.0.html)",
        "[Open Group Test Suite License](https://spdx.org/licenses/OGTSL.html)",
        "[Open LDAP Public License v1.1](https://spdx.org/licenses/OLDAP-1.1.html)",
        "[Open LDAP Public License v1.2](https://spdx.org/licenses/OLDAP-1.2.html)",
        "[Open LDAP Public License v1.3](https://spdx.org/licenses/OLDAP-1.3.html)",
        "[Open LDAP Public License v1.4](https://spdx.org/licenses/OLDAP-1.4.html)",
        "[Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)](https://spdx.org/licenses/OLDAP-2.0.html)",
        "[Open LDAP Public License v2.0.1](https://spdx.org/licenses/OLDAP-2.0.1.html)",
        "[Open LDAP Public License v2.1](https://spdx.org/licenses/OLDAP-2.1.html)",
        "[Open LDAP Public License v2.2](https://spdx.org/licenses/OLDAP-2.2.html)",
        "[Open LDAP Public License v2.2.1](https://spdx.org/licenses/OLDAP-2.2.1.html)",
        "[Open LDAP Public License 2.2.2](https://spdx.org/licenses/OLDAP-2.2.2.html)",
        "[Open LDAP Public License v2.3](https://spdx.org/licenses/OLDAP-2.3.html)",
        "[Open LDAP Public License v2.4](https://spdx.org/licenses/OLDAP-2.4.html)",
        "[Open LDAP Public License v2.5](https://spdx.org/licenses/OLDAP-2.5.html)",
        "[Open LDAP Public License v2.6](https://spdx.org/licenses/OLDAP-2.6.html)",
        "[Open LDAP Public License v2.7](https://spdx.org/licenses/OLDAP-2.7.html)",
        "[Open LDAP Public License v2.8](https://spdx.org/licenses/OLDAP-2.8.html)",
        "[Open Logistics Foundation License Version 1.3](https://spdx.org/licenses/OLFL-1.3.html)",
        "[Open Market License](https://spdx.org/licenses/OML.html)",
        "[OpenMDW License Agreement v1.0](https://spdx.org/licenses/OpenMDW-1.0.html)",
        "[OpenPBS v2.3 Software License](https://spdx.org/licenses/OpenPBS-2.3.html)",
        "[OpenSSL License](https://spdx.org/licenses/OpenSSL.html)",
        "[OpenSSL License - standalone](https://spdx.org/licenses/OpenSSL-standalone.html)",
        "[OpenVision License](https://spdx.org/licenses/OpenVision.html)",
        "[Open Public License v1.0](https://spdx.org/licenses/OPL-1.0.html)",
        "[United Kingdom Open Parliament Licence v3.0](https://spdx.org/licenses/OPL-UK-3.0.html)",
        "[Open Publication License v1.0](https://spdx.org/licenses/OPUBL-1.0.html)",
        "[OSC License 1.0](https://spdx.org/licenses/OSC-1.0.html)",
        "[OSET Public License version 2.1](https://spdx.org/licenses/OSET-PL-2.1.html)",
        "[Open Software License 1.0](https://spdx.org/licenses/OSL-1.0.html)",
        "[Open Software License 1.1](https://spdx.org/licenses/OSL-1.1.html)",
        "[Open Software License 2.0](https://spdx.org/licenses/OSL-2.0.html)",
        "[Open Software License 2.1](https://spdx.org/licenses/OSL-2.1.html)",
        "[Open Software License 3.0](https://spdx.org/licenses/OSL-3.0.html)",
        "[OSSP License](https://spdx.org/licenses/OSSP.html)",
        "[PADL License](https://spdx.org/licenses/PADL.html)",
        "[ParaType Free Font Licensing Agreement v1.3](https://spdx.org/licenses/ParaType-Free-Font-1.3.html)",
        "[The Parity Public License 6.0.0](https://spdx.org/licenses/Parity-6.0.0.html)",
        "[The Parity Public License 7.0.0](https://spdx.org/licenses/Parity-7.0.0.html)",
        "[Open Data Commons Public Domain Dedication & License 1.0](https://spdx.org/licenses/PDDL-1.0.html)",
        "[PHP License v3.0](https://spdx.org/licenses/PHP-3.0.html)",
        "[PHP License v3.01](https://spdx.org/licenses/PHP-3.01.html)",
        "[Pixar License](https://spdx.org/licenses/Pixar.html)",
        "[pkgconf License](https://spdx.org/licenses/pkgconf.html)",
        "[Plexus Classworlds License](https://spdx.org/licenses/Plexus.html)",
        "[pnmstitch License](https://spdx.org/licenses/pnmstitch.html)",
        "[PolyForm Noncommercial License 1.0.0](https://spdx.org/licenses/PolyForm-Noncommercial-1.0.0.html)",
        "[PolyForm Small Business License 1.0.0](https://spdx.org/licenses/PolyForm-Small-Business-1.0.0.html)",
        "[PostgreSQL License](https://spdx.org/licenses/PostgreSQL.html)",
        "[Peer Production License](https://spdx.org/licenses/PPL.html)",
        "[Python Software Foundation License 2.0](https://spdx.org/licenses/PSF-2.0.html)",
        "[psfrag License](https://spdx.org/licenses/psfrag.html)",
        "[psutils License](https://spdx.org/licenses/psutils.html)",
        "[Python License 2.0](https://spdx.org/licenses/Python-2.0.html)",
        "[Python License 2.0.1](https://spdx.org/licenses/Python-2.0.1.html)",
        "[Python ldap License](https://spdx.org/licenses/python-ldap.html)",
        "[Qhull License](https://spdx.org/licenses/Qhull.html)",
        "[Q Public License 1.0](https://spdx.org/licenses/QPL-1.0.html)",
        "[Q Public License 1.0 - INRIA 2004 variant](https://spdx.org/licenses/QPL-1.0-INRIA-2004.html)",
        "[radvd License](https://spdx.org/licenses/radvd.html)",
        "[Rdisc License](https://spdx.org/licenses/Rdisc.html)",
        "[Red Hat eCos Public License v1.1](https://spdx.org/licenses/RHeCos-1.1.html)",
        "[Reciprocal Public License 1.1](https://spdx.org/licenses/RPL-1.1.html)",
        "[Reciprocal Public License 1.5](https://spdx.org/licenses/RPL-1.5.html)",
        "[RealNetworks Public Source License v1.0](https://spdx.org/licenses/RPSL-1.0.html)",
        "[RSA Message-Digest License](https://spdx.org/licenses/RSA-MD.html)",
        "[Ricoh Source Code Public License](https://spdx.org/licenses/RSCPL.html)",
        "[Ruby License](https://spdx.org/licenses/Ruby.html)",
        "[Ruby pty extension license](https://spdx.org/licenses/Ruby-pty.html)",
        "[Sax Public Domain Notice](https://spdx.org/licenses/SAX-PD.html)",
        "[Sax Public Domain Notice 2.0](https://spdx.org/licenses/SAX-PD-2.0.html)",
        "[Saxpath License](https://spdx.org/licenses/Saxpath.html)",
        "[SCEA Shared Source License](https://spdx.org/licenses/SCEA.html)",
        "[Scheme Language Report License](https://spdx.org/licenses/SchemeReport.html)",
        "[Sendmail License](https://spdx.org/licenses/Sendmail.html)",
        "[Sendmail License 8.23](https://spdx.org/licenses/Sendmail-8.23.html)",
        "[Sendmail Open Source License v1.1](https://spdx.org/licenses/Sendmail-Open-Source-1.1.html)",
        "[SGI Free Software License B v1.0](https://spdx.org/licenses/SGI-B-1.0.html)",
        "[SGI Free Software License B v1.1](https://spdx.org/licenses/SGI-B-1.1.html)",
        "[SGI Free Software License B v2.0](https://spdx.org/licenses/SGI-B-2.0.html)",
        "[SGI OpenGL License](https://spdx.org/licenses/SGI-OpenGL.html)",
        "[SGMLUG Parser Materials License](https://spdx.org/licenses/SGMLUG-PM.html)",
        "[SGP4 Permission Notice](https://spdx.org/licenses/SGP4.html)",
        "[Solderpad Hardware License v0.5](https://spdx.org/licenses/SHL-0.5.html)",
        "[Solderpad Hardware License, Version 0.51](https://spdx.org/licenses/SHL-0.51.html)",
        "[Simple Public License 2.0](https://spdx.org/licenses/SimPL-2.0.html)",
        "[Sun Industry Standards Source License v1.1](https://spdx.org/licenses/SISSL.html)",
        "[Sun Industry Standards Source License v1.2](https://spdx.org/licenses/SISSL-1.2.html)",
        "[SL License](https://spdx.org/licenses/SL.html)",
        "[Sleepycat License](https://spdx.org/licenses/Sleepycat.html)",
        "[SMAIL General Public License](https://spdx.org/licenses/SMAIL-GPL.html)",
        "[Standard ML of New Jersey License](https://spdx.org/licenses/SMLNJ.html)",
        "[Secure Messaging Protocol Public License](https://spdx.org/licenses/SMPPL.html)",
        "[SNIA Public License 1.1](https://spdx.org/licenses/SNIA.html)",
        "[snprintf License](https://spdx.org/licenses/snprintf.html)",
        "[SOFA Software License](https://spdx.org/licenses/SOFA.html)",
        "[softSurfer License](https://spdx.org/licenses/softSurfer.html)",
        "[Soundex License](https://spdx.org/licenses/Soundex.html)",
        "[Spencer License 86](https://spdx.org/licenses/Spencer-86.html)",
        "[Spencer License 94](https://spdx.org/licenses/Spencer-94.html)",
        "[Spencer License 99](https://spdx.org/licenses/Spencer-99.html)",
        "[Sun Public License v1.0](https://spdx.org/licenses/SPL-1.0.html)",
        "[ssh-keyscan License](https://spdx.org/licenses/ssh-keyscan.html)",
        "[SSH OpenSSH license](https://spdx.org/licenses/SSH-OpenSSH.html)",
        "[SSH short notice](https://spdx.org/licenses/SSH-short.html)",
        "[SSLeay License - standalone](https://spdx.org/licenses/SSLeay-standalone.html)",
        "[Server Side Public License, v 1](https://spdx.org/licenses/SSPL-1.0.html)",
        "[SugarCRM Public License v1.1.3](https://spdx.org/licenses/SugarCRM-1.1.3.html)",
        "[Sustainable Use License v1.0](https://spdx.org/licenses/SUL-1.0.html)",
        "[Sun PPP License](https://spdx.org/licenses/Sun-PPP.html)",
        "[Sun PPP License (2000)](https://spdx.org/licenses/Sun-PPP-2000.html)",
        "[SunPro License](https://spdx.org/licenses/SunPro.html)",
        "[Scheme Widget Library (SWL) Software License Agreement](https://spdx.org/licenses/SWL.html)",
        "[swrule License](https://spdx.org/licenses/swrule.html)",
        "[Symlinks License](https://spdx.org/licenses/Symlinks.html)",
        "[TAPR Open Hardware License v1.0](https://spdx.org/licenses/TAPR-OHL-1.0.html)",
        "[TCL/TK License](https://spdx.org/licenses/TCL.html)",
        "[TCP Wrappers License](https://spdx.org/licenses/TCP-wrappers.html)",
        "[TekHVC License](https://spdx.org/licenses/TekHVC.html)",
        "[TermReadKey License](https://spdx.org/licenses/TermReadKey.html)",
        "[Transitive Grace Period Public Licence 1.0](https://spdx.org/licenses/TGPPL-1.0.html)",
        "[ThirdEye License](https://spdx.org/licenses/ThirdEye.html)",
        "[threeparttable License](https://spdx.org/licenses/threeparttable.html)",
        "[TMate Open Source License](https://spdx.org/licenses/TMate.html)",
        "[TORQUE v2.5+ Software License v1.1](https://spdx.org/licenses/TORQUE-1.1.html)",
        "[Trusster Open Source License](https://spdx.org/licenses/TOSL.html)",
        "[Time::ParseDate License](https://spdx.org/licenses/TPDL.html)",
        "[THOR Public License 1.0](https://spdx.org/licenses/TPL-1.0.html)",
        "[TrustedQSL License](https://spdx.org/licenses/TrustedQSL.html)",
        "[Text-Tabs+Wrap License](https://spdx.org/licenses/TTWL.html)",
        "[TTYP0 License](https://spdx.org/licenses/TTYP0.html)",
        "[Technische Universitaet Berlin License 1.0](https://spdx.org/licenses/TU-Berlin-1.0.html)",
        "[Technische Universitaet Berlin License 2.0](https://spdx.org/licenses/TU-Berlin-2.0.html)",
        "[Ubuntu Font Licence v1.0](https://spdx.org/licenses/Ubuntu-font-1.0.html)",
        "[UCAR License](https://spdx.org/licenses/UCAR.html)",
        "[Upstream Compatibility License v1.0](https://spdx.org/licenses/UCL-1.0.html)",
        "[ulem License](https://spdx.org/licenses/ulem.html)",
        "[Michigan/Merit Networks License](https://spdx.org/licenses/UMich-Merit.html)",
        "[Unicode License v3](https://spdx.org/licenses/Unicode-3.0.html)",
        "[Unicode License Agreement - Data Files and Software (2015)](https://spdx.org/licenses/Unicode-DFS-2015.html)",
        "[Unicode License Agreement - Data Files and Software (2016)](https://spdx.org/licenses/Unicode-DFS-2016.html)",
        "[Unicode Terms of Use](https://spdx.org/licenses/Unicode-TOU.html)",
        "[UnixCrypt License](https://spdx.org/licenses/UnixCrypt.html)",
        "[The Unlicense](https://spdx.org/licenses/Unlicense.html)",
        "[Unlicense - libtelnet variant](https://spdx.org/licenses/Unlicense-libtelnet.html)",
        "[Unlicense - libwhirlpool variant](https://spdx.org/licenses/Unlicense-libwhirlpool.html)",
        "[UnRAR License](https://spdx.org/licenses/UnRAR.html)",
        "[Universal Permissive License v1.0](https://spdx.org/licenses/UPL-1.0.html)",
        "[Utah Raster Toolkit Run Length Encoded License](https://spdx.org/licenses/URT-RLE.html)",
        "[Vim License](https://spdx.org/licenses/Vim.html)",
        "[Vixie Cron License](https://spdx.org/licenses/Vixie-Cron.html)",
        "[VOSTROM Public License for Open Source](https://spdx.org/licenses/VOSTROM.html)",
        "[Vovida Software License v1.0](https://spdx.org/licenses/VSL-1.0.html)",
        "[W3C Software Notice and License (2002-12-31)](https://spdx.org/licenses/W3C.html)",
        "[W3C Software Notice and License (1998-07-20)](https://spdx.org/licenses/W3C-19980720.html)",
        "[W3C Software Notice and Document License (2015-05-13)](https://spdx.org/licenses/W3C-20150513.html)",
        "[w3m License](https://spdx.org/licenses/w3m.html)",
        "[Sybase Open Watcom Public License 1.0](https://spdx.org/licenses/Watcom-1.0.html)",
        "[Widget Workshop License](https://spdx.org/licenses/Widget-Workshop.html)",
        "[WordNet License](https://spdx.org/licenses/WordNet.html)",
        "[Wsuipa License](https://spdx.org/licenses/Wsuipa.html)",
        "[Do What The F*ck You Want To But It's Not My Fault Public License](https://spdx.org/licenses/WTFNMFPL.html)",
        "[Do What The F*ck You Want To Public License](https://spdx.org/licenses/WTFPL.html)",
        "[WWL License](https://spdx.org/licenses/wwl.html)",
        "[X11 License](https://spdx.org/licenses/X11.html)",
        "[X11 License Distribution Modification Variant](https://spdx.org/licenses/X11-distribute-modifications-variant.html)",
        "[X11 no permit persons clause](https://spdx.org/licenses/X11-no-permit-persons.html)",
        "[X11 swapped final paragraphs](https://spdx.org/licenses/X11-swapped.html)",
        "[Xdebug License v 1.03](https://spdx.org/licenses/Xdebug-1.03.html)",
        "[Xerox License](https://spdx.org/licenses/Xerox.html)",
        "[Xfig License](https://spdx.org/licenses/Xfig.html)",
        "[XFree86 License 1.1](https://spdx.org/licenses/XFree86-1.1.html)",
        "[xinetd License](https://spdx.org/licenses/xinetd.html)",
        "[xkeyboard-config Zinoviev License](https://spdx.org/licenses/xkeyboard-config-Zinoviev.html)",
        "[xlock License](https://spdx.org/licenses/xlock.html)",
        "[X.Net License](https://spdx.org/licenses/Xnet.html)",
        "[XPP License](https://spdx.org/licenses/xpp.html)",
        "[XSkat License](https://spdx.org/licenses/XSkat.html)",
        "[xzoom License](https://spdx.org/licenses/xzoom.html)",
        "[Yahoo! Public License v1.0](https://spdx.org/licenses/YPL-1.0.html)",
        "[Yahoo! Public License v1.1](https://spdx.org/licenses/YPL-1.1.html)",
        "[Zed License](https://spdx.org/licenses/Zed.html)",
        "[Zeeff License](https://spdx.org/licenses/Zeeff.html)",
        "[Zend License v2.0](https://spdx.org/licenses/Zend-2.0.html)",
        "[Zimbra Public License v1.3](https://spdx.org/licenses/Zimbra-1.3.html)",
        "[Zimbra Public License v1.4](https://spdx.org/licenses/Zimbra-1.4.html)",
        "[zlib License](https://spdx.org/licenses/Zlib.html)",
        "[zlib/libpng License with Acknowledgement](https://spdx.org/licenses/zlib-acknowledgement.html)",
        "[Zope Public License 1.1](https://spdx.org/licenses/ZPL-1.1.html)",
        "[Zope Public License 2.0](https://spdx.org/licenses/ZPL-2.0.html)",
        "[Zope Public License 2.1](https://spdx.org/licenses/ZPL-2.1.html)"
      ]
    },
    "license_identifier": {
      "$comment": "在此处添加已知的许可证，以便验证器可以提供更好的错误信息",
      "allOf": [
        {
          "$ref": "#/definitions/spdx_license_identifier"
        }
      ]
    },
    "license_field": {
      "anyOf": [
        {
          "enum": [
            "Unknown"
          ],
          "markdownEnumDescriptions": [
            "[Scoop 官方定义的字段](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests#required-properties)，表示无法确定许可证(unable to determine the license)"
          ]
        },
        {
          "enum": [
            "Freeware"
          ],
          "markdownEnumDescriptions": [
            "[Scoop 官方定义的字段](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests#required-properties)，表示这是一个免费软件(free to use forever)"
          ]
        },
        {
          "enum": [
            "Proprietary"
          ],
          "markdownEnumDescriptions": [
            "[Scoop 官方定义的字段](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests#required-properties)，表示这是一个付费软件(must pay to use)"
          ]
        },
        {
          "enum": [
            "Public Domain"
          ],
          "markdownEnumDescriptions": [
            "[Scoop 官方定义的字段](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests#required-properties)，表示这是一个属于公有领域的软件(Public Domain)"
          ]
        },
        {
          "enum": [
            "Shareware"
          ],
          "markdownEnumDescriptions": [
            "[Scoop 官方定义的字段](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests#required-properties)，表示这是一个免费试用软件，试用结束后必须付费才能继续使用(free to try, must pay eventually)"
          ]
        }
      ]
    },
    "license": {
      "title": "软件许可证",
      "markdownDescription": "- 指定软件的许可证或类型字段\n- 如果不同的文件具有不同的许可证，请使用逗号 `,` 分隔许可证\n- 如果整个应用程序是多重许可的 ，则使用 `|` 分隔许可证\n- https://spdx.org/licenses\n- https://opensource.org/license",
      "type": [
        "string",
        "object"
      ],
      "examples": [
        {}
      ],
      "anyOf": [
        {
          "minLength": 1
        },
        {
          "$ref": "#/definitions/license_field"
        },
        {
          "$ref": "#/definitions/license_identifier"
        }
      ],
      "if": {
        "type": "object"
      },
      "then": {
        "required": [
          "identifier"
        ],
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "title": "许可证标识符",
            "markdownDescription": "- 指定软件的许可证\n- 如果不同的文件具有不同的许可证，请使用逗号 `,` 分隔许可证\n- 如果整个应用程序是多重许可的 ，则使用 `|` 分隔许可证\n- https://spdx.org/licenses\n- https://opensource.org/license",
            "$ref": "#/definitions/str",
            "anyOf": [
              {
                "minLength": 1
              },
              {
                "$ref": "#/definitions/license_field"
              },
              {
                "$ref": "#/definitions/license_identifier"
              }
            ]
          },
          "url": {
            "examples": [
              ""
            ],
            "allOf": [
              {
                "$ref": "#/definitions/str"
              },
              {
                "$ref": "#/definitions/url_validation"
              }
            ],
            "title": "许可证 URL",
            "markdownDescription": "- 软件许可证的 URL 地址。"
          }
        }
      }
    },
    "notes": {
      "title": "提示信息",
      "markdownDescription": "- 安装软件之后的提示信息\n- 可以使用一些变量，它会在显示时自动替换\n  - `$dir`\n  - `$original_dir`\n  - `$persist_dir`",
      "$ref": "#/definitions/str_or_arr"
    },
    "url_validation": {
      "pattern": "^https?://",
      "errorMessage": "需要一个有效的 http/https URL"
    },
    "url": {
      "title": "软件下载地址",
      "markdownDescription": "- 要下载的文件的 URL\n- 如果有多个 URL，可以使用数组\n```json\n  \"url\": [\n      \"http://example.com/file1.zip\",\n      \"http://example.com/file2.zip\"\n  ]\n  ```\n- 如果需要更改下载 URL 的文件名，可以在 URL 结尾加上 `#/dl.7z`，例如:\n```json\n  \"url\": \"http://example.org/program.exe#/dl.7z\"\n  ```\n- Scoop 将下载 program.exe ，但将其保存为 dl.7z ，然后将使用 7-Zip 自动提取",
      "examples": [
        "https://github.com/abgox/abyss/releases/download/empty/empty"
      ],
      "type": [
        "string",
        "array"
      ],
      "$ref": "#/definitions/url_validation",
      "minLength": 1,
      "minItems": 1,
      "items": {
        "allOf": [
          {
            "$ref": "#/definitions/str"
          },
          {
            "$ref": "#/definitions/url_validation"
          }
        ],
        "examples": [
          "https://github.com/abgox/abyss/releases/download/empty/empty"
        ]
      }
    },
    "hash": {
      "title": "软件安装包的 hash 值",
      "markdownDescription": "- hash 值默认是 `SHA256`\n- 也可以通过在字符串前加上 `sha512:` `sha1:` 或 `md5:` 来使用 `SHA512`、`SHA1` 或 `MD5`",
      "examples": [
        "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"
      ],
      "type": [
        "string",
        "array"
      ],
      "minLength": 1,
      "minItems": 1,
      "items": {
        "$ref": "#/definitions/str",
        "examples": [
          "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"
        ],
        "pattern": "^([a-fA-F0-9]{64}|(sha1|sha256|sha512|md5):([a-fA-F0-9]{32}|[a-fA-F0-9]{40}|[a-fA-F0-9]{64}|[a-fA-F0-9]{128}))$",
        "errorMessage": "不是一个正确的 hash"
      },
      "pattern": "^([a-fA-F0-9]{64}|(sha1|sha256|sha512|md5):([a-fA-F0-9]{32}|[a-fA-F0-9]{40}|[a-fA-F0-9]{64}|[a-fA-F0-9]{128}))$",
      "errorMessage": "不是一个正确的 hash"
    },
    "architecture_example": {
      "examples": [
        {
          "64bit": {
            "url": "https://github.com/abgox/abyss/releases/download/empty/empty",
            "hash": "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"
          },
          "arm64": {
            "url": "https://github.com/abgox/abyss/releases/download/empty/empty",
            "hash": "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"
          }
        }
      ]
    },
    "architecture_property": {
      "examples": [
        {}
      ],
      "properties": {
        "url": {
          "examples": [
            "",
            []
          ],
          "$ref": "#/definitions/url"
        },
        "hash": {
          "$ref": "#/definitions/hash"
        },
        "bin": {
          "$ref": "#/definitions/bin"
        },
        "checkver": {
          "$ref": "#/definitions/checkver"
        },
        "env_add_path": {
          "$comment": "此属性官方文档中未说明，但实际可用",
          "$ref": "#/definitions/env_add_path"
        },
        "extract_dir": {
          "$ref": "#/definitions/extract_dir"
        },
        "installer": {
          "$ref": "#/definitions/installer"
        },
        "pre_install": {
          "$ref": "#/definitions/pre_install"
        },
        "post_install": {
          "$ref": "#/definitions/post_install"
        },
        "shortcuts": {
          "$ref": "#/definitions/shortcuts"
        },
        "uninstaller": {
          "$ref": "#/definitions/uninstaller"
        }
      },
      "minProperties": 1,
      "additionalProperties": false
    },
    "architecture": {
      "title": "架构信息",
      "markdownDescription": "- 程序的架构信息\n- 架构可以用来包装差异",
      "type": "object",
      "minProperties": 1,
      "additionalProperties": false,
      "properties": {
        "64bit": {
          "markdownDescription": "- 64位架构",
          "$ref": "#/definitions/architecture_property"
        },
        "32bit": {
          "markdownDescription": "- 32位架构",
          "$ref": "#/definitions/architecture_property"
        },
        "arm64": {
          "markdownDescription": "- arm64架构",
          "$ref": "#/definitions/architecture_property"
        }
      }
    },
    "extract_dir": {
      "title": "仅提取指定目录",
      "markdownDescription": "- 如果 url 属性的值指向一个压缩包，Scoop 默认会提取所有内容\n    - 压缩包类型: `.zip`/`.7z`/`.tar`/`.gz`/`.lzma`/`.lzh`\n- 如果存在 `extract_dir` 属性，Scoop 将只提取 `extract_dir` 定义的指定目录",
      "$ref": "#/definitions/str_or_arr"
    },
    "extract_to": {
      "title": "提取内容到指定目录",
      "markdownDescription": "- 如果 url 属性的值指向一个压缩包，Scoop 会将所有内容提取到 `extract_to` 定义的指定目录中\n  - 压缩包类型: `.zip`/`.7z`/`.tar`/`.gz`/`.lzma`/`.lzh`\n- 如果 url 是一个数组，有多个压缩包，则 `extract_to` 也应该是一个数组，并且与 url 数组的顺序一致",
      "$ref": "#/definitions/str_or_arr"
    },
    "env_add_path": {
      "title": "添加到环境变量 PATH 中的路径",
      "markdownDescription": "- 将指定目录添加到环境变量(当前用户) PATH 中\n- 如果要指定 `$dir` 目录，请用 `.` 代替\n- 如果安装时使用了 `--global` 或 `-g` 参数，则会添加到环境变量(系统级) PATH 中",
      "type": [
        "string",
        "array"
      ],
      "examples": [
        []
      ],
      "minLength": 1,
      "minItems": 1,
      "uniqueItems": true,
      "$ref": "#/definitions/use_string_if_single"
    },
    "env_set": {
      "title": "设置环境变量",
      "markdownDescription": "- 为用户设置一个或多个环境变量(当前用户)\n- 如果安装时使用了 `--global` 或 `-g` 参数，则会设置到环境变量(系统级) 中\n- 一些可用的变量:\n  - `$dir`\n  - `$persist_dir`\n  - `$home`\n  - `$env:AppData`\n  - ...",
      "allOf": [
        {
          "type": "object"
        },
        {
          "patternProperties": {
            "^.+$": {
              "$ref": "#/definitions/str",
              "title": "环境变量的键 (Key)",
              "examples": [
                "$dir\\xxx",
                "$persist_dir\\xxx"
              ]
            }
          },
          "minProperties": 1,
          "additionalProperties": false,
          "errorMessage": "不允许属性名为空字符串"
        }
      ]
    },
    "psmodule": {
      "title": "PowerShell 模块",
      "markdownDescription": "- 作为 PowerShell 模块安装在 `$scoopdir/modules` 中",
      "type": "object",
      "required": [
        "name"
      ],
      "examples": [
        {
          "name": ""
        }
      ],
      "properties": {
        "name": {
          "title": "模块名称",
          "markdownDescription": "- 模块的名称，它应该与提取目录中的至少一个文件匹配，以便 PowerShell 将其识别为模块",
          "$ref": "#/definitions/str"
        }
      },
      "additionalProperties": false
    },
    "bin": {
      "markdownDescription": "程序（可执行文件或脚本）字符串或字符串数组\n\n- 一个字符串或字符串数组，代表可在用户的 PATH 中使用的程序（可执行文件或脚本）\n- 如果它是图形用户界面（GUI）应用程序，且不接受任何命令行参数，则无需将其添加到 `bin` 中\n\n### 示例\n\n1. Scoop 会创建一个名为 `a` 的 shim，后续可以直接使用 `a` 命令去运行 `a.exe`\n\n   ```json\n   \"bin\": \"a.exe\"\n   ```\n\n2. 和 1 的效果差不多，只是 Scoop 会创建两个 shim，分别是 `a` 和 `b`\n\n   ```json\n   \"bin\": [\"a.exe\", \"b.exe\"]\n   ```\n\n3. 和 2 的效果差不多，只是创建的两个 shim 的名称变成了 `ax` 和 `bx`\n\n```json\n    \"bin\": [\n        [\n            \"a.exe\",\n            \"ax\"\n        ],\n        [\n            \"b.exe\",\n            \"bx\"\n        ]\n    ]\n```\n\n4. 和 3 的效果差不多，只是当运行它们时，会携带上 `--config $dir/config.json` 参数\n\n```json\n\"bin\": [\n    [\n        \"a.exe\",\n        \"ax\",\n        \"--config $dir/config.json\"\n    ],\n    [\n        \"b.exe\",\n        \"bx\",\n        \"--config $dir/config.json\"\n    ]\n]\n```",
      "type": [
        "string",
        "array"
      ],
      "items": {
        "type": [
          "string",
          "array"
        ],
        "minLength": 1,
        "anyOf": [
          {
            "type": "array",
            "items": {
              "$ref": "#/definitions/str"
            },
            "allOf": [
              {
                "items": [
                  {
                    "markdownDescription": "程序名"
                  },
                  {
                    "markdownDescription": "别名 (shim)"
                  },
                  {
                    "markdownDescription": "参数，它是可选的"
                  }
                ]
              },
              {
                "if": {
                  "minItems": 1,
                  "maxItems": 1
                },
                "then": {
                  "not": true,
                  "errorMessage": "缺少第二个必需值: 别名 (shim)"
                }
              },
              {
                "if": {
                  "maxItems": 0
                },
                "then": {
                  "not": true,
                  "errorMessage": "缺少两个必需值: 程序名、别名 (shim)"
                }
              }
            ],
            "minItems": 1,
            "maxItems": 3
          },
          {
            "$ref": "#/definitions/str"
          }
        ]
      },
      "minLength": 1,
      "minItems": 1,
      "uniqueItems": true,
      "$ref": "#/definitions/use_string_if_single"
    },
    "shortcuts": {
      "type": "array",
      "title": "添加到开始菜单的快捷方式",
      "markdownDescription": "- 指定添加到开始菜单的快捷方式，它们会被放在 `Scoop Apps` 目录中\n- 每个数组中可以包含四个值\n    1. 必需值: 目标文件的路径\n    2. 必需值: 快捷方式的名称，支持子目录: `aaa\\bbb`\n    3. 可选值: 启动参数\n    4. 可选值: 图标文件的路径",
      "items": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/str"
        },
        "allOf": [
          {
            "items": [
              {
                "markdownDescription": "目标文件的路径"
              },
              {
                "markdownDescription": "快捷方式的名称，支持子目录: `aaa\\bbb`"
              },
              {
                "markdownDescription": "启动参数，它是可选的"
              },
              {
                "markdownDescription": "图标文件的路径，它是可选的"
              }
            ]
          },
          {
            "if": {
              "minItems": 1,
              "maxItems": 1
            },
            "then": {
              "not": true,
              "errorMessage": "缺少第二个必需值: 快捷方式名称"
            }
          },
          {
            "if": {
              "maxItems": 0
            },
            "then": {
              "not": true,
              "errorMessage": "缺少两个必需值: 目标文件路径、快捷方式名称"
            }
          }
        ],
        "minItems": 1,
        "maxItems": 4
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "persist": {
      "markdownDescription": "[持久化数据](https://github.com/ScoopInstaller/Scoop/wiki/Persistent-data)\n\n- Scoop 将对指定的目录和文件进行数据持久化\n\n### 注意\n\n- Scoop 默认会进行目录链接\n- 如果你希望进行文件链接，你需要先在安装脚本中创建此文件\n\n### 示例\n\n1. Scoop 会进行目录链接: `$dir\\data` => `$persist_dir\\data`\n\n```json\n\"persist\": \"data\"\n```\n\n2. 和 1 的效果差不多，只是 Scoop 会进行多次链接\n\n```json\n\"persist\": [\n    \"data\",\n    \"config.json\"\n]\n```\n\n3. 和 2 的效果差不多，只是额外指定了目标位置\n\n```json\n\"persist\": [\n    [\n        \"app\\\\data\",\n        \"userData\"\n    ],\n    [\n        \"app\\\\config.json\",\n        \"config.json\"\n    ]\n]\n```",
      "type": [
        "string",
        "array"
      ],
      "items": {
        "type": [
          "string",
          "array"
        ],
        "minLength": 1,
        "anyOf": [
          {
            "type": "array",
            "items": {
              "$ref": "#/definitions/str"
            },
            "allOf": [
              {
                "items": [
                  {
                    "markdownDescription": "persist 的原始文件或目录"
                  },
                  {
                    "markdownDescription": "persist 的目标位置，支持子目录: `aaa\\bbb`"
                  }
                ]
              },
              {
                "if": {
                  "minItems": 1,
                  "maxItems": 1
                },
                "then": {
                  "not": true,
                  "errorMessage": "缺少第二个必需值: persist 的目标位置"
                }
              },
              {
                "if": {
                  "maxItems": 0
                },
                "then": {
                  "not": true,
                  "errorMessage": "缺少两个必需值: 需要 persist 的原始文件或目录、persist 的目标位置"
                }
              }
            ],
            "minItems": 1,
            "maxItems": 3
          },
          {
            "$ref": "#/definitions/str"
          }
        ]
      },
      "minLength": 1,
      "minItems": 1,
      "uniqueItems": true,
      "examples": [
        "",
        [],
        [
          []
        ]
      ]
    },
    "pre_install": {
      "title": "预安装脚本",
      "markdownDescription": "- 用于在安装应用程序之前执行命令\n- 执行顺序: `pre_install` -> `installer` -> `post_install`\n\n|可用的变量|说明|\n|:-:|-|\n|`$app`|应用程序名称(应用清单名称)|\n|`$architecture`|CPU 架构, 如: `64bit` `32bit` `arm64`|\n|`$cmd`|当前正在运行的子命令, 如: `uninstall` `update` `install`|\n|`$fname`|下载的文件名(可能是多个文件，需要当做数组处理，除非你确定 url 不是数组)|\n|`$scoopConfig`|Scoop 配置(PowerShell 对象)，如 {SCOOP_BRANCH, SCOOP_REPO}|\n|`$global`|如果安装时使用了 `-g` 或 `--global`，则为 `$true`|\n|`$manifest`|反序列化清单(PowerShell 对象)，如 @{version=1.2.3; description=xxx;...}|\n|`$version`|正在安装的版本，如 1.2.3|\n|`$dir`|应用程序安装目录(实际版本号目录)|\n|`$persist_dir`|数据持久化目录|\n|`$bucketsdir`|Scoop buckets 目录，如 D:\\scoop\\buckets|\n|`$bucket`|当前安装应用所属于的 bucket 名称|\n|`$cachedir`|Scoop cache 目录|\n|`$configFile`|Scoop 配置的路径|\n|`$globaldir`|全局安装目录|\n|`$original_dir`|应用程序安装目录(实际版本号目录)|\n|`$scoopdir`|Scoop 所在目录|",
      "$ref": "#/definitions/str_or_arr"
    },
    "installer": {
      "title": "安装程序配置",
      "markdownDescription": "- 运行非 MSI 安装程序的配置\n- 在 scoop install 和 scoop update 期间调用\n- 执行顺序: `pre_install` -> `installer` -> `post_install`",
      "type": "object",
      "minProperties": 1,
      "additionalProperties": false,
      "examples": [
        {}
      ],
      "properties": {
        "file": {
          "markdownDescription": "安装程序可执行文件\n- 对于 installer，默认为最后下载的 URL\n- 如果指定了它， uninstaller 中也需要指定",
          "$ref": "#/definitions/str"
        },
        "script": {
          "markdownDescription": "作为安装程序而不是 file 执行\n- 脚本中可用的变量: \n    - $fname: 下载的文件(可能是多个文件，需要当做数组处理，除非你确定 url 不是数组)\n    - $manifest: 已验证的清单引用\n    - $architecture: 64bit/32bit/arm64\n    - $dir: 安装目录",
          "$ref": "#/definitions/str_or_arr"
        },
        "args": {
          "type": "array",
          "markdownDescription": "传递给安装程序的参数数组\n- 它是一个可选的属性",
          "items": {
            "$ref": "#/definitions/str"
          },
          "minItems": 1
        },
        "keep": {
          "markdownDescription": "如果安装程序在运行后应该保留(例如，用于将来的卸载)，则设置为 true\n- 如果忽略或设置为任何其他值，安装程序将在运行后被删除",
          "$ref": "#/definitions/bool"
        }
      }
    },
    "post_install": {
      "title": "后安装脚本",
      "markdownDescription": "- 用于在安装应用程序之后执行命令\n- 执行顺序: `pre_install` -> `installer` -> `post_install`\n- 需要注意，此时 Scoop 已经完成 persist，因此如果需要创建文件用于 persist, 需要在 `pre_install` 中提前定义\n\n|可用的变量|说明|\n|:-:|-|\n|`$app`|应用程序名称(应用清单名称)|\n|`$architecture`|CPU 架构, 如: `64bit` `32bit` `arm64`|\n|`$cmd`|当前正在运行的子命令, 如: `uninstall` `update` `install`|\n|`$fname`|下载的文件名(可能是多个文件，需要当做数组处理，除非你确定 url 不是数组)|\n|`$scoopConfig`|Scoop 配置(PowerShell 对象)，如 {SCOOP_BRANCH, SCOOP_REPO}|\n|`$global`|如果安装时使用了 `-g` 或 `--global`，则为 `$true`|\n|`$manifest`|反序列化清单(PowerShell 对象)，如 @{version=1.2.3; description=xxx;...}|\n|`$version`|正在安装的版本，如 1.2.3|\n|`$dir`|应用程序安装目录(current 目录)|\n|`$persist_dir`|数据持久化目录|\n|`$bucketsdir`|Scoop buckets 目录，如 D:\\scoop\\buckets|\n|`$bucket`|当前安装应用所属于的 bucket 名称|\n|`$cachedir`|Scoop cache 目录|\n|`$configFile`|Scoop 配置的路径|\n|`$globaldir`|全局安装目录|\n|`$original_dir`|应用程序安装目录(实际版本号目录)|\n|`$scoopdir`|Scoop 所在目录|",
      "$ref": "#/definitions/str_or_arr"
    },
    "pre_uninstall": {
      "title": "预卸载脚本",
      "markdownDescription": "- 用于在卸载应用程序之前执行命令\n- 执行顺序: `pre_uninstall` -> `uninstaller` -> `post_uninstall`\n\n|可用的变量|说明|\n|:-:|-|\n|`$app`|应用程序名称(应用清单名称)|\n|`$architecture`|CPU 架构, 如: `64bit` `32bit` `arm64`|\n|`$cmd`|当前正在运行的子命令, 如: `uninstall` `update` `install`|\n|`$fname`|下载的文件名(可能是多个文件，需要当做数组处理，除非你确定 url 不是数组)|\n|`$scoopConfig`|Scoop 配置(PowerShell 对象)，如 {SCOOP_BRANCH, SCOOP_REPO}|\n|`$global`|如果安装时使用了 `-g` 或 `--global`，则为 `$true`|\n|`$manifest`|反序列化清单(PowerShell 对象)，如 @{version=1.2.3; description=xxx;...}|\n|`$version`|正在安装的版本，如 1.2.3|\n|`$dir`|应用程序安装目录(实际版本号目录)|\n|`$persist_dir`|数据持久化目录|\n|`$bucketsdir`|Scoop buckets 目录，如 D:\\scoop\\buckets|\n|`$bucket`|当前安装应用所属于的 bucket 名称|\n|`$cachedir`|Scoop cache 目录|\n|`$configFile`|Scoop 配置的路径|\n|`$globaldir`|全局安装目录|\n|`$original_dir`|应用程序安装目录(实际版本号目录)|\n|`$scoopdir`|Scoop 所在目录|",
      "$ref": "#/definitions/str_or_arr"
    },
    "uninstaller": {
      "title": "卸载程序配置",
      "markdownDescription": "- 运行非 MSI 卸载程序的配置\n- 在 scoop uninstall 和 scoop update 期间调用\n- 执行顺序: `pre_uninstall` -> `uninstaller` -> `post_uninstall`",
      "type": "object",
      "minProperties": 1,
      "additionalProperties": false,
      "examples": [
        {}
      ],
      "properties": {
        "file": {
          "markdownDescription": "卸载程序可执行文件",
          "$ref": "#/definitions/str"
        },
        "script": {
          "markdownDescription": "作为卸载程序而不是 file 执行\n- 脚本中可用的变量: \n    - $fname: 下载的文件(可能是多个文件，需要当做数组处理，除非你确定 url 不是数组)\n    - $manifest: 已验证的清单引用\n    - $architecture: 64bit/32bit/arm64\n    - $dir: 安装目录",
          "$ref": "#/definitions/str_or_arr"
        },
        "args": {
          "type": "array",
          "markdownDescription": "传递给卸载程序的参数数组\n- 它是一个可选的属性",
          "items": {
            "$ref": "#/definitions/str"
          },
          "minItems": 1
        }
      }
    },
    "post_uninstall": {
      "title": "后卸载脚本",
      "markdownDescription": "- 用于在卸载应用程序之后执行命令\n- 执行顺序: `pre_uninstall` -> `uninstaller` -> `post_uninstall`\n\n|可用的变量|说明|\n|:-:|-|\n|`$app`|应用程序名称(应用清单名称)|\n|`$architecture`|CPU 架构, 如: `64bit` `32bit` `arm64`|\n|`$cmd`|当前正在运行的子命令, 如: `uninstall` `update` `install`|\n|`$fname`|下载的文件名(可能是多个文件，需要当做数组处理，除非你确定 url 不是数组)|\n|`$scoopConfig`|Scoop 配置(PowerShell 对象)，如 {SCOOP_BRANCH, SCOOP_REPO}|\n|`$global`|如果安装时使用了 `-g` 或 `--global`，则为 `$true`|\n|`$manifest`|反序列化清单(PowerShell 对象)，如 @{version=1.2.3; description=xxx;...}|\n|`$version`|正在安装的版本，如 1.2.3|\n|`$dir`|应用程序安装目录(current 目录)|\n|`$persist_dir`|数据持久化目录|\n|`$bucketsdir`|Scoop buckets 目录，如 D:\\scoop\\buckets|\n|`$bucket`|当前安装应用所属于的 bucket 名称|\n|`$cachedir`|Scoop cache 目录|\n|`$configFile`|Scoop 配置的路径|\n|`$globaldir`|全局安装目录|\n|`$original_dir`|应用程序安装目录(实际版本号目录)|\n|`$scoopdir`|Scoop 所在目录|",
      "$ref": "#/definitions/str_or_arr"
    },
    "checkver": {
      "title": "版本检查配置",
      "markdownDescription": "- 应用维护者和开发者可以使用 bin/checkver 工具来检查应用的更新版本\n- 字符串：在主页上查找版本的 RegEx\n- 对象：更丰富的配置\n- 参考: https://github.com/ScoopInstaller/Scoop/wiki/App-Manifest-Autoupdate",
      "type": [
        "string",
        "object"
      ],
      "examples": [
        "",
        "github",
        {}
      ],
      "minLength": 1,
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "url": {
              "markdownDescription": "版本所在页面",
              "$ref": "#/definitions/str"
            },
            "github": {
              "markdownDescription": "应用的 github 仓库地址",
              "$ref": "#/definitions/str",
              "if": {
                "type": "string"
              },
              "then": {
                "minLength": 1,
                "pattern": "^https?://github\\.com/[^/]+/[^/]+/?$",
                "not": {
                  "pattern": "\\.git(\\/|$)"
                },
                "errorMessage": "github 仓库地址格式错误，请使用正确格式，如: https://github.com/abgox/abyss"
              }
            },
            "re": {
              "markdownDescription": "查找版本的 RegEx (正则表达式)\n\n### 示例\n\n- 默认将第一个捕获组的内容存储到 `$version` 中\n\n  ```json\n  \"regex\": \"(.+)\"\n  ```\n\n- 限制版本号格式为数字和点号\n\n  ```json\n  \"regex\": \"([\\\\d.]+)\"\n  ```\n\n- 可以使用命名捕获组将版本号存储到 `$version` 中\n\n  ```json\n  \"regex\": \"(?<version>[\\\\d.]+)\"\n  ```\n\n- 严格匹配首尾\n\n  ```json\n  \"regex\": \"^(?<version>[\\\\d.]+)$\"\n  ```",
              "$ref": "#/definitions/str"
            },
            "regex": {
              "markdownDescription": "查找版本的 RegEx (正则表达式)\n\n### 示例\n\n- 默认将第一个捕获组的内容存储到 `$version` 中\n\n  ```json\n  \"regex\": \"(.+)\"\n  ```\n\n- 限制版本号格式为数字和点号\n\n  ```json\n  \"regex\": \"([\\\\d.]+)\"\n  ```\n\n- 可以使用命名捕获组将版本号存储到 `$version` 中\n\n  ```json\n  \"regex\": \"(?<version>[\\\\d.]+)\"\n  ```\n\n- 严格匹配首尾\n\n  ```json\n  \"regex\": \"^(?<version>[\\\\d.]+)$\"\n  ```",
              "$ref": "#/definitions/str",
              "examples": [
                "(.+)",
                "^([\\d.]+)$",
                "^(?<version>[\\d.]+)$"
              ]
            },
            "jsonpath": {
              "markdownDescription": "使用带有 JSONPath 表达式的 JSON 端点检索版本，可以使用点标注或括号标注。\n\n### 示例\n\n- 提取 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$.version\"\n  ```\n\n- 提取 `productVersion` 或 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$...[?(@.productVersion || @.version)]\"\n  ```\n\n- 提取 `assets` 中 `name` 为 `xxx` 的字段中的 `updated_at`\n\n  ```json\n  \"jsonpath\": \"$.assets[?(@.name == 'xxx')].updated_at\"\n  ```\n\n- 提取 `productVersion` 和 `version` 字段的值，并形成一个数组，如 `\"[\"1.2.3\",\"1.2.3-rc\"]\"`\n\n  ```json\n  \"jsonpath\": \"$..['productVersion','version']\"\n  ```",
              "$ref": "#/definitions/str"
            },
            "jp": {
              "markdownDescription": "使用带有 JSONPath 表达式的 JSON 端点检索版本，可以使用点标注或括号标注。\n\n### 示例\n\n- 提取 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$.version\"\n  ```\n\n- 提取 `productVersion` 或 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$...[?(@.productVersion || @.version)]\"\n  ```\n\n- 提取 `assets` 中 `name` 为 `xxx` 的字段中的 `updated_at`\n\n  ```json\n  \"jsonpath\": \"$.assets[?(@.name == 'xxx')].updated_at\"\n  ```\n\n- 提取 `productVersion` 和 `version` 字段的值，并形成一个数组，如 `\"[\"1.2.3\",\"1.2.3-rc\"]\"`\n\n  ```json\n  \"jsonpath\": \"$..['productVersion','version']\"\n  ```",
              "$ref": "#/definitions/str"
            },
            "xpath": {
              "markdownDescription": "查找版本的 XPath 表达式",
              "$ref": "#/definitions/str"
            },
            "reverse": {
              "markdownDescription": "如果设置为 true, 则匹配最后一次出现(默认为匹配第一次出现)",
              "$ref": "#/definitions/bool"
            },
            "replace": {
              "markdownDescription": "用计算值替换匹配值",
              "$ref": "#/definitions/str",
              "anyOf": [
                {},
                {
                  "enum": [
                    "${1}.${2}.${3}.${4}${5}${6}"
                  ],
                  "markdownEnumDescriptions": [
                    "替换匹配值，其中 `${1}` 表示第一个匹配组，`${2}` 表示第二个匹配组，以此类推。"
                  ]
                }
              ]
            },
            "useragent": {
              "markdownDescription": "用于获取网页内容的 User-Agent",
              "$ref": "#/definitions/str"
            },
            "script": {
              "markdownDescription": "可包含 PowerShell 命令的字符串或字符串数组，用于跟踪多个链接",
              "$ref": "#/definitions/str_or_arr"
            },
            "sourceforge": {
              "markdownDescription": "SourceForge 项目的版本检查配置",
              "$ref": "#/definitions/str"
            }
          },
          "minProperties": 1
        },
        {
          "$ref": "#/definitions/str",
          "anyOf": [
            {},
            {
              "enum": [
                "github"
              ],
              "markdownEnumDescriptions": [
                "如果 homepage 是 github 仓库主页，就可以直接使用 \"github\" 字符串作为 checkver 配置"
              ]
            }
          ]
        }
      ]
    },
    "autoupdate_url": {
      "title": "软件的下载地址",
      "markdownDescription": "- 它通常是动态的，会包含一些 [版本变量](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifest-Autoupdate#version-variables)，参考 `autoupdate` 字段的悬停提示\n- 例如: `https://github.com/owner/repo/releases/download/v$version/xxx.exe`\n- 如果有多个 URL，可以使用数组\n```json\n  \"url\": [\n      \"http://example.com/file1.zip\",\n      \"http://example.com/file2.zip\"\n  ]\n  ```\n- 如果需要更改下载 URL 的文件名，可以在 URL 结尾加上 `#/dl.7z`，例如:\n```json\n  \"url\": \"http://example.org/program.exe#/dl.7z\"\n  ```\n- Scoop 将下载 program.exe ，但将其保存为 dl.7z ，然后将使用 7-Zip 自动提取",
      "type": [
        "string",
        "array"
      ],
      "examples": [
        "",
        []
      ],
      "minLength": 1,
      "minItems": 1,
      "items": {
        "$ref": "#/definitions/str"
      }
    },
    "autoupdate_hash": {
      "markdownDescription": "定义 hash 的获取",
      "type": "object",
      "additionalProperties": false,
      "minProperties": 1,
      "properties": {
        "url": {
          "markdownDescription": "用于下载 RDF/JSON 文件或提取 hash 的 URL 模板",
          "$ref": "#/definitions/str"
        },
        "regex": {
          "markdownDescription": "RegEx 表达式来提取 hash (别名：find)",
          "$ref": "#/definitions/str"
        },
        "find": {
          "markdownDescription": "RegEx 表达式来提取 hash (别名：regex)",
          "$ref": "#/definitions/str"
        },
        "mode": {
          "title": "获取 hash 的模式",
          "oneOf": [
            {
              "enum": [
                "github"
              ],
              "markdownEnumDescriptions": [
                "获取 GitHub 自动生成的 hash，详情查看 [GitHub blog](https://github.blog/changelog/2025-06-03-releases-now-expose-digests-for-release-assets/)"
              ]
            },
            {
              "enum": [
                "extract"
              ],
              "markdownEnumDescriptions": [
                "通过 RegEx 从纯文本文件或网页中提取(默认，可省略)"
              ]
            },
            {
              "enum": [
                "json"
              ],
              "markdownEnumDescriptions": [
                "通过 JSONPath 从 JSON 文件中提取"
              ]
            },
            {
              "enum": [
                "xpath"
              ],
              "markdownEnumDescriptions": [
                "通过 XML 文件提取"
              ]
            },
            {
              "enum": [
                "rdf"
              ],
              "markdownEnumDescriptions": [
                "从 RDF 文件中提取"
              ]
            },
            {
              "enum": [
                "metalink"
              ],
              "markdownEnumDescriptions": [
                "从 Metalink 的头文件或 .meta4 文件中提取"
              ]
            },
            {
              "enum": [
                "fosshub"
              ],
              "markdownEnumDescriptions": [
                "为 FossHub 预定义"
              ]
            },
            {
              "enum": [
                "sourceforge"
              ],
              "markdownEnumDescriptions": [
                "为 SourceForge 预定义"
              ]
            },
            {
              "enum": [
                "download"
              ],
              "markdownEnumDescriptions": [
                "下载应用程序文件并在本地对其进行散列(回退)"
              ]
            }
          ]
        },
        "jp": {
          "markdownDescription": "使用带有 JSONPath 表达式的 JSON 端点检索版本，可以使用点标注或括号标注。\n\n### 示例\n\n- 提取 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$.version\"\n  ```\n\n- 提取 `productVersion` 或 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$...[?(@.productVersion || @.version)]\"\n  ```\n\n- 提取 `assets` 中 `name` 为 `xxx` 的字段中的 `updated_at`\n\n  ```json\n  \"jsonpath\": \"$.assets[?(@.name == 'xxx')].updated_at\"\n  ```\n\n- 提取 `productVersion` 和 `version` 字段的值，并形成一个数组，如 `\"[\"1.2.3\",\"1.2.3-rc\"]\"`\n\n  ```json\n  \"jsonpath\": \"$..['productVersion','version']\"\n  ```",
          "$ref": "#/definitions/str"
        },
        "jsonpath": {
          "markdownDescription": "使用带有 JSONPath 表达式的 JSON 端点检索版本，可以使用点标注或括号标注。\n\n### 示例\n\n- 提取 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$.version\"\n  ```\n\n- 提取 `productVersion` 或 `version` 字段的值\n\n  ```json\n  \"jsonpath\": \"$...[?(@.productVersion || @.version)]\"\n  ```\n\n- 提取 `assets` 中 `name` 为 `xxx` 的字段中的 `updated_at`\n\n  ```json\n  \"jsonpath\": \"$.assets[?(@.name == 'xxx')].updated_at\"\n  ```\n\n- 提取 `productVersion` 和 `version` 字段的值，并形成一个数组，如 `\"[\"1.2.3\",\"1.2.3-rc\"]\"`\n\n  ```json\n  \"jsonpath\": \"$..['productVersion','version']\"\n  ```",
          "$ref": "#/definitions/str"
        },
        "xpath": {
          "markdownDescription": "XPath 表达式来提取 hash 值",
          "$ref": "#/definitions/str"
        }
      }
    },
    "autoupdate_architecture": {
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "$ref": "#/definitions/autoupdate_url"
        },
        "hash": {
          "$ref": "#/definitions/autoupdate_hash"
        },
        "bin": {
          "$ref": "#/definitions/bin"
        },
        "checkver": {
          "$ref": "#/definitions/checkver"
        },
        "env_add_path": {
          "$comment": "此属性官方规范中未说明，但实际可用",
          "$ref": "#/definitions/env_add_path"
        },
        "extract_dir": {
          "$ref": "#/definitions/extract_dir"
        },
        "installer": {
          "$ref": "#/definitions/installer"
        },
        "pre_install": {
          "$ref": "#/definitions/pre_install"
        },
        "post_install": {
          "$ref": "#/definitions/post_install"
        },
        "shortcuts": {
          "$ref": "#/definitions/shortcuts"
        },
        "uninstaller": {
          "$ref": "#/definitions/uninstaller"
        }
      },
      "minProperties": 1,
      "additionalProperties": false
    },
    "github_release_url": {
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": [
            "array",
            "string"
          ],
          "examples": [
            "",
            []
          ],
          "pattern": "^https://github\\.com/[^/]+/[^/]+/releases/download/",
          "items": {
            "type": "string",
            "pattern": "^https://github\\.com/[^/]+/[^/]+/releases/download/"
          }
        }
      }
    },
    "url_hash_type_match": {
      "required": [
        "url",
        "hash"
      ],
      "if": {
        "properties": {
          "url": {
            "type": "string"
          }
        }
      },
      "then": {
        "properties": {
          "hash": {
            "$ref": "#/definitions/str",
            "errorMessage": "url 和 hash 的类型不相同"
          }
        }
      },
      "else": {
        "properties": {
          "hash": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/hash"
            },
            "minItems": 1,
            "errorMessage": "url 和 hash 的类型不相同"
          }
        }
      }
    }
  },
  "properties": {
    "##": {
      "title": "注释",
      "markdownDescription": "- 给此清单的读者或维护者的注释。",
      "$ref": "#/definitions/str_or_arr"
    },
    "version": {
      "title": "软件版本",
      "markdownDescription": "- 软件的版本号",
      "$ref": "#/definitions/str",
      "examples": [
        "0.0.0"
      ],
      "anyOf": [
        {},
        {
          "enum": [
            "0.0.0"
          ],
          "markdownEnumDescriptions": [
            "使用 0.0.0 版本"
          ]
        },
        {
          "enum": [
            "nightly"
          ],
          "markdownEnumDescriptions": [
            "使用 nightly 版本"
          ]
        }
      ]
    },
    "description": {
      "title": "软件描述",
      "markdownDescription": "- 软件的简短描述",
      "$ref": "#/definitions/str"
    },
    "homepage": {
      "title": "软件主页",
      "markdownDescription": "- 软件的主页或仓库地址",
      "examples": [
        ""
      ],
      "allOf": [
        {
          "$ref": "#/definitions/str"
        },
        {
          "$ref": "#/definitions/url_validation"
        }
      ],
      "if": {
        "pattern": "^https?://[^/]+$"
      },
      "then": {
        "not": true,
        "errorMessage": "如果是官网根域名，请以 '/' 结尾"
      }
    },
    "license": {
      "$ref": "#/definitions/license"
    },
    "depends": {
      "title": "依赖项",
      "markdownDescription": "- 应用程序的必要依赖项\n- 未安装的依赖项将在应用程序安装前自动安装\n- 如果依赖项是可选的，请使用 `suggest` 属性",
      "$ref": "#/definitions/str_or_arr"
    },
    "suggest": {
      "title": "建议的依赖项",
      "markdownDescription": "- 显示一条消息，建议提供补充功能的可选应用程序\n- 如果已经安装了针对该功能建议的任何应用程序，则该功能将被视为 **已实现**，用户不会看到任何建议",
      "allOf": [
        {
          "type": "object"
        },
        {
          "patternProperties": {
            "^.+$": {
              "markdownDescription": "- 当指定的建议已经安装，则不会显示该建议。\n- 如果是一个数组，它表示只要数组中任意一个建议被安装，则不会显示该建议",
              "$ref": "#/definitions/str_or_arr"
            }
          },
          "minProperties": 1,
          "additionalProperties": false,
          "errorMessage": "不允许属性名为空字符串"
        }
      ]
    },
    "notes": {
      "$ref": "#/definitions/notes"
    },
    "url": {
      "$ref": "#/definitions/url"
    },
    "hash": {
      "$ref": "#/definitions/hash"
    },
    "architecture": {
      "$ref": "#/definitions/architecture"
    },
    "extract_dir": {
      "$ref": "#/definitions/extract_dir"
    },
    "extract_to": {
      "$ref": "#/definitions/extract_to"
    },
    "env_add_path": {
      "$ref": "#/definitions/env_add_path"
    },
    "env_set": {
      "$ref": "#/definitions/env_set"
    },
    "innosetup": {
      "markdownDescription": "如果安装程序基于 `InnoSetup`，则设置为 `true`",
      "$ref": "#/definitions/bool"
    },
    "psmodule": {
      "$ref": "#/definitions/psmodule"
    },
    "bin": {
      "$ref": "#/definitions/bin"
    },
    "shortcuts": {
      "$ref": "#/definitions/shortcuts"
    },
    "persist": {
      "$ref": "#/definitions/persist"
    },
    "pre_install": {
      "$ref": "#/definitions/pre_install"
    },
    "installer": {
      "$ref": "#/definitions/installer"
    },
    "post_install": {
      "$ref": "#/definitions/post_install"
    },
    "pre_uninstall": {
      "$ref": "#/definitions/pre_uninstall"
    },
    "uninstaller": {
      "$ref": "#/definitions/uninstaller"
    },
    "post_uninstall": {
      "$ref": "#/definitions/post_uninstall"
    },
    "checkver": {
      "$ref": "#/definitions/checkver"
    },
    "autoupdate": {
      "title": "自动更新",
      "markdownDescription": "- 它将通过 [GitHub Actions](https://github.com/ScoopInstaller/GithubActions) 去自动更新清单\n - Scoop 允许使用 `scoop install AppName@1.2.3` 安装特定版本\n - 但前提是，清单文件中 `autoupdate` 的所有 `url` 只能包含以下 [版本变量](https://github.com/ScoopInstaller/Scoop/wiki/App-Manifest-Autoupdate#version-variables)\n  - `$version`: `3.7.1.2-rc.1`\n    - `$majorVersion`: `3`\n    - `$minorVersion`: `7`\n    - `$patchVersion`: `1`\n    - `$buildVersion`: `2`\n    - `$preReleaseVersion`: `rc.1`\n  - `$dotVersion`: `3.7.1.2.rc.1`\n  - `$dashVersion`: `3-7-1-2-rc-1`\n  - `$underscoreVersion`: `3_7_1_2_rc_1`\n  - `$cleanVersion`: `3712rc1`\n  - `$matchHead`: `3.7.1`\n  - `$matchTail`: `.2-rc.1`",
      "type": "object",
      "minProperties": 1,
      "examples": [
        {
          "url": ""
        },
        {
          "architecture": {
            "64bit": {
              "url": ""
            }
          }
        }
      ],
      "properties": {
        "architecture": {
          "type": "object",
          "title": "自动更新架构",
          "markdownDescription": "- 定义自动更新的架构\n- 架构可以用来包装差异",
          "properties": {
            "64bit": {
              "markdownDescription": "64位架构",
              "$ref": "#/definitions/autoupdate_architecture"
            },
            "32bit": {
              "markdownDescription": "32位架构",
              "$ref": "#/definitions/autoupdate_architecture"
            },
            "arm64": {
              "markdownDescription": "arm64架构",
              "$ref": "#/definitions/autoupdate_architecture"
            }
          },
          "additionalProperties": false,
          "minProperties": 1
        },
        "notes": {
          "$ref": "#/definitions/notes"
        },
        "url": {
          "$ref": "#/definitions/autoupdate_url"
        },
        "hash": {
          "$ref": "#/definitions/autoupdate_hash"
        },
        "bin": {
          "$ref": "#/definitions/bin"
        },
        "extract_dir": {
          "$ref": "#/definitions/extract_dir"
        },
        "extract_to": {
          "$ref": "#/definitions/extract_to"
        },
        "env_add_path": {
          "$ref": "#/definitions/env_add_path"
        },
        "env_set": {
          "$ref": "#/definitions/env_set"
        },
        "installer": {
          "$ref": "#/definitions/installer"
        },
        "license": {
          "$ref": "#/definitions/license"
        },
        "persist": {
          "$ref": "#/definitions/persist"
        },
        "post_install": {
          "$ref": "#/definitions/post_install"
        },
        "psmodule": {
          "$ref": "#/definitions/psmodule"
        },
        "shortcuts": {
          "$ref": "#/definitions/shortcuts"
        }
      }
    }
  },
  "allOf": [
    {
      "required": [
        "version",
        "description",
        "homepage",
        "license"
      ]
    },
    {
      "$comment": "Scoop 的标准规范",
      "allOf": [
        {
          "$comment": "如果定义了 checkver，就必须定义 autoupdate",
          "allOf": [
            {
              "if": {
                "required": [
                  "checkver"
                ]
              },
              "then": {
                "if": {
                  "required": [
                    "autoupdate"
                  ]
                },
                "else": {
                  "properties": {
                    "checkver": {
                      "not": true,
                      "errorMessage": "如果定义了 checkver，就必须定义 autoupdate"
                    }
                  }
                }
              }
            },
            {
              "if": {
                "required": [
                  "autoupdate"
                ]
              },
              "then": {
                "if": {
                  "required": [
                    "checkver"
                  ]
                },
                "else": {
                  "properties": {
                    "autoupdate": {
                      "not": true,
                      "errorMessage": "如果定义了 autoupdate，就必须定义 checkver"
                    }
                  }
                }
              }
            }
          ]
        },
        {
          "$comment": "如果 url 是 github releases 链接，则需要指定 hash 模式为 github",
          "properties": {
            "autoupdate": {
              "type": "object",
              "if": {
                "oneOf": [
                  {
                    "$ref": "#/definitions/github_release_url"
                  },
                  {
                    "required": [
                      "architecture"
                    ],
                    "properties": {
                      "architecture": {
                        "type": "object",
                        "anyOf": [
                          {
                            "required": [
                              "64bit"
                            ]
                          },
                          {
                            "required": [
                              "arm64"
                            ]
                          },
                          {
                            "required": [
                              "32bit"
                            ]
                          }
                        ],
                        "patternProperties": {
                          "^(64bit|arm64|32bit)$": {
                            "$ref": "#/definitions/github_release_url"
                          }
                        }
                      }
                    }
                  }
                ]
              },
              "then": {
                "required": [
                  "hash"
                ],
                "properties": {
                  "hash": {
                    "required": [
                      "mode"
                    ],
                    "properties": {
                      "mode": {
                        "const": "github"
                      }
                    }
                  }
                }
              },
              "else": {
                "properties": {
                  "hash": {
                    "properties": {
                      "mode": {
                        "not": {
                          "const": "github"
                        },
                        "errorMessage": "url 不是标准的 GitHub Releases"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        {
          "$comment": "如果存在 license，但不存在 url 或 architecture 就触发警告",
          "if": {
            "not": {
              "anyOf": [
                {
                  "required": [
                    "url"
                  ]
                },
                {
                  "required": [
                    "architecture"
                  ]
                }
              ]
            }
          },
          "then": {
            "not": {
              "anyOf": [
                {
                  "not": {
                    "required": [
                      "url"
                    ]
                  }
                },
                {
                  "not": {
                    "required": [
                      "architecture"
                    ]
                  }
                }
              ]
            },
            "errorMessage": "缺少 url 或 architecture 属性"
          }
        },
        {
          "$comment": "url 和 architecture 只能选其一。url 和 hash 类型必须匹配",
          "if": {
            "required": [
              "url"
            ]
          },
          "then": {
            "properties": {
              "architecture": {
                "patternProperties": {
                  "^(64bit|arm64|32bit)$": {
                    "properties": {
                      "url": {
                        "not": true,
                        "errorMessage": "url 和顶层的 url 冲突，你只能选择其中一种方式"
                      },
                      "hash": {
                        "not": true,
                        "errorMessage": "如果有顶层的 url，禁止定义 architecture 中的 hash"
                      }
                    }
                  }
                }
              }
            },
            "$ref": "#/definitions/url_hash_type_match"
          },
          "else": {
            "properties": {
              "architecture": {
                "$ref": "#/definitions/architecture_example",
                "patternProperties": {
                  "^(64bit|arm64|32bit)$": {
                    "$ref": "#/definitions/url_hash_type_match"
                  }
                }
              },
              "hash": {
                "not": true,
                "errorMessage": "如果没有 url，禁止定义 hash"
              }
            }
          }
        },
        {
          "$comment": "确保 architecture 和 autoupdate 中的属性相对应",
          "if": {
            "required": [
              "autoupdate"
            ],
            "properties": {
              "autoupdate": {
                "required": [
                  "architecture"
                ]
              }
            }
          },
          "then": {
            "allOf": [
              {
                "if": {
                  "properties": {
                    "autoupdate": {
                      "properties": {
                        "architecture": {
                          "required": [
                            "64bit"
                          ]
                        }
                      }
                    }
                  }
                },
                "then": {
                  "properties": {
                    "architecture": {
                      "required": [
                        "64bit"
                      ]
                    }
                  }
                },
                "else": {
                  "properties": {
                    "architecture": {
                      "properties": {
                        "64bit": {
                          "not": true,
                          "errorMessage": "autoupdate 中的 architecture 没有定义 64bit"
                        }
                      }
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "autoupdate": {
                      "properties": {
                        "architecture": {
                          "required": [
                            "32bit"
                          ]
                        }
                      }
                    }
                  }
                },
                "then": {
                  "properties": {
                    "architecture": {
                      "required": [
                        "32bit"
                      ]
                    }
                  }
                },
                "else": {
                  "properties": {
                    "architecture": {
                      "properties": {
                        "32bit": {
                          "not": true,
                          "errorMessage": "autoupdate 中的 architecture 没有定义 32bit"
                        }
                      }
                    }
                  }
                }
              },
              {
                "if": {
                  "properties": {
                    "autoupdate": {
                      "properties": {
                        "architecture": {
                          "required": [
                            "arm64"
                          ]
                        }
                      }
                    }
                  }
                },
                "then": {
                  "properties": {
                    "architecture": {
                      "required": [
                        "arm64"
                      ]
                    }
                  }
                },
                "else": {
                  "properties": {
                    "architecture": {
                      "properties": {
                        "arm64": {
                          "not": true,
                          "errorMessage": "autoupdate 中的 architecture 没有定义 arm64"
                        }
                      }
                    }
                  }
                }
              },
              {
                "allOf": [
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "required": [
                            "extract_dir"
                          ]
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "extract_dir"
                      ]
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "required": [
                            "env_add_path"
                          ]
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "env_add_path"
                      ]
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "required": [
                            "bin"
                          ]
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "bin"
                      ]
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "required": [
                            "shortcuts"
                          ]
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "shortcuts"
                      ]
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "properties": {
                            "architecture": {
                              "patternProperties": {
                                "^(64bit|arm64|32bit)$": {
                                  "required": [
                                    "extract_dir"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "architecture": {
                          "patternProperties": {
                            "^(64bit|arm64|32bit)$": {
                              "required": [
                                "extract_dir"
                              ]
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "properties": {
                            "architecture": {
                              "patternProperties": {
                                "^(64bit|arm64|32bit)$": {
                                  "required": [
                                    "env_add_path"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "architecture": {
                          "patternProperties": {
                            "^(64bit|arm64|32bit)$": {
                              "required": [
                                "env_add_path"
                              ]
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "properties": {
                            "architecture": {
                              "patternProperties": {
                                "^(64bit|arm64|32bit)$": {
                                  "required": [
                                    "bin"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "architecture": {
                          "patternProperties": {
                            "^(64bit|arm64|32bit)$": {
                              "required": [
                                "bin"
                              ]
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "autoupdate": {
                          "properties": {
                            "architecture": {
                              "patternProperties": {
                                "^(64bit|arm64|32bit)$": {
                                  "required": [
                                    "shortcuts"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "then": {
                      "properties": {
                        "architecture": {
                          "patternProperties": {
                            "^(64bit|arm64|32bit)$": {
                              "required": [
                                "shortcuts"
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  ]
}
