anchor.diff:      ?DEBUG("dgram: received on channel ~p~n",
              [convert:int_to_hex(ppspp_channel:get_channel_id(Channel))]),
       Parsed_Messages = ppspp_message:unpack(Maybe_Messages, Swarm_Options),
  -    Parsed_Datagram = orddict:from_list([Endpoint, Parsed_Messages]),
  -    {datagram, Parsed_Datagram}.
  +    #{endpoint => Endpoint, messages => Parsed_Messages}.
   
   -spec pack(datagram()) -> binary().
   pack(_Datagram) -> <<>>.
  
positive.code: %% @doc Requested Swarm options should match Available swarm options
  -spec get_swarm_options(datagram()) -> ppspp_options:options().
  get_swarm_options(_Datagram) ->
      %% TODO remove the hard wired hack
      %% look for the handshake in the messages
      %% grab the options from there
  
negative.code: %% api
  -export([handle_packet/1,
           handle_datagram/2,
           get_messages/1,
           get_peer_uri/1,
           get_endpoint/1,
           get_peer_channel/1,
           get_swarm_options/1,
           unpack/3,
           pack/1]).
  
  -opaque endpoint() :: #{ uri => string(),
                           ip => inet:ip_address(),
                           socket => inet:socket(),
                           port => inet:port_number(),
                           transport => udp,
                           channel => ppspp_channel:channel()}.
  -opaque datagram() :: #{ endpoint => endpoint(),
                           messages =>
                           ppspp_message:messages()}.
  -type uri() :: string().
  -export_type([endpoint/0,
                datagram/0]).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  