mwg API
    Preparing search index...

    Interface DungeonResult

    interface DungeonResult {
        graph: RoomEdge[];
        level: Level;
        retries: number;
        roomBuilders: string[];
    }
    Index
    graph: RoomEdge[]

    every corridor carved, backbone first then loops, in carve order

    level: Level
    retries: number

    placement attempts that were rejected (overlap or off-map) before every room resolved

    roomBuilders: string[]

    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.