@ApiStatus.Internal // do not expose
  void copyUnsetTemplateProperties(@NotNull Presentation other) {
    if (icon == null) {
      icon = other.icon;
    }
    if (Strings.isEmpty(getText()) && Strings.isNotEmpty(other.getText())) {
      textWithMnemonicSupplier = other.textWithMnemonicSupplier;
    }
    if (Strings.isEmpty(descriptionSupplier.get()) && Strings.isNotEmpty(other.descriptionSupplier.get())) {
      descriptionSupplier = other.descriptionSupplier;
    }
    myUserMap = myUserMap.plusAll(other.myUserMap);
  }
@ApiStatus.Internal // do not expose
  void copyUnsetTemplateProperties(@NotNull Presentation other)