docs: private void processProps() {
      ElementFilter
          .fieldsIn(component.getEnclosedElements())
          .stream()
          .filter(field -> hasAnnotation(field, Prop.class))
          .forEach(field -> {
            String propName = field.getSimpleName().toString();
            Prop prop = field.getAnnotation(Prop.class);
  
            collectionFieldsValidator.validateComponentPropField(field);
  
            fieldsWithNameExposed.add(new ExposedField(propName, field.asType()));
  
            optionsBuilder.addStatement(
                "options.addJavaProp($S, $T.getFieldName(this, () -> this.$L = $L), $L, $S)",
                propName,
                VueGWTTools.class,
                propName,
                getFieldMarkingValueForType(field.asType()),
                prop.required(),
                prop.checkType() ? getNativeNameForJavaType(field.asType()) : null
            );
          });
    }