Minecraft/NPC Villages

Villages are structures in Minecraft that contain several houses, dirt paths, farms, Villagers, and sometimes Iron Golems. Some houses contain chests, and the crops can be taken from farms.

Finding Villages
Villages naturally spawn in plains, deserts, savannahs, tagia forests, and snowy plains. The style of the village (and the resident villagers) is dependent on the biome. Villages always spawn in the same place on the same seed.

Trading
Villagers can be traded with, although villagers with no job, villagers with the nitwit job, and baby villagers cannot be traded with. Emeralds are always used in trades. Villagers can stop doing a trade, but if they go to their job-specific workstation afterwards, they can continue doing the trade, albeit requiring more from the player. Villagers require less from the player to trade if they have the hero of the village status effect (can only be gained by starting and clearing a raid).

The Iron Golem
Villages that are large enough have an Iron Golem that naturally spawns and defends the village. The mechanics of this can be abused to make an infinite iron farm.

Zombie Attacks
Occasionally, an event will occur called a "Zombie Horde" during which an abnormal amount of Zombies attack an NPC village. This requires a player to be nearby.