in client-play-json-v30/src/main/scala/com/gu/targeting/client/Rule.scala [15:18]
def evaluate(rule: Rule, tags: Seq[String]): Boolean = {
if (rule.matchAllTags) tags.intersect(rule.lackingTags).isEmpty
else tags.intersect(rule.requiredTags).nonEmpty && tags.intersect(rule.lackingTags).isEmpty
}