We have a lot of ad-hoc messages, and only the beginnings of even a message type enum. Here's the current documentation: https://wikitech.wikimedia.org/wiki/Fundraising/Normalized_donation_messages
Go through our message types, implement classes and a standards-based, machine-readable formal schema. We'll want to support validation, eventually. Refer to EventLogging, maybe we can be compatible?
Messages should always include a type field. We can probably rework or replace the message_class field, it seems better to use IDs than fully qualified PHP classes, because: other languages.