code: func objectFields(obj valueObject, h Hidden) []string {
  	var r []string
  	for fieldName, hide := range objectFieldsVisibility(obj) {
  		if h == withHidden || hide != ast.ObjectFieldHidden {
  			r = append(r, fieldName)
  		}
  	}
  	return r
  }
docs: // Returns field names of an object. Gotcha: the order of fields is unpredictable.