A formatter should not change an identifier
An order ID can look like a number while behaving like a label. The value 9007199254740993 is valid JSON, but converting it through a JavaScript Number can round it. This formatter keeps each numeric token as written. Decimal places, exponent spelling and a negative zero survive formatting because the tool changes layout rather than evaluating those values.
Duplicate keys deserve a separate check. Two entries called status in one object can tell different systems different stories. Some parsers keep the last value, while other software rejects the document. MAXScanner stops and asks you to choose the intended entry. Escaped keys are compared by their decoded text, so two spellings of the same name are still treated as duplicates.
Pretty printing and minifying serve different jobs. Indentation makes a nested response easier to review; compact output removes whitespace outside strings. Neither mode shortens the content inside a string. Sorting changes the order of object entries but leaves arrays in their original order. Keep sorting off if a reviewer expects to see the source sequence.
The validator accepts standard JSON rather than JavaScript object literals. Comments, trailing commas and single-quoted strings need correction in the source. It also rejects unpaired Unicode surrogates so a later UTF-8 download will not replace them silently. Validation checks structure, not whether a price, date or account number is correct. Compare important fields with the originating system before sending the result onward.