code: @SuppressWarnings("unused")
      @Internal
      @UsedByGeneratedCode
      protected final <T1> Optional<T1> getValueForPath(
              BeanResolutionContext resolutionContext,
              BeanContext context,
              Argument<T1> propertyType,
              String... propertyPath) {
          if (context instanceof PropertyResolver) {
              PropertyResolver propertyResolver = (PropertyResolver) context;
              Class<?> beanType = getBeanType();
              String pathString = propertyPath.length > 1 ? String.join(".", propertyPath) : propertyPath[0];
              String valString = resolvePropertyPath(resolutionContext, pathString);
  
              return propertyResolver.getProperty(valString, ConversionContext.of(propertyType));
          }
          return Optional.empty();
      }
docs: Resolve a value for the given field of the given type and path.
  
  @param resolutionContext The resolution context
  @param context           The bean context
  @param propertyType      The required property type
  @param propertyPath      The property path
  @param <T1>              The generic type
  @return An optional value