What I wanted (but never built) was a semantic file format, something like:
<room style="square" id="room1">
<wall direction=north>
<picture frame="modern" src="http://foo.com/fancycat.jpg" />
</wall>
<wall direction=south>
<door room="room2" />
</wall>
</room>