25 ArgumentNullException.ThrowIfNull(rule);
28 if (_rules.Any(existing =>
32 StringComparison.Ordinal)))
34 throw new InvalidOperationException(
35 $
"Rule identifier '{rule.RuleId}' is already used.");
38 if (_rules.Any(existing =>
39 existing.Family == rule.
Family &&
41 existing.HistoricalToken,
43 StringComparison.Ordinal)))
45 throw new InvalidOperationException(
46 $
"Token '{rule.HistoricalToken}' is already registered for '{rule.Family}'.");