Minecraft wiki entry for Development_versions, associated text: Increased data pack version from 8 to 9.
It is now possible to add custom structures in experimental datapacks: the game now generates and stores data-driven configured structures.
Experimental datapacks can add new structure sets.
The feature field in location predicates now references a configured feature.
The exploration_map loot table function destination field is now a configured feature tag id.
The exploration_map loot table function no longer automatically sets the display name of the map.
A lot of the cave generation is now configurable through data packs.
A new registry was added for Density functions (caves are created by combining those together).
Noise settings got a new field noise_router (and lost a couple of flags), see worldgen/noise_settings folder in the worldgen report.
Noise router wires data-driven parts of the cave generation with the rest of the code.