docs: protected CompletableFuture<ExecutionResult> completeValueForObject(ExecutionContext executionContext, ExecutionStrategyParameters parameters, GraphQLObjectType resolvedObjectType, Object result) {
          ExecutionStepInfo executionStepInfo = parameters.getExecutionStepInfo();
  
          FieldCollectorParameters collectorParameters = newParameters()
                  .schema(executionContext.getGraphQLSchema())
                  .objectType(resolvedObjectType)
                  .fragments(executionContext.getFragmentsByName())
                  .variables(executionContext.getVariables())
                  .build();
  
          MergedSelectionSet subFields = fieldCollector.collectFields(collectorParameters, parameters.getField());
  
          ExecutionStepInfo newExecutionStepInfo = executionStepInfo.changeTypeWithPreservedNonNull(resolvedObjectType);
          NonNullableFieldValidator nonNullableFieldValidator = new NonNullableFieldValidator(executionContext, newExecutionStepInfo);
  
          ExecutionStrategyParameters newParameters = parameters.transform(builder ->
                  builder.executionStepInfo(newExecutionStepInfo)
                          .fields(subFields)
                          .nonNullFieldValidator(nonNullableFieldValidator)
                          .source(result)
          );
  
          // Calling this from the executionContext to ensure we shift back from mutation strategy to the query strategy.
  
          return executionContext.getQueryStrategy().execute(executionContext, newParameters);
      }