code: def _input_to_dict(i, records, remapped=None):
      
      if not remapped: remapped = {}
      var_type, records = _to_variable_type(i["type"], records)
      if var_type.startswith("Array") and "inputBinding" in i.get("type", {}):
          ib = i["type"]["inputBinding"]
      elif "inputBinding" in i:
          ib = i["inputBinding"]
      else:
          ib = {"prefix": None, "itemSeparator": ";;", "position": None}
      name = _id_to_localname(i["id"]) if "id" in i else i["name"]
      return {"name": remapped.get(name) or name,
              "variable_type": var_type,
              "prefix": ib["prefix"], "separator": ib["itemSeparator"],
              "position": ib["position"], "is_required": True,
              "default": i.get("default", None), "separate": ib.get("separate", True)}, records
docs: Convert CWL input into dictionary required for a cwl2wdl Input object.