docs: def classifyParameters(self):
          """Return (arguments, options, outputs) tuple.  Together, the
          three lists contain all parameters (recursively fetched from
          all parameter groups), classified into optional parameters,
          required ones (with an index), and simple output parameters
          (that would get written to a file using
          --returnparameterfile).  `arguments` contains the required
          arguments, already sorted by index."""
  
          arguments = []
          options = []
          outputs = []
          for parameter in self.parameters():
              if parameter.channel == 'output' and not parameter.isExternalType():
                  outputs.append(parameter)
              elif parameter.index is not None:
                  arguments.append(parameter)
                  if parameter.flag is not None or parameter.longflag is not None:
                      logger.warning("Parameter '%s' has both index=%d and flag set." % (
                          parameter.identifier(), parameter.index))
              elif parameter.flag or parameter.longflag:
                  options.append(parameter)
              else:
                  logger.warning("Parameter '%s' cannot be passed (missing flag, longflag, or index)!" % parameter.name)
          arguments.sort(key = lambda parameter: parameter.index)
          return (arguments, options, outputs)