compute
fun compute(secret: ByteArray, type: String, stableEventId: String, nowMs: Long, cfg: IdempotencyConfig): String
Computes a deterministic idempotency key using HMAC-SHA256 with a per-install secret.
We bucket by time (default 1 day) to limit the blast radius if an upstream system reuses stable ids across unrelated periods.