{
  "type": "object",
  "required": [
    "name",
    "version",
    "description",
    "author",
    "license"
  ],
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]*$",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.]+)?$"
    },
    "description": {
      "type": "string",
      "minLength": 10,
      "maxLength": 500
    },
    "author": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "license": {
      "type": "string"
    },
    "homepage": {
      "type": "string"
    },
    "repository": {
      "type": "string"
    },
    "keywords": {
      "type": "array",
      "maxItems": 20,
      "uniqueItems": true
    }
  }
}