{
    "$id": "https://github.com/bazelbuild/bazel-central-registry/modules/metadata.schema.json",
    "title": "Metadata for a Bazel module",
    "type": "object",
    "properties": {
      "$schema": { "type": "string" },
      "homepage": {"type": "string"},
      "maintainers": {
        "description": "Individuals who can be notified when the module requires human attention",
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "object",
          "properties": {
            "github": {
              "type": "string",
              "description": "maintainer's github username",
              "pattern": "^[-a-zA-Z0-9]*$"
            },
            "github_user_id": {
              "type": "integer",
              "description": "maintainer's github user id",
              "pattern": "^[0-9]*$"
            },
            "email": {
              "type": "string",
              "description": "maintainer's email address"
            },
            "name": {
              "type": "string",
              "description": "maintainer's name"
            },
            "do_not_notify": {
              "type": "boolean",
              "description": "when set to true, this maintainer won't be notified by new PRs, but still has approver rights"
            }
          }
        }
      },
      "repository": {
        "type": "array",
        "minItems": 1,
        "items": {
            "description": "repository, typically in the form github:[github org]/[github repo]",
            "type": "string"
        }
      },
      "versions": {
        "type": "array",
        "items": {
            "description": "semver version",
            "type": "string"
        }
      },
      "yanked_versions": {
        "type": "object",
        "additionalProperties": true
      },
      "deprecated": {
        "type": "string",
        "description": "The reason this module is deprecated. If set, the latest version can be yanked.",
        "additionalProperties": true
      }
    },
    "additionalProperties": false,
    "required": ["homepage", "versions", "maintainers", "repository"]
}
