An implementation of the Specification Pattern implemented in idiomatic C#