What are all of Minecraft's /give NBT tags? [closed]

I would like to know all possible NBT tags for /give:

give @p minecraft:example{NBT}

Solution 1:

Item data tags are a recursive (tree) structure of JSON data associated with an item. Doing a quick calculation, I estimate there are about:

7.9 * 1061093 ≈ 10104.786

Technically there are a very large number of possible item tags, too many to be able to list. Just estimating how many there are: I only consider books, which contain their text within such tags, and thus their number will dwarf everything else. When dealing with big numbers like these adding a smaller number to a big number: B + s ~ B, so we only consider the most numerous category (as it's likely orders of magnitude more numerous than any other). Question: How many books are there?

A book can have 50 pages, 256 characters per page, and all characters must be in the BMP. There are currently 55,503 characters assigned in it.

This means you can have 55,503 ^ 50 ^256. This is approximately 1.8 * 1060727 distinct books.

Each such book can then be enchanted in various ways. Approximately 2^9 * 256 ^ 13 * (2 ^ 63) ^ 4 * 2 ^32 * 6 * 11 * 21 * 128 * 6 * 128 * 15 * 11 * 8 * 4 ways, or about 2.3 * 10 131.

There are 4 book states.

The title of the book and author name are another 32 * 55,503 options.

There are 2 ^ 24 = 16777216 colours.

There are 128 hide states.

There are attributes which take double-precision fp (52-bit mantissa) values. This gives another PROD(2 ^ 52 * N) multiplier for each for: (10 * 2 ^ 52)^3 * (11 * 2 ^ 52)^3 * (2 ^ 52)^2 * 2log(30)* 2 ^ 52 * 2log(20) * 2 ^ 52 * 2log(5) * 2 ^ 52 possibilities or about 1.0 * 10180.

There's two 64-bit INTs for customModelData and damage, two booleans for another 2128 options.

Multiply everything to get the number above...

A list of all the possible valid tags in the vanilla game can be found at https://minecraft.fandom.com/wiki/Player.dat_format#Item_structure.