There is also this simple validation method in Go: https://gitworkshop.dev/fiatjaf.com/nostrlib/tree/master/schema/schema.go
I started working on this generic schema that could be used for that: nostr:nevent1qvzqqqqqqypzqwlsccluhy6xxsr6l9a9uhhxf75g85g8a709tprjcn4e42h053vaqythwumn8ghj7un9d3shjtnwdaehgu3wvfskuep0qydhwumn8ghj7un9d3shjtnhv4ehgetjde38gcewvdhk6tcqyz5a04nmem34nh3jd88g5vhv0ww2pu4l6l4xtphyqa9eartnn4u2k5z9a5u
It would be great if you took a look and helped fix the AI bugs.
Discussion
By the way, nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr GitWorkshop doesn't display the latest commit for that repo on my browser, but it does if I open a new incognito browser window.