code: func (e *Execution) ModifyState(c context.Context, newState dm.Execution_State) error {
  	if e.State == newState {
  		return nil
  	}
  	if err := e.State.Evolve(newState); err != nil {
  		return err
  	}
  	now := clock.Now(c).UTC()
  	if now.After(e.Modified) {
  		e.Modified = now
  	} else {
  		// Microsecond is the smallest granularity that datastore can store
  		// timestamps, so use that to disambiguate: the goal here is that any
  		// modification always increments the modified time, and never decrements
  		// it.
  		e.Modified = e.Modified.Add(time.Microsecond)
  	}
  	return nil
  }
docs: // ModifyState changes the current state of this Execution and updates its
  // Modified timestamp.