code: func FillNilSlices(data interface{}) error {
  	s := reflect.ValueOf(data).Elem()
  	t := s.Type()
  
  	for i := 0; i < s.NumField(); i++ {
  		f := s.Field(i)
  		tag := t.Field(i).Tag
  
  		v := tag.Get("default")
  		if len(v) > 0 {
  			switch f.Interface().(type) {
  			case []string:
  				if f.IsNil() {
  					// Treat the default as a comma separated slice
  					vs := strings.Split(v, ",")
  					for i := range vs {
  						vs[i] = strings.TrimSpace(vs[i])
  					}
  
  					rv := reflect.MakeSlice(reflect.TypeOf([]string{}), len(vs), len(vs))
  					for i, v := range vs {
  						rv.Index(i).SetString(v)
  					}
  					f.Set(rv)
  				}
  			}
  		}
  	}
  	return nil
  }
docs: // FillNilSlices sets default value on slices that are still nil.