{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/bungeecord-plugin-yml/latest.json",
  "title": "JSON schema for BungeeCord Plugin YAML",
  "x-lintel": {
    "source": "https://www.schemastore.org/bungee-plugin.json",
    "sourceSha256": "3eb79f862dc27e53faf7b5ed3f8ca4ee961ca6a64af37798e8226b74822fd0ae",
    "fileMatch": [
      "plugin.yml",
      "bungee.yml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "name": {
      "$ref": "#/$defs/plugin-name",
      "description": "The name of the plugin."
    },
    "main": {
      "description": "Plugin main class.",
      "type": "string",
      "pattern": "^([a-zA-Z_$][a-zA-Z0-9_$]*\\.)*[a-zA-Z_$][a-zA-Z0-9_$]*$"
    },
    "version": {
      "description": "Plugin version.",
      "type": "string"
    },
    "author": {
      "description": "Plugin author.",
      "type": "string"
    },
    "depends": {
      "description": "Plugin hard dependencies.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/plugin-name"
      }
    },
    "softDepends": {
      "description": "Plugin soft dependencies.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/plugin-name"
      }
    },
    "description": {
      "description": "Optional description.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "main"
  ],
  "additionalProperties": true,
  "$defs": {
    "plugin-name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_\\.-]+$"
    }
  }
}
