{
    "name":     "portName",
    "repId":    "IDL:<namespace>/<type>:<version>",
    "direction": "Uses", /* or Provides */
    "idl": {
        "namespace":    "BULKIO", /* or FRONTEND */
        "version":      ":<version>",
        "type":         "<type>"
    }
}

Every port supports this interface, at a minimum. Many of these fields can be used by the client to determine what additional features are exposed.