code: protected FieldValueInfo completeValueForList(ExecutionContext executionContext, ExecutionStrategyParameters parameters, Object result) {
          Iterable<Object> resultIterable = toIterable(executionContext, parameters, result);
          try {
              resultIterable = parameters.getNonNullFieldValidator().validate(parameters.getPath(), resultIterable);
          } catch (NonNullableFieldWasNullException e) {
              return FieldValueInfo.newFieldValueInfo(LIST).fieldValue(exceptionallyCompletedFuture(e)).build();
          }
          if (resultIterable == null) {
              return FieldValueInfo.newFieldValueInfo(LIST).fieldValue(completedFuture(new ExecutionResultImpl(null, null))).build();
          }
          return completeValueForList(executionContext, parameters, resultIterable);
      }
docs: Called to complete a list of value for a field based on a list type.  This iterates the values and calls
  {@link #completeValue(ExecutionContext, ExecutionStrategyParameters)} for each value.
  
  @param executionContext contains the top level execution parameters
  @param parameters       contains the parameters holding the fields to be executed and source object
  @param result           the result to complete, raw result
  
  @return a {@link FieldValueInfo}