@Override
    public List<Match<T>> getMatchesWithTriggers(WithTags input) {
      List<Match<T>> result = new ArrayList<>();
      boolean[] visited = new boolean[numExpressions];
      visitExpressions(input, result, visited, alwaysEvaluateExpressionList);
      Map<String, Object> tags = input.tags();
      if (tags.size() < keyToExpressionsMap.size()) {
        for (String inputKey : tags.keySet()) {
          visitExpressions(input, result, visited, keyToExpressionsMap.get(inputKey));
        }
      } else {
        for (var entry : keyToExpressionsList) {
          if (tags.containsKey(entry.getKey())) {
            visitExpressions(input, result, visited, entry.getValue());
          }
        }
      }
      result.sort(BY_ID);
      return result;
    }
Lookup matches in this index for expressions that match a certain type.
planetiler-core/src/main/java/com/onthegomap/planetiler/expression/MultiExpression.java