class TypeCapability extends ServiceCapability<List<Type>> implements Defaultable<Type> {

	private final List<Type> content = new ArrayList<>();

	public TypeCapability() {
		super("type", ServiceCapabilityType.ACTION, "Type", "project type");
	}

	@Override
	public List<Type> getContent() {
		return this.content;
	}

	/**
	 * Return the {@link Type} with the specified id or {@code null} if no such type
	 * exists.
	 * @param id the ID to find
	 * @return the Type or {@code null}
	 */
	public Type get(String id) {
		return this.content.stream().filter((it) -> id.equals(it.getId())).findFirst().orElse(null);
	}

	/**
	 * Return the default {@link Type}.
	 */
	@Override
	public Type getDefault() {
		return this.content.stream().filter(DefaultMetadataElement::isDefault).findFirst().orElse(null);
	}

	@Override
	public void merge(List<Type> otherContent) {<FILL_FUNCTION_BODY>}

}

		otherContent.forEach((it) -> {
			if (get(it.getId()) == null) {
				this.content.add(it);
			}
		});
	
<methods>public abstract List<io.spring.initializr.metadata.Type> getContent() ,public java.lang.String getDescription() ,public java.lang.String getId() ,public java.lang.String getTitle() ,public io.spring.initializr.metadata.ServiceCapabilityType getType() ,public abstract void merge(List<io.spring.initializr.metadata.Type>) ,public void merge(ServiceCapability<List<io.spring.initializr.metadata.Type>>) ,public void setDescription(java.lang.String) ,public void setTitle(java.lang.String) <variables>private java.lang.String description,private final non-sealed java.lang.String id,private java.lang.String title,private final non-sealed io.spring.initializr.metadata.ServiceCapabilityType type