Round trip of the int 22 through JSON: stringify writes "22", parse_string returns float 22.0, and seen.has(22) is false; coercing with int() at load restores TYPE_INT and has(22) becomes true.
Godot

Godot 4 parses every JSON number as a float, and Array.has(22) misses a stored 22.0

JSON.parse_string returns saved ints as floats, and Array.has(22) is false against 22.0 even though 22.0 == 22 is true. Coerce with int() at load time.