clampOccurredAt function
Clamps an untrusted clientOccurredAt against the server-trusted
receivedAt. Never drops the event — a stale/future time is bounded, and
the raw value is preserved separately by the caller.
- future (
client > received, clock-ahead device) →receivedAt; - past within
maxSkew(floor inclusive) →clientOccurredAt(kept); - stale past (
client < received - maxSkew) →received - maxSkew.
Implementation
DateTime clampOccurredAt({
required DateTime clientOccurredAt,
required DateTime receivedAt,
Duration maxSkew = kMaxEventSkew,
}) {
if (clientOccurredAt.isAfter(receivedAt)) return receivedAt;
final floor = receivedAt.subtract(maxSkew);
if (clientOccurredAt.isBefore(floor)) return floor;
return clientOccurredAt;
}