When decoding a JWT with large integer values in the payload, precision may be lost due to how encoding/json parses numbers by default (as float64). I noticed that the JWT library already provides an option to avoid this issue via the jwt.WithJSONNumber() parser option.
https://github.com/golang-jwt/jwt/blob/main/parser_option.go#L23.