Upon review, I've decided that Hypothetical Questions is actually the one I want here. At first I thought you could only run a single action hypothetically, but you can actually run
any phrase, not just a "try" phrase. So my extensive search-and-replace was unnecessary, and big chunks of action can be done hypothetically (although you'll need to reserve a very large buffer for hypothetical output).
Code:
Version 1 of Hypothetical Object Response Tests by Mike Ciul begins here.
"Tests objects just like Juhana Leinonen's extension, but does an UNDO after each test."
Include Hypothetical Questions by Jesse McGrew.
Include Object Response Tests by Juhana Leinonen
Book 1 - Hypothetical Output
This is the output hypothetical results rule:
say the hypothetical output;
Book 3 - Actions - Not for release (in place of Book 3 - Actions - Not for release in Object Response Tests by Juhana Leinonen)
Object-analyzing is an action applying to one visible thing.
Understand "analyze [something]" as object-analyzing.
Understand "analyse [something]" as object-analyzing.
Carry out object-analyzing (this is the go through all analyzing rules rule):
repeat with x running from 1 to the number of rows in the table of analyzing actions:
hypothetically follow the testing rule in row x of the table of analyzing actions and consider the output hypothetical results rule.
All-encompassing analyzing is an action applying to nothing.
Carry out all-encompassing analyzing (this is the analyze everything in the location rule):
repeat with x running through things enclosed by the location of the test-actor:
if the test-actor can see x:
try object-analyzing x.
Understand "analyze all" as all-encompassing analyzing.
Test-verb-trying is an action applying to one topic.
Understand "try [text]" as test-verb-trying.
Check test-verb-trying (this is the unknown verb test label rule):
if the topic understood is not a topic listed in the Table of analyzing actions:
say "Unknown verb test." instead.
Carry out test-verb-trying (this is the repeat an action with all objects rule):
if the topic understood is a topic listed in the Table of analyzing actions:
repeat with x running through things enclosed by the location of the test-actor:
if the test-actor can see x:
change the noun to x;
hypothetically follow the testing rule entry and consider the output hypothetical results rule.
Test-actor changing is an action out of world applying to one visible thing.
Understand "actor is [any person]" as test-actor changing.
Carry out test-actor changing (this is the change testing actor rule):
change test-actor to the noun;
say "Object Response Tests now uses [the noun] as the actor."
Hypothetical Object Response Tests ends here.
It might be more orthogonal to have a switchable "hypothetical mode" in which all commands are automatically undone at the end of the turn. I haven't quite figured out which extension should be used for that, or how.