@EpicIFer’s grammar is correct if you want the in-game command to be “Fix rake”, but if you want the command to require two objects, then you have to set up the template command with two “slots” to be filled. Imagine you’re making a new Action called “my-repair-action”. The in-game command
> Fix rake with sticky tape
becomes
Understand “Fix [something] with [something]” as my-repair-action.
(This is the most general format. We can make it more specific if we like. e.g. we can require that the objects be of a specific Kind, or we can make the action more “intelligent”, for example by asking Inform to try an implicit take. To do that we’d use the token [something preferably held].)
Usually, when we’re adding synonyms as dictionary words using Understand, Inform allows us to say:
Understand “handle” or “hoe” or “rusty/grimy” as the rusty rake.
If we’re using understand to tinker with the grammar of an action, then we have to specifically say so:
Understand the commands “repair” and “integrate” as “fix.”
Understand “Fix [something] with [something]” as my-repair-action.
At the moment, we’ve only covered the situation where the player uses some variant of words to “fix the rake with the sticky tape.” But what if the player wants to “use the sticky tape to repair the rake”? It’s the same idea, expressed in a different way.
Inform has a special grammar to allow for this:
Understand “Use [something] to repair [something]” as my-repair-action (with nouns reversed).
Now it’s always the rake that will get repaired, and not the sticky tape!