This answer is for 1.14+. I am testing all of this in 1.16
1.14 came with a HUGE change to the villagers. One of the numerous things affected was the breeding. Not only do they need to be willing, but they also need to have a bed for the baby, and they do not need doors.
A few things to note from the Minecraft wiki:
- Job sites are not required for villagers to breed. The breeding depends on the number of valid beds.
- If a villager is "willing", villagers breed as long as there are unclaimed beds available within the limits of the village.
- The beds must have 2 blocks of clearance above them because there needs to be room for the baby villager to jump on them. This means that the baby villager needs to be able to path-find the bed; it can't be in an unreachable spot.
- Villagers can become willing by having either 3 bread, 12 carrots, 12 potatoes, or 12 beetroots in one slot in their inventory.
Based upon this, a new house design can be constructed. You need at least 3 accessible beds, which are all in rooms of 3 blocks or higher. You also need a place where you can give them foodYou do not need job sites for them to breed, however I will include them in my design, simply because they are essential for trading.
First, a simple bedroom, which you can see, has worked:
Because the roof is flat, you can easily put a small hatch in the roof, to toss food in, or to put a dispenser in it, to do the work for you. after this, I simply added a trading station in the front. I also put slabs there, because the baby villagers were constantly jumping on top of the lecterns, and running away. One other thing to note is that you need at least 4 villagers to spawn an iron golem, so you could make this design a mini iron farm by introducing a zombie, and making the house one wider.