Minecraft wiki entry for Generator, associated text:  generator: Generation settings used for the dimension.
 type: The ID of the generator (in this case, minecraft:flat).
 settings: Superflat settings.
 layers: Layer settings.
: A superflat layer. This list is interpreted from top to bottom.
 height: The number of blocks in the layer.
 block: The block the layer is made of.
 biome: the single biome of the world
 lakes (optional): Whether or not to generate lakes. If set to true, then water and lava lakes generate often even in biomes where lakes don't normally generate. Lava lakes generate surrounded by different types of stone and ores from the overworld.
 features (optional): Whether or not to generate biome-specific decorations like trees, grass, flowers, cacti, etc.
 structures: Structure settings
 stronghold: Settings for how strongholds should be spawned. The stronghold values under the structures tag appear to be placeholders so that every namespaced structure has a value; these values are the ones that actually control stronghold spawning.
 distance: Controls how far apart the strongholds are. [needs testing]
 count: How many strongholds to generate. [needs testing]
 spread:[needs testing]
 structures: List of structures to use in this dimension
 <namespaced id>: The key for this field should be the namespaced ID of a structure, a list is available at Java Edition data value § Structures. If structures are not listed, it does not generate.
 spacing: Average distance between two structure placement attempts of this type in chunks[note 1].
 separation: Minimum distance between two structures of this type in chunks. Must be less than spacing.
 salt: [needs testing] A number that assists in randomization; see salt (cryptography).