Documentation for XFsm.
XFsm
@type action_arg() :: %{ optional(:event) => event(), actor: nil | pid(), context: context() }
@type callback() :: (... -> any()) | atom() | %{:method => atom(), optional(:params) => any()}
@type context() :: nil | map()
@type event() :: %{:type => atom(), optional(atom()) => any()}