@spec call(%{input: String.t()}, map()) :: {:ok, String.t()} | {:error, String.t()}
@spec stream( %{input: String.t()}, ({:ok, String.t() | {:error, String.t()} | :done} -> any()), map() ) :: Enumerable.t()