 
   @spec send_response(
     message ::  {:noreply, any}
-              | {:reply, atom, any}
-              | {:reply, atom, map | list | String.t | nil, any},
+              | {:reply, atom | list(atom), any}
+              | {:reply, atom | list(atom), map | list | String.t | nil, any},
     socket_state :: map,
     req :: :cowboy_req.req
   ) ::

  def parse_command(payload) do
    command_data = Poison.decode!(payload)

    command = command_data["command"] |> String.to_atom

    case command_data["data"] do
      "" -> command


  def send_response({:reply, type, message, state}, socket_state, req) do
    data = %{
      type: uniform_type(type),
      timestamp: :os.system_time(:seconds),
      data: message,
    }
