In each phase, the event is traversing objects in the hierarchy, much like bubbling in the DOM. The event chain always contains at least the triggering object and the weavy instance, but may have more objects in between. This means that the weavy instance will receive all events regardless of which child-object that was triggering event, but the child objects will only receive the events that they triggered themeselves or any of their child-objects triggered.
The event chain starts at the weavy instance in the
before: phase and works it's way towards the triggering child-object. This gives all parent-listeners a chance to modify event data or cancel the event before it reaches the triggering child-object.
on: phase the event chain starts at the trigger and goes up to the weavy instance, like rings on the water.
after: phase goes back from the weavy instance and ends up at the triggering child-object at last.