{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "JSON schema for a Grasscutter Plugin", "type": "object", "additionalProperties": true, "definitions": { "plugin-name": { "type": "string", "pattern": "^[A-Za-z\\d_.-]+$" } }, "required": [ "name", "description", "mainClass", "api" ], "properties": { "name": { "description": "The unique name of plugin.", "$ref": "#/definitions/plugin-name" }, "mainClass": { "description": "The plugin's initial class file.", "type": "string", "pattern": "^(?!org\\.bukkit\\.)([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*$" }, "version": { "description": "A plugin revision identifier.", "type": [ "string", "number" ] }, "api": { "description": "The API revision the plugin is using.", "type": "number" }, "description": { "description": "Human readable plugin summary.", "type": "string" }, "author": { "description": "The plugin author.", "type": "string" }, "authors": { "description": "The plugin contributors.", "type": "array", "items": { "type": "string" } }, "website": { "title": "Website", "description": "The URL to the plugin's site", "type": "string", "format": "uri" }, "loadAfter": { "description": "Plugins to load before this plugin.", "type": "array", "items": { "type": "string" } } } }