lib/pistis/machine.ex
defmodule Pistis.Machine do
alias Pistis.Machine.{Request, Response}
@type machine_state :: any()
@callback initial_state() :: machine_state()
@callback process_command(Request.t(), machine_state()) :: Response.t()
end