New action: build a fort. How can I improve it?

Yeah, StJohnLimbo nailed it. I just called it widget because I had already rather overused the term “part” in the loop preamble. “Repeat with … running through” is the fundamental loop construct in Inform 7 (and Python, Perl, Ruby, and many other scripting languages), because it’s very safe; there’s no way to make an infinite loop with it because you can’t have an infinite number of objects. It’s also usually extremely fast because Inform is optimized for it. All that loop says in plain English is “print a sentence for each fort-part.”

I don’t think each instance of a fort would be too painful too create with this design? The entire definition of the desk itself is the 4th and 5th paragraphs, and the only reason the 5th paragraph is so long is that there are 3 different parts. All the rest is defining the general concept of a fort. Possibly I’m not sure what you mean by “preamble”. The definition code is just something you stick at the top of a chapter and never look at it again; then each fort-location is relatively simple.