﻿
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.mpai.community/OSD/V1.4/data/LiDARObject.json",
  "title": "LiDARObject",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "Header": { "type": "string", "pattern": "^OSD-LIO-V[0-9]{1,2}[.][0-9]{1,2}$" },
    "MInstanceID": { "type": "string" },
    "LiDARObjectID": { "type": "string" },
    "LiDARObjectSpaceTime": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/SpaceTime.json" },

    "BasicLiDARObjectCount": { "type": "integer", "minimum": 0 },
    "BasicLiDARObjects": {
      "type": "array",
      "minItems": 0,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "BasicLiDARObjectSpaceTime": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/SpaceTime.json" },
          "BasicLiDARObjectIDOrBasicLiDARObject": {
            "type": "array",
            "minItems": 1,
            "items": {
              "oneOf": [
                { "type": "string", "description": "BasicLiDARObjectID" },
                { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/BasicLiDARObject.json" }
              ]
            }
          },
          "LiDARObjectAnnotation": {
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Annotation": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/Annotation.json" },
                "AnnotationSpaceTime": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/SpaceTime.json" },
                "AnnotationRights": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "RightsIDOrRights": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "oneOf": [
                          { "type": "string", "description": "RightsID" },
                          { "$ref": "https://schemas.mpai.community/MMM4/V2.1/data/Rights.json" }
                        ]
                      }
                    }
                  },
                  "required": ["RightsIDOrRights"]
                }
              },
              "required": ["Annotation"]
            }
          }
        },
        "required": ["BasicLiDARObjectIDOrBasicLiDARObject"]
      }
    },

    "SubLiDARObjectCount": { "type": "integer", "minimum": 0 },
    "SubLiDARObjects": {
      "type": "array",
      "minItems": 0,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "SubLiDARObjectSpaceTime": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/SpaceTime.json" },
          "SubLiDARObjectIDOrSubLiDARObject": {
            "type": "array",
            "minItems": 1,
            "items": {
              "oneOf": [
                { "type": "string", "description": "SubLiDARObjectID" },
                { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/LiDARObject.json" }
              ]
            }
          },
          "Annotations": {
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Annotation": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/Annotation.json" },
                "AnnotationSpaceTime": { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/SpaceTime.json" },
                "AnnotationRights": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "RightsIDOrRights": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "oneOf": [
                          { "type": "string", "description": "RightsID" },
                          { "$ref": "https://schemas.mpai.community/MMM4/V2.1/data/Rights.json" }
                        ]
                      }
                    }
                  },
                  "required": ["RightsIDOrRights"]
                }
              },
              "required": ["Annotation"]
            }
          }
        },
        "required": ["SubLiDARObjectIDOrSubLiDARObject"]
      }
    },

    "LiDARObjectOrBasicLiDARObject": {
      "type": "array",
      "minItems": 1,
      "items": {
        "oneOf": [
          { "$ref": "https://schemas.mpai.community/OSD/V1.4/data/BasicLiDARObject.json" },
          { "$ref": "#" }
        ]
      }
    },

    "Rights": { "$ref": "https://schemas.mpai.community/MMM4/V2.1/data/Rights.json" },
    "DescrMetadata": { "type": "string" }
  },
  "required": ["Header", "MInstanceID", "LiDARObjectID", "LiDARObjectSpaceTime"]
}
