State-change events emitted by the mapping-key subsystem.
Kept separate from CompositionEvent so subscribers of one
subsystem are not notified by the other. The shape mirrors
CompositionEvent but is intentionally smaller — mapping keys do not
have an "aborted" / "undone" / "cleared" lifecycle.
State-change events emitted by the mapping-key subsystem.
Kept separate from CompositionEvent so subscribers of one subsystem are not notified by the other. The shape mirrors CompositionEvent but is intentionally smaller — mapping keys do not have an "aborted" / "undone" / "cleared" lifecycle.