Inform6 would set these rooms in hours...
Just create a Room class, which is something done in miliseconds (basically
a room with a 'has light' atrribute), and being creating objects like crazy
until the v8 Z-Machine gets exhausted (very difficult as it has been pumped up to great limits).
Also the game would run on PC's, Linux/BSD machines, DOS, Classic Macs, Amiga, Ataris, Android, IOS, OSX, RiscOS... everywhere from 16 bit and up.
That's inform7, a different syntax than inform6, but in the end both compile against the same virtual machine.
Still, inform6 OOP syntax with the English library it's like a really dumbed down Python more OOP than Python itself. Literally, as you are playing with objects in-game with literal attributes mapped 1:1 to the syntax. An enterable object in order to be that it must have the 'enterable' attribute defined in the object.
I wonder what you'd consider the tradeoffs of QBasic vs something intentionally geared towards IF, like Inform[0]?
[0] https://en.wikipedia.org/wiki/Inform