 
   ## Options
 
-  TODO
+   * `:details :: map`
+   * `:arguments :: list`
+   * `:arguments_kw :: map`
   """
   @spec call(pid, Message.wamp_uri, Keyword.t) :: {:ok, integer}
   def call(peer, procedure, options \\ []) do

  def cast_call(peer, procedure, options \\ []) do
    {:ok, %{args: [call_id | _]} = register} =
      new_call_message(procedure, options)
    :ok = Peer.send_message(peer, register)
    {:ok, call_id}
  end


  alias Spell.Message
  alias Spell.Peer

  defstruct [call_requests: HashDict.new()]

  @doc """
  Using `peer` asynchronously call `procedure` with `options`.
