 
   # returns the drab_pid from socket
   @doc "Extract Drab PID from the socket"
+  @spec pid(Phoenix.Socket.t()) :: pid
   def pid(socket) do
     socket.assigns.__drab_pid
   end
 
   # if module is commander or controller with drab enabled, it has __drab__/0 function with Drab configuration
+  @spec commander_config(atom) :: map
   defp commander_config(module) do
     module.__drab__()
   end

  end

  @doc false
  def detokenize(socket, token, salt \\ "drab token") do
    case Phoenix.Token.verify(socket, salt, token, max_age: 86_400) do
      {:ok, detokenized} ->


  # returns the commander name for the given controller (assigned in socket)
  @doc false
  @spec get_commander(Phoenix.Socket.t()) :: atom
  def get_commander(socket) do
    controller = socket.assigns.__controller
    controller.__drab__()[:commander]
