FSM state for the tool install confirmation prompt.
Holds a queue of missing tool names to prompt about sequentially, plus the set of tools the user has declined this session.
Summary
Types
@type t() :: %Minga.Mode.ToolConfirmState{ count: non_neg_integer() | nil, current: non_neg_integer(), declined: MapSet.t(atom()), pending: [atom()] }