Tag Paths

Minecraft wiki: https://minecraft.wiki/w/NBT_path_format
NBT paths can be created and used like so:

import net.forthecrown.nbt.path.TagPath;

TagPath path = TagPath.parse("foo.bar[]");
BinaryTag tag = // Get a tag

List<BinaryTag> results = path.get(tag);
int removed = path.remove(tag);
int changed = path.set(tag, BinaryTags.stringTag("Hello, world!"));

Paths can also be created programmatically with TagPath.builder(), the above shown example would look like so:

TagPath path = TagPath.builder()
	.addObjectNode("foo")
	.addObjectNode("bar")
	.addMatchAll()
	.build();