OTOH, exact decimals (of which integers are a subset) differ fundamentally in meaning from limited precision binary (or decimal, though that's more rarely encountered) floating point approximations. Which matters in interchange as well as schema.
These are all integers. There only needs to be one integer type for all of: 0 6 -6 8000000000000000000000. Python gets this right.
Or you can go the JSON route, mumble your way through the numbers spec, let every language do its own thing, and tell the handful of people seriously interested in moving integers too large to be precisely specified by a 64-bit float to encode as strings or something and stop worrying everyone else with the complexity....
I don't follow this one. If your language, static or otherwise, is capable of turning this JSON:
"100"
into a string, and this: 100
into a number of whatever type, then it's also capable of turning this hypothetical input: 100
into one type of integer, and this: 100000000000000000000000000000000000000000000000000000000
into another type of integer.