$schema: https://json-schema.org/draft/2020-12/schema
$defs:
  CityObjectId:
    type: string
    enum:
    - OtherConstruction
    - Building
    - BuildingPart
    - BuildingInstallation
    - BuildingConstructiveElement
    - BuildingFurniture
    - BuildingRoom
    - BuildingUnit
    - BuildingStorey
    - CityObjectGroup
    - GenericCityObject
    - Tunnel
    - TunnelPart
    - TunnelInstallation
    - TunnelConstructiveElement
    - TunnelHollowSpace
    - TunnelFurniture
    - Bridge
    - BridgePart
    - BridgeInstallation
    - BridgeConstructiveElement
    - BridgeRoom
    - BridgeFurniture
    - Road
    - Railway
    - TransportSquare
    - Waterway
    - TINRelief
    - WaterBody
    - PlantCover
    - SolitaryVegetationObject
    - LandUse
    - CityFurniture
  CityObjectArray:
    type: array
    items:
      $ref: '#/$defs/CityObjectId'
type: object
oneOf:
- required:
  - path
  properties:
    path:
      description: Array with city object path to desired element, starting from the
        root City Objects
      minItems: 1
      $ref: '#/$defs/CityObjectArray'
- required:
  - idPatterns
  properties:
    idPatterns:
      description: Array with regular expression patterns to filter city objects by
      minItems: 1
      items:
        type: string
