Have a component that would allow developers to register their events schema in the registry. When appending new events, when the schema id is provided, the event is checked for compatibility with the schema, and it it's not compatible, the append won't happen. Multiple strategies could apply though (ignore, warn, fail).
Subscribers would be able to inform the registry about the events they want to handle. Then, they could get information that a given event isn't registered, so it would never come. Also, subscribers could validate their expectations about event contracts with the registry.