code: func (m *MediaTypeDefinition) Project(view string) (*MediaTypeDefinition, *UserTypeDefinition, error) {
  	canonical := m.projectCanonical(view)
  	if p, ok := ProjectedMediaTypes[canonical]; ok {
  		var links *UserTypeDefinition
  		mLinks := ProjectedMediaTypes[canonical+"; links"]
  		if mLinks != nil {
  			links = mLinks.UserTypeDefinition
  		}
  		return p, links, nil
  	}
  	if m.IsArray() {
  		return m.projectCollection(view)
  	}
  	return m.projectSingle(view, canonical)
  }
docs: // Project creates a MediaTypeDefinition containing the fields defined in the given view.  The
  // resuling media type only defines the default view and its identifier is modified to indicate that
  // it was projected by adding the view as id parameter.  links is a user type of type Object where
  // each key corresponds to a linked media type as defined by the media type "links" attribute.