{ "$schema":    "https://json-schema.org/draft/2020-12/schema",
  "$comment":   "https://schemas.mpai.community/AIF/V3.0/AIMMetadata.json",
  "$id":        "https://schemas.mpai.community/CAV2/V1.1/AIMs/TrafficObstacleAvoidance.json",
  "title":      "Traffic Obstacle Avoidance V1.1",

  "Identifier": { "ImplementerID": "/* String assigned by IIDRA */", "AIM": { "const": "CAV-TOA-V1.1" } },

  "APIProfile": "Basic",
  "Description":"This AIM refines the Trajectory received using Alert and Road State.",

  "Types":      [ { "Name": "FullEnvironmentDescriptors_t", "Type": "uint8[]" },
                  { "Name": "Trajectory_t",                 "Type": "uint8[]" },
                  { "Name": "AMSData_t",                    "Type": "uint8[]" },
                  { "Name": "Alert_t",                      "Type": "uint8[]" },
                  { "Name": "AMSMASMessage_t",              "Type": "uint8[]" },
                  { "Name": "RoadState_t",                  "Type": "uint8[]" },
                  { "Name": "CAVState_t",                   "Type": "uint8[]" },
                  { "Name": "Interaction_t",                "Type": "uint8[]" } ],

  "Ports":      [ { "Name": "FullEnvironmentDescriptorsIn", "Direction": "InputOutput", "RecordType": "FullEnvironmentDescriptors_t", "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "Trajectory",                   "Direction": "InputOutput", "RecordType": "Trajectory_t",                 "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "AMSData",                      "Direction": "InputOutput", "RecordType": "AMSData_t",                    "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "AlertIn",                      "Direction": "InputOutput", "RecordType": "Alert_t",                      "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "AMSMASMessageIn",              "Direction": "InputOutput", "RecordType": "AMSMASMessage_t",              "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "FullEnvironmentDescriptorsOut","Direction": "OutputInput", "RecordType": "FullEnvironmentDescriptors_t", "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "AMSMASMessageOut",             "Direction": "OutputInput", "RecordType": "AMSMASMessage_t",              "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "RoadState",                    "Direction": "OutputInput", "RecordType": "RoadState_t",                  "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "CAVState",                     "Direction": "OutputInput", "RecordType": "CAVState_t",                   "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "AlertOut",                     "Direction": "OutputInput", "RecordType": "Alert_t",                      "Technology": "Software", "Protocol": "", "IsRemote": false },
                  { "Name": "Interaction",                  "Direction": "OutputInput", "RecordType": "Interaction_t",                "Technology": "Software", "Protocol": "", "IsRemote": false } ],

  "SubAIMs":          [],
  "Topology":         [],
  "Implementations":  [],
  "ResourcePolicies": [],
  "Documentation":    [ { "Type": "Tutorial", "URI": "https://mpai.community/standards/mpai-cav/" } ] }
