@type t() ::
{RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :command,
{GenServer.from(), RaftedValue.Data.command_arg(), reference()}}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :query,
{GenServer.from(), RaftedValue.Data.query_arg()}}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :change_config,
RaftedValue.Config.t()}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :leader_elected,
pid()}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :add_follower, pid()}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :remove_follower,
pid()}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :restore_from_files,
pid()}
| {RaftedValue.TermNumber.t(), RaftedValue.LogIndex.t(), :leader_elected2,
[pid()]}