First implementation of minimal Broker API

I'm wondering whether or not it's sensible to have the (de-)serialization of events happen outside the broker? In my mind, I always favored the notion of passing in an object and getting out an object, which requires that all (de-)serialization/(un-)marshalling operations be handled internally. They might be delegated to a strategy object (e.g. the vocabulary) but that's a matter of the broker's internal imp.