code: func parseJSONTag(val string) (jsonTag, error) {
  	if val == "-" {
  		return jsonTag{ignore: true}, nil
  	}
  
  	var tag jsonTag
  
  	i := strings.Index(val, ",")
  	if i == -1 || val[:i] == "" {
  		return tag, fmt.Errorf("malformed json tag: %s", val)
  	}
  
  	tag = jsonTag{
  		apiName: val[:i],
  	}
  
  	switch val[i+1:] {
  	case "omitempty":
  	case "omitempty,string":
  		tag.stringFormat = true
  	default:
  		return tag, fmt.Errorf("malformed json tag: %s", val)
  	}
  
  	return tag, nil
  }
docs: // parseJSONTag parses a restricted version of the struct tag format used by encoding/json.
  // The format of the tag must match that generated by the Schema.writeSchemaStruct method
  // in the api generator.