code: func JSONMarshallable(source map[string]interface{}) (map[string]interface{}, error) {
  	target, err := recursiveJSONMarshallable(source)
  	if err != nil {
  		return nil, err
  	}
  	castedTarget, ok := target.(map[string]interface{})
  	if !ok {
  		return nil, fmt.Errorf("could not cast to map[string]interface{}")
  	}
  	return castedTarget, nil
  }
docs: // JSONMarshallable replaces map[interface{}]interface{} with map[string]string recursively
  // map[interface{}]interface{} is usually returned by parser go-yaml/v2