I guess I didn't address messages from client to sbt. Aren't those either known to sbt server statically, or only used by particular tasks that should be able to configure their registeredFormats? So what we'd have to do is delay deserialization until we had a task that was going to use the message. (But right now does UIContext even have a way to receive custom messages - I thought we took that out?)