code: func (f *PropertyFilter) apply(ctx *Context, change types.ObjectUpdate) types.ObjectUpdate {
  	parents := make(map[string]bool)
  	set := change.ChangeSet
  	change.ChangeSet = nil
  
  	for i, p := range set {
  		if f.matches(ctx, change.Obj, &p) {
  			if p.Name != set[i].Name {
  				// update matches a parent field from the spec.
  				if parents[p.Name] {
  					continue // only return 1 instance of the parent
  				}
  				parents[p.Name] = true
  			}
  			change.ChangeSet = append(change.ChangeSet, p)
  		}
  	}
  
  	return change
  }
docs: // apply the PropertyFilter.Spec to the given ObjectUpdate