code: public static HashMap<Setting, Category> mapSettingsToCategories(List<Category> categories) {
      HashMap<Setting, Category> settingCategoryMap = new HashMap<>();
      for (Category category : categories) {
        if (category.getGroups() != null) {
          for (Group group : category.getGroups()) {
            if (group.getSettings() != null) {
              for (Setting setting : group.getSettings()) {
                settingCategoryMap.put(setting, category);
              }
            }
          }
        }
      }
      return settingCategoryMap;
    }
docs: Creates a map which links {@link Setting} to {@link Category} in a list of {@code categories}.
  
  @param categories the categories of which to create a map of
  @return a {@link HashMap} containing {@link Setting}, mapped to their
  corresponding {@link Category}
  @apiNote does not flatten the categories