"item.arcananovum.$SCName": "$FName"

public static final ArcanaItem $CName = ArcanaRegistry.register(new $CCName());


import net.minecraft.util.Pair;
import static net.borisshoes.arcananovum.ArcanaNovum.MOD_ID;

public class $CCName extends ArcanaItem {
   public static final String ID = "$SCName";

   public $CCName(){
      id = ID;
      name = "$FName";
      rarity = ArcanaRarity.;
      categories = new ArcaneTomeGui.TomeFilter[]{ArcanaRarity.getTomeFilter(rarity), ArcaneTomeGui.TomeFilter.};
      itemVersion = 0;
      vanillaItem = Items.;
      item = new $CCNameItem();
	  displayName = Component.translatableWithFallback("item."+MOD_ID+"."+ID,name).withStyle(ChatFormatting.BOLD, ChatFormatting.);
      researchTasks = new ResourceKey[]{};  // TODO

      ItemStack stack = new ItemStack(item);
      initializeArcanaTag(stack);
      stack.setCount(item.getDefaultMaxStackSize());
      //putProperty(stack,TAG,);
      setPrefStack(stack);
   }

   @Override
   public List<Component> getItemLore(@Nullable ItemStack itemStack){
      List<MutableComponent> lore = new ArrayList<>();
      $LoreText
      return lore.stream().map(TextUtils::removeItalics).collect(Collectors.toCollection(ArrayList::new));
   }

   @Override
   public List<List<Component>> getBookLore(){
      List<List<Component>> list = new ArrayList<>();
      list.add(List.of(Component.literal("TODO").withStyle(ChatFormatting.BLACK))); // TODO
      return list;
   }

   public class $CCNameItem extends ArcanaPolymerItem {
      public $CCNameItem(){
         super(getThis());
      }

      @Override
      public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipFlag tooltipType, PacketContext context, HolderLookup.Provider lookup){
         ItemStack baseStack = super.getPolymerItemStack(itemStack, tooltipType, context, lookup);
         if(!ArcanaItemUtils.isArcane(itemStack)) return baseStack;

         List<String> stringList = new ArrayList<>();
         if(ArcanaAugments.getAugmentOnItem(itemStack,ArcanaAugments.) >= 1){
            stringList.add("");
         }
         baseStack.set(DataComponents.CUSTOM_MODEL_DATA,new CustomModelData(new ArrayList<>(),new ArrayList<>(),stringList,new ArrayList<>()));
         return baseStack;
      }

      @Override
      public @NonNull ItemStack getDefaultInstance(){
         return prefItem;
      }

      @Override
      public void inventoryTick(@NonNull ItemStack stack, @NonNull ServerLevel world, @NonNull Entity entity, @Nullable EquipmentSlot slot){
         if(!ArcanaItemUtils.isArcane(stack)) return;
         if(!(entity instanceof ServerPlayer player)) return;


      }

      @Override
      public @NonNull InteractionResult use(@NonNull Level world, Player playerEntity, @NonNull InteractionHand hand){
         ItemStack stack = playerEntity.getItemInHand(hand);
         if(!(playerEntity instanceof ServerPlayer player)) return InteractionResult.PASS;

         return InteractionResult.PASS;
      }
   }
}