normalize('meetingPolicy', [ 'policyId' => 'meeting-policy-global', 'DisplayName' => 'Global meeting policy', 'AllowCloudRecording' => false, 'modifiedDateTime' => '2026-07-01T10:00:00Z', ]); $second = $typed->normalize('meetingPolicy', [ 'policyId' => 'meeting-policy-global', 'DisplayName' => 'Global meeting policy', 'AllowCloudRecording' => false, 'modifiedDateTime' => '2026-07-02T10:00:00Z', ]); $withoutVolatile = $typed->normalize('meetingPolicy', [ 'policyId' => 'meeting-policy-global', 'DisplayName' => 'Global meeting policy', 'AllowCloudRecording' => false, ]); $changed = $typed->normalize('meetingPolicy', [ 'policyId' => 'meeting-policy-global', 'DisplayName' => 'Global meeting policy', 'AllowCloudRecording' => true, 'modifiedDateTime' => '2026-07-02T10:00:00Z', ]); expect($hashes->payloadHash($first))->toBe($hashes->payloadHash($second)) ->and($hashes->payloadHash($first))->toBe($hashes->payloadHash($withoutVolatile)) ->and($hashes->payloadHash($first))->not->toBe($hashes->payloadHash($changed)); });