code: public static <P, T> PositionFactory<P, T> optional(BiConsumer<? super P, ? super T> mutator) {
          Validate.isInstanceOf(Mutator.class, mutator, "Cannot detect property from %s; missing %s?", mutator,
              THERIAN_PROPERTY_METHOD_WEAVER);
          final boolean optional = true;
          return new PositionFactory<>(((Mutator<? super P, ? super T>) mutator).propertyName, optional);
      }
docs: Create a {@link Property.PositionFactory} for the optional property specified by {@code mutator}, whose original
  source form is expected to have been a method reference for a valid Java bean mutator method, in which case it is
  required that the calling class be processed with the {@code therian-property-method-weaver} for Apache Commons
  Weaver, which wraps the reference in a {@link Mutator} object. Alternatively the {@link Mutator} can be
  explicitly instantiated. A position created from such a factory will silently return {@code null} as its value if
  its parent's value is {@code null}.
  
  @param accessor
  @return {@link PositionFactory}
  @throws IllegalArgumentException if {@code accessor} is not an {@link Accessor} instance at runtime.