The sample uses fictional order replies. Shipping changes, a removed discount code and a changed gift-wrap type show what the comparison catches. The reordered item list appears as one whole changed value.
Paste two replies or use the sample.
Changed fields show their location, such as /order/total. A list is compared as one whole value, including item order; changed lists are not split into item-by-item differences. Notices cover only top-level prepare_action-like decisions and a limited execution/status vocabulary. They do not detect send_email, action send, action_taken sent_email, next_action, nested assertions or actions arrays gaining send_email. Those values still appear in the changes list; arrays show as a whole changed value. Use Decision Audit with your expected fields and explicit restrictions for its broader recursive review flags. Neither tool proves permission or execution.
Duplicate keys are rejected. Maximum 80 nesting levels and 1,000 changes. A single-object outer array is unwrapped and flagged; wrapper differences are not compared. Different Unicode encodings of the same visible characters can show up as changes. Execution-like notices inspect top-level keys only, including normalized key variants, strings, 1 and simple arrays. Nested assertions are visible as differences but get no action notice. Text outside parsed JSON is not compared and gets a notice. Action values use limited normalization, not exhaustive language detection. Text only, not proof.