Stable JSON serialization: object keys sorted recursively, arrays kept in order
(array order is semantically meaningful), undefined entries omitted. Dates and
other non-plain values fall back to their JSON form.
Lifted from @memberjunction/integration-engine to serve as the shared, pure,
dependency-free canonicalizer across Integration, BaseEntity, and Feature Pipelines.
Stable JSON serialization: object keys sorted recursively, arrays kept in order (array order is semantically meaningful),
undefinedentries omitted. Dates and other non-plain values fall back to their JSON form.Lifted from @memberjunction/integration-engine to serve as the shared, pure, dependency-free canonicalizer across Integration, BaseEntity, and Feature Pipelines.