Scenario 1: There are multiple keys in the room/inventory. When player types 'look at key', it would be nice for the game spit back 'Which key do you mean, the blue key or the red key?'. I guess this could be handled with 3 said() statements, one for each of the specific objects, then a 'default' response at the end. Bringing me to this...
Scenario 2: There are two keys, but only one is in the room. When player types 'look at key', it should just work, player should NOT have to qualify the statement with an adjective.
Once again, I'm thinking about pre-processing the said string & performing inference/disambiguation up front. Any thoughts?
EDIT:
Scenario 3: User inputs 'swing sword' or 'attack with sword' & the game should be able to infer who is to be attacked (if there is only one animate/antagonist in the room, otherwise it asks for disambiguation)