JSON Schemas are great.
These are actually what IntelliJ uses to validate all sorts of config files behind the scenes.
For work, we even do code generation off of the Meltano (ETL tool) spec and use it to validate reads and writes to the file (which we edit at application runtime) to catch errors as close to when they actually occur.