{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/cityjson/latest.json",
  "title": "CityJSON v2.0.2",
  "description": "CityJSON specifications v2.0.2",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/cityjson/specs/master/schemas/cityjson.min.schema.json",
    "sourceSha256": "74e128f4505429775fb97da4132a06e2fb3b88116332d7f6893529841fb3505e"
  },
  "type": "object",
  "properties": {
    "type": {
      "const": "CityJSON"
    },
    "version": {
      "const": "2.0"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "identifier": {
          "type": "string"
        },
        "pointOfContact": {
          "type": "object",
          "properties": {
            "contactName": {
              "type": "string"
            },
            "phone": {
              "type": "string"
            },
            "address": {
              "type": "object"
            },
            "emailAddress": {
              "type": "string",
              "format": "email"
            },
            "contactType": {
              "type": "string",
              "enum": [
                "individual",
                "organization"
              ]
            },
            "role": {
              "type": "string",
              "description": "from ISO 19115 codelist",
              "enum": [
                "resourceProvider",
                "custodian",
                "owner",
                "user",
                "distributor",
                "originator",
                "pointOfContact",
                "principalInvestigator",
                "processor",
                "publisher",
                "author",
                "sponsor",
                "co-author",
                "collaborator",
                "editor",
                "mediator",
                "rightsHolder",
                "contributor",
                "funder",
                "stakeholder"
              ]
            },
            "organization": {
              "type": "string"
            },
            "website": {
              "type": "string",
              "format": "uri",
              "pattern": "^(https?)://"
            }
          },
          "required": [
            "contactName",
            "emailAddress"
          ]
        },
        "referenceDate": {
          "type": "string",
          "format": "date"
        },
        "title": {
          "type": "string"
        },
        "geographicalExtent": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "minItems": 6,
          "maxItems": 6
        },
        "referenceSystem": {
          "type": "string",
          "pattern": "^(http|https)://www.opengis.net/def/crs/"
        }
      }
    },
    "extensions": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri-reference"
          },
          "version": {
            "type": "string",
            "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*))?$"
          }
        },
        "required": [
          "url",
          "version"
        ]
      }
    },
    "CityObjects": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "Bridge"
                  },
                  "address": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "location": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      }
                    }
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BridgeConstructiveElement"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BridgeFurniture"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BridgeInstallation"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BridgePart"
                  },
                  "address": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "location": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      }
                    }
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BridgeRoom"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "allOf": [
                  {
                    "properties": {
                      "attributes": {
                        "type": "object"
                      },
                      "parents": {
                        "type": "array",
                        "description": "the IDs of the parents",
                        "items": {
                          "type": "string"
                        }
                      },
                      "children": {
                        "type": "array",
                        "description": "the IDs of children",
                        "items": {
                          "type": "string"
                        }
                      },
                      "geographicalExtent": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        },
                        "minItems": 6,
                        "maxItems": 6
                      }
                    }
                  },
                  {
                    "properties": {
                      "address": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "location": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiPoint"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          }
                        }
                      },
                      "geometry": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "Solid"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "minItems": 1
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "array",
                                            "null"
                                          ],
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "items": {
                                                "type": [
                                                  "integer",
                                                  "null"
                                                ]
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSolid"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "integer"
                                          },
                                          "minItems": 1
                                        },
                                        "minItems": 1
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "array",
                                            "null"
                                          ],
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "array",
                                            "null"
                                          ],
                                          "items": {
                                            "type": [
                                              "array",
                                              "null"
                                            ],
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "items": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "integer",
                                                    "null"
                                                  ]
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "properties": {
                  "type": {
                    "const": "Building"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingConstructiveElement"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingFurniture"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingInstallation"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "allOf": [
                  {
                    "properties": {
                      "attributes": {
                        "type": "object"
                      },
                      "parents": {
                        "type": "array",
                        "description": "the IDs of the parents",
                        "items": {
                          "type": "string"
                        }
                      },
                      "children": {
                        "type": "array",
                        "description": "the IDs of children",
                        "items": {
                          "type": "string"
                        }
                      },
                      "geographicalExtent": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        },
                        "minItems": 6,
                        "maxItems": 6
                      }
                    }
                  },
                  {
                    "properties": {
                      "address": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "location": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiPoint"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          }
                        }
                      },
                      "geometry": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "Solid"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "integer"
                                        },
                                        "minItems": 1
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "array",
                                            "null"
                                          ],
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "items": {
                                                "type": [
                                                  "integer",
                                                  "null"
                                                ]
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSolid"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "integer"
                                          },
                                          "minItems": 1
                                        },
                                        "minItems": 1
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "array",
                                            "null"
                                          ],
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "array",
                                            "null"
                                          ],
                                          "items": {
                                            "type": [
                                              "array",
                                              "null"
                                            ],
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": "array",
                                              "items": {
                                                "type": "array",
                                                "items": {
                                                  "type": [
                                                    "integer",
                                                    "null"
                                                  ]
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingPart"
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingRoom"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingStorey"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "BuildingUnit"
                  },
                  "address": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "location": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      }
                    }
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "CityFurniture"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "CityObjectGroup"
                  },
                  "children_roles": {
                    "type": "array",
                    "description": "the role of each of the CityObjects members of that group",
                    "items": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "children"
                ],
                "type": "object"
              }
            ]
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "pattern": "(\\+)([A-Z])\\w+"
              }
            },
            "required": [
              "type"
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "GenericCityObject"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "LandUse"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "OtherConstruction"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "PlantCover"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "allOf": [
                  {
                    "properties": {
                      "attributes": {
                        "type": "object"
                      },
                      "parents": {
                        "type": "array",
                        "description": "the IDs of the parents",
                        "items": {
                          "type": "string"
                        }
                      },
                      "children": {
                        "type": "array",
                        "description": "the IDs of children",
                        "items": {
                          "type": "string"
                        }
                      },
                      "geographicalExtent": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        },
                        "minItems": 6,
                        "maxItems": 6
                      }
                    }
                  },
                  {
                    "properties": {
                      "geometry": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiLineString"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "properties": {
                  "type": {
                    "const": "Railway"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "allOf": [
                  {
                    "properties": {
                      "attributes": {
                        "type": "object"
                      },
                      "parents": {
                        "type": "array",
                        "description": "the IDs of the parents",
                        "items": {
                          "type": "string"
                        }
                      },
                      "children": {
                        "type": "array",
                        "description": "the IDs of children",
                        "items": {
                          "type": "string"
                        }
                      },
                      "geographicalExtent": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        },
                        "minItems": 6,
                        "maxItems": 6
                      }
                    }
                  },
                  {
                    "properties": {
                      "geometry": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiLineString"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "properties": {
                  "type": {
                    "const": "Road"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "SolitaryVegetationObject"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "TINRelief"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "allOf": [
                  {
                    "properties": {
                      "attributes": {
                        "type": "object"
                      },
                      "parents": {
                        "type": "array",
                        "description": "the IDs of the parents",
                        "items": {
                          "type": "string"
                        }
                      },
                      "children": {
                        "type": "array",
                        "description": "the IDs of children",
                        "items": {
                          "type": "string"
                        }
                      },
                      "geographicalExtent": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        },
                        "minItems": 6,
                        "maxItems": 6
                      }
                    }
                  },
                  {
                    "properties": {
                      "geometry": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiLineString"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "properties": {
                  "type": {
                    "const": "TransportSquare"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "Tunnel"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "TunnelConstructiveElement"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "TunnelFurniture"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "TunnelHollowSpace"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "TunnelInstallation"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiPoint"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "GeometryInstance"
                            },
                            "template": {
                              "type": "integer"
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              },
                              "minItems": 1,
                              "maxItems": 1
                            },
                            "transformationMatrix": {
                              "type": "array",
                              "items": {
                                "type": "number"
                              },
                              "minItems": 16,
                              "maxItems": 16
                            }
                          },
                          "required": [
                            "type",
                            "template",
                            "boundaries",
                            "transformationMatrix"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "TunnelPart"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "parents"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "properties": {
                  "attributes": {
                    "type": "object"
                  },
                  "parents": {
                    "type": "array",
                    "description": "the IDs of the parents",
                    "items": {
                      "type": "string"
                    }
                  },
                  "children": {
                    "type": "array",
                    "description": "the IDs of children",
                    "items": {
                      "type": "string"
                    }
                  },
                  "geographicalExtent": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 6,
                    "maxItems": 6
                  }
                }
              },
              {
                "properties": {
                  "type": {
                    "const": "WaterBody"
                  },
                  "geometry": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiLineString"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "integer"
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "MultiSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSurface"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "Solid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "integer",
                                        "null"
                                      ]
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": [
                                              "integer",
                                              "null"
                                            ]
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "object",
                          "properties": {
                            "type": {
                              "const": "CompositeSolid"
                            },
                            "lod": {
                              "enum": [
                                "0",
                                "1",
                                "2",
                                "3",
                                "0.0",
                                "0.1",
                                "0.2",
                                "0.3",
                                "1.0",
                                "1.1",
                                "1.2",
                                "1.3",
                                "2.0",
                                "2.1",
                                "2.2",
                                "2.3",
                                "3.0",
                                "3.1",
                                "3.2",
                                "3.3"
                              ]
                            },
                            "boundaries": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "minItems": 1
                              },
                              "minItems": 1
                            },
                            "semantics": {
                              "type": "object",
                              "properties": {
                                "surfaces": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "oneOf": [
                                          {
                                            "const": "RoofSurface"
                                          },
                                          {
                                            "const": "GroundSurface"
                                          },
                                          {
                                            "const": "WallSurface"
                                          },
                                          {
                                            "const": "ClosureSurface"
                                          },
                                          {
                                            "const": "OuterCeilingSurface"
                                          },
                                          {
                                            "const": "OuterFloorSurface"
                                          },
                                          {
                                            "const": "Window"
                                          },
                                          {
                                            "const": "Door"
                                          },
                                          {
                                            "const": "InteriorWallSurface"
                                          },
                                          {
                                            "const": "CeilingSurface"
                                          },
                                          {
                                            "const": "FloorSurface"
                                          },
                                          {
                                            "const": "WaterSurface"
                                          },
                                          {
                                            "const": "WaterGroundSurface"
                                          },
                                          {
                                            "const": "WaterClosureSurface"
                                          },
                                          {
                                            "const": "TrafficArea"
                                          },
                                          {
                                            "const": "AuxiliaryTrafficArea"
                                          },
                                          {
                                            "const": "TransportationHole"
                                          },
                                          {
                                            "const": "TransportationMarking"
                                          },
                                          {
                                            "type": "string",
                                            "pattern": "(\\+)\\w+"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ]
                                  }
                                },
                                "values": {
                                  "type": [
                                    "array",
                                    "null"
                                  ],
                                  "items": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "surfaces",
                                "values"
                              ]
                            },
                            "material": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": [
                                      "array",
                                      "null"
                                    ],
                                    "items": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  "value": {
                                    "type": "integer"
                                  }
                                },
                                "oneOf": [
                                  {
                                    "required": [
                                      "value"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "values"
                                    ]
                                  }
                                ]
                              }
                            },
                            "texture": {
                              "type": "object",
                              "additionalProperties": {
                                "type": "object",
                                "properties": {
                                  "values": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "type",
                            "lod",
                            "boundaries"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "allOf": [
                  {
                    "properties": {
                      "attributes": {
                        "type": "object"
                      },
                      "parents": {
                        "type": "array",
                        "description": "the IDs of the parents",
                        "items": {
                          "type": "string"
                        }
                      },
                      "children": {
                        "type": "array",
                        "description": "the IDs of children",
                        "items": {
                          "type": "string"
                        }
                      },
                      "geographicalExtent": {
                        "type": "array",
                        "items": {
                          "type": "number"
                        },
                        "minItems": 6,
                        "maxItems": 6
                      }
                    }
                  },
                  {
                    "properties": {
                      "geometry": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiLineString"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "integer"
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "MultiSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "const": "CompositeSurface"
                                },
                                "lod": {
                                  "enum": [
                                    "0",
                                    "1",
                                    "2",
                                    "3",
                                    "0.0",
                                    "0.1",
                                    "0.2",
                                    "0.3",
                                    "1.0",
                                    "1.1",
                                    "1.2",
                                    "1.3",
                                    "2.0",
                                    "2.1",
                                    "2.2",
                                    "2.3",
                                    "3.0",
                                    "3.1",
                                    "3.2",
                                    "3.3"
                                  ]
                                },
                                "boundaries": {
                                  "type": "array",
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "array",
                                      "items": {
                                        "type": "integer"
                                      },
                                      "minItems": 1
                                    },
                                    "minItems": 1
                                  },
                                  "minItems": 1
                                },
                                "semantics": {
                                  "type": "object",
                                  "properties": {
                                    "surfaces": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "type": {
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "RoofSurface"
                                              },
                                              {
                                                "const": "GroundSurface"
                                              },
                                              {
                                                "const": "WallSurface"
                                              },
                                              {
                                                "const": "ClosureSurface"
                                              },
                                              {
                                                "const": "OuterCeilingSurface"
                                              },
                                              {
                                                "const": "OuterFloorSurface"
                                              },
                                              {
                                                "const": "Window"
                                              },
                                              {
                                                "const": "Door"
                                              },
                                              {
                                                "const": "InteriorWallSurface"
                                              },
                                              {
                                                "const": "CeilingSurface"
                                              },
                                              {
                                                "const": "FloorSurface"
                                              },
                                              {
                                                "const": "WaterSurface"
                                              },
                                              {
                                                "const": "WaterGroundSurface"
                                              },
                                              {
                                                "const": "WaterClosureSurface"
                                              },
                                              {
                                                "const": "TrafficArea"
                                              },
                                              {
                                                "const": "AuxiliaryTrafficArea"
                                              },
                                              {
                                                "const": "TransportationHole"
                                              },
                                              {
                                                "const": "TransportationMarking"
                                              },
                                              {
                                                "type": "string",
                                                "pattern": "(\\+)\\w+"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "type"
                                        ]
                                      }
                                    },
                                    "values": {
                                      "type": [
                                        "array",
                                        "null"
                                      ],
                                      "items": {
                                        "type": [
                                          "integer",
                                          "null"
                                        ]
                                      }
                                    }
                                  },
                                  "required": [
                                    "surfaces",
                                    "values"
                                  ]
                                },
                                "material": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": [
                                          "array",
                                          "null"
                                        ],
                                        "items": {
                                          "type": [
                                            "integer",
                                            "null"
                                          ]
                                        }
                                      },
                                      "value": {
                                        "type": "integer"
                                      }
                                    },
                                    "oneOf": [
                                      {
                                        "required": [
                                          "value"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "values"
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "texture": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "object",
                                    "properties": {
                                      "values": {
                                        "type": "array",
                                        "items": {
                                          "type": "array",
                                          "items": {
                                            "type": "array",
                                            "items": {
                                              "type": [
                                                "integer",
                                                "null"
                                              ]
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "lod",
                                "boundaries"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "properties": {
                  "type": {
                    "const": "Waterway"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          }
        ]
      }
    },
    "vertices": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "number"
        },
        "minItems": 3,
        "maxItems": 3
      }
    },
    "transform": {
      "type": "object",
      "properties": {
        "scale": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "minItems": 3,
          "maxItems": 3
        },
        "translate": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "minItems": 3,
          "maxItems": 3
        }
      },
      "required": [
        "scale",
        "translate"
      ],
      "additionalProperties": false
    },
    "appearance": {
      "type": "object",
      "properties": {
        "default-theme-texture": {
          "type": "string"
        },
        "default-theme-material": {
          "type": "string"
        },
        "materials": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "ambientIntensity": {
                "type": "number"
              },
              "diffuseColor": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "emissiveColor": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "specularColor": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              "shininess": {
                "type": "number"
              },
              "transparency": {
                "type": "number"
              },
              "isSmooth": {
                "type": "boolean"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        },
        "textures": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "PNG",
                  "JPG"
                ]
              },
              "image": {
                "type": "string"
              },
              "wrapMode": {
                "enum": [
                  "none",
                  "wrap",
                  "mirror",
                  "clamp",
                  "border"
                ]
              },
              "textureType": {
                "enum": [
                  "unknown",
                  "specific",
                  "typical"
                ]
              },
              "borderColor": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 4
              }
            },
            "additionalProperties": false
          }
        },
        "vertices-texture": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "maxItems": 2
          }
        }
      },
      "additionalProperties": false
    },
    "geometry-templates": {
      "type": "object",
      "properties": {
        "templates": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "MultiPoint"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "MultiLineString"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "minItems": 1
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "Solid"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "integer"
                          },
                          "minItems": 1
                        },
                        "minItems": 1
                      },
                      "minItems": 1
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  },
                  "material": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": [
                                "integer",
                                "null"
                              ]
                            }
                          }
                        },
                        "value": {
                          "type": "integer"
                        }
                      },
                      "oneOf": [
                        {
                          "required": [
                            "value"
                          ]
                        },
                        {
                          "required": [
                            "values"
                          ]
                        }
                      ]
                    }
                  },
                  "texture": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": [
                                    "integer",
                                    "null"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "MultiSolid"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "minItems": 1
                          },
                          "minItems": 1
                        },
                        "minItems": 1
                      },
                      "minItems": 1
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": [
                                "integer",
                                "null"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  },
                  "material": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": [
                                "array",
                                "null"
                              ],
                              "items": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              }
                            }
                          }
                        },
                        "value": {
                          "type": "integer"
                        }
                      },
                      "oneOf": [
                        {
                          "required": [
                            "value"
                          ]
                        },
                        {
                          "required": [
                            "values"
                          ]
                        }
                      ]
                    }
                  },
                  "texture": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "CompositeSolid"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            },
                            "minItems": 1
                          },
                          "minItems": 1
                        },
                        "minItems": 1
                      },
                      "minItems": 1
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": [
                                "integer",
                                "null"
                              ]
                            }
                          }
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  },
                  "material": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "array",
                              "null"
                            ],
                            "items": {
                              "type": [
                                "array",
                                "null"
                              ],
                              "items": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              }
                            }
                          }
                        },
                        "value": {
                          "type": "integer"
                        }
                      },
                      "oneOf": [
                        {
                          "required": [
                            "value"
                          ]
                        },
                        {
                          "required": [
                            "values"
                          ]
                        }
                      ]
                    }
                  },
                  "texture": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "MultiSurface"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "minItems": 1
                      },
                      "minItems": 1
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  },
                  "material": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          }
                        },
                        "value": {
                          "type": "integer"
                        }
                      },
                      "oneOf": [
                        {
                          "required": [
                            "value"
                          ]
                        },
                        {
                          "required": [
                            "values"
                          ]
                        }
                      ]
                    }
                  },
                  "texture": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "const": "CompositeSurface"
                  },
                  "lod": {
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "0.0",
                      "0.1",
                      "0.2",
                      "0.3",
                      "1.0",
                      "1.1",
                      "1.2",
                      "1.3",
                      "2.0",
                      "2.1",
                      "2.2",
                      "2.3",
                      "3.0",
                      "3.1",
                      "3.2",
                      "3.3"
                    ]
                  },
                  "boundaries": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        },
                        "minItems": 1
                      },
                      "minItems": 1
                    },
                    "minItems": 1
                  },
                  "semantics": {
                    "type": "object",
                    "properties": {
                      "surfaces": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "oneOf": [
                                {
                                  "const": "RoofSurface"
                                },
                                {
                                  "const": "GroundSurface"
                                },
                                {
                                  "const": "WallSurface"
                                },
                                {
                                  "const": "ClosureSurface"
                                },
                                {
                                  "const": "OuterCeilingSurface"
                                },
                                {
                                  "const": "OuterFloorSurface"
                                },
                                {
                                  "const": "Window"
                                },
                                {
                                  "const": "Door"
                                },
                                {
                                  "const": "InteriorWallSurface"
                                },
                                {
                                  "const": "CeilingSurface"
                                },
                                {
                                  "const": "FloorSurface"
                                },
                                {
                                  "const": "WaterSurface"
                                },
                                {
                                  "const": "WaterGroundSurface"
                                },
                                {
                                  "const": "WaterClosureSurface"
                                },
                                {
                                  "const": "TrafficArea"
                                },
                                {
                                  "const": "AuxiliaryTrafficArea"
                                },
                                {
                                  "const": "TransportationHole"
                                },
                                {
                                  "const": "TransportationMarking"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(\\+)\\w+"
                                }
                              ]
                            }
                          },
                          "required": [
                            "type"
                          ]
                        }
                      },
                      "values": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "required": [
                      "surfaces",
                      "values"
                    ]
                  },
                  "material": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          }
                        },
                        "value": {
                          "type": "integer"
                        }
                      },
                      "oneOf": [
                        {
                          "required": [
                            "value"
                          ]
                        },
                        {
                          "required": [
                            "values"
                          ]
                        }
                      ]
                    }
                  },
                  "texture": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "items": {
                              "type": "array",
                              "items": {
                                "type": [
                                  "integer",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "required": [
                  "type",
                  "lod",
                  "boundaries"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "vertices-templates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 3,
            "maxItems": 3
          }
        }
      },
      "required": [
        "templates",
        "vertices-templates"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "type",
    "transform",
    "version",
    "CityObjects",
    "vertices"
  ]
}
