placement attempts that were rejected (overlap or off-map) before every room resolved
Which builder carved each room, by the same index the room has in level.rooms.
Always populated, so a floor generated with no builders reads as every room being
'hall' rather than as an absent field a parity trace would have to special-case.
every corridor carved, backbone first then loops, in carve order