Comment by ai_critic
Reality check:
Your extra data is a big JSON blob. Okay, fine.
File formats dating back to Targa (https://en.wikipedia.org/wiki/Truevision_TGA) support arbitrary text blobs if you're weird enough.
PNG itself has both EXIF data and a more general text chunk mechanism (both compressed and uncompressed, https://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.An... , section 4.2.3, you probably want iTXt chunks).
exiftool will already let you do all of this, by the way. There's no reason to summon non-standard file format into the world (especially when you're just making a weird version of PNG that won't survive resizing or quantization properly).
Here, two incantations:
> exiftool -config exiftool.config -overwrite_original -z '-_custom1<=meta.json' cat.png
and
> exiftool -config exiftool.config -G1 -Tag_custom1 cat.png
You can (with AI help no less) figure out what `exiftool.config` should look like. `meta.json` is just your JSON from github.
Now go draw the rest of the owl. :)