They all have their downsides.
JSON:
- no comments, unless you fake them with fake properties, unless your configuration has a schema that doesn't allow extra fake properties
- no trailing commas; makes editing more annoying
- no raw strings
YAML:
- the automatic type coercion
- the many ways to encode strings ( https://yaml-multiline.info/ )
- the roulette wheel of whether this particular parser is anal about two-space indentation or accepts anything as long as it's used consistently
- the roulette wheel of whether this particular parser supports uncommon features like anchors
TOML:
- runtime footguns in automated serialization ( https://news.ycombinator.com/item?id=24853386 )
- hard to represent deeply-nested structures, unless you switch to inline tables which are like JSON but just different enough to be annoying