@Nonnull
	public ItemSink withMenu(@Nonnull String key, @Nonnull Ikon icon) {
		if (source.allow(key)) {
			Menu menu = menu(key, icon);
			target.add(menu);
			return new ItemSink(menu.getItems(), source);
		}

		// Not allowed, create dummy that never appends anything.
		return new ItemSink(Lists.noopList(), source);
	}
@param key
		ID of the menu to add. Doubles as {@link Lang#get(String)} key.
@param icon
		Icon of the menu to add.

@return New sink to target the newly made sub-menu.
recaf-ui/src/main/java/software/coley/recaf/ui/contextmenu/ItemSink.java