code: func getFieldMeta(s proto.Schema, name string) (apply.FieldMetaImpl, error) {
  	m := apply.FieldMetaImpl{}
  	if s != nil {
  		ext := s.GetExtensions()
  		if e, found := ext["x-kubernetes-patch-strategy"]; found {
  			strategy, ok := e.(string)
  			if !ok {
  				return apply.FieldMetaImpl{}, fmt.Errorf("Expected string for x-kubernetes-patch-strategy by got %T", e)
  			}
  
  			// Take the first strategy if there are substrategies.
  			// Sub strategies are copied to sub types in openapi.go
  			strategies := strings.Split(strategy, ",")
  			if len(strategies) > 2 {
  				return apply.FieldMetaImpl{}, fmt.Errorf("Expected between 0 and 2 elements for x-kubernetes-patch-merge-strategy by got %v", strategies)
  			}
  			// For lists, choose the strategy for this type, not the subtype
  			m.MergeType = strategies[0]
  		}
  		if k, found := ext["x-kubernetes-patch-merge-key"]; found {
  			key, ok := k.(string)
  			if !ok {
  				return apply.FieldMetaImpl{}, fmt.Errorf("Expected string for x-kubernetes-patch-merge-key by got %T", k)
  			}
  			m.MergeKeys = apply.MergeKeys(strings.Split(key, ","))
  		}
  	}
  	m.Name = name
  	return m, nil
  }
docs: // getFieldMeta parses the metadata about the field from the openapi spec