{ "$schema":              "https://json-schema.org/draft/2020-12/schema",
  "$id":                  "https://schemas.mpai.community/PAF/V1.6/data/BodyMotionObject.json",
  "title":                "Body Motion Object V1.6",
  "description":          "Motion of the body of the Persona (e.g., approach, reach, grasp, gesture) as a mini-PA, in a vocabulary named by its Qualifier.",
  "type":                 "object",
  "additionalProperties": false,
  "required":             [ "Header", "BodyMotionObjectID", "BodyMotionObjectData" ],
  "properties":           {

    "Header":             { "type": "string", "const": "PAF-BMO-V1.6" },
    "MInstanceID":        { "type": "string" },
    "UEnvironmentID":     { "type": "string" },
    "BodyMotionObjectID":     { "type": "string" },
    "BodyMotionObjectTime":   { "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json" },

    "ProcessActionID":    { "type": "string", "description": "Identifier of the Process Action of which this Object is a mini-PA, if any." },
    "ParentObjectID":     { "type": "string", "description": "Identifier of the mini-PA that this one follows, if any; the order of the mini-PAs of a Process Action." },

    "BodyMotionObjectData":   { "type": "array", "items": { "anyOf": [
                          { "type": "object", "properties": {
      "Data":             { "type": "string" } } },
                          { "type": "object", "properties": {
      "DataLength":       { "type": "integer" },
      "DataURI":          { "type": "string", "format": "uri" } } },
                          { "type": "object", "properties": {
      "ID":               { "type": "string" } } } ] } },

    "BodyMotionQualifier":    { "$ref": "https://schemas.mpai.community/TFA/V1.5/data/BodyMotionQualifier.json" },

    "DataXMData":         { "$ref": "https://schemas.mpai.community/PTF/V1.0/data/DataExchangeMetadata.json" },
    "DescrMetadata":      { "type": "string", "maxLength": 2048 } } }
