• View source
  • {
      "title": "sdf-framework.cddl -- Generated: 2025-10-13T08:43:29Z",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$ref": "#/definitions/sdf-syntax",
      "definitions": {
        "sdf-syntax": {
          "type": "object",
          "properties": {
            "info": {
              "$ref": "#/definitions/sdfinfo"
            },
            "namespace": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "defaultNamespace": {
              "type": "string"
            },
            "sdfThing": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/thingqualities"
              }
            },
            "sdfObject": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/objectqualities"
              }
            },
            "sdfProperty": {
              "$ref": "#/definitions/sdfProperty-"
            },
            "sdfAction": {
              "$ref": "#/definitions/sdfAction-"
            },
            "sdfEvent": {
              "$ref": "#/definitions/sdfEvent-"
            },
            "sdfData": {
              "$ref": "#/definitions/sdfData-sdfChoice-properties-"
            }
          },
          "patternProperties": {
            "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
          },
          "additionalProperties": false
        },
        "sdfinfo": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "copyright": {
              "type": "string"
            },
            "license": {
              "type": "string"
            },
            "modified": {
              "$ref": "#/definitions/modified-date-time"
            },
            "features": {
              "type": "array"
            },
            "$comment": {
              "type": "string"
            }
          },
          "patternProperties": {
            "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
          },
          "additionalProperties": false
        },
        "modified-date-time": {
          "type": "string"
        },
        "thingqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfObject": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/objectqualities"
              }
            },
            "sdfThing": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/thingqualities"
              }
            },
            "sdfProperty": {
              "$ref": "#/definitions/sdfProperty-"
            },
            "sdfAction": {
              "$ref": "#/definitions/sdfAction-"
            },
            "sdfEvent": {
              "$ref": "#/definitions/sdfEvent-"
            },
            "sdfData": {
              "$ref": "#/definitions/sdfData-sdfChoice-properties-"
            },
            "minItems": {
              "$ref": "#/definitions/uint"
            },
            "maxItems": {
              "$ref": "#/definitions/uint"
            }
          },
          "patternProperties": {
            "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
          },
          "additionalProperties": false
        },
        "sdf-pointer": {
          "anyOf": [
            {
              "$ref": "#/definitions/global"
            },
            {
              "$ref": "#/definitions/same-object"
            },
            {
              "$ref": "#/definitions/true"
            }
          ]
        },
        "global": {
          "type": "string",
          "pattern": "^[^\\n\\r]*[:#][^\\n\\r]*$"
        },
        "same-object": {
          "$ref": "#/definitions/referenceable-name"
        },
        "referenceable-name": {
          "type": "string",
          "pattern": "^[^:#]*$"
        },
        "true": {
          "type": "boolean",
          "const": true
        },
        "pointer-list": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/sdf-pointer"
          }
        },
        "objectqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfProperty": {
              "$ref": "#/definitions/sdfProperty-"
            },
            "sdfAction": {
              "$ref": "#/definitions/sdfAction-"
            },
            "sdfEvent": {
              "$ref": "#/definitions/sdfEvent-"
            },
            "sdfData": {
              "$ref": "#/definitions/sdfData-sdfChoice-properties-"
            },
            "minItems": {
              "$ref": "#/definitions/uint"
            },
            "maxItems": {
              "$ref": "#/definitions/uint"
            }
          },
          "patternProperties": {
            "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
          },
          "additionalProperties": false
        },
        "propertyqualities": {
          "anyOf": [
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "$ref": "#/definitions/type-"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "$ref": "#/definitions/type-"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "observable": {
                  "type": "boolean"
                },
                "readable": {
                  "type": "boolean"
                },
                "writable": {
                  "type": "boolean"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "dataqualities": {
          "anyOf": [
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "$ref": "#/definitions/type-"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "$ref": "#/definitions/type-"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "description": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "sdfRequired": {
                  "$ref": "#/definitions/pointer-list"
                },
                "const": {
                  "$ref": "#/definitions/allowed-types"
                },
                "default": {
                  "$ref": "#/definitions/allowed-types"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "exclusiveMinimum": {
                  "type": "number"
                },
                "exclusiveMaximum": {
                  "type": "number"
                },
                "multipleOf": {
                  "type": "number"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                },
                "pattern": {
                  "type": "string"
                },
                "format": {
                  "$ref": "#/definitions/format-"
                },
                "minItems": {
                  "$ref": "#/definitions/uint"
                },
                "maxItems": {
                  "$ref": "#/definitions/uint"
                },
                "uniqueItems": {
                  "type": "boolean"
                },
                "items": {
                  "$ref": "#/definitions/jso-items"
                },
                "unit": {
                  "type": "string"
                },
                "nullable": {
                  "type": "boolean"
                },
                "sdfType": {
                  "$ref": "#/definitions/sdfType-"
                },
                "contentFormat": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "allowed-types": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "boolean"
              }
            },
            {
              "type": "object",
              "additionalProperties": {}
            },
            {}
          ]
        },
        "uint": {
          "type": "integer",
          "minimum": 0
        },
        "jso-items": {
          "anyOf": [
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "number",
                    "string",
                    "boolean",
                    "integer"
                  ]
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "description": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "format": {
                  "type": "string"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "description": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "format": {
                  "type": "string"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string"
                },
                "sdfChoice": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "description": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "format": {
                  "type": "string"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "number",
                    "string",
                    "boolean",
                    "integer"
                  ]
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "description": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "format": {
                  "type": "string"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string",
                  "const": "object"
                },
                "required": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "properties": {
                  "$ref": "#/definitions/sdfData-sdfChoice-properties-"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "description": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "format": {
                  "type": "string"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "patternProperties": {
                "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
              },
              "properties": {
                "type": {
                  "type": "string"
                },
                "enum": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "minItems": 1
                },
                "sdfRef": {
                  "$ref": "#/definitions/sdf-pointer"
                },
                "description": {
                  "type": "string"
                },
                "$comment": {
                  "type": "string"
                },
                "minimum": {
                  "type": "number"
                },
                "maximum": {
                  "type": "number"
                },
                "format": {
                  "type": "string"
                },
                "minLength": {
                  "$ref": "#/definitions/uint"
                },
                "maxLength": {
                  "$ref": "#/definitions/uint"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "sdftype-name": {
          "type": "string",
          "pattern": "^[a-z][\\-a-z0-9]*$"
        },
        "actionqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfInputData": {
              "$ref": "#/definitions/parameter-list"
            },
            "sdfOutputData": {
              "$ref": "#/definitions/parameter-list"
            },
            "sdfData": {
              "$ref": "#/definitions/sdfData-sdfChoice-properties-"
            }
          },
          "patternProperties": {
            "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
          },
          "additionalProperties": false
        },
        "parameter-list": {
          "$ref": "#/definitions/dataqualities"
        },
        "eventqualities": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "$comment": {
              "type": "string"
            },
            "sdfRef": {
              "$ref": "#/definitions/sdf-pointer"
            },
            "sdfRequired": {
              "$ref": "#/definitions/pointer-list"
            },
            "sdfOutputData": {
              "$ref": "#/definitions/parameter-list"
            },
            "sdfData": {
              "$ref": "#/definitions/sdfData-sdfChoice-properties-"
            }
          },
          "patternProperties": {
            "^(?:[a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*$": {}
          },
          "additionalProperties": false
        },
        "format-": {
          "anyOf": [
            {
              "type": "string",
              "const": "date-time"
            },
            {
              "type": "string",
              "const": "date"
            },
            {
              "type": "string",
              "const": "time"
            },
            {
              "type": "string",
              "const": "uri"
            },
            {
              "type": "string",
              "const": "uri-reference"
            },
            {
              "type": "string",
              "const": "uuid"
            },
            {
              "type": "string"
            }
          ]
        },
        "sdfType-": {
          "anyOf": [
            {
              "type": "string",
              "const": "byte-string"
            },
            {
              "type": "string",
              "const": "unix-time"
            },
            {
              "$ref": "#/definitions/sdftype-name"
            }
          ]
        },
        "sdfData-sdfChoice-properties-": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/dataqualities"
          }
        },
        "type-": {
          "type": "string",
          "enum": [
            "number",
            "string",
            "boolean",
            "integer",
            "array"
          ]
        },
        "sdfProperty-": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/propertyqualities"
          }
        },
        "sdfAction-": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/actionqualities"
          }
        },
        "sdfEvent-": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/eventqualities"
          }
        }
      }
    }
    
    View source