Valid village doors use a flood fill on the “in”side to determine what the indoor area of the house is. The space must be at least 2 blocks high and must have walls and a roof within the radius of the door.
Villagers take the shortest path to any unoccupied indoor block at night and during thunderstorms (one villager per block).
Villagers breed based on amount of indoor area in a certain radius of themselves, rather than the number of valid doors.
If both sides of a door qualify as “inside”, ignore that door.