{ "$schema": "http://json-schema.org/schema#", "description": "Gadget definition schema", "type": "object", "additionalProperties": false, "properties": { "settings": { "type": "object", "additionalProperties": false, "properties": { "rights": { "description": "The rights required to be able to enable/load this gadget", "type": "array", "items": { "type": "string" } }, "default": { "description": "Whether this gadget is enabled by default", "type": "boolean", "default": false }, "package": { "description": "Whether this is gadget a packaged ResourceLoader module", "type": "boolean", "default": false }, "hidden": { "description": "Whether this gadget is hidden from preferences", "type": "boolean", "default": false }, "skins": { "description": "Skins supported by this gadget; empty or true if all skins are supported", "type": [ "array", "boolean" ], "items": { "type": "string" } }, "actions": { "description": "Page actions on which the gadget is supported", "type": "array", "items": { "type": "string" } }, "category": { "description": "Key of the category this gadget belongs to", "type": "string", "default": "" }, "supportsdirectload": { "description": "Whether this gadget supports ?withgadget query parameter", "type": "boolean", "default": false } } }, "module": { "type": "object", "additionalProperties": false, "properties": { "scripts": { "type": "array", "description": "List of JavaScript pages included in this gadget" }, "styles": { "type": "array", "description": "List of CSS pages included in this gadget" }, "datas": { "type": "array", "description": "List of JSON pages included in this gadget" }, "dependencies": { "type": "array", "description": "ResourceLoader modules this gadget depends upon" }, "messages": { "type": "array", "description": "Messages this gadget depends upon" } } } } }