bool evaluate(bool Function(String) has) { final single = _single; if (single != null) return has(single); if (keys.isEmpty) return true; return requireAll ? keys.every(has) : keys.any(has); }