docs: def _HandleLegacy(self, args, token=None):
      """Creates a new hunt."""
  
      # We only create generic hunts with /hunts/create requests.
      generic_hunt_args = rdf_hunts.GenericHuntArgs()
      generic_hunt_args.flow_runner_args.flow_name = args.flow_name
      generic_hunt_args.flow_args = args.flow_args
  
      # Clear all fields marked with HIDDEN, except for output_plugins - they are
      # marked HIDDEN, because we have a separate UI for them, not because they
      # shouldn't be shown to the user at all.
      #
      # TODO(user): Refactor the code to remove the HIDDEN label from
      # HuntRunnerArgs.output_plugins.
      args.hunt_runner_args.ClearFieldsWithLabel(
          rdf_structs.SemanticDescriptor.Labels.HIDDEN,
          exceptions="output_plugins")
      args.hunt_runner_args.hunt_name = standard.GenericHunt.__name__
  
      if args.original_hunt and args.original_flow:
        raise ValueError(
            "A hunt can't be a copy of a flow and a hunt at the same time.")
      if args.original_hunt:
        ref = rdf_hunts.FlowLikeObjectReference.FromHuntId(
            utils.SmartStr(args.original_hunt.hunt_id))
        args.hunt_runner_args.original_object = ref
      elif args.original_flow:
        ref = rdf_hunts.FlowLikeObjectReference.FromFlowIdAndClientId(
            utils.SmartStr(args.original_flow.flow_id),
            utils.SmartStr(args.original_flow.client_id))
        args.hunt_runner_args.original_object = ref
  
      # Anyone can create the hunt but it will be created in the paused
      # state. Permissions are required to actually start it.
      with implementation.StartHunt(
          runner_args=args.hunt_runner_args, args=generic_hunt_args,
          token=token) as hunt_obj:
  
        # Nothing really to do here - hunts are always created in the paused
        # state.
        logging.info("User %s created a new %s hunt (%s)", token.username,
                     hunt_obj.args.flow_runner_args.flow_name, hunt_obj.urn)
  
        return ApiHunt().InitFromAff4Object(hunt_obj, with_full_summary=True)