Some additional changes:
Hoes only work if the node is pointed to from above.
Hoe description, inventory_image and max_uses must be specified (when registering).
Nodes with the field group must have all soil values in the node definition.
Field nodes do not loose their param2 value (e.g. rotation) when they dry, get wet or get hoed.
The node above the hoed one is not checked for protection because that node is not changed; similarly, the node under a seed is not tested for protection.
Document the fertility
test for nil player in the hoe on_use function
properly test for the creative mod
ensure that the on_place function returns an itemstack
change missing soil fields message