Compute the ack fingerprint for ruleName on key/locale from the
current project state, or null if it can't be resolved (unknown rule,
missing key/translation). Used both to match acks at check-time and to
write a fresh ack via dialect check --ack.
The <rule>:<locale>:<key> identifier for an issue, or null if the
issue lacks the parts an ack needs (key is always required; a
source-only issue uses the literal source locale slot).
Fold state into result for project. Suppresses issues whose ack
still matches; surfaces (does not suppress) issues whose ack is stale,
recording the stale ids.