The current signature for one of the overloads of Aggregates#lookup is:
public static Bson lookup(final String from, @Nullable final List<Variable<?>> let, final List<? extends Bson> pipeline, final String as)
But the "let" parameter type is incorrect. Using a wildcard for the generic type of Variable effectively means that you can only pass a null list for this parameter.
The method should instead be defined as
public static <TExpression> Bson lookup(final String from, @Nullable final List<Variable<TExpression>> let, final List<? extends Bson> pipeline, final String as)