json_schema: {
      "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"
          }
      }
  }