{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.mpai.community/PGM1/V1.0/data/AUCCXT.json",
  "title": "AUC-CXT V1.0",
  "description": "The Data Type exchanged between A-User Control (AUC) and Context Description (CXT). It has two modes, told apart by Mode: Request (RQ), sent by AUC to CXT (previously CXT Directive), and Response (RS), sent by CXT to AUC (previously CXT Status). Context Description is an executor AIM: A-User Control drives the capture and the processing of each medium (Audio, Visual, Text, Speech) and of the User, at property level, whether Context Description is Basic or Composite, and the Response reports the outcome per medium and per property and, where a goal could not be met, the world condition that prevented it. Every Request is answered by a Response.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "Header",
    "Mode",
    "MInstance",
    "UEnvironment",
    "SessionID",
    "AUCCXTID",
    "AUCCXTTime"
  ],
  "properties": {
    "Header": {
      "type": "string",
      "const": "PGM-UCC-V1.0"
    },
    "Mode": {
      "type": "string",
      "enum": [
        "RQ",
        "RS"
      ],
      "description": "RQ: Request (AUC to CXT), the old CXT Directive. RS: Response (CXT to AUC), the old CXT Status."
    },
    "MInstance": {
      "type": "string",
      "description": "Identifier of the M-Instance."
    },
    "UEnvironment": {
      "type": "string",
      "description": "Identifier of the U-Environment."
    },
    "SessionID": {
      "type": "string",
      "description": "Identifier of the A-User session."
    },
    "AUCCXTID": {
      "type": "string",
      "description": "Identifier of this Request or Response."
    },
    "AUCCXTTime": {
      "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json"
    },
    "RequestID": {
      "type": "string",
      "description": "Response only. ID of the Request this Response answers."
    },
    "Instruction": {
      "type": "string",
      "enum": [
        "PED",
        "GLA",
        "PKQ",
        "GII",
        "PRF",
        "PCE",
        "CME",
        "AFR"
      ],
      "description": "Request only. The Instruction under which AUC issues the Request."
    },
    "Exchange": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Phase": {
          "type": "string",
          "enum": [
            "new",
            "continuation"
          ]
        },
        "ResponseID": {
          "type": "string",
          "description": "ID of the Response to which a continuation Request follows."
        }
      },
      "required": [
        "Phase"
      ],
      "description": "Request only."
    },
    "Storage": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Write": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Category": {
                "type": "string"
              },
              "Readers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "Time": {
                "type": "string",
                "enum": [
                  "module",
                  "session",
                  "persistent"
                ]
              }
            },
            "required": [
              "Category"
            ]
          }
        },
        "Read": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Request only. What the AIM may write to and read from the Private Storage of the Module, under the rules set by AUC."
    },
    "ProcessActionOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "PAStatus": {
          "type": "string"
        },
        "Complements": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Constraint": {
          "type": "string",
          "description": "Resulting constraint on the Goal."
        }
      },
      "description": "Request only. Outcome of a Process Action performed by AUC in the M-Instance, conveyed so that the AIM operates knowing the current M-Instance state."
    },
    "Outcome": {
      "type": "string",
      "enum": [
        "achieved",
        "achieved_differently",
        "not_achieved"
      ],
      "description": "Response only. The outcome reached."
    },
    "Reason": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Code": {
          "type": "string",
          "enum": [
            "none",
            "occluded",
            "out_of_range",
            "target_lost",
            "no_signal",
            "insufficient_data",
            "not_permitted",
            "deadline_exceeded"
          ]
        },
        "Description": {
          "type": "string"
        }
      },
      "required": [
        "Code"
      ],
      "description": "Response only. Structured reason, required when Outcome is not 'achieved'."
    },
    "StorageOutcome": {
      "type": "array",
      "description": "Response only. Outcome of the writes instructed by the Request.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Category": {
            "type": "string"
          },
          "Result": {
            "type": "string",
            "enum": [
              "written",
              "not_authorised",
              "not_attempted"
            ]
          }
        },
        "required": [
          "Category",
          "Result"
        ]
      }
    },
    "Goal": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Objective": {
          "type": "string"
        },
        "Constraints": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "Objective"
      ],
      "description": "Request only. Binding as to the objective and the constraints."
    },
    "CaptureIndex": {
      "type": "integer",
      "minimum": 0,
      "description": "Spatial position of the capture within the current session. CaptureIndex of the Request."
    },
    "Audio": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Capture": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Requirement": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Priority": {
              "type": "string",
              "enum": [
                "low",
                "normal",
                "high"
              ]
            },
            "Subject": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "MLocation": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleLocation.json"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "Scene": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Objects": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Users": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "description": "What the capture is directed at."
            },
            "PointOfView": {
              "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpatialAttitude.json"
            },
            "Framing": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Region": {
                  "type": "string"
                },
                "TemporalWindow": {
                  "type": "string"
                }
              }
            },
            "Acquisition": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Duration": {
                  "type": "number",
                  "minimum": 0
                },
                "Deadline": {
                  "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json"
                }
              }
            }
          },
          "description": "How the medium is captured."
        },
        "Properties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "ObjectIdentifiers": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Velocity": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Distances": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "ProximityClass": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "FrequencyRange": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Timbre": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Spectrogram": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Loudness": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Reflectivity": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Reverberation": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Diffusion": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Absorption": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Doppler": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "RankedObjects": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "FilteredSalientObjects": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            }
          },
          "description": "The properties to be produced, at property level."
        },
        "TemporalScope": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Mode": {
              "type": "string",
              "enum": [
                "instantaneous",
                "windowed"
              ]
            },
            "WindowDurationMs": {
              "type": "number",
              "minimum": 0
            }
          },
          "description": "Temporal scope of the processing."
        }
      },
      "description": "Request only. Control of the capture and of the processing of the Audio (Audio Scene Descriptors)."
    },
    "Visual": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Capture": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Requirement": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Priority": {
              "type": "string",
              "enum": [
                "low",
                "normal",
                "high"
              ]
            },
            "Subject": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "MLocation": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleLocation.json"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "Scene": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Objects": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Users": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "description": "What the capture is directed at."
            },
            "PointOfView": {
              "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpatialAttitude.json"
            },
            "Framing": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Region": {
                  "type": "string"
                },
                "TemporalWindow": {
                  "type": "string"
                }
              }
            },
            "Acquisition": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Duration": {
                  "type": "number",
                  "minimum": 0
                },
                "Deadline": {
                  "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json"
                }
              }
            }
          },
          "description": "How the medium is captured."
        },
        "Properties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "ObjectIdentifiers": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "SpatialAttitudes": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "RelativeDepths": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "OcclusionFlags": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "AffordanceTags": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "InteractionPotential": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "RankedVisualObjects": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "SalientVisualObjects": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            }
          },
          "description": "The properties to be produced, at property level."
        },
        "TemporalScope": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Mode": {
              "type": "string",
              "enum": [
                "instantaneous",
                "windowed"
              ]
            },
            "WindowDurationMs": {
              "type": "number",
              "minimum": 0
            }
          },
          "description": "Temporal scope of the processing."
        }
      },
      "description": "Request only. Control of the capture and of the processing of the Visual (Visual Scene Descriptors)."
    },
    "Text": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Capture": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Requirement": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Priority": {
              "type": "string",
              "enum": [
                "low",
                "normal",
                "high"
              ]
            },
            "Subject": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "MLocation": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleLocation.json"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "Scene": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Objects": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Users": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "description": "What the capture is directed at."
            },
            "PointOfView": {
              "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpatialAttitude.json"
            },
            "Framing": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Region": {
                  "type": "string"
                },
                "TemporalWindow": {
                  "type": "string"
                }
              }
            },
            "Acquisition": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Duration": {
                  "type": "number",
                  "minimum": 0
                },
                "Deadline": {
                  "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json"
                }
              }
            }
          },
          "description": "How the medium is captured."
        },
        "Properties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "TextObject": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Segmentation": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            }
          },
          "description": "The properties to be produced, at property level."
        }
      },
      "description": "Request only. Control of the capture and of the processing of the Text, native or converted from the Speech."
    },
    "Speech": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Capture": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Requirement": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Priority": {
              "type": "string",
              "enum": [
                "low",
                "normal",
                "high"
              ]
            },
            "Subject": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "MLocation": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleLocation.json"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "Scene": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Objects": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Users": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "description": "What the capture is directed at."
            },
            "PointOfView": {
              "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpatialAttitude.json"
            },
            "Framing": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Region": {
                  "type": "string"
                },
                "TemporalWindow": {
                  "type": "string"
                }
              }
            },
            "Acquisition": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Duration": {
                  "type": "number",
                  "minimum": 0
                },
                "Deadline": {
                  "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json"
                }
              }
            }
          },
          "description": "How the medium is captured."
        },
        "Properties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "SpeechDescriptors": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "LinguisticParalinguisticEvidence": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            }
          },
          "description": "The properties to be produced, at property level."
        },
        "ASREnabled": {
          "type": "boolean",
          "description": "Whether Automatic Speech Recognition shall be active."
        },
        "LanguageHints": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z]{3}$"
          },
          "description": "ISO 639-3 codes of the expected languages."
        },
        "DomainQueryEnabled": {
          "type": "boolean",
          "description": "Whether the processing may issue Domain Requests."
        }
      },
      "description": "Request only. Control of the capture and of the processing of the Speech."
    },
    "User": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Capture": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "Requirement": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "Priority": {
              "type": "string",
              "enum": [
                "low",
                "normal",
                "high"
              ]
            },
            "Subject": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "MLocation": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleLocation.json"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "Scene": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Objects": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "Users": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "description": "What the capture is directed at."
            },
            "PointOfView": {
              "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SpatialAttitude.json"
            },
            "Framing": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Region": {
                  "type": "string"
                },
                "TemporalWindow": {
                  "type": "string"
                }
              }
            },
            "Acquisition": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "Duration": {
                  "type": "number",
                  "minimum": 0
                },
                "Deadline": {
                  "$ref": "https://schemas.mpai.community/OSD/V1.5/data/SimpleTime.json"
                }
              }
            }
          },
          "description": "How the medium is captured."
        },
        "Properties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "HarmonisedMultimodalContext": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "BehaviouralExpressiveIndicators": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "CrossModalInterpretationEvidence": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            }
          },
          "description": "The properties to be produced, at property level."
        },
        "InferencePolicy": {
          "type": "string",
          "enum": [
            "ObservationOnly",
            "EvidenceBased",
            "RestrictedInference"
          ]
        },
        "ConfidenceThreshold": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "DomainQueryEnabled": {
          "type": "boolean",
          "description": "Whether the processing may issue Domain Requests."
        }
      },
      "description": "Request only. Control of the derivation of the first-pass User State."
    },
    "DomainPolicy": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Query": {
          "type": "string",
          "enum": [
            "required",
            "optional",
            "not_requested"
          ]
        },
        "Constraints": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Request only. Policy on the Domain information that Context Description may obtain from Domain Access."
    },
    "GoalUnderstood": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Objective": {
          "type": "string"
        },
        "Constraints": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "Objective"
      ],
      "description": "Response only. The goal as the AIM understood it."
    },
    "ContextDescriptorsID": {
      "type": "string",
      "description": "Response only. Identifier of the Context Descriptors produced."
    },
    "UserPresence": {
      "type": "string",
      "enum": [
        "present",
        "absent",
        "unknown"
      ],
      "description": "Response only."
    },
    "AudioOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Outcome": {
          "type": "string",
          "enum": [
            "produced",
            "partial",
            "failed",
            "not_requested"
          ]
        },
        "ChannelState": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "error"
          ]
        },
        "Reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Reason": {
                "type": "string",
                "enum": [
                  "occluded",
                  "out_of_range",
                  "target_lost",
                  "no_signal",
                  "insufficient_data",
                  "not_permitted",
                  "deadline_exceeded"
                ]
              },
              "EntityID": {
                "type": "string"
              }
            },
            "required": [
              "Reason"
            ]
          }
        },
        "PropertyFulfilment": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "ObjectIdentifiers": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Velocity": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Distances": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "ProximityClass": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "FrequencyRange": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Timbre": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Spectrogram": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Loudness": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Reflectivity": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Reverberation": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Diffusion": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Absorption": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Doppler": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "RankedObjects": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "FilteredSalientObjects": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            }
          },
          "description": "Fulfilment of the requested properties."
        }
      },
      "required": [
        "Outcome"
      ],
      "description": "Response only. Outcome of the capture and processing of the Audio."
    },
    "VisualOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Outcome": {
          "type": "string",
          "enum": [
            "produced",
            "partial",
            "failed",
            "not_requested"
          ]
        },
        "ChannelState": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "error"
          ]
        },
        "Reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Reason": {
                "type": "string",
                "enum": [
                  "occluded",
                  "out_of_range",
                  "target_lost",
                  "no_signal",
                  "insufficient_data",
                  "not_permitted",
                  "deadline_exceeded"
                ]
              },
              "EntityID": {
                "type": "string"
              }
            },
            "required": [
              "Reason"
            ]
          }
        },
        "PropertyFulfilment": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "ObjectIdentifiers": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "SpatialAttitudes": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "RelativeDepths": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "OcclusionFlags": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "AffordanceTags": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "InteractionPotential": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "RankedVisualObjects": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "SalientVisualObjects": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            }
          },
          "description": "Fulfilment of the requested properties."
        }
      },
      "required": [
        "Outcome"
      ],
      "description": "Response only. Outcome of the capture and processing of the Visual."
    },
    "TextOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Outcome": {
          "type": "string",
          "enum": [
            "produced",
            "partial",
            "failed",
            "not_requested"
          ]
        },
        "ChannelState": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "error"
          ]
        },
        "Reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Reason": {
                "type": "string",
                "enum": [
                  "occluded",
                  "out_of_range",
                  "target_lost",
                  "no_signal",
                  "insufficient_data",
                  "not_permitted",
                  "deadline_exceeded"
                ]
              },
              "EntityID": {
                "type": "string"
              }
            },
            "required": [
              "Reason"
            ]
          }
        },
        "PropertyFulfilment": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "TextObject": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Segmentation": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            }
          },
          "description": "Fulfilment of the requested properties."
        }
      },
      "required": [
        "Outcome"
      ],
      "description": "Response only. Outcome of the capture and processing of the Text."
    },
    "SpeechOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Outcome": {
          "type": "string",
          "enum": [
            "produced",
            "partial",
            "failed",
            "not_requested"
          ]
        },
        "ChannelState": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "error"
          ]
        },
        "Reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Reason": {
                "type": "string",
                "enum": [
                  "occluded",
                  "out_of_range",
                  "target_lost",
                  "no_signal",
                  "insufficient_data",
                  "not_permitted",
                  "deadline_exceeded"
                ]
              },
              "EntityID": {
                "type": "string"
              }
            },
            "required": [
              "Reason"
            ]
          }
        },
        "PropertyFulfilment": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "SpeechDescriptors": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "LinguisticParalinguisticEvidence": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            }
          },
          "description": "Fulfilment of the requested properties."
        },
        "DomainQueryStatus": {
          "type": "string",
          "enum": [
            "issued",
            "not_issued"
          ]
        }
      },
      "required": [
        "Outcome"
      ],
      "description": "Response only. Outcome of the capture and processing of the Speech."
    },
    "UserOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Outcome": {
          "type": "string",
          "enum": [
            "produced",
            "partial",
            "failed",
            "not_requested"
          ]
        },
        "ChannelState": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "error"
          ]
        },
        "Reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Reason": {
                "type": "string",
                "enum": [
                  "occluded",
                  "out_of_range",
                  "target_lost",
                  "no_signal",
                  "insufficient_data",
                  "not_permitted",
                  "deadline_exceeded"
                ]
              },
              "EntityID": {
                "type": "string"
              }
            },
            "required": [
              "Reason"
            ]
          }
        },
        "PropertyFulfilment": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "HarmonisedMultimodalContext": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "BehaviouralExpressiveIndicators": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "CrossModalInterpretationEvidence": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            }
          },
          "description": "Fulfilment of the requested properties."
        },
        "DomainQueryStatus": {
          "type": "string",
          "enum": [
            "issued",
            "not_issued"
          ]
        }
      },
      "required": [
        "Outcome"
      ],
      "description": "Response only. Outcome of the derivation of the first-pass User State."
    },
    "IdentityEvents": {
      "type": "array",
      "description": "Response only.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Event": {
            "type": "string",
            "enum": [
              "spawn",
              "merge",
              "promoted_to_user"
            ]
          },
          "ParentIDs": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          },
          "ChildIDs": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "Event"
        ]
      }
    },
    "DataXMData": {
      "$ref": "https://schemas.mpai.community/PTF/V1.0/data/DataExchangeMetadata.json"
    },
    "DescrMetadata": {
      "type": "string",
      "maxLength": 2048
    },
    "AVA": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Properties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "CandidateAssociation": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "CorrespondenceResolution": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "SceneGeometry": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            },
            "JointSalience": {
              "type": "string",
              "enum": [
                "required",
                "optional",
                "not_requested"
              ]
            }
          }
        },
        "PositionTolerance": {
          "type": "number",
          "minimum": 0,
          "description": "Tolerance on the divergence of the position estimates of the two modalities."
        },
        "SalienceCriteria": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Request only. The alignment of audio and visual Entities: what is required, the tolerance on positions and the criteria for the Joint Salience (produced only when required)."
    },
    "AVAOutcome": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Outcome": {
          "type": "string",
          "enum": [
            "produced",
            "partial",
            "failed",
            "not_requested"
          ]
        },
        "ChannelState": {
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "error"
          ]
        },
        "Reasons": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "Reason": {
                "type": "string",
                "enum": [
                  "occluded",
                  "out_of_range",
                  "target_lost",
                  "no_signal",
                  "insufficient_data",
                  "not_permitted",
                  "deadline_exceeded"
                ]
              },
              "EntityID": {
                "type": "string"
              }
            },
            "required": [
              "Reason"
            ]
          }
        },
        "PropertyFulfilment": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "ObjectIdentifiers": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Velocity": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Distances": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "ProximityClass": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "FrequencyRange": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Timbre": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Spectrogram": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Loudness": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Reflectivity": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Reverberation": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Diffusion": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Absorption": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "Doppler": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "RankedObjects": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            },
            "FilteredSalientObjects": {
              "type": "string",
              "enum": [
                "produced",
                "partial",
                "missing",
                "not_requested"
              ]
            }
          },
          "description": "Fulfilment of the requested properties."
        }
      },
      "required": [
        "Outcome"
      ],
      "description": "Response only. Outcome for the alignment of audio and visual Entities."
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "Mode": {
            "const": "RQ"
          }
        }
      },
      "then": {
        "required": [
          "Instruction",
          "Exchange",
          "Goal"
        ],
        "properties": {
          "RequestID": false,
          "Outcome": false,
          "Reason": false,
          "StorageOutcome": false,
          "GoalUnderstood": false,
          "ContextDescriptorsID": false,
          "UserPresence": false,
          "AudioOutcome": false,
          "VisualOutcome": false,
          "TextOutcome": false,
          "SpeechOutcome": false,
          "UserOutcome": false,
          "IdentityEvents": false
        }
      }
    },
    {
      "if": {
        "properties": {
          "Mode": {
            "const": "RS"
          }
        }
      },
      "then": {
        "required": [
          "RequestID",
          "Outcome",
          "GoalUnderstood"
        ],
        "properties": {
          "Instruction": false,
          "Exchange": false,
          "Storage": false,
          "ProcessActionOutcome": false,
          "Goal": false,
          "Audio": false,
          "Visual": false,
          "Text": false,
          "Speech": false,
          "User": false,
          "DomainPolicy": false
        }
      }
    },
    {
      "if": {
        "properties": {
          "Mode": {
            "const": "RS"
          },
          "Outcome": {
            "enum": [
              "achieved_differently",
              "not_achieved"
            ]
          }
        },
        "required": [
          "Mode",
          "Outcome"
        ]
      },
      "then": {
        "required": [
          "Reason"
        ]
      }
    }
  ]
}