Section - Opening
Understand "unroll [something]" as opening.
Opening it with is an action applying to two things.
Understand the command "open" as something new.
Understand "open [something]" as opening.
Understand "open [something] with [something]" as opening it with.
Understand "pull [something] with [something]" and "pull [something] down with [something]" as opening it with.
Understand "pry [something] with [something]" and "pry [something] open/off/out with [something]" as opening it with.
Understand "prise [something] with [something]" and "prise [something] open/off/out with [something]" as opening it with.
A thing can be crowbarish.
A thing is usually not crowbarish.
Check opening it with:
if the noun is lockable:
try unlocking the noun with the second noun instead.
Check opening it with:
if the noun is not openable:
say "That's not something you can open." instead;
if the noun is open:
say "[The noun] is already open." instead;
if the noun is not the trapdoor and the noun is not the can of tuna:
say "You don't need anything except your hands to open [the noun]." instead;
if the second noun is not crowbarish:
say "[The second noun] really isn't a suitable tool for opening [the noun]." instead.
Check opening something with the hands:
try opening the noun instead.
Check opening it with:
if the second noun is not carried by the player and the second noun is not part of the player:
say "(first taking [the second noun])[command clarification break]";
silently try taking the second noun;
if the second noun is not carried by the player and the second noun is not part of the player:
say "You'll have to be holding [the second noun] before you can do that." instead.
Carry out opening it with:
now the noun is open.
Report opening it with:
say "You open [the noun] with [the second noun]."
[this can be totally boring because we're going to override it for anything that needs to be opened with another thing. I just want to make sure there's a backup if we accidentally forget to override the message for something]