Roles are all about static composition, and events are for dynamic composition. Roles that emit() events blur this distinction, so I'm deeming them to be "bad". Additionally, one of Reflex's prime directives is for consumers to decide how they'll handle things. Implementing "interface" callbacks in roles (even default ones) takes this away from the consumer. The current solution is to provide declarative helpers to define the defaults. They also make more explicit that it's the consumer's role (har) to define callbacks in all cases. This is slightly less convenient, but it's a lot cleaner. Also add vim format lines so I stop dealing with whitespace inconsistencies.
"emits" is a shortcut for Reflex::Trait::EmitsOnChange. "observes" is a shortcut for Reflex::Trait::Observed. Names and locations may change.
… to Reflex::Base.
For example, Reflex::Handle is deprecated in favor of Reflex::Stream, which is implemented now in terms of Reflex::Role::Streaming.