GC ASM (maybe others) - number types definitions are incorrect
In the 2023/09 GC ASM, the definitions for value types have been added, for example:
"tLongValue": {
"description": "A signed 64 bit integer value.",
"$asm.type": "http://www.w3.org/2001/XMLSchema#long",
"oneOf": [
{
"type": "integer",
"minimum": -9223372036854776000,
"maximum": 9223372036854776000
},
However, the numbers used for minimum and maximum are incorrect.
The min/max values for a signed 64-bit long are -9223372036854775808/9223372036854775807.
The ASM has +/-9223372036854776000, which is 192 more, and overflows a 64-bit integer making it impossible to use the ASM in real-life projects
Unsigned long has the same issue:
"tUnsignedLongValue": {
"description": "A signed 64 bit integer value.",
"$asm.type": "http://www.w3.org/2001/XMLSchema#unsignedLong",
"oneOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 18446744073709552000
},
The 2^64-1 is 18446744073709551615, and the max value set in the ASM overflows.
Please note that according to the JSON specification, value fields are double-precision in JSON files, which are not exact above 2^53.
Edited by Maxime Visconte