{
  "Identifier": {
    "ImplementerID": "/* String assigned by IIDRA */",
    "Specification": {
      "Name": "MPAI-PAF",
      "AIW": "",
      "AIM": "PersonalStatusDisplay",
      "Version": "1.1"
    }
  },
  "Description": "This AIM outputs the Avatar Model and renders a speaking avatar from text and Personal Status.",
  "Types": [
    {
      "Name": "AvatarID_t",
      "Type": "uint8[]"
    },
    {
      "Name": "Text_t",
      "Type": "{uint8[] | uint16[]}"
    },
    {
      "Name": "PersonalStatus_t",
      "Type": "uint8[]}"
    },
    {
      "Name": "3DGraphics_t",
      "Type": "uint8[]"
    },
    {
      "Name": "PortableAvatar_t",
      "Type": "uint8[]"
    }
  ],
  "Ports": [
    {
      "Name": "AvatarID",
      "Direction": "OutputInput",
      "RecordType": "AvatarID_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "AvatarModel",
      "Direction": "OutputInput",
      "RecordType": "3DGraphics_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "PSSpeech",
      "Direction": "InputOutput",
      "RecordType": "PersonalStatus_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "PSFace",
      "Direction": "InputOutput",
      "RecordType": "PersonalStatus_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "PSGesture",
      "Direction": "InputOutput",
      "RecordType": "PersonalStatus_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "MachineText",
      "Direction": "InputOutput",
      "RecordType": "Text_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "PortableAvatar",
      "Direction": "OutputInput",
      "RecordType": "PersonalAvatar_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    }
  ],
  "SubAIMs": [
    {
      "Name": "TextToSpeechSpeech",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-MMC",
          "AIW": "",
          "AIM": "TextToSpeechSpeech",
          "Version": "2.1"
        }
      }
    },
    {
      "Name": "InputFaceDescription",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-PAF",
          "AIW": "",
          "AIM": "InputFaceDescription",
          "Version": "1.1"
        }
      }
    },
    {
      "Name": "InputBodyDescription",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-PAF",
          "AIW": "",
          "AIM": "InputBodyDescription",
          "Version": "1.1"
        }
      }
    },
    {
      "Name": "PortableAvatarMultiplexing",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-PAF",
          "AIW": "",
          "AIM": "PortableAvatarMultiplexing",
          "Version": "1.1"
        }
      }
    }
  ],
  "Topology": [
    {
      "Output": {
        "AIMName": "",
        "PortName": "MachineText1"
      },
      "Input": {
        "AIMName": "TextToSpeech",
        "PortName": "MachineText1"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "PSSpeech"
      },
      "Input": {
        "AIMName": "TextToSpeech",
        "PortName": "PSSpeech"
      }
    },
    {
      "Output": {
        "AIMName": "TextToSpeech",
        "PortName": "MachineSpeech2"
      },
      "Input": {
        "AIMName": "InputFaceDescription",
        "PortName": "MachineSpeech2"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "AvatarModel1"
      },
      "Input": {
        "AIMName": "InputFaceDescription",
        "PortName": "AvatarModel1"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "PSFace"
      },
      "Input": {
        "AIMName": "InputFaceDescription",
        "PortName": "PSFace"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "MachineText2"
      },
      "Input": {
        "AIMName": "InputFaceDescription",
        "PortName": "MachineText2"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "MachineText3"
      },
      "Input": {
        "AIMName": "InputBodyDescription",
        "PortName": "MachineText3"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "AvatarModel2"
      },
      "Input": {
        "AIMName": "InputBodyDescription",
        "PortName": "AvatarModel2"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "PSGesture"
      },
      "Input": {
        "AIMName": "InputBodyDescription",
        "PortName": "PSGesture"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "AvatarID"
      },
      "Input": {
        "AIMName": "PortableAvatarMultiplexing",
        "PortName": "AvatarID"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "MachineText1"
      },
      "Input": {
        "AIMName": "PortableAvatarMultiplexing",
        "PortName": "MachineText1"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "MachineFaceDescriptors"
      },
      "Input": {
        "AIMName": "PortableAvatarMultiplexing",
        "PortName": "MachineFaceDescriptors"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "MachineBodyDescriptors"
      },
      "Input": {
        "AIMName": "PortableAvatarMultiplexing",
        "PortName": "MachineBodyDescriptors"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "AvatarModel3"
      },
      "Input": {
        "AIMName": "PortableAvatarMultiplexing",
        "PortName": "AvatarModel3"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": ""
      },
      "Input": {
        "AIMName": "PortableAvatarMultiplexing",
        "PortName": ""
      }
    }
  ],
  "Implementations": [],
  "Documentation": [
    {
      "Type": "Tutorial",
      "URI": "https://mpai.community/standards/mpai-paf/"
    }
  ]
}