Make the Palace message types specific to its protocol. Isolate the generation of domain events (i.e., InboundMessages not tied to specific Palace protocol messages) from both the underlying protocol and from the event handling.