code: func (f *AddFinishedDeps) RollForward(c context.Context) (muts []tumble.Mutation, err error) {
  	atmpt, _, err := model.AuthenticateExecution(c, f.Auth)
  	if err != nil {
  		return
  	}
  
  	fwdDeps, err := filterExisting(c, model.FwdDepsFromList(c, f.Auth.Id.AttemptID(), f.FinishedAttempts))
  	if err != nil || len(fwdDeps) == 0 {
  		return
  	}
  
  	muts = make([]tumble.Mutation, 0, len(fwdDeps)+len(f.MergeQuests))
  	for _, d := range fwdDeps {
  		d.ForExecution = atmpt.CurExecution
  		muts = append(muts, &AddBackDep{Dep: d.Edge()})
  	}
  	for _, q := range f.MergeQuests {
  		muts = append(muts, &MergeQuest{Quest: q})
  	}
  
  	return muts, ds.Put(c, fwdDeps)
  }
docs: // RollForward implements tumble.Mutation