I think that Warren is right that we should make these abstractions explicit. I will try to do this for the previously issued 'strawboy' while commenting on Warren's ideas. Each event has a type or it can be untyped. More on event types below.
Subclasses can add specific information.
The types of values are all simple. Here, I disagree. I think that this is like units, above. Multivalue Required ListedOnly etc. etc. That way you have standards-conformance and more flexibility.