We can only do that if we have a suitable solution for agent collision client. I am personally for keeping userData since it's simply an additional user configurable piece of data which is sent along with all presence messages. (Not offline messages for now, but that's what I would like to be fixed). Since the userData always belongs the user being talked about in the message, it is not a bad abstraction to have.