{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$id": "https://raw.githubusercontent.com/nint8835/jigsaw/master/plugin.schema.json",
    "title": "Jigsaw Plugin Manifest",
    "description": "A plugin manifest for a Jigsaw plugin",
    "type": "object",
    "properties": {
        "name": {
            "description": "A unique name for the plugin",
            "type": "string"
        },
        "dependencies": {
            "description": "A list of plugins that must be loaded before this plugin can be loaded",
            "type": "array",
            "items": {
                "description": "Name of required plugin",
                "type": "string"
            },
            "default": []
        },
        "module_name": {
            "description": "The name of the module that will be created from importing this plugin",
            "type": "string"
        },
        "path": {
            "description": "The path of the file that contains the main plugin class",
            "type": "string",
            "default": "__init__.py"
        },
        "main_class": {
            "description": "The name of the main plugin class",
            "type": "string",
            "default": "Plugin"
        }
    },
    "required": [
        "name"
    ]
}