{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gksotcom.ru/documents/open-protocol/config-schema-0.20.json",
  "title": "open-alert-config/5",
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "open-alert-config/5"
    },
    "configId": {
      "type": "string",
      "pattern": "^[0-9a-f]{32}$"
    },
    "revision": {
      "type": "string",
      "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
      "x-minimum": "1",
      "x-maximum": "18446744073709551615",
      "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
    },
    "authorId": {
      "type": "string",
      "pattern": "^[0-9a-f]{32}$"
    },
    "targets": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/target"
      },
      "minItems": 0,
      "maxItems": 256
    },
    "groups": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/group"
      },
      "minItems": 0,
      "maxItems": 128
    },
    "programs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/program"
      },
      "minItems": 0,
      "maxItems": 128
    },
    "content": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/content"
      },
      "minItems": 0,
      "maxItems": 256
    },
    "profiles": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/profile"
      },
      "minItems": 0,
      "maxItems": 256
    },
    "signalSpecs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/signalSpec"
      },
      "minItems": 0,
      "maxItems": 256
    },
    "mediaGroups": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/mediaGroup"
      },
      "minItems": 0,
      "maxItems": 128
    },
    "controllers": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/controller"
      },
      "minItems": 0,
      "maxItems": 256
    },
    "localRules": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/localRule"
      },
      "minItems": 0,
      "maxItems": 128
    }
  },
  "required": [
    "schemaVersion",
    "configId",
    "revision",
    "authorId",
    "targets",
    "groups",
    "programs",
    "content",
    "profiles",
    "signalSpecs",
    "mediaGroups",
    "controllers",
    "localRules"
  ],
  "additionalProperties": false,
  "x-maxJcsBytes": 1048576,
  "$defs": {
    "mediaGroup": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
            },
            "revision": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "18446744073709551615",
              "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "deviceId": {
              "type": "string",
              "pattern": "^[0-9a-f]{32}$"
            },
            "sourcePrincipalId": {
              "type": "string",
              "pattern": "^[0-9a-f]{32}$"
            },
            "security": {
              "const": "tls"
            },
            "sourceAddress": {
              "type": "string",
              "format": "ipv4"
            },
            "sourcePort": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60[0-9]{3}|61[0-9]{3}|62[0-9]{3}|63[0-9]{3}|64[0-9]{3}|650[0-9]{2}|651[0-9]{2}|652[0-9]{2}|653[0-9]{2}|654[0-9]{2}|6550[0-9]{1}|6551[0-9]{1}|6552[0-9]{1}|65530|65531|65532|65533|65534|65535)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "65535",
              "description": "Целое 1..65535, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "groupAddress": {
              "type": "string",
              "format": "ipv4"
            },
            "destinationPort": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60[0-9]{3}|61[0-9]{3}|62[0-9]{3}|63[0-9]{3}|64[0-9]{3}|650[0-9]{2}|651[0-9]{2}|652[0-9]{2}|653[0-9]{2}|654[0-9]{2}|6550[0-9]{1}|6551[0-9]{1}|6552[0-9]{1}|65530|65531|65532|65533|65534|65535)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "65535",
              "description": "Целое 1..65535, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "ttl": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|20[0-9]{1}|21[0-9]{1}|22[0-9]{1}|23[0-9]{1}|24[0-9]{1}|250|251|252|253|254|255)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "255",
              "description": "Целое 1..255, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "sourceKeyId": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
            },
            "publicX": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "publicY": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "resources": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "resourceId": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
                  },
                  "bindingGeneration": {
                    "type": "string",
                    "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
                    "x-minimum": "1",
                    "x-maximum": "18446744073709551615",
                    "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
                  }
                },
                "required": [
                  "resourceId",
                  "bindingGeneration"
                ],
                "additionalProperties": false
              },
              "minItems": 1,
              "maxItems": 4
            }
          },
          "required": [
            "id",
            "revision",
            "deviceId",
            "sourcePrincipalId",
            "security",
            "sourceAddress",
            "sourcePort",
            "groupAddress",
            "destinationPort",
            "ttl",
            "sourceKeyId",
            "publicX",
            "publicY",
            "resources"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
            },
            "revision": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "18446744073709551615",
              "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "deviceId": {
              "type": "string",
              "pattern": "^[0-9a-f]{32}$"
            },
            "sourcePrincipalId": {
              "type": "string",
              "pattern": "^[0-9a-f]{32}$"
            },
            "security": {
              "const": "plain"
            },
            "sourceAddress": {
              "type": "string",
              "format": "ipv4"
            },
            "sourcePort": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60[0-9]{3}|61[0-9]{3}|62[0-9]{3}|63[0-9]{3}|64[0-9]{3}|650[0-9]{2}|651[0-9]{2}|652[0-9]{2}|653[0-9]{2}|654[0-9]{2}|6550[0-9]{1}|6551[0-9]{1}|6552[0-9]{1}|65530|65531|65532|65533|65534|65535)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "65535",
              "description": "Целое 1..65535, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "groupAddress": {
              "type": "string",
              "format": "ipv4"
            },
            "destinationPort": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60[0-9]{3}|61[0-9]{3}|62[0-9]{3}|63[0-9]{3}|64[0-9]{3}|650[0-9]{2}|651[0-9]{2}|652[0-9]{2}|653[0-9]{2}|654[0-9]{2}|6550[0-9]{1}|6551[0-9]{1}|6552[0-9]{1}|65530|65531|65532|65533|65534|65535)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "65535",
              "description": "Целое 1..65535, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "ttl": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|20[0-9]{1}|21[0-9]{1}|22[0-9]{1}|23[0-9]{1}|24[0-9]{1}|250|251|252|253|254|255)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "255",
              "description": "Целое 1..255, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "resources": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "resourceId": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
                  },
                  "bindingGeneration": {
                    "type": "string",
                    "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
                    "x-minimum": "1",
                    "x-maximum": "18446744073709551615",
                    "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
                  }
                },
                "required": [
                  "resourceId",
                  "bindingGeneration"
                ],
                "additionalProperties": false
              },
              "minItems": 1,
              "maxItems": 4
            }
          },
          "required": [
            "id",
            "revision",
            "deviceId",
            "sourcePrincipalId",
            "security",
            "sourceAddress",
            "sourcePort",
            "groupAddress",
            "destinationPort",
            "ttl",
            "resources"
          ],
          "additionalProperties": false
        }
      ]
    },
    "signalSpec": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "kind": {
          "enum": [
            "tone",
            "linearSweep",
            "mechanical"
          ]
        },
        "waveform": {
          "enum": [
            "sine",
            "square",
            "mechanical"
          ]
        },
        "minHz": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|20000)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "20000",
          "description": "Целое 1..20000, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "maxHz": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|20000)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "20000",
          "description": "Целое 1..20000, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "toleranceHz": {
          "type": "string",
          "pattern": "^(?:0|1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4})(?![\\s\\S])",
          "x-minimum": "0",
          "x-maximum": "19999",
          "description": "Целое 0..19999, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "periodMs": {
          "oneOf": [
            {
              "const": "0"
            },
            {
              "type": "string",
              "pattern": "^(?:1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
              "x-minimum": "100",
              "x-maximum": "60000",
              "description": "Целое 100..60000, каноническая десятичная строка; обе границы проверяются схемой."
            }
          ]
        }
      },
      "required": [
        "id",
        "revision",
        "kind",
        "waveform",
        "minHz",
        "maxHz",
        "toleranceHz",
        "periodMs"
      ],
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "kind": {
                "const": "linearSweep"
              }
            }
          },
          "then": {
            "properties": {
              "periodMs": {
                "type": "string",
                "pattern": "^(?:1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
                "x-minimum": "100",
                "x-maximum": "60000",
                "description": "Целое 100..60000, каноническая десятичная строка; обе границы проверяются схемой."
              }
            }
          },
          "else": {
            "properties": {
              "periodMs": {
                "const": "0"
              }
            }
          }
        }
      ]
    },
    "target": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "ownerNodeId": {
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "deviceId": {
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "resourceId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "bindingGeneration": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "networkScope": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "address": {
          "type": "string",
          "format": "ipv4"
        },
        "port": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60[0-9]{3}|61[0-9]{3}|62[0-9]{3}|63[0-9]{3}|64[0-9]{3}|650[0-9]{2}|651[0-9]{2}|652[0-9]{2}|653[0-9]{2}|654[0-9]{2}|6550[0-9]{1}|6551[0-9]{1}|6552[0-9]{1}|65530|65531|65532|65533|65534|65535)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "65535",
          "description": "Целое 1..65535, каноническая десятичная строка; обе границы проверяются схемой."
        }
      },
      "required": [
        "id",
        "ownerNodeId",
        "deviceId",
        "resourceId",
        "bindingGeneration",
        "networkScope",
        "address",
        "port"
      ],
      "additionalProperties": false
    },
    "group": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[0-9a-f]{32}$"
          },
          "minItems": 1,
          "maxItems": 256,
          "uniqueItems": true
        }
      },
      "required": [
        "id",
        "revision",
        "members"
      ],
      "additionalProperties": false
    },
    "siren": {
      "type": "object",
      "properties": {
        "pattern": {
          "enum": [
            "continuous",
            "intermittent"
          ]
        },
        "durationMs": {
          "type": "string",
          "pattern": "^(?:1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|30[0-9]{5}|31[0-9]{5}|32[0-9]{5}|33[0-9]{5}|34[0-9]{5}|35[0-9]{5}|3600000)(?![\\s\\S])",
          "x-minimum": "100",
          "x-maximum": "3600000",
          "description": "Целое 100..3600000, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "signalProfileId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "signalProfileRevision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        }
      },
      "required": [
        "pattern",
        "durationMs",
        "signalProfileId",
        "signalProfileRevision"
      ],
      "additionalProperties": false
    },
    "recording": {
      "type": "object",
      "properties": {
        "contentId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "hashAlgorithm": {
          "const": "streebog256"
        },
        "hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        }
      },
      "required": [
        "contentId",
        "revision",
        "hashAlgorithm",
        "hash"
      ],
      "additionalProperties": false
    },
    "pause": {
      "type": "object",
      "properties": {
        "durationMs": {
          "type": "string",
          "pattern": "^(?:0|1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
          "x-minimum": "0",
          "x-maximum": "60000",
          "description": "Целое 0..60000, каноническая десятичная строка; обе границы проверяются схемой."
        }
      },
      "required": [
        "durationMs"
      ],
      "additionalProperties": false
    },
    "stage": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "index": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "8",
              "description": "Целое 1..8, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "kind": {
              "const": "siren"
            },
            "repeat": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "16",
              "description": "Целое 1..16, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "gapMs": {
              "type": "string",
              "pattern": "^(?:0|1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
              "x-minimum": "0",
              "x-maximum": "60000",
              "description": "Целое 0..60000, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "siren": {
              "$ref": "#/$defs/siren"
            }
          },
          "required": [
            "index",
            "kind",
            "repeat",
            "gapMs",
            "siren"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "index": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "8",
              "description": "Целое 1..8, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "kind": {
              "const": "recording"
            },
            "repeat": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "16",
              "description": "Целое 1..16, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "gapMs": {
              "type": "string",
              "pattern": "^(?:0|1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
              "x-minimum": "0",
              "x-maximum": "60000",
              "description": "Целое 0..60000, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "recording": {
              "$ref": "#/$defs/recording"
            }
          },
          "required": [
            "index",
            "kind",
            "repeat",
            "gapMs",
            "recording"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "index": {
              "type": "string",
              "pattern": "^(?:1|2|3|4|5|6|7|8)(?![\\s\\S])",
              "x-minimum": "1",
              "x-maximum": "8",
              "description": "Целое 1..8, каноническая десятичная строка; обе границы проверяются схемой."
            },
            "kind": {
              "const": "pause"
            },
            "repeat": {
              "const": "1"
            },
            "gapMs": {
              "const": "0"
            },
            "pause": {
              "$ref": "#/$defs/pause"
            }
          },
          "required": [
            "index",
            "kind",
            "repeat",
            "gapMs",
            "pause"
          ],
          "additionalProperties": false
        }
      ]
    },
    "program": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "stages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/stage"
          },
          "minItems": 1,
          "maxItems": 8
        }
      },
      "required": [
        "id",
        "revision",
        "stages"
      ],
      "additionalProperties": false
    },
    "placement": {
      "type": "object",
      "properties": {
        "targetId": {
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "location": {
          "enum": [
            "controller",
            "ou"
          ]
        }
      },
      "required": [
        "targetId",
        "location"
      ],
      "additionalProperties": false
    },
    "content": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "codec": {
          "enum": [
            "PCMA",
            "GSM"
          ]
        },
        "bytes": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|30[0-9]{6}|31[0-9]{6}|32[0-9]{6}|330[0-9]{5}|331[0-9]{5}|332[0-9]{5}|333[0-9]{5}|334[0-9]{5}|3350[0-9]{4}|3351[0-9]{4}|3352[0-9]{4}|3353[0-9]{4}|3354[0-9]{4}|33550[0-9]{3}|33551[0-9]{3}|33552[0-9]{3}|33553[0-9]{3}|335540[0-9]{2}|335541[0-9]{2}|335542[0-9]{2}|335543[0-9]{2}|3355440[0-9]{1}|3355441[0-9]{1}|3355442[0-9]{1}|33554430|33554431|33554432)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "33554432",
          "description": "Целое 1..33554432, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "sampleCount": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "hashAlgorithm": {
          "const": "streebog256"
        },
        "hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "placements": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/placement"
          },
          "minItems": 1,
          "maxItems": 256
        }
      },
      "required": [
        "id",
        "revision",
        "codec",
        "bytes",
        "sampleCount",
        "hashAlgorithm",
        "hash",
        "placements"
      ],
      "additionalProperties": false
    },
    "parameter": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "type": {
          "enum": [
            "bool",
            "enum",
            "int",
            "counter",
            "string"
          ]
        },
        "value": {
          "type": "string",
          "maxLength": 128,
          "x-maxUtf8Bytes": 128,
          "description": "Не более 128 байт UTF-8. maxLength ограничивает кодовые точки; предметный валидатор ДОЛЖЕН отдельно применять x-maxUtf8Bytes и отклонять непарные суррогаты."
        }
      },
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false
    },
    "profile": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "kind": {
          "enum": [
            "vau",
            "siren"
          ]
        },
        "targetIds": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[0-9a-f]{32}$"
          },
          "minItems": 1,
          "maxItems": 256,
          "uniqueItems": true
        },
        "parameters": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/parameter"
          },
          "minItems": 1,
          "maxItems": 64
        }
      },
      "required": [
        "id",
        "revision",
        "kind",
        "targetIds",
        "parameters"
      ],
      "additionalProperties": false
    },
    "controller": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "onControlLoss": {
          "enum": [
            "stop",
            "finish"
          ]
        }
      },
      "required": [
        "id",
        "onControlLoss"
      ],
      "additionalProperties": false
    },
    "localRule": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "revision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "deviceId": {
          "type": "string",
          "pattern": "^[0-9a-f]{32}$"
        },
        "inputId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "trigger": {
          "enum": [
            "edge",
            "level"
          ]
        },
        "activeValue": {
          "enum": [
            "true",
            "false"
          ]
        },
        "debounceMs": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "60000",
          "description": "Целое 1..60000, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "rearmMs": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|60000)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "60000",
          "description": "Целое 1..60000, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "programId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_.:-]{1,32}$"
        },
        "programRevision": {
          "type": "string",
          "pattern": "^(?:1|2|3|4|5|6|7|8|9|1[0-9]{1}|2[0-9]{1}|3[0-9]{1}|4[0-9]{1}|5[0-9]{1}|6[0-9]{1}|7[0-9]{1}|8[0-9]{1}|9[0-9]{1}|1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|8[0-9]{7}|9[0-9]{7}|1[0-9]{8}|2[0-9]{8}|3[0-9]{8}|4[0-9]{8}|5[0-9]{8}|6[0-9]{8}|7[0-9]{8}|8[0-9]{8}|9[0-9]{8}|1[0-9]{9}|2[0-9]{9}|3[0-9]{9}|4[0-9]{9}|5[0-9]{9}|6[0-9]{9}|7[0-9]{9}|8[0-9]{9}|9[0-9]{9}|1[0-9]{10}|2[0-9]{10}|3[0-9]{10}|4[0-9]{10}|5[0-9]{10}|6[0-9]{10}|7[0-9]{10}|8[0-9]{10}|9[0-9]{10}|1[0-9]{11}|2[0-9]{11}|3[0-9]{11}|4[0-9]{11}|5[0-9]{11}|6[0-9]{11}|7[0-9]{11}|8[0-9]{11}|9[0-9]{11}|1[0-9]{12}|2[0-9]{12}|3[0-9]{12}|4[0-9]{12}|5[0-9]{12}|6[0-9]{12}|7[0-9]{12}|8[0-9]{12}|9[0-9]{12}|1[0-9]{13}|2[0-9]{13}|3[0-9]{13}|4[0-9]{13}|5[0-9]{13}|6[0-9]{13}|7[0-9]{13}|8[0-9]{13}|9[0-9]{13}|1[0-9]{14}|2[0-9]{14}|3[0-9]{14}|4[0-9]{14}|5[0-9]{14}|6[0-9]{14}|7[0-9]{14}|8[0-9]{14}|9[0-9]{14}|1[0-9]{15}|2[0-9]{15}|3[0-9]{15}|4[0-9]{15}|5[0-9]{15}|6[0-9]{15}|7[0-9]{15}|8[0-9]{15}|9[0-9]{15}|1[0-9]{16}|2[0-9]{16}|3[0-9]{16}|4[0-9]{16}|5[0-9]{16}|6[0-9]{16}|7[0-9]{16}|8[0-9]{16}|9[0-9]{16}|1[0-9]{17}|2[0-9]{17}|3[0-9]{17}|4[0-9]{17}|5[0-9]{17}|6[0-9]{17}|7[0-9]{17}|8[0-9]{17}|9[0-9]{17}|1[0-9]{18}|2[0-9]{18}|3[0-9]{18}|4[0-9]{18}|5[0-9]{18}|6[0-9]{18}|7[0-9]{18}|8[0-9]{18}|9[0-9]{18}|10[0-9]{18}|11[0-9]{18}|12[0-9]{18}|13[0-9]{18}|14[0-9]{18}|15[0-9]{18}|16[0-9]{18}|17[0-9]{18}|180[0-9]{17}|181[0-9]{17}|182[0-9]{17}|183[0-9]{17}|1840[0-9]{16}|1841[0-9]{16}|1842[0-9]{16}|1843[0-9]{16}|18440[0-9]{15}|18441[0-9]{15}|18442[0-9]{15}|18443[0-9]{15}|18444[0-9]{15}|18445[0-9]{15}|184460[0-9]{14}|184461[0-9]{14}|184462[0-9]{14}|184463[0-9]{14}|184464[0-9]{14}|184465[0-9]{14}|184466[0-9]{14}|1844670[0-9]{13}|1844671[0-9]{13}|1844672[0-9]{13}|1844673[0-9]{13}|18446740[0-9]{12}|18446741[0-9]{12}|18446742[0-9]{12}|18446743[0-9]{12}|1844674400[0-9]{10}|1844674401[0-9]{10}|1844674402[0-9]{10}|1844674403[0-9]{10}|1844674404[0-9]{10}|1844674405[0-9]{10}|1844674406[0-9]{10}|18446744070[0-9]{9}|18446744071[0-9]{9}|18446744072[0-9]{9}|184467440730[0-9]{8}|184467440731[0-9]{8}|184467440732[0-9]{8}|184467440733[0-9]{8}|184467440734[0-9]{8}|184467440735[0-9]{8}|184467440736[0-9]{8}|18446744073700[0-9]{6}|18446744073701[0-9]{6}|18446744073702[0-9]{6}|18446744073703[0-9]{6}|18446744073704[0-9]{6}|18446744073705[0-9]{6}|18446744073706[0-9]{6}|18446744073707[0-9]{6}|18446744073708[0-9]{6}|184467440737090[0-9]{5}|184467440737091[0-9]{5}|184467440737092[0-9]{5}|184467440737093[0-9]{5}|184467440737094[0-9]{5}|1844674407370950[0-9]{4}|1844674407370951[0-9]{4}|1844674407370952[0-9]{4}|1844674407370953[0-9]{4}|1844674407370954[0-9]{4}|18446744073709550[0-9]{3}|184467440737095510[0-9]{2}|184467440737095511[0-9]{2}|184467440737095512[0-9]{2}|184467440737095513[0-9]{2}|184467440737095514[0-9]{2}|184467440737095515[0-9]{2}|1844674407370955160[0-9]{1}|18446744073709551610|18446744073709551611|18446744073709551612|18446744073709551613|18446744073709551614|18446744073709551615)(?![\\s\\S])",
          "x-minimum": "1",
          "x-maximum": "18446744073709551615",
          "description": "Целое 1..18446744073709551615, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "purpose": {
          "enum": [
            "real",
            "exercise"
          ]
        },
        "maxDurationMs": {
          "type": "string",
          "pattern": "^(?:1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|1[0-9]{6}|2[0-9]{6}|3[0-9]{6}|4[0-9]{6}|5[0-9]{6}|6[0-9]{6}|7[0-9]{6}|8[0-9]{6}|9[0-9]{6}|1[0-9]{7}|2[0-9]{7}|3[0-9]{7}|4[0-9]{7}|5[0-9]{7}|6[0-9]{7}|7[0-9]{7}|80[0-9]{6}|81[0-9]{6}|82[0-9]{6}|83[0-9]{6}|84[0-9]{6}|85[0-9]{6}|860[0-9]{5}|861[0-9]{5}|862[0-9]{5}|863[0-9]{5}|86400000)(?![\\s\\S])",
          "x-minimum": "100",
          "x-maximum": "86400000",
          "description": "Целое 100..86400000, каноническая десятичная строка; обе границы проверяются схемой."
        },
        "targetIds": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[0-9a-f]{32}$"
          },
          "minItems": 1,
          "maxItems": 4,
          "uniqueItems": true
        }
      },
      "required": [
        "id",
        "revision",
        "deviceId",
        "inputId",
        "trigger",
        "activeValue",
        "debounceMs",
        "rearmMs",
        "programId",
        "programRevision",
        "purpose",
        "maxDurationMs",
        "targetIds"
      ],
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "purpose": {
                "const": "exercise"
              }
            },
            "required": [
              "purpose"
            ]
          },
          "then": {
            "properties": {
              "maxDurationMs": {
                "type": "string",
                "pattern": "^(?:1[0-9]{2}|2[0-9]{2}|3[0-9]{2}|4[0-9]{2}|5[0-9]{2}|6[0-9]{2}|7[0-9]{2}|8[0-9]{2}|9[0-9]{2}|1[0-9]{3}|2[0-9]{3}|3[0-9]{3}|4[0-9]{3}|5[0-9]{3}|6[0-9]{3}|7[0-9]{3}|8[0-9]{3}|9[0-9]{3}|1[0-9]{4}|2[0-9]{4}|3[0-9]{4}|4[0-9]{4}|5[0-9]{4}|6[0-9]{4}|7[0-9]{4}|8[0-9]{4}|9[0-9]{4}|1[0-9]{5}|2[0-9]{5}|3[0-9]{5}|4[0-9]{5}|5[0-9]{5}|6[0-9]{5}|7[0-9]{5}|8[0-9]{5}|9[0-9]{5}|100[0-9]{4}|101[0-9]{4}|102[0-9]{4}|103[0-9]{4}|104[0-9]{4}|105[0-9]{4}|106[0-9]{4}|107[0-9]{4}|1080000)(?![\\s\\S])",
                "x-minimum": "100",
                "x-maximum": "1080000",
                "description": "Целое 100..1080000, каноническая десятичная строка; обе границы проверяются схемой."
              }
            }
          }
        }
      ]
    }
  }
}
