I feel the same way, but to defend GP, if you're dealing with unknown JSON, the experience of deserializing `any` (or `map[string]any` if you know the top-level entity is an object) can be extremely tedious.
For things like structured API requests/responses, Go's struct tags are basically exactly how I want my JSON ser/de to look.