The z-machine standard says ZSCII 27 (Escape) is defined for input, but later in the remarks says:
“The extant Infocom games in Versions 4 and 5 use the control characters 1 to 31 only as follows: they all accept 10 or 13 as equivalent, except that ‘Bureaucracy’ will only accept 13. ‘Bureaucracy’ needs either 127 or 8 to be a delete code. No other codes are used.”
I do think it was used in V6, but I can’t point to any examples off the top of my head. If it was an Inform-only extension it would generally have a “1.0” or “1.1” note next to it.
Escape is kind of an odd duck now that I think about it:
It’s the only ZSCII character defined for input but not output that isn’t considered a function key (excluding delete).
Section 10.5.2.1 of the standard says only function key codes above 128 can terminate a read instruction, implying Escape would be excluded, but Beyond Zork shows that regular printable characters were in fact used that way and the standard seems to be wrong in that respect.
So, any opinions on whether or not escape should be legal as a terminating character from a read? All legal characters are allowed from a read_char, so that instruction isn’t particularly relevant.
Bonus points: Should delete be allowed to terminate a read? I imagine most interpreters wouldn’t respect delete showing up in the terminating table, but it could be used to novel effect, maybe combining it with preloaded input text for some amusing behavior.