canonicalPredicate

public static String canonicalPredicate(JsonObject predicate)

One predicate object folded the way Geyser's readers fold it. Unknown types or properties fall back to the full sorted JSON so they still dedup on byte-identical content but never unify two entries Geyser might treat as distinct. Public because the backend registry also uses it to describe a matcher in its dedup summary.