Calculez le HMAC sur le corps BRUT de la requête, avant toute désérialisation JSON : re-sérialiser change les espaces et invalide la comparaison.
X-Yacla-Signature: t=1755000000,v1=<hex>
Comparez en temps constant et rejetez un horodatage vieux de plus de cinq minutes, sinon la signature ne protège pas du rejeu.