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

Sounds like fun! See also http://xkcd.com/219/.

My first stab at this would be as follows, especially if you want to make more than one or two of them (massive fail-block of code follows):

The Boring Office is a room. The Exciting Fairyland is a room.

A fort-location is a kind of container. A fort-location can be built or unbuilt. A fort-location is usually unbuilt. A fort-location is usually not enterable. A fort-location has a text called built-description. A fort-location has a text called old-name. A fort-location has a room called destination. Understand "fort" as a built fort-location.

A fort-part is a kind of thing. A fort-part is usually scenery. A fort-part has a text called fort-description.

The desk is a fort-location in the Boring Office. The description is "The desk is just a few plywood boards on top of a few stacks of cinder blocks. The top is covered in boring legal documents for old cases that no one has got around to throwing away." The built-description of the desk is "An awesome fort built out of a desk and some old legal documents no one really needed anymore." The destination of the desk is the Exciting Fairyland.

Some plywood is a fort-part. The plywood is part of the desk. The fort-description of the plywood is "very sturdy walls". Some cinder blocks are a fort-part. The cinder blocks are part of the desk. The fort-description of the cinder blocks is "a charming chimney". Some legal documents are part of the desk. The legal documents are a fort-part. The legal documents are not scenery. The fort-description of the legal documents is "a comfy nest inside". 

Check taking a fort-part: say "No point. [The noun] is probably better off where it is." instead.

Fort-building is an action with past participle fort-built, applying to one thing. Understand "build a fort from [something]" as fort-building.

Check fort-building something: say "You don't see any way to make [the noun] into a fort." instead.
Check fort-building a built fort-location: say "Someone already built an awesome fort there!" instead.
Check fort-building a fort-location: rule succeeds. [or maybe continue the action, I forget]

Carry out fort-building: [Ideally, I did the check rules right so we can only get here if the noun is an unbuilt fort-location]
    now the noun is enterable;
    now the noun is built;
    now the description of the noun is the built-description of the noun;
    choose a random row from the Table of Fun Adjectives;
    now the old-name of the noun is the printed name of the noun;
    now the printed name of the noun is "[adjective entry] [old-name of the noun] fort".
    
Report fort-building:
    choose a random row from the Table of Fun Adjectives;
    say "You build [an adjective entry] fort out of [the old-name of the noun]";
    repeat with widget running through all fort-parts which are part of the noun:
        choose a random row from the Table of Construction Verbs;
        say ". [The widget] [verb entry] [fort-description of widget]";
    say "."

Instead of entering a built fort-location:
    say "You crawl into the fort, closing the makeshift door behind you. Alone in this dark box, you drift off into your imagination...";
    move player to the destination of the thing understood.

Disclaimer: I am writing this at work off the top of my head and I have no idea whether it works or even compiles. But this is the situation from which I would start hacking.