docs: public Child labels(String... labelValues) {
      if (labelValues.length != labelNames.size()) {
        throw new IllegalArgumentException("Incorrect number of labels.");
      }
      for (String label: labelValues) {
        if (label == null) {
          throw new IllegalArgumentException("Label cannot be null.");
        }
      }
      List<String> key = Arrays.asList(labelValues);
      Child c = children.get(key);
      if (c != null) {
        return c;
      }
      Child c2 = newChild();
      Child tmp = children.putIfAbsent(key, c2);
      return tmp == null ? c2 : tmp;
    }