Implement FrameworkEvent for generic events.
Remove default value from EventPayload annotation.

There's no easy and reliable way to retrieve the names of method parameters, so we need to require
explicit payload value names.