{ "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" : { "type" : { "type" : "string", "description" : "type" }, "subtype" : { "anyOf" : [ { "type" : "string" }, { "type" : "number" } ], "description" : "subtype" }, "sourceID" : { "type" : "number", "description" : "sourceID" }, "sourceType" : { "type" : "string", "description" : "sourceType" }, "targetSourceType" : { "type" : "string", "description" : "targetSourceType" }, "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 } } } ] }, "propagationUpdater" : { "anyOf" : [ { "type" : "string" }, { "description" : "propagationUpdater", "type" : "object", "required" : ["type", "parameters"], "additionalProperties" : false, "properties" : { "type" : { "type" : "string", "description" : "type" }, "parameters" : { "type" : "array", "description" : "parameters", "additionalItems" : true } } } ] }, "limiters" : { "$ref" : "#/definitions/nestedLimiter", "description" : "limiter" }, "effectRange" : { "type" : "string", "description" : "effectRange" }, "val" : { "type" : "number", "description" : "val" }, "valueType" : { "type" : "string", "description" : "valueType" }, "addInfo" : { "anyOf" : [ { "type" : "string" }, { "type" : "number" }, { "type" : "array", "items" : { "anyof" : [ { "type" : "string" }, { "type" : "number" } ] } } ], "description" : "addInfo" }, "duration" : { "anyOf" : [ { "type" : "string"}, { "type" : "array", "items" : {"type" : "string"} } ], "description" : "duration" }, "turns" : { "type" : "number", "description" : "turns" }, "stacking" : { "type" : "string", "description" : "stacking" }, "description" : { "type" : "string", "description" : "description" } } }