{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://schemas.mpai.community/AIF/V2.0/AIW-AIM-metadata.schema.json",
    "$id": "https://schemas.mpai.community/PAF/V1.5/AIMs/VideoconferenceClientReceiver.json",
    "title": "VideoconferenceClientReceiver",
    "Identifier": {
      "ImplementerID": "/* String assigned by IIDRA */",
      "Specification": { "Standard": "MPAI-PAF", "AIW": "ABV-CRX" } },
    "APIProfile": "Secure",
    "Description": " This AIW composes and renders the Avatar-Based Videoconference scene.",
    "Types": [
      { "Name": "PointOfView_t", "Type": "uint8[]" },
      { "Name": "AudioObject_t", "Type": "uint8[]" },
      { "Name": "PortableAvatar_t", "Type": "uint8[]" },
      { "Name": "TextObject_t", "Type": "uint8[]" },
      { "Name": "VisualObject_t", "Type": "uint8[]" } ],
    "Ports": [
      {
        "Name": "PortableAvatar",
        "Direction": "InputOutput",
        "RecordType": "PortableAvatar_t",
        "Technology": "Software",
        "Protocol": "",
        "IsRemote": false
      },
      {
        "Name": "PointOfView",
        "Direction": "InputOutput",
        "RecordType": "PointOfView_t",
        "Technology": "Software",
        "Protocol": "",
        "IsRemote": false
      },
      {
        "Name": "OutputAudio",
        "Direction": "OutputInput",
        "RecordType": "uint8[]",
        "Technology": "Software",
        "Protocol": "",
        "IsRemote": false
      },
      {
        "Name": "OutputVisual",
        "Direction": "OutputInput",
        "RecordType": "uint8[]",
        "Technology": "Software",
        "Protocol": "",
        "IsRemote": false
      },
      {
        "Name": "OutputText",
        "Direction": "OutputText",
        "RecordType": "uint8[]",
        "Technology": "Software",
        "Protocol": "",
        "IsRemote": false
      }
    ],
    "SubAIMs": [
      {
        "Name": "PortableAvatarDemultiplexing",
        "Identifier": {
          "ImplementerID": "/* String assigned by IIDRA */",
          "Specification": { 
            "Standard": "MPAI-PAF",
            "AIW": "",
            "AIM": "PortableAvatarDemultiplexing",
            "Version": "V1.5"
          }
        }
      },
      {
        "Name": "VisualSceneCreation",
        "Identifier": {
          "ImplementerID": "/* String assigned by IIDRA */",
          "Specification": {
            "Standard": "MPAI-PAF",
            "AIW": "",
            "AIM": "VisualSceneCreation",
            "Version": "V1.5"
          }
        }
      },
      {
        "Name": "AudioVisualSceneCreation",
        "Identifier": {
          "ImplementerID": "/* String assigned by IIDRA */",
          "Specification": {
            "Standard": "MPAI-PAF",
            "AIW": "",
            "AIM": "AudioVisualSceneCreation",
            "Version": "V1.5"
          }
        }
      },
      {
        "Name": "AudioVisualSceneRendering",
        "Identifier": {
          "ImplementerID": "/* String assigned by IIDRA */",
          "Specification": {
            "Standard": "MPAI-PAF",
            "AIW": "",
            "AIM": "AudioVisualSceneRendering",
            "Version": "V1.5"
          }
        }
      }
    ],
    "Topology": [
      { "Output": { "AIMName": "", "PortName": "PortableAvatar" },
        "Input": {  "AIMName": "PortableAvatarDemultiplexing", "PortName": "PortableAvatar" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "AvatarID" },
        "Input": { "AIMName": "VisualSceneCreation", "PortName": "AvatarID" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "VisualSceneDescriptors" },
        "Input": { "AIMName": "VisualSceneCreation", "PortName": "VisualSceneDescriptors" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "AvatarModel" },
        "Input": { "AIMName": "VisualSceneCreation", "PortName": "AvatarModel" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "SpatialAttitude" }, 
        "Input": {"AIMName": "VisualSceneCreation", "PortName": "SpatialAttitude" } }, 
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "BodyDescriptors" },
        "Input": { "AIMName": "VisualSceneCreation", "PortName": "BodyDescriptors" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "FaceDescriptors" },
        "Input": { "AIMName": "VisualSceneCreation", "PortName": "FaceDescriptors" } },
      { "Output": { "AIMName": "VisualSceneCreation", "PortName": "VisualSceneDescriptors" }, 
        "Input": { "AIMName": "AudioSceneCreation", "PortName": "VisualSceneDescriptors" } },
      {"Output": { "AIMName": "VisualSceneCreation", "PortName": "MouthSpatialAttitude" },
        "Input": { "AIMName": "AudioSceneCreation", "PortName": "MouthSpatialAttitude" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "AvatarID" },
        "Input": { "AIMName": "AudioVisualSceneCreation", "PortName": "AvatarID" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "InputSpeech" },
        "Input": { "AIMName": "AudioSceneCreation", "PortName": "InputSpeech" } },
      { "Output": { "AIMName": "", "PortName": "PointofView" }, 
        "Input": { "AIMName": "AVSceneRendering", "PortName": "PointofView" } },
      { "Output": { "AIMName": "AudioVisualSceneCreation", "PortName": "AudioVisualSceneDescriptors" },
        "Input": { "AIMName": "AudioVisualSceneRendering", "PortName": "AudioVisualSceneDescriptors" } },
      {  "Output": { "AIMName": "AVSceneRendering", "PortName": "OutputAudio" },
        "Input": { "AIMName": "", "PortName": "OutputAudio" } },
      { "Output": { "AIMName": "AVSceneRendering", "PortName": "OutputVisual" },
        "Input": { "AIMName": "", "PortName": "OutputVisual" } },
      { "Output": { "AIMName": "PortableAvatarDemultiplexing", "PortName": "OutputText" },
        "Input": { "AIMName": "", "PortName": "OutputText" } } ],
    "Implementations": [],
    "ResourcePolicies": [],
    "Documentation": [ { "Type": "Tutorial", "URI": "https://mpai.community/standards/MPAI-PAF/" } ]
  }     