{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "definitions": {
    "BasicAllocation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "routeProportion": {
          "$ref": "DATEXII_3_Common.json#/definitions/Percentage"
        },
        "reroutingAdvice": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ReroutingAdviceTypeEnumG"
          },
          "minItems": 0
        },
        "complianceOptionOverride": {
          "$ref": "DATEXII_3_Situation.json#/definitions/ComplianceOptionEnumG"
        },
        "routeEffectivlyClosedForAllocation": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "condition": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ConditionG"
        },
        "rerRouteAllocationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerBasicAllocationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "condition"
      ]
    },
    "CapacityManagement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "capacityManagementMeasure": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/CapacityManagementMeasure"
          },
          "minItems": 1
        }
      },
      "required": [
        "capacityManagementMeasure"
      ]
    },
    "CapacityManagementActionEnum": {
      "type": "string",
      "enum": [
        "additionalParkingBan",
        "alteredSignalPhasing",
        "alternatedSignalisedTraffic",
        "closedEntry",
        "closedExit",
        "closedLanes",
        "modifiedCycleLength",
        "modifiedGreenPeriod",
        "oneDirectionTraffic",
        "oneDirectionTrafficReversed",
        "openedExtraLane",
        "reducingLocalAccess",
        "synchronizedTrafficSignals",
        "other",
        "extendedG"
      ]
    },
    "CapacityManagementActionEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/CapacityManagementActionEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "CapacityManagementMeasure": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "measure": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/CapacityManagementMeasureEnumG"
        },
        "action": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/CapacityManagementActionEnumG"
          },
          "minItems": 0
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "defaultGreenTimeAdjustment": {
          "$ref": "DATEXII_3_Common.json#/definitions/Seconds"
        },
        "defaultCycleLength": {
          "$ref": "DATEXII_3_Common.json#/definitions/Seconds"
        },
        "recommendedSpeed": {
          "$ref": "DATEXII_3_Common.json#/definitions/KilometresPerHour"
        },
        "affectedLocation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
          },
          "minItems": 0
        },
        "trafficSignal": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/TrafficSignal"
          },
          "minItems": 0
        },
        "rerCapacityManagementMeasureExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "measure"
      ]
    },
    "CapacityManagementMeasureEnum": {
      "type": "string",
      "enum": [
        "accessMeasures",
        "capacityIncrease",
        "capacityReduction",
        "inflowReduction",
        "outflowIncrease",
        "parkingMeasures",
        "signalMeasures",
        "other",
        "extendedG"
      ]
    },
    "CapacityManagementMeasureEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/CapacityManagementMeasureEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ConditionG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "rerConditionSet": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ConditionSet"
        },
        "rerVehicleCondition": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/VehicleCondition"
        },
        "rerValidityCondition": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ValidityCondition"
        },
        "rerOccupantCondition": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/OccupantCondition"
        },
        "rerUserCondition": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/UserCondition"
        },
        "rerTrafficTypeCondition": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/TrafficTypeCondition"
        }
      }
    },
    "ConditionOperator": {
      "type": "string",
      "enum": [
        "and",
        "or",
        "xor",
        "extendedG"
      ]
    },
    "ConditionOperatorG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ConditionOperator"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ConditionSet": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "operator": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ConditionOperatorG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ConditionG"
          },
          "minItems": 1
        },
        "rerConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerConditionSetExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "operator",
        "conditions"
      ]
    },
    "DetailedAllocation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "routeProportion": {
          "$ref": "DATEXII_3_Common.json#/definitions/Percentage"
        },
        "reroutingAdvice": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ReroutingAdviceTypeEnumG"
          },
          "minItems": 0
        },
        "complianceOptionOverride": {
          "$ref": "DATEXII_3_Situation.json#/definitions/ComplianceOptionEnumG"
        },
        "routeEffectivlyClosedForAllocation": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "condition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionG"
        },
        "rerRouteAllocationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerDetailedAllocationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "condition"
      ]
    },
    "FacilityTypeEnum": {
      "type": "string",
      "enum": [
        "carPark",
        "parking",
        "publicTransport",
        "parkAndDrive",
        "parkAndRide",
        "parkAndCycle",
        "parkAndWalk",
        "kissAndRide",
        "liftshare",
        "carSharing",
        "restArea",
        "serviceArea",
        "eventParking",
        "dropOff",
        "overnightParking",
        "pointOfInterest",
        "other",
        "extendedG"
      ]
    },
    "FacilityTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/FacilityTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "OccupantCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "disabledWithPermit": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "numberOfOccupants": {
          "$ref": "DATEXII_3_Common.json#/definitions/NonNegativeInteger"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "rerConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerOccupantConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "PriorityIndex": {
      "$ref": "DATEXII_3_Common.json#/definitions/NonNegativeInteger",
      "minimum": 0.0,
      "maximum": 10.0
    },
    "PtSchedule": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "lastUpdated": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "line": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/String"
          },
          "minItems": 0
        },
        "nextDepartures": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/Time"
          },
          "minItems": 0
        },
        "destination": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "interval": {
          "$ref": "DATEXII_3_Common.json#/definitions/Seconds"
        },
        "travelTimeToDestination": {
          "$ref": "DATEXII_3_Common.json#/definitions/Seconds"
        },
        "ptType": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PublicTransportTypeEnumG"
          },
          "minItems": 0
        },
        "ptVehicleType": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PublicTransportVehicleTypeG"
        },
        "ptVehicleName": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "ptOperator": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "validity": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "rerPtScheduleExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "lastUpdated"
      ]
    },
    "PublicTransportTypeEnum": {
      "type": "string",
      "enum": [
        "freePublicTransport",
        "nonFreePublicTransport",
        "onDemandTraffic",
        "railReplacementService",
        "shuttleService",
        "extendedG"
      ]
    },
    "PublicTransportTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PublicTransportTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "PublicTransportVehicleType": {
      "type": "string",
      "enum": [
        "bus",
        "coach",
        "miniBus",
        "subway",
        "taxi",
        "train",
        "tram",
        "extendedG"
      ]
    },
    "PublicTransportVehicleTypeG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PublicTransportVehicleType"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ReroutingAdviceTypeEnum": {
      "type": "string",
      "enum": [
        "doNotFollowDiversionSigns",
        "doNotUseEntry",
        "doNotUseExit",
        "doNotUseIntersectionOrJunction",
        "followDiversionSigns",
        "followLocalDiversion",
        "followSpecialMarkers",
        "useEntry",
        "useExit",
        "useIntersectionOrJunction",
        "extendedG"
      ]
    },
    "ReroutingAdviceTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ReroutingAdviceTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ReroutingManagementEnhanced": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "type": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ReroutingTypeEnumG"
        },
        "bindingTrafficRegulation": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "preventiveMeasure": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "routingOrigin": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationG"
          },
          "minItems": 0
        },
        "routingThrough": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationG"
          },
          "minItems": 0
        },
        "routingDestination": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationG"
          },
          "minItems": 0
        },
        "originalRoute": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/RouteDescription"
        },
        "alternativeRoute": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/RouteDescription"
          },
          "minItems": 0
        }
      }
    },
    "ReroutingTypeEnum": {
      "type": "string",
      "enum": [
        "alternative",
        "kpiForNavigationServices",
        "parkAndRide",
        "parkingGuidance",
        "strategyConform",
        "urbanCompatible",
        "extendedG"
      ]
    },
    "ReroutingTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ReroutingTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "RouteAllocation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "routeProportion": {
          "$ref": "DATEXII_3_Common.json#/definitions/Percentage"
        },
        "reroutingAdvice": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/ReroutingAdviceTypeEnumG"
          },
          "minItems": 0
        },
        "complianceOptionOverride": {
          "$ref": "DATEXII_3_Situation.json#/definitions/ComplianceOptionEnumG"
        },
        "routeEffectivlyClosedForAllocation": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "rerRouteAllocationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "RouteAllocationG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "rerRouteAllocation": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/RouteAllocation"
        },
        "rerDetailedAllocation": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/DetailedAllocation"
        },
        "rerBasicAllocation": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/BasicAllocation"
        }
      }
    },
    "RouteDescription": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "nameOfRoute": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "routeClosed": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "isPublicTransportRoute": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "troReference": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/TrafficRegulationOrderVersionedReferenceG"
          },
          "minItems": 0
        },
        "priorityIndex": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PriorityIndex"
        },
        "capacityAvailable": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "signedRerouting": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "entry": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "exit": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "roadOrJunctionNumber": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "trafficConstriction": {
          "$ref": "DATEXII_3_Situation.json#/definitions/TrafficConstrictionTypeEnumG"
        },
        "routeLength": {
          "$ref": "DATEXII_3_Common.json#/definitions/MetresAsNonNegativeInteger"
        },
        "itinerary": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/ItineraryG"
        },
        "routeAllocation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/RouteAllocationG"
          },
          "minItems": 0
        },
        "specificDestinationFacility": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/SpecificDestinationFacility"
        },
        "ptRouteSchedule": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PtSchedule"
          },
          "minItems": 0
        },
        "capacityManagementMeasure": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/CapacityManagementMeasure"
          },
          "minItems": 0
        },
        "supplementaryPositionalDescription": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/SupplementaryPositionalDescription"
        },
        "abnormalTraffic": {
          "$ref": "DATEXII_3_Situation.json#/definitions/AbnormalTraffic"
        },
        "routeDelays": {
          "$ref": "DATEXII_3_Situation.json#/definitions/Delays"
        },
        "trafficStatus": {
          "$ref": "DATEXII_3_RoadTrafficData.json#/definitions/TrafficStatusValue"
        },
        "travelTimeData": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_RoadTrafficData.json#/definitions/TravelTimeData"
          },
          "minItems": 0
        },
        "rerRouteDescriptionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "SpecificDestinationFacility": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "name": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "alias": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
          },
          "minItems": 0
        },
        "externalIdentifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "lastUpdated": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "accessibility": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Facilities.json#/definitions/AccessibilityEnumG"
          },
          "minItems": 0
        },
        "additionalInformation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
          },
          "minItems": 0
        },
        "type": {
          "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/FacilityTypeEnumG"
        },
        "otherSpecificDestinationFacility": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "freeParking": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "informationWebsite": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/UrlLink"
          },
          "minItems": 0
        },
        "photoUrl": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/UrlLink"
          },
          "minItems": 0
        },
        "photo": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Facilities.json#/definitions/Image"
          },
          "minItems": 0
        },
        "operatingHours": {
          "$ref": "DATEXII_3_Facilities.json#/definitions/OperatingHoursG"
        },
        "locationReference": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "owner": {
          "$ref": "DATEXII_3_Facilities.json#/definitions/OrganisationG"
        },
        "operator": {
          "$ref": "DATEXII_3_Facilities.json#/definitions/OrganisationG"
        },
        "associatedFacility": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Facilities.json#/definitions/AssociatedFacilityG"
          },
          "minItems": 0
        },
        "rates": {
          "$ref": "DATEXII_3_Facilities.json#/definitions/RatesG"
        },
        "applicableForVehicles": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/VehicleCharacteristics"
          },
          "minItems": 0
        },
        "dimension": {
          "$ref": "DATEXII_3_Facilities.json#/definitions/Dimension"
        },
        "supplementalFacility": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Facilities.json#/definitions/SupplementalFacilityG"
          },
          "minItems": 0
        },
        "ptSchedule": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_ReroutingManagementEnhanced.json#/definitions/PtSchedule"
          },
          "minItems": 0
        },
        "facFacilityObjectExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "facFacilityExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerSpecificDestinationFacilityExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "type"
      ]
    },
    "TrafficRegulationOrderVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "TrafficRegulationOrder"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "TrafficSignal": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "index": {
          "$ref": "DATEXII_3_Common.json#/definitions/Integer"
        },
        "externalId": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "greenTimeAdjustmentOverride": {
          "$ref": "DATEXII_3_Common.json#/definitions/Seconds"
        },
        "cycleLengthOverride": {
          "$ref": "DATEXII_3_Common.json#/definitions/Seconds"
        },
        "signalGroup": {
          "$ref": "DATEXII_3_Common.json#/definitions/Reference"
        },
        "notionalMidPoint": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/PointLocationG"
        },
        "rerTrafficSignalExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "index"
      ]
    },
    "TrafficTypeCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "trafficType": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Situation.json#/definitions/TrafficTypeEnumG"
          },
          "minItems": 0
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "rerConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerTrafficTypeConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "UserCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Facilities.json#/definitions/UserTypeEnumG"
          },
          "minItems": 0
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "rerConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerUserConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "ValidityCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "validity": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "rerConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerValidityConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "validity"
      ]
    },
    "VehicleCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "vehicleCharacteristics": {
          "$ref": "DATEXII_3_Common.json#/definitions/VehicleCharacteristics"
        },
        "rerConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "rerVehicleConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "vehicleCharacteristics"
      ]
    }
  }
}