docs: @Requires({
      "contractMethod != null",
      "field != null",
      "clazz != null"
    })
    @SuppressWarnings("unchecked")
    static <T> T getMetaData(MethodNode contractMethod,
                             String field, Class<T> clazz) {
      List<AnnotationNode> annotations = contractMethod.invisibleAnnotations;
      if (annotations == null) {
        return null;
      }
  
      for (AnnotationNode annotation : annotations) {
        if (!annotation.desc.equals(CONTRACT_METHOD_SIGNATURE_DESC)) {
          continue;
        }
  
        if (annotation.values == null) {
          return null;
        }
  
        Iterator<?> it = annotation.values.iterator();
        while (it.hasNext()) {
          String name = (String) it.next();
          Object value = it.next();
          if (name.equals(field)) {
            return (T) value;
          }
        }
      }
  
      return null;
    }