{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.mpai.community/AIF/V2.0/AIW-AIM-metadata.schema.json",
  "title": "AIW/AIM metadata for HMC v1 ",
  "Identifier": {
    "ImplementerID": "/* String assigned by IIDRA */",
    "Specification": {
      "Standard": "MPAI-HMC",
      "AIW": "HMC-ECC",
      "AIM": "",
      "Version": "1"
    }
  },
  "APIProfile": "Secure",
  "Description": " This AIW enablse a human or machine (entity) to have an audio-Visual com-munication with another entity",
  "Types": [
    {
      "Name": "PortableAvatar_t",
      "Type": "uint8[]"
    },
    {
      "Name": "Selector_t",
      "Type": "{Text_t | Speech_t}"
    },
    {
      "Name": "Text_t",
      "Type": "{uint8[] | uint16[]}"
    },
    {
      "Name": "Video_t",
      "Type": "{uint8[] Red; uint8[] Green; uint8[] Blue; uint8[] | uint16[] Depth}"
    },
    {
      "Name": "Audio_t",
      "Type": "uint16[]"
    },
    {
      "Name": "ArrayAudio_t",
      "Type": "Audio_t[]"
    }
  ],
  "Ports": [
    {
      "Name": "InputPortableAvatar",
      "Direction": "OutputInput",
      "RecordType": "PortableAvatar_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "InputSelector",
      "Direction": "InputOutput",
      "RecordType": "Selector_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "InputText",
      "Direction": "InputOutput",
      "RecordType": "Text_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "InputAudio",
      "Direction": "InputOutput",
      "RecordType": "Speech_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "InputVisual",
      "Direction": "InputOutput",
      "RecordType": "Video_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "OutputPortableAvatar",
      "Direction": "OutputInput",
      "RecordType": "PortableAvatar_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "OutputText",
      "Direction": "OutputInput",
      "RecordType": "Text_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "OutputAudio",
      "Direction": "OutputInput",
      "RecordType": "Speech_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "OutputVisual",
      "Direction": "OutputInput",
      "RecordType": "Video_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    }
  ],
  "SubAIMs": [
    {
      "Name": "AVSceneIntegrationDescription",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-HMC",
          "AIW": "HMC-ECC",
          "AIM": "AVSceneIntegrationDescription",
          "Version": "1"
        }
      }
    },
    {
      "Name": "AudioVisualDescription",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-HMC",
          "AIW": "MMC-ECC",
          "AIM": "AudioVisualDescription",
          "Version": "1"
        }
      }
    },
    {
      "Name": "EntityContextUnderstanding",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-HMC",
          "AIW": "MMC-ECC",
          "AIM": "EntityContextUnderstanding",
          "Version": "1"
        }
      }
    },
    {
      "Name": "EntityDialogueProcessing",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-HMC",
          "AIW": "MMC-ECC",
          "AIM": "Entity Dialogue Processing",
          "Version": "1"
        }
      }
    },
    {
      "Name": "PersonalStatusDisplay",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-HMC",
          "AIW": "MMC-ECC",
          "AIM": "PersonalStatusDisplay",
          "Version": "1"
        }
      }
    },
    {
      "Name": "AudioVisualSceneRendering",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-HMC",
          "AIW": "MMC-ECC",
          "AIM": "AudioVisualSceneRendering",
          "Version": "2"
        }
      }
    },
    {
      "Name": "PersonalStatusDisplay",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-MMC",
          "AIW": "MMC-CAS",
          "AIM": "PersonalStatusDisplay",
          "Version": "2"
        }
      }
    }
  ],
  "Topology": [
    {
      "Output": {
        "AIMName": "",
        "PortName": "PortableAvatar"
      },
      "Input": {
        "AIMName": "AVSceneIntegrationDescription",
        "PortName": "PortableAvatar"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "Selector"
      },
      "Input": {
        "AIMName": "AVSceneDescription",
        "PortName": "Selector"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "InputText"
      },
      "Input": {
        "AIMName": " AVSceneDescription ",
        "PortName": "InputText"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "InputAudio"
      },
      "Input": {
        "AIMName": "AVSceneDescription",
        "PortName": "InputAudio"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "InputVisual"
      },
      "Input": {
        "AIMName": "AVSceneDescription",
        "PortName": "InputVisual"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "AVSceneDescriptors1"
      },
      "Input": {
        "AIMName": "AVSceneIntegrationDescription",
        "PortName": "AVSceneDescriptors1"
      }
    },
    {
      "Output": {
        "AIMName": "VisualSceneDescription",
        "PortName": "AVSceneDescriptors2"
      },
      "Input": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "AVSceneDescriptors2"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "AVSceneGeometry"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "AVSceneGeometry"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "PersonalStatus"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "PersonalStatus"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "EntityID"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "EntityID"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "TranslatedText"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "TranslatedText"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "RefinedText"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "RefinedText"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "Meaning"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "Meaning"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "AudioInstanceID"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "AudioInstanceID"
      }
    },
    {
      "Output": {
        "AIMName": "EntityContextUnderstanding",
        "PortName": "VisualInstanceID"
      },
      "Input": {
        "AIMName": "Entity Dialogue Processing",
        "PortName": "VisualInstanceID"
      }
    },
    {
      "Output": {
        "AIMName": "EntityDialogueProcessing",
        "PortName": "MachinePersonalStatus"
      },
      "Input": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "MachinePersonalStatus"
      }
    },
    {
      "Output": {
        "AIMName": "EntityDialogueProcessing",
        "PortName": "MachineAvatarID"
      },
      "Input": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "MachineAvatarID"
      }
    },
    {
      "Output": {
        "AIMName": "EntityDialogueProcessing",
        "PortName": "MachineText"
      },
      "Input": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "MachineText"
      }
    },
    {
      "Output": {
        "AIMName": "EntityDialogueProcessing",
        "PortName": "OutputPortableAvatar1"
      },
      "Input": {
        "AIMName": "",
        "PortName": "OutputPortableAvatar1"
      }
    },
    {
      "Output": {
        "AIMName": "EntityDialogueProcessing",
        "PortName": "OutputPortableAvatar2"
      },
      "Input": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "OutputPortableAvatar2"
      }
    },
    {
      "Output": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "OutputText"
      },
      "Input": {
        "AIMName": "",
        "PortName": "OutputText"
      }
    },
    {
      "Output": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "OutputAudio"
      },
      "Input": {
        "AIMName": "",
        "PortName": "OutputAudio"
      }
    },
    {
      "Output": {
        "AIMName": "PersonalStatusDisplay",
        "PortName": "OutputVisual"
      },
      "Input": {
        "AIMName": "",
        "PortName": "OutputVisual"
      }
    }
  ],
  "Implementations": [],
  "ResourcePolicies": [],
  "Documentation": [
    {
      "Type": "Tutorial",
      "URI": "https://mpai.community/standards/mpai-hmc/"
    }
  ]
}