As an Emacs newbie (with two weeks of Emacs experience) I am in the process of understanding the way Emacs manages user input events.
My current understanding of how it works is that the way Emacs handles user input events seems to differ from what I have experienced yet for example with programming of Tkinter GUIs with Python.
Emacs seems not to have the ability to provide the information about an event which can be passed as an argument to a handler function. So there is no such thing as "onKeypress(event):" where inside of the function onKeypress() the event object can be evaluated in order to know which key/keys was/were pressed.
Emacs comes with a mechanism of 'hooks' where for each possible event a handler function can be added to a list of functions which will be executed when a specific event takes place.
In other words it gives an option to 'subscribe' to a specific user input event. Also a possibility to subscribe to a category of events is there, but without passing the information about the specifics of the event which triggered the subscribed function, so its usability is limited to applications where the specific case doesn't matter.
Is this above provided rough description the right one? Or is there something important I am missing in my way of understanding Emacs event management which will lead in future to confusion and weird questions?