code: func mapValuesToPrimitive(k string, m map[string]interface{}, schema *Schema) error {
  	elemType, err := getValueType(k, schema)
  	if err != nil {
  		return err
  	}
  
  	switch elemType {
  	case TypeInt, TypeFloat, TypeBool:
  		for k, v := range m {
  			vs, ok := v.(string)
  			if !ok {
  				continue
  			}
  
  			v, err := stringToPrimitive(vs, false, &Schema{Type: elemType})
  			if err != nil {
  				return err
  			}
  
  			m[k] = v
  		}
  	}
  	return nil
  }
docs: // convert map values to the proper primitive type based on schema.Elem