{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/pattern-json/latest.json",
  "title": "pattern manifest",
  "x-lintel": {
    "source": "https://www.schemastore.org/pattern.json",
    "sourceSha256": "d7b668cf187d4243700170c049fe0f7131733efd381f6e8f521908d417a88e8c",
    "fileMatch": [
      "pattern.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique id of this pattern",
      "type": "string",
      "minLength": 1
    },
    "name": {
      "description": "Machine readable name of the pattern",
      "type": "string",
      "minLength": 1,
      "pattern": "^[a-z]+(?:-[a-z]+)*$"
    },
    "displayName": {
      "description": "Human readable name of the pattern",
      "type": "string",
      "minLength": 1
    },
    "version": {
      "description": "Semantic version of the pattern",
      "type": "string",
      "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-z]*){0,1}$"
    },
    "versions": {
      "description": "Available semantic versions of the pattern",
      "type": "array",
      "minItems": 1,
      "items": {
        "description": "Semantic version of the pattern",
        "type": "string",
        "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-z]*){0,1}$"
      }
    },
    "flag": {
      "description": "Stability flag of the pattern",
      "type": "string",
      "pattern": "^alpha|beta|rc|stable$"
    },
    "tags": {
      "description": "Array of tags describing the pattern",
      "type": "array",
      "minItems": 1,
      "items": {
        "description": "Tag describing the pattern",
        "type": "string",
        "minLength": 1
      },
      "uniqueItems": true
    },
    "data": {
      "description": "Custom data object supplied by user",
      "type": "object",
      "minProperties": 1
    },
    "meta": {
      "description": "Custom meta data object supplied by user",
      "type": "object",
      "minProperties": 1
    },
    "options": {
      "description": "Custom options object supplied by user",
      "type": "object",
      "minProperties": 1
    },
    "patterns": {
      "description": "Dependencies of the pattern",
      "type": "object",
      "minProperties": 1,
      "patternProperties": {
        "^.+$": {
          "type": "string",
          "pattern": "^(/)?([^/\u0000]+(/)?)+$"
        }
      }
    },
    "demoPatterns": {
      "description": "Dependencies of the pattern used for demo purposes",
      "minProperties": 1,
      "patternProperties": {
        "^.+$": {
          "type": "string",
          "pattern": "^(/)?([^/\u0000]+(/)?)+$"
        }
      }
    },
    "overrides": {
      "description": "Options for overriding of core pattern behaviour",
      "type": "object",
      "minProperties": 1,
      "properties": {
        "files": {
          "description": "Custom mapping between patternplate files and paths to use in exchange for this pattern",
          "type": "object",
          "minProperties": 1,
          "patternProperties": {
            "^.+$": {
              "type": "string",
              "pattern": "^(/)?([^/\u0000]+(/)?)+$"
            }
          }
        },
        "demo": {
          "description": "Custom url to use as demo for this pattern",
          "type": "string"
        }
      }
    },
    "_patternplate": {
      "description": "Technical values saved by patternplate core",
      "type": "object"
    }
  },
  "required": [
    "name",
    "version"
  ],
  "additionalProperties": false,
  "id": "https://json.schemastore.org/pattern.json"
}
