revokeFamily is idempotent: returning null from the updater on
already-revoked state classifies as "aborted" at the storage layer,
which the wrapper treats as success (the desired end-state is reached).
Same for not-found: the desired end-state (no live family) is already
present.
isFamilyRevoked is read-only via findFamily; returns false if the
family does not exist or the revoked flag is false.
RefreshTokenFamilyRevocation composition.
revokeFamilyis idempotent: returning null from the updater on already-revoked state classifies as "aborted" at the storage layer, which the wrapper treats as success (the desired end-state is reached). Same for not-found: the desired end-state (no live family) is already present.isFamilyRevokedis read-only via findFamily; returns false if the family does not exist or therevokedflag is false.Per A3 §6.2.