     args = Enum.reject(args, &Enum.member?(ignored_args, &1))
     {command, path, unknown_args} = split_args(args, current_dir, command_names)
 
+    {switches_keywords, unknown_switches_keywords} =
+      {switches_keywords, unknown_switches_keywords}
+      |> parse_min_priority()
+
     %__MODULE__{
       command: command,
       path: path,

    help: :boolean,
    ignore_checks: :string,
    ignore: :string,
    min_priority: :integer,
    only: :string,
    read_from_stdin: :boolean,
    strict: :boolean,

      unknown_switches: unknown_switches_keywords
    }
  end

  defp parse_min_priority({[min_priority: "higher"] = switches, unknown_switches}) do
    {
      Keyword.put(switches, :min_priority, 20),
      unknown_switches
    }
  end
  defp parse_min_priority({[min_priority: "high"] = switches, unknown_switches}) do
    {
      Keyword.put(switches, :min_priority, 10),
      unknown_switches
    }
  end
  defp parse_min_priority({[min_priority: "normal"] = switches, unknown_switches}) do
    {
      Keyword.put(switches, :min_priority, 1),
      unknown_switches
    }
  end
  defp parse_min_priority({[min_priority: "low"] = switches, unknown_switches}) do
    {
      Keyword.put(switches, :min_priority, -10),
      unknown_switches
    }
  end
  defp parse_min_priority({[min_priority: "ignore"] = switches, unknown_switches}) do
    {
      Keyword.put(switches, :min_priority, -100),
      unknown_switches
    }
  end
  defp parse_min_priority({[min_priority: min_priority] = switches, unknown_switches}) do
    case Integer.parse(min_priority) do
      {n, ""} ->
        {
          Keyword.put(switches, :min_priority, n),
          unknown_switches
        }
      _ ->
        {
          switches,
          Keyword.put(unknown_switches, "--min-priority", min_priority)
        }
    end
  end
  defp parse_min_priority(x), do: x

  defp split_args([], current_dir, _) do
    {path, unknown_args} = extract_path([], current_dir)
