code: func (fsm *MapInputSource) StringSlice(name string) ([]string, error) {
  	otherGenericValue, exists := fsm.valueMap[name]
  	if !exists {
  		otherGenericValue, exists = nestedVal(name, fsm.valueMap)
  		if !exists {
  			return nil, nil
  		}
  	}
  
  	otherValue, isType := otherGenericValue.([]interface{})
  	if !isType {
  		return nil, incorrectTypeForFlagError(name, "[]interface{}", otherGenericValue)
  	}
  
  	var stringSlice = make([]string, 0, len(otherValue))
  	for i, v := range otherValue {
  		stringValue, isType := v.(string)
  
  		if !isType {
  			return nil, incorrectTypeForFlagError(fmt.Sprintf("%s[%d]", name, i), "string", v)
  		}
  
  		stringSlice = append(stringSlice, stringValue)
  	}
  
  	return stringSlice, nil
  }
docs: // StringSlice returns an []string from the map if it exists otherwise returns nil