In 184.108.40.206 Beta iron golem spawn logic was changed to better match Java Edition. However, iron golems now spawn on blocks they should not spawn on, including signs, stairs, fences, fence gates (even open fence gates), and beds.
- In a void or high in the air, make a 5 x 8 platform, then place 20 beds on the platform, and destroy the platform so you have just the beds.
- Nearby to the side, setblock a solid workstation (fletching table, smithing table), then a villager on top, and wait for it to link.
- Repeat step (2) nine more times with the workstations a block apart in a row, so that you have 10 villagers who can work and cannot move or bump each other.
- A couple blocks above the beds, fill a 12x12 area with signs (you'll need a row of blocks on one side to attach them to). Then wait.
- Repeat step (5) with stairs (right side up), fences, and fence gates,
No iron golems spawn. Iron golems would only spawn on solid blocks and maybe on full-top-surface blocks like top slabs or upside down stairs.
Iron golems spawn in steps (4) and (6): on beds, signs, stairs (right side up or upside down), fences, and fence gates (open or closed).
It appears that the newly-added logic that checks for spawnable blocks is incomplete. According to the wiki entry on iron golems, Java checks for two block properties when attempting a spawn:
- whether the block is made of a solid-blocking material, and
- whether the block has a solid top-surface.
The logic implemented in Bedrock 220.127.116.11 beta appears to include only the first check. Thus signs and open fence gates are spawnable because they are made of wood (a spawnable material) even though they have no collision. And fence gates are wood, beds are wood, and stairs are wood or stone, so they are spawnable for golems even though they do not have a full-size full-height top surface. (I assume "solid top surface" means a full-size and full-height top with collision, since that's the kind of surface that is required for environmental mob spawning.)