The Payload interface is a generic type that represents the payload of
an event. Since events will have different payloads, we allow them to
define the majority of what they contain and we serialize them
intelligently.