anchor.diff:               MessageId:?UINT,
                UserTime:?USHORT,
                UserId:?UINT,
  -             Message/binary>> = Data,
  +             Message/binary>>,
              UdpSocket, Ip, Port) ->
     MessageType = get_message_type(Flags band 7),
  -  Metadata = #metadata{messageId = MessageId,
  -                       userTime = UserTime,
  -                       userId = UserId,
  +  Metadata = #metadata{message_id = MessageId,
  +                       user_time = UserTime,
  +                       user_id = UserId,
                          socket = UdpSocket,
                          ip = Ip,
                          port = Port},
  
positive.code: -record(state, {socket :: port()}).
  -type state() :: #state{}.
  
  -record(metadata, {messageId      = 0 :: integer(),
                     userTime       = 0 :: integer(),
                     userId         = 0 :: integer(),
                     socket = undefined :: port() | undefined,
                     ip     = undefined :: inet:ip_address() | undefined,
                     port   = undefined :: integer() | undefined}).
  
negative.code:         AllGames], Metadata);
  handle_message(info,
                 <<GameId:?USHORT>>,
                 Metadata = #metadata{message_id = MessageId,
                                      user_time  = UserTime}) ->
    try spts_games:to_binary(spts_core:fetch_game(GameId), complete) of
      GameDesc ->
        Flags = set_flags([info, success]),
  