private CommandsJsonNode(CommandsJsonNode node, CommandsTranslateJsonNode translateNode)
     : base(ArrayHelper.Clone(node.Categories), ArrayHelper.Clone(node.Items))
 {
     foreach (var categoryTranslateNode in translateNode.Categories)
     {
         int index = node.GetCategoryIndex(categoryTranslateNode.Key);
         if (index != -1)
         {
             Categories[index] = node.Categories[index].TranslateWith(categoryTranslateNode);
         }
     }
     foreach (var itemTranslateNode in translateNode.Items)
     {
         int index = node.GetItemIndex(itemTranslateNode.Key);
         if (index != -1)
         {
             Items[index] = node.Items[index].TranslateWith(itemTranslateNode);
         }
     }
 }
 public CommandsJsonNode TranslateWith(CommandsTranslateJsonNode translateNode) => new CommandsJsonNode(this, translateNode);
 public Builder(CommandsTranslateJsonNode commands, SettingsTranslateJsonNode settings)
 {
     Commands = commands;
     Settings = settings;
 }
 public ConfigDataTranslateJsonNode(CommandsTranslateJsonNode commands, SettingsTranslateJsonNode settings)
 {
     Commands = commands;
     Settings = settings;
 }