public ItemStackBuilder read(ConfigurationSection config, VariableReplacer variableReplacer) {
        return ItemStackBuilder.of(parseMaterial(config))
                .apply(isb -> {
                    parseData(config).ifPresent(isb::data);
                    parseName(config).map(variableReplacer::replace).ifPresent(isb::name);
                    parseLore(config).map(variableReplacer::replace).ifPresent(isb::lore);
                });
    }
Reads an {@link ItemStackBuilder} from the given config.

@param config the config to read from
@param variableReplacer the variable replacer to use to replace variables in the name and lore.
@return the item
helper/src/main/java/me/lucko/helper/item/ItemStackReader.java