$child) { $value[$key] = self::canonicalize($child); } return $value; } /** * Encode a value as canonical JSON. * * Use for values stored in MySQL JSON columns where byte-stability * matters across reads/writes. * * @throws \JsonException */ public static function encode(mixed $value): string { return json_encode( self::canonicalize($value), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_THROW_ON_ERROR, ); } }