If we make it optional, then we would have to require either an id or a manifest, to be able to deserialize the message.