code: func executeFieldsSerially(p executeFieldsParams) *Result {
  	if p.Source == nil {
  		p.Source = map[string]interface{}{}
  	}
  	if p.Fields == nil {
  		p.Fields = map[string][]*ast.Field{}
  	}
  
  	finalResults := make(map[string]interface{}, len(p.Fields))
  	for responseName, fieldASTs := range p.Fields {
  		fieldPath := p.Path.WithKey(responseName)
  		resolved, state := resolveField(p.ExecutionContext, p.ParentType, p.Source, fieldASTs, fieldPath)
  		if state.hasNoFieldDefs {
  			continue
  		}
  		finalResults[responseName] = resolved
  	}
  	dethunkMapDepthFirst(finalResults)
  
  	return &Result{
  		Data:   finalResults,
  		Errors: p.ExecutionContext.Errors,
  	}
  }
docs: // Implements the "Evaluating selection sets" section of the spec for "write" mode.