I’ve not long written a simple parser myself - one that I wanted to be general enough to allow players to experience objects across which they encountered in an expected way, regardless of whether it would be relevant to the plot/story/puzzle. For example, if there’s a chair in the game, it is reasonable that a player would expect a custom response to SIT CHAIR, even if they do not need to sit in the chair to progress the game. So SIT entered my parser’s general vocabulary (which means you can also SIT on other things, too, not just chairs).
There are some useful perspectives and resources you might find interesting in this thread: