{"changed":true,"breaking_change":false,"changes":[{"rule_id":"json.field_not_observed","severity":"warning","path":"/properties/customer/properties/email","before":["string"],"after":null,"summary":"Previously observed field was absent from the new sample.","breaking_change":false,"evidence_type":"observed_schema"},{"rule_id":"json.observed_types_changed","severity":"info","path":"/properties/customer/properties/id/types","before":["integer"],"after":["string"],"summary":"Observed JSON types changed; samples do not prove a breaking contract change.","breaking_change":false,"evidence_type":"observed_schema"}],"path_basis":"inferred_schema","coverage":{"mode":"json","complete":false,"scope":"Observed JSON shapes only; not a contract","unsupported_features":[],"truncated":false,"compatibility_guarantee":false,"ignored_paths":0},"warnings":["JSON sample drift is observational; absent fields, nulls, and empty arrays cannot establish contract compatibility."]}