{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:acdream:render-pack:plugin-manifest:v1", "title": "acdream plugin manifest v1", "description": "Manifest shared by gameplay plugins and declarative render packs. A render pack includes renderPack in kinds.", "type": "object", "required": [ "id", "displayName", "version", "entryDll", "apiVersion" ], "properties": { "$schema": { "type": "string" }, "id": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[a-z][a-z0-9._-]*$", "description": "Stable plugin identity. It is persisted; do not reuse or localize it." }, "displayName": { "type": "string", "minLength": 1 }, "version": { "type": "string", "pattern": "^[0-9]+(?:\\.[0-9]+){1,3}$", "description": "Dotted System.Version-compatible package version." }, "entryDll": { "type": "string", "minLength": 5, "maxLength": 512, "pattern": "^(?![A-Za-z]:)(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[^\\\\]+\\.[dD][lL][lL]$", "description": "Safe forward-slash relative path to the managed entry assembly." }, "apiVersion": { "type": "integer", "const": 1, "description": "AcDream.Plugin.Abstractions PluginApi version, not RenderPackApi." }, "dependencies": { "type": "array", "uniqueItems": true, "items": { "type": "string", "pattern": "^[a-z][a-z0-9._-]*$" }, "default": [] }, "kinds": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": ["gameplay", "renderPack"] }, "default": ["gameplay"], "description": "Omitting kinds preserves legacy gameplay-plugin behavior. A render pack must explicitly include renderPack." } }, "additionalProperties": true }