The id is only present in messages pushed by the server if the messages are in response to a a message sent by the client.

I can see the confusion in this. Maybe we should rename it to something like `replyTo`?