code: func (env EnvironmentItemModel) GetOptions() (EnvironmentItemOptionsModel, error) {
  	value, found := env[OptionsKey]
  	if !found {
  		return EnvironmentItemOptionsModel{}, nil
  	}
  
  	envItmCasted, ok := value.(EnvironmentItemOptionsModel)
  	if ok {
  		return envItmCasted, nil
  	}
  
  	// if it's read from a file (YAML/JSON) then it's most likely not the proper type
  	//  so cast it from the generic interface-interface map
  	normalizedOptsInterfaceMap := make(map[string]interface{})
  	isNormalizeOK := false
  	if optionsInterfaceMap, ok := value.(map[interface{}]interface{}); ok {
  		// Try to normalize every key to String
  		for key, value := range optionsInterfaceMap {
  			keyStr, ok := key.(string)
  			if !ok {
  				return EnvironmentItemOptionsModel{}, fmt.Errorf("failed to cask options key (%#v) to string", key)
  			}
  			normalizedOptsInterfaceMap[keyStr] = value
  		}
  		isNormalizeOK = true
  	} else {
  		if castedTmp, ok := value.(map[string]interface{}); ok {
  			normalizedOptsInterfaceMap = castedTmp
  			isNormalizeOK = true
  		}
  	}
  
  	if isNormalizeOK {
  		options := EnvironmentItemOptionsModel{}
  		err := options.ParseFromInterfaceMap(normalizedOptsInterfaceMap)
  		if err != nil {
  			return EnvironmentItemOptionsModel{}, err
  		}
  
  		return options, nil
  	}
  
  	return EnvironmentItemOptionsModel{}, fmt.Errorf("failed to cast options value: (%#v)", value)
  }
docs: // GetOptions ...