code: @JsOverlay
    public final void addJavaProp(String propName, String fieldName, boolean required,
        String exposedTypeName) {
      if (propsToProxy == null) {
        propsToProxy = new HashSet<>();
      }
  
      PropOptions propDefinition = new PropOptions();
      propDefinition.required = required;
  
      if (exposedTypeName != null) {
        propDefinition.type = ((JsPropertyMap<Object>) DomGlobal.window).get(exposedTypeName);
      }
  
      propsToProxy.add(new PropProxyDefinition(propName, fieldName));
      addProp(propName, propDefinition);
    }
docs: Add a prop to our ComponentOptions. This will allow to receive data from the outside of our
  Component.
  
  @param propName The name of the prop
  @param fieldName The name of the java field for that prop
  @param required Is the property required (mandatory)
  @param exposedTypeName JS name of the type of this property, if not null we will ask Vue to
  type check based on it