If you're using `json.Marshal`, you're using `reflect` [0]. It's slow and it's an absolute gold mine for runtime errors, but sometimes it's the best tool for the job.
[0] https://cs.opensource.google/go/go/+/refs/tags/go1.19.5:src/...
[0] https://cs.opensource.google/go/go/+/refs/tags/go1.19.5:src/...