{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
    "sourceSha256": "c22cf39b13dea4ff0c15b0caf5045704c55253c3cc58fbe8b43a23a15a5b1634",
    "fileMatch": [
      "vcpkg.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "allOf": [
    {
      "properties": {
        "name": {
          "description": "The name of the top-level package",
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/identifier"
        },
        "version-string": {
          "description": "Text used to identify an arbitrary version",
          "type": "string",
          "pattern": "^[^#]+$"
        },
        "version": {
          "description": "A relaxed version string (1.2.3.4...)",
          "type": "string",
          "pattern": "^\\d+(\\.\\d+)*(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"
        },
        "version-date": {
          "description": "A date version string (e.g. 2020-01-20)",
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}(\\.\\d+)*$"
        },
        "version-semver": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/semantic-version"
        },
        "port-version": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/port-version"
        },
        "maintainers": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/maintainers"
        },
        "summary": {
          "description": "A shorter description of the port or project.",
          "type": "string"
        },
        "description": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/description-field"
        },
        "homepage": {
          "description": "A url which points to the homepage of a package.",
          "type": "string",
          "format": "uri"
        },
        "documentation": {
          "description": "A url which points to the documentation of a package.",
          "type": "string",
          "format": "uri"
        },
        "license": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/license"
        },
        "builtin-baseline": {
          "description": "A vcpkg repository commit for version control.",
          "type": "string"
        },
        "dependencies": {
          "description": "Dependencies that are always required.",
          "type": "array",
          "items": {
            "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/dependency"
          }
        },
        "overrides": {
          "description": "Version overrides for dependencies.",
          "type": "array",
          "items": {
            "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/override"
          }
        },
        "features": {
          "description": "A map of features supported by the package",
          "type": "object",
          "patternProperties": {
            "": {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/feature"
            }
          }
        },
        "default-features": {
          "description": "Features enabled by default with the package.",
          "type": "array",
          "items": {
            "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/dependency-feature"
          }
        },
        "supports": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/platform-expression"
        },
        "configuration": {
          "description": "Embedded vcpkg.configuration.json file.",
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-configuration.schema.json"
        },
        "vcpkg-configuration": {
          "description": "Embedded vcpkg.configuration.json file.",
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-configuration.schema.json"
        }
      },
      "additionalProperties": false,
      "patternProperties": {
        "^\\$": {}
      },
      "type": "object"
    },
    {
      "$ref": "https://catalog.lintel.tools/schemas/schemastore/vcpkg-manifest-file/_shared/latest--vcpkg-schema-definitions.schema.json#/$defs/has-zero-or-one-version"
    },
    {
      "description": "Only one of configuration or vcpkg-configuration may be used. (They are aliases of the same field)",
      "if": {
        "required": [
          "configuration"
        ]
      },
      "then": {
        "not": {
          "required": [
            "vcpkg-configuration"
          ]
        }
      }
    }
  ]
}
