{ "type":"object", "$schema": "http://json-schema.org/draft-04/schema", "title" : "VCMI bonus system format", "description" : "Subsection of several formats, used to add generic bonuses to objects", "required": ["type"], "definitions" : { "nestedLimiter" : { "anyOf" : [ { "type" : "string", "description" : "parameterless limiter or boolean operator at start of array" }, { "type" : "object", "additionalProperties" : false, "properties" : { "type" : { "type" : "string", "description" : "type" }, "parameters" : { "type" : "array", "description" : "parameters", "additionalItems" : true } } }, { "type" : "array", "additionalItems" : { "$ref" : "#/definitions/nestedLimiter", "description" : "nested limiters optionally prefixed with boolean operator" } } ] } }, "additionalProperties" : false, "properties":{ "addInfo": { "anyOf" : [ { "type" : "string" }, { "type" : "number" }, { "type" : "array", "items" : { "anyof" : [ { "type" : "string" }, { "type" : "number" } ] } } ], "description": "addInfo" }, "description": { "type":"string", "description": "description" }, "duration": { "anyOf" : [ { "type": "string"}, { "type": "array", "items": {"type": "string"} } ], "description": "duration" }, "effectRange": { "type":"string", "description": "effectRange" }, "limiters" : { "$ref" : "#/definitions/nestedLimiter", "description" : "limiter" }, "propagator": { "description": "propagator", "anyOf" : [ { "type" : "string" }, { "type":"array", "items": { "type":"string", "description": "0" } } ] }, "updater" : { "anyOf" : [ { "type" : "string" }, { "description" : "updater", "type" : "object", "required" : ["type", "parameters"], "additionalProperties" : false, "properties" : { "type" : { "type" : "string", "description" : "type" }, "parameters": { "type" : "array", "description" : "parameters", "additionalItems" : true } } } ] }, "sourceID": { "type":"number", "description": "sourceID" }, "sourceType": { "type":"string", "description": "sourceType" }, "stacking" : { "type" : "string", "description" : "stacking" }, "subtype": { "anyOf" : [ { "type" : "string" }, { "type" : "number" } ], "description": "subtype" }, "turns": { "type":"number", "description": "turns" }, "type": { "type":"string", "description": "type" }, "val": { "type":"number", "description": "val" }, "valueType": { "type":"string", "description": "valueType" } } }