Picks a builder for one room, weighted among those that fit it.
Returns null when nothing fits, which the generator treats as "fall back to a plain
hall" rather than leaving the room solid rock: a room already placed and joined by a
corridor has to be walkable, so an over-constrained builder list degrades to a plain room
instead of a sealed one a player can path into and never enter.
Picks a builder for one room, weighted among those that fit it.
Returns
nullwhen nothing fits, which the generator treats as "fall back to a plain hall" rather than leaving the room solid rock: a room already placed and joined by a corridor has to be walkable, so an over-constrained builder list degrades to a plain room instead of a sealed one a player can path into and never enter.