code: func CreateConfig(bytes []byte) (*Config, error) {
  	var config Config
  	if err := yaml.Unmarshal(bytes, &config); err != nil {
  		return nil, err
  	}
  
  	major, err := getComposeMajorVersion(config.Version)
  	if err != nil {
  		return nil, err
  	}
  	if major < 2 {
  		var baseRawServices RawServiceMap
  		if err := yaml.Unmarshal(bytes, &baseRawServices); err != nil {
  			return nil, err
  		}
  		config.Services = baseRawServices
  	}
  
  	if config.Volumes == nil {
  		config.Volumes = make(map[string]interface{})
  	}
  	if config.Networks == nil {
  		config.Networks = make(map[string]interface{})
  	}
  
  	return &config, nil
  }
docs: // CreateConfig unmarshals bytes of a YAML manifest file and returns a new
  // Config. Initialize any defaults that can't be parsed (but are optional)
  // across various file formats. Most of these can remain unused.
  //
  // This function only handles parsing YAML in the general case. Any other file
  // format validation should be handled by the caller.