Interesting discussion! I’m all for conditional compilation by the way (where do I vote???) … interesting suggestions for restructuring some of the standard rules into smaller chunks etc…probably not a terrible idea…
…but in regard to the original poster’s main concern, am I missing something here? Unless we’re trying for bare-bones memory usage (in which case, apologies, I missed that as being the driver for this discussion), anything we do to strip out the implementation of default commands merely changes the message a player will see if they try typing in that action – unless I’m mistaken, they will see something like “I don’t understand that verb”, instead of a moderately more specific message about whatever they were trying. What I’m saying is, I’m missing the motivation and the perceived benefit here of paring back the language understood.
The one thing we absolutely cannot control is what the player thinks of to try. And IF players tend to think of a lot! Our work, of course, ought to influence what a player is likely to attempt, by whatever we present for the player to read in the first place. Meaning for example, if I write a story where a player never needs to pick anything up, I probably am also not going to be strewing curious objects about every room either – because if I do, they most certainly will try taking things, and hence, what would be the point of disabling the “take” verb? Better to do something like:
Before taking something:
say "Taking things is not something you need to do in this game. (Please try to keep your kleptomania under control.)" instead.
After reading some snippet of story, the player might think a lot of different actions seem reasonable to try, whether we’ve implemented anything special for those actions or not. So why bother to kill the default understanding of what they’ve attempted, which will usually let the reader know in a slightly gentler way that such an action isn’t needed here, as opposed to merely a catch-all response for unimplemented verbs. And conversely, if our game is written in such a way that certain actions should be unlikely to come to mind, what’s the harm in leaving the default action/reaction in anyway? For example, suppose there is nothing even remotely edible-looking among my game’s objects. Then trying to eat things is going to be an unlikely choice, and most players will never trigger the action. I don’t need to disable the eating verb, it’s not going to happen because they’re just not going to try it. But if some kook does try to eat the Studebaker, a game that retains the built-in understanding of the eating action will “reward” the insane attempt with something a little more humorous than merely “I don’t understand that verb.”
Now, tailoring the default responses is an altogether different subject, and unless the goal is the trimmest memory footprint you can obtain, I’d personally favor going that route. There are various ways to do that, too, but as has been pointed out by others, for any sort of comprehensive overhaul, Custom Library Messages is definitely a good option.
I’m not intending to be at all critical, here, by the way – just sharing an alternative point of view. I get that there are exceptional works out there that have done exactly this sort of thing (stripping down the recognized language) for good reason. All I’m suggesting is that trying for a “simple game”, as I believe you put it, is not at all the same thing as saying that the language the player can be expected to try is automatically any less complex, nor does it mean you should pare back what the parser already understands merely because you as the author won’t be doing anything with certain kinds of actions.