code: func (m *MergeQuest) RollForward(c context.Context) (muts []tumble.Mutation, err error) {
  	curQuest := model.QuestFromID(m.Quest.ID)
  
  	c = logging.SetField(c, "qid", m.Quest.ID)
  
  	reason := "getting quest"
  	switch err = ds.Get(c, curQuest); err {
  	case nil:
  		prevLen := len(curQuest.BuiltBy)
  		curQuest.BuiltBy.Add(m.Quest.BuiltBy...)
  		if len(curQuest.BuiltBy) > prevLen {
  			reason = "putting merged quest"
  			err = ds.Put(c, curQuest)
  		}
  	case ds.ErrNoSuchEntity:
  		reason = "putting quest"
  		err = ds.Put(c, m.Quest)
  	}
  
  	if err != nil {
  		logging.WithError(err).Errorf(c, "%s", reason)
  	}
  
  	muts = m.AndThen
  
  	return
  }
docs: // RollForward implements tumble.Mutation.