{ "$schema":                   "https://json-schema.org/draft/2020-12/schema",
  "$id":                       "https://schemas.mpai.community/OSD/V1.5/data/OfflineMapSceneDescriptors.json",
  "title":                     "Offline Map Scene Descriptors V1.5", "type": "object", "required": [ "Header", 
                               "OMSDescriptorsID", "OMSDescriptorsSpaceTime" ], "additionalProperties": false, "properties": {

    "Header":                  { "type": "string", "pattern": "^OSD-OSD-V[0-9]{1,2}[.][0-9]{1,2}$" },
    "MInstanceID":             { "type": "string" },
    "OMSDescriptorsID":        { "type": "string" },
    "OMSDescriptorsSpaceTime": { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" },

    "ObjectCount":             { "type": "integer" },
    "Objects":                 { "type": "array", "items": { "type": "object",
                                "additionalProperties": false, "properties": {
      "ObjectSpaceTime":       { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" },
      "ObjectIDOrObject":      { "$ref": "#/$defs/ObjectIDOrObject" } } } },

    "SubOMSCount":             { "type": "integer" },
    "SubOMSs":                 { "type": "array", "items": { "type": "object",
                                 "additionalProperties": false, "properties": {
      "SubOMSSpaceTime":       { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" },
      "SubOMSIDOrSubOMS":      { "$ref": "#/$defs/SubOMSIDOrSubOMS" } } } },

    "BasicOMSOrOMS":           { "$ref": "#/$defs/BasicOMSOrOMS" },

    "DataXMData":              { "$ref": "https://schemas.mpai.community/AIF/V3.0/data/DataExchangeMetadata.json" },
    "DescrMetadata":           { "type": "string", "maxLength": 2048 } },

  "$defs":                     {

    "ObjectIDOrObject":        { "type": "array", "minItems": 1, "maxItems": 1, "items": { "oneOf": [
                                 { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/OfflineMapObject.json" },
                                 { "type": "string" } ] } },

    "SubOMSIDOrSubOMS":        { "type": "array", "minItems": 1, "maxItems": 1, "items": { "oneOf": [
                                 { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/OfflineMapSceneDescriptors.json" },
                                 { "type": "string" } ] } },

    "BasicOMSOrOMS":           { "type": "array", "items": { "oneOf": [
                                 { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/BasicOfflineMapSceneDescriptors.json" },
                                 { "$ref": "#/$defs/BasicOMSOrOMS" } ] } } } }