{ "$id":                          "https://schemas.mpai.community/OSD/V1.5/data/BasicObject.json",
  "$schema":                      "https://json-schema.org/draft/2020-12/schema",

  "title":                        "Basic Object V1.5",
                                  "description": "Atomic object carrying data, media qualifiers, spatiotemporal context, and annotations.",
                                  "type": "object", "required": [ "Header", "BasicObjectID", "BasicObjectSpaceTime", "Trace" ],
                                  "additionalProperties": false, "properties": {

    "Header":                     { "type": "string", "pattern": "^OSD-BOB-V[0-9]{1,2}[.][0-9]{1,2}$" },

    "MInstanceID":                { "type": "string" },

    "BasicObjectID":              { "type": "string" },

    "ParentObjects":              { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": {
        "ParentObjectID":         { "type": "string" },
        "ParentObjectSpaceTime":  { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" } } } },

    "ChildObjects":               { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": {
        "ChildObjectID":          { "type": "string" },
        "ChildObjectSpaceTime":   { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" } } } },

    "BasicObjectData":            { "type": "array", "items": { "anyOf": [

        { "type": "object", "additionalProperties": false, "properties": {
          "Length":                { "type": "integer" },
          "URI":                   { "type": "string", "format": "uri" } } },

        { "type": "object", "additionalProperties": false, "properties": {
          "Data":                  { "type": "string" } } },

        { "type": "object", "additionalProperties": false, "properties": {
          "ID":                    { "type": "string" } } } ] } },

    "MediaType":                  { "$ref": "https://schemas.mpai.community/TFA/V1.5/types/MediaTypes.json" },

    "BasicObject":                { "type": "array", "items": { "oneOf": [
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/3DModelQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/AudioQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/AudioVisualQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/LiDARQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/OfflineMapQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/RADARQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/SpeechQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/TextQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/UltrasoundQualifier.json" },
        { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/VisualQualifier.json" } ] } },

    "BasicObjectSpaceTime":       { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" },

    "BasicObjectAnnotations":     { "$ref": "#/$defs/AnnotationArray" },

    "ObjectRights":               { "$ref": "#/$defs/Rights" },

    "DataExchangeMetadata":       { "$ref": "https://schemas.mpai.community/AIF/V3.0/data/DataExchangeMetadata.json" },

    "Trace":                      { "$ref": "https://schemas.mpai.community/AIF/V3.0/data/Trace.json" },

    "DescrMetadata":              { "type": "string", "maxLength": 2048 } },

  "$defs": {

    "AnnotationEntry":            { "description": "One annotation row with ID‑or‑object, timestamp, and rights.",
                                    "type": "object", "additionalProperties": false,
                                    "required": [ "AnnotationIDOrAnnotation", "AnnotationTimeSpace" ],
                                    "properties": {

      "AnnotationIDOrAnnotation": { "description": "Either an embedded Annotation or an AnnotationID (by reference).",
                                    "type": "array", "minItems": 1, "maxItems": 1, "items": { "oneOf": [
          { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/Annotation.json" },
          { "type": "string" } ] } },

      "AnnotationTimeSpace":      { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpaceTime.json" },

      "AnnotationRights":         { "$ref": "#/$defs/Rights" } } },

    "AnnotationArray":            { "description": "Array of AnnotationEntry rows.",
                                    "type": "array", "items": { "$ref": "#/$defs/AnnotationEntry" } },

    "Rights":                     { "description": "Rights as an array of Right objects or RightIDs.",
                                    "type": "array", "minItems": 1, "items":
      { "oneOf": [
        { "type": "object", "additionalProperties": false, "required": [ "Right" ], "properties":
          { "Right":              { "$ref": "https://schemas.mpai.community/MMM4/V2.2/data/Right.json" } } },
        { "type": "object", "additionalProperties": false, "required": [ "RightID" ], "properties":
          { "RightID":            { "type": "string" } } } ] } } } }