docs: private void parseTagkRule() {
      final List<UIDMeta> tags = meta.getTags();
      if (tags == null || tags.isEmpty()) {
        throw new IllegalStateException(
          "Tags for the timeseries meta were null");
      }
      
      String tag_name = "";
      boolean found = false;
      
      // loop through each tag pair. If the tagk matches the requested field name
      // then we flag it as "found" and on the next pass, grab the tagv name. This
      // assumes we have a list of [tagk, tagv, tagk, tagv...] pairs. If not, 
      // we're screwed
      for (UIDMeta uidmeta : tags) {
        if (uidmeta.getType() == UniqueIdType.TAGK && 
            uidmeta.getName().equals(rule.getField())) {
          found = true;
        } else if (uidmeta.getType() == UniqueIdType.TAGV && found) {
          tag_name = uidmeta.getName();
          break;
        }
      }
      
      // if we didn't find a match, return
      if (!found || tag_name.isEmpty()) {
        testMessage("No match on tagk [" + rule.getField() + "] for rule: " + 
            rule);
        return;
      }
      
      // matched!
      testMessage("Matched tagk [" + rule.getField() + "] for rule: " + rule);
      processParsedValue(tag_name);    
    }