I agree regarding being 'sealed'. However sealed trait (instead of abstract) will be a better choice here since we don't parameterize the event.

Is 'sealed trait' fine for you? If so, I'll commit the change.