In Simulink, most blocks have events (they call them zero crossings) built into them and you can optionally turn them on/off. ModelingToolkit supports various types of events, but it doesn't appear that most of the blocks in the standard library have them implemented? The DeadZone block for example, has discrete changes in behavior that would make it a good candidate to have events. Is there a reason for not including events at the component level for blocks/components that have logical/discrete changes in their behavior?