{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:marketplace:core:v1",
  "title": "Marketplace manifest projection",
  "$defs": {
    "Manifest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64,
          "pattern": "^[a-z0-9](?:[a-z0-9_-]{0,62}[a-z0-9])?$",
          "not": {
            "pattern": "[^a-z0-9_-]"
          }
        },
        "version": {
          "$ref": "urn:marketplace:common:v1#/$defs/Version"
        },
        "description": {
          "type": "string",
          "minLength": 0,
          "maxLength": 65536
        },
        "author": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 0,
              "maxLength": 4096
            },
            "email": {
              "type": "string",
              "minLength": 0,
              "maxLength": 4096
            },
            "url": {
              "type": "string",
              "minLength": 0,
              "maxLength": 8192
            }
          },
          "required": [],
          "additionalProperties": false
        },
        "homepage": {
          "type": "string",
          "minLength": 0,
          "maxLength": 8192
        },
        "repository": {
          "type": "string",
          "minLength": 0,
          "maxLength": 8192
        },
        "license": {
          "type": "string",
          "minLength": 0,
          "maxLength": 4096
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1024
          },
          "minItems": 0,
          "maxItems": 128
        }
      },
      "required": ["name", "version"],
      "additionalProperties": false
    }
  }
}
