bool ICapabilities.Provides(ICapabilities required) { return(required.IsCombined ? required.GetAll().All(rc => rc.ProvidedBy(this)) : _capabilities.Any(required.ProvidedBy)); }