Make sure it makes sense.
We'd like to implement it in terms of the ID where we store the watches INSIDE the ID actually rather than storing in the system whicih then does id -> lifecycle watch lookup perhaps even.
This is internal to the runtime; the protocol should expose watch/unwatch, people don't need to know it is implemented like that.