I believe, without any deep investigation, that you’re running into inform7.com/mantis/view.php?id=808 . The visibility test in your Understand line causes parsing to get stuck.
(What you’re doing should not be illegal, but it runs into a library bug.)
In this case, your conditional understand lines are not accomplishing anything. You never need to say “Understand X as … when X is visible”, because if the object weren’t visible, its name wouldn’t be matched against in the first place.
I expect that you mean something else, maybe “Understand ‘button 1’ as b1 when b1t is not visible.” (As a way to disambiguate input.) It would be better to change this to a simpler test, maybe involving location, rather that invoking a visibility test. Or you could disambiguate with a “does the player mean” rule.
Thanks! That makes a lot of sense. I thought of “does the player mean” but I wanted my code to be succinct & this seemed the way to do it. I suspect that “does the player mean” will be straightforward and easy to edit, and I shouldn’t care if it’s a few words longer.
My actual coding case is more about being able to consult a book about things not visible, so in that case, yes, the disambiguation makes much more sense.
Even though I’m not a code-golf fan, I still seem to get suckered into feeling I have to do it when I don’t understand things 100%. So I appreciate the reality check.