There is an acute sense of pain that developers experience as they try to reconcile complex user interactions and interpret the effect those actions will have on the overall application state. This generally starts out as a fairly painless journey, but as application complexity increases, so do the demands that we place on our components.
Let us imagine a scenario where the primary function of components is to expose just enough data for our templates to bind to and capture events to be passed along to a service. On a superficial level, it is obvious that these would be much easier components to work with, but what are some deeper implications of having all of our user events reduced to a series of actions and then broadcasted to the rest of the application? What happens if we bypass the components entirely and just start broadcasting those same actions directly into the application? What if we switched one view layer to another? Could one application share multiple views at the same time? If we know the actions a user takes and we can recreate them, does "time" really matter?