@callback handle_info(msg :: term(), state :: term()) :: {:noreply, new_state :: term()} | {:stop, term(), new_state :: term()}
@callback init(opts :: Keyword.t()) :: {:ok, state :: term()} | {:error, term()}
@callback remote_boot(state :: term()) :: {:ok, new_state :: term()} | {:error, term()}
@callback remote_spawn_link(state :: term(), func :: function() | term()) :: {:ok, pid(), new_state :: term()} | {:error, reason :: term(), new_state :: term()}
@callback system_shutdown() :: no_return()