The four modifier keys, as booleans — held at the instant of the event.
Grouped into one record rather than spread across four fields on the event so
that "did the user press a chord?" is one object to pass, compare, and log,
and so that a source that learns about a fifth modifier (AltGr, a game
controller's shoulder) widens one type.
The four modifier keys, as booleans — held at the instant of the event.
Grouped into one record rather than spread across four fields on the event so that "did the user press a chord?" is one object to pass, compare, and log, and so that a source that learns about a fifth modifier (AltGr, a game controller's shoulder) widens one type.