anchor.diff:              Props
       end.
   
  +-spec compress(client(), user_spec()) -> {client(), user_spec()}.
   compress(Conn, Props) ->
       case proplists:get_value(compression, Props, false) of
           false ->
  
positive.code:     %% but it's guaranteed that the features will be empty.
      {Props, []}.
  
  starttls(Conn, Props) ->
      escalus_tcp:upgrade_to_tls(Conn, Props).
  
  authenticate(Conn, Props) ->
      %% FIXME: as default, select authentication scheme based on stream features
      {M, F} = proplists:get_value(auth, Props, {escalus_auth, auth_plain}),
  
negative.code: %%% Public API
  %%%===================================================================
  
  -spec start_stream(client(), user_spec()) -> {user_spec(), features()}.
  start_stream(Conn, Props) ->
      {server, Server} = lists:keyfind(server, 1, Props),
      XMLNS = case proplists:get_value(endpoint, Props) of
  