code: func includeField(v reflect.Value, f reflect.StructField, mustInclude map[string]struct{}) bool {
  	// The regular JSON encoding of a nil pointer is "null", which means "delete this field".
  	// Therefore, we could enable field deletion by honoring pointer fields' presence in the mustInclude set.
  	// However, many fields are not pointers, so there would be no way to delete these fields.
  	// Rather than partially supporting field deletion, we ignore mustInclude for nil pointer fields.
  	// Deletion will be handled by a separate mechanism.
  	if f.Type.Kind() == reflect.Ptr && v.IsNil() {
  		return false
  	}
  
  	// The "any" type is represented as an interface{}.  If this interface
  	// is nil, there is no reasonable representation to send.  We ignore
  	// these fields, for the same reasons as given above for pointers.
  	if f.Type.Kind() == reflect.Interface && v.IsNil() {
  		return false
  	}
  
  	_, ok := mustInclude[f.Name]
  	return ok || !isEmptyValue(v)
  }
docs: // Reports whether the struct field "f" with value "v" should be included in JSON output.