aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-11-24 13:32:52 -0800
committerGitHub <[email protected]>2024-11-24 22:32:52 +0100
commitcf956ac8d29c20858248019049c5c73ecacc0857 (patch)
treee63587aea1a70a2079bbb82206c2d1a9737e4c50
parent9bc147178d62a722fb74b9157e9545a4aea72d4b (diff)
downloadPaper-cf956ac8d29c20858248019049c5c73ecacc0857.tar.gz
Paper-cf956ac8d29c20858248019049c5c73ecacc0857.zip
Add all missing TagKey constants files (#11661)
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java120
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java533
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java1348
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java57
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java274
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/FluidTagKeys.java57
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java78
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java64
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java50
-rw-r--r--paper-api-generator/generated/io/papermc/paper/registry/keys/tags/StructureTagKeys.java198
-rw-r--r--paper-api-generator/src/main/java/io/papermc/generator/Generators.java13
11 files changed, 2791 insertions, 1 deletions
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java
new file mode 100644
index 0000000000..766dd79c0c
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java
@@ -0,0 +1,120 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.block.banner.PatternType;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#BANNER_PATTERN}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class BannerPatternTagKeys {
+ /**
+ * {@code #minecraft:no_item_required}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> NO_ITEM_REQUIRED = create(key("no_item_required"));
+
+ /**
+ * {@code #minecraft:pattern_item/bordure_indented}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_BORDURE_INDENTED = create(key("pattern_item/bordure_indented"));
+
+ /**
+ * {@code #minecraft:pattern_item/creeper}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_CREEPER = create(key("pattern_item/creeper"));
+
+ /**
+ * {@code #minecraft:pattern_item/field_masoned}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_FIELD_MASONED = create(key("pattern_item/field_masoned"));
+
+ /**
+ * {@code #minecraft:pattern_item/flow}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_FLOW = create(key("pattern_item/flow"));
+
+ /**
+ * {@code #minecraft:pattern_item/flower}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_FLOWER = create(key("pattern_item/flower"));
+
+ /**
+ * {@code #minecraft:pattern_item/globe}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_GLOBE = create(key("pattern_item/globe"));
+
+ /**
+ * {@code #minecraft:pattern_item/guster}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_GUSTER = create(key("pattern_item/guster"));
+
+ /**
+ * {@code #minecraft:pattern_item/mojang}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_MOJANG = create(key("pattern_item/mojang"));
+
+ /**
+ * {@code #minecraft:pattern_item/piglin}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_PIGLIN = create(key("pattern_item/piglin"));
+
+ /**
+ * {@code #minecraft:pattern_item/skull}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<PatternType> PATTERN_ITEM_SKULL = create(key("pattern_item/skull"));
+
+ private BannerPatternTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link PatternType} in the registry {@code minecraft:banner_pattern}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<PatternType> create(final Key key) {
+ return TagKey.create(RegistryKey.BANNER_PATTERN, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java
new file mode 100644
index 0000000000..d1aea0f7f8
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java
@@ -0,0 +1,533 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.block.Biome;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#BIOME}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class BiomeTagKeys {
+ /**
+ * {@code #minecraft:allows_surface_slime_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> ALLOWS_SURFACE_SLIME_SPAWNS = create(key("allows_surface_slime_spawns"));
+
+ /**
+ * {@code #minecraft:allows_tropical_fish_spawns_at_any_height}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> ALLOWS_TROPICAL_FISH_SPAWNS_AT_ANY_HEIGHT = create(key("allows_tropical_fish_spawns_at_any_height"));
+
+ /**
+ * {@code #minecraft:has_closer_water_fog}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_CLOSER_WATER_FOG = create(key("has_closer_water_fog"));
+
+ /**
+ * {@code #minecraft:has_structure/ancient_city}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_ANCIENT_CITY = create(key("has_structure/ancient_city"));
+
+ /**
+ * {@code #minecraft:has_structure/bastion_remnant}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_BASTION_REMNANT = create(key("has_structure/bastion_remnant"));
+
+ /**
+ * {@code #minecraft:has_structure/buried_treasure}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_BURIED_TREASURE = create(key("has_structure/buried_treasure"));
+
+ /**
+ * {@code #minecraft:has_structure/desert_pyramid}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_DESERT_PYRAMID = create(key("has_structure/desert_pyramid"));
+
+ /**
+ * {@code #minecraft:has_structure/end_city}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_END_CITY = create(key("has_structure/end_city"));
+
+ /**
+ * {@code #minecraft:has_structure/igloo}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_IGLOO = create(key("has_structure/igloo"));
+
+ /**
+ * {@code #minecraft:has_structure/jungle_temple}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_JUNGLE_TEMPLE = create(key("has_structure/jungle_temple"));
+
+ /**
+ * {@code #minecraft:has_structure/mineshaft}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_MINESHAFT = create(key("has_structure/mineshaft"));
+
+ /**
+ * {@code #minecraft:has_structure/mineshaft_mesa}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_MINESHAFT_MESA = create(key("has_structure/mineshaft_mesa"));
+
+ /**
+ * {@code #minecraft:has_structure/nether_fortress}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_NETHER_FORTRESS = create(key("has_structure/nether_fortress"));
+
+ /**
+ * {@code #minecraft:has_structure/nether_fossil}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_NETHER_FOSSIL = create(key("has_structure/nether_fossil"));
+
+ /**
+ * {@code #minecraft:has_structure/ocean_monument}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_OCEAN_MONUMENT = create(key("has_structure/ocean_monument"));
+
+ /**
+ * {@code #minecraft:has_structure/ocean_ruin_cold}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_OCEAN_RUIN_COLD = create(key("has_structure/ocean_ruin_cold"));
+
+ /**
+ * {@code #minecraft:has_structure/ocean_ruin_warm}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_OCEAN_RUIN_WARM = create(key("has_structure/ocean_ruin_warm"));
+
+ /**
+ * {@code #minecraft:has_structure/pillager_outpost}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_PILLAGER_OUTPOST = create(key("has_structure/pillager_outpost"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_desert}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_DESERT = create(key("has_structure/ruined_portal_desert"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_jungle}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_JUNGLE = create(key("has_structure/ruined_portal_jungle"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_mountain}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_MOUNTAIN = create(key("has_structure/ruined_portal_mountain"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_nether}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_NETHER = create(key("has_structure/ruined_portal_nether"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_ocean}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_OCEAN = create(key("has_structure/ruined_portal_ocean"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_standard}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_STANDARD = create(key("has_structure/ruined_portal_standard"));
+
+ /**
+ * {@code #minecraft:has_structure/ruined_portal_swamp}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_RUINED_PORTAL_SWAMP = create(key("has_structure/ruined_portal_swamp"));
+
+ /**
+ * {@code #minecraft:has_structure/shipwreck}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_SHIPWRECK = create(key("has_structure/shipwreck"));
+
+ /**
+ * {@code #minecraft:has_structure/shipwreck_beached}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_SHIPWRECK_BEACHED = create(key("has_structure/shipwreck_beached"));
+
+ /**
+ * {@code #minecraft:has_structure/stronghold}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_STRONGHOLD = create(key("has_structure/stronghold"));
+
+ /**
+ * {@code #minecraft:has_structure/swamp_hut}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_SWAMP_HUT = create(key("has_structure/swamp_hut"));
+
+ /**
+ * {@code #minecraft:has_structure/trail_ruins}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_TRAIL_RUINS = create(key("has_structure/trail_ruins"));
+
+ /**
+ * {@code #minecraft:has_structure/trial_chambers}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_TRIAL_CHAMBERS = create(key("has_structure/trial_chambers"));
+
+ /**
+ * {@code #minecraft:has_structure/village_desert}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_VILLAGE_DESERT = create(key("has_structure/village_desert"));
+
+ /**
+ * {@code #minecraft:has_structure/village_plains}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_VILLAGE_PLAINS = create(key("has_structure/village_plains"));
+
+ /**
+ * {@code #minecraft:has_structure/village_savanna}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_VILLAGE_SAVANNA = create(key("has_structure/village_savanna"));
+
+ /**
+ * {@code #minecraft:has_structure/village_snowy}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_VILLAGE_SNOWY = create(key("has_structure/village_snowy"));
+
+ /**
+ * {@code #minecraft:has_structure/village_taiga}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_VILLAGE_TAIGA = create(key("has_structure/village_taiga"));
+
+ /**
+ * {@code #minecraft:has_structure/woodland_mansion}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> HAS_STRUCTURE_WOODLAND_MANSION = create(key("has_structure/woodland_mansion"));
+
+ /**
+ * {@code #minecraft:increased_fire_burnout}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> INCREASED_FIRE_BURNOUT = create(key("increased_fire_burnout"));
+
+ /**
+ * {@code #minecraft:is_badlands}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_BADLANDS = create(key("is_badlands"));
+
+ /**
+ * {@code #minecraft:is_beach}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_BEACH = create(key("is_beach"));
+
+ /**
+ * {@code #minecraft:is_deep_ocean}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_DEEP_OCEAN = create(key("is_deep_ocean"));
+
+ /**
+ * {@code #minecraft:is_end}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_END = create(key("is_end"));
+
+ /**
+ * {@code #minecraft:is_forest}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_FOREST = create(key("is_forest"));
+
+ /**
+ * {@code #minecraft:is_hill}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_HILL = create(key("is_hill"));
+
+ /**
+ * {@code #minecraft:is_jungle}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_JUNGLE = create(key("is_jungle"));
+
+ /**
+ * {@code #minecraft:is_mountain}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_MOUNTAIN = create(key("is_mountain"));
+
+ /**
+ * {@code #minecraft:is_nether}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_NETHER = create(key("is_nether"));
+
+ /**
+ * {@code #minecraft:is_ocean}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_OCEAN = create(key("is_ocean"));
+
+ /**
+ * {@code #minecraft:is_overworld}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_OVERWORLD = create(key("is_overworld"));
+
+ /**
+ * {@code #minecraft:is_river}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_RIVER = create(key("is_river"));
+
+ /**
+ * {@code #minecraft:is_savanna}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_SAVANNA = create(key("is_savanna"));
+
+ /**
+ * {@code #minecraft:is_taiga}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> IS_TAIGA = create(key("is_taiga"));
+
+ /**
+ * {@code #minecraft:mineshaft_blocking}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> MINESHAFT_BLOCKING = create(key("mineshaft_blocking"));
+
+ /**
+ * {@code #minecraft:more_frequent_drowned_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> MORE_FREQUENT_DROWNED_SPAWNS = create(key("more_frequent_drowned_spawns"));
+
+ /**
+ * {@code #minecraft:plays_underwater_music}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> PLAYS_UNDERWATER_MUSIC = create(key("plays_underwater_music"));
+
+ /**
+ * {@code #minecraft:polar_bears_spawn_on_alternate_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> POLAR_BEARS_SPAWN_ON_ALTERNATE_BLOCKS = create(key("polar_bears_spawn_on_alternate_blocks"));
+
+ /**
+ * {@code #minecraft:produces_corals_from_bonemeal}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> PRODUCES_CORALS_FROM_BONEMEAL = create(key("produces_corals_from_bonemeal"));
+
+ /**
+ * {@code #minecraft:reduce_water_ambient_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> REDUCE_WATER_AMBIENT_SPAWNS = create(key("reduce_water_ambient_spawns"));
+
+ /**
+ * {@code #minecraft:required_ocean_monument_surrounding}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> REQUIRED_OCEAN_MONUMENT_SURROUNDING = create(key("required_ocean_monument_surrounding"));
+
+ /**
+ * {@code #minecraft:snow_golem_melts}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> SNOW_GOLEM_MELTS = create(key("snow_golem_melts"));
+
+ /**
+ * {@code #minecraft:spawns_cold_variant_frogs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> SPAWNS_COLD_VARIANT_FROGS = create(key("spawns_cold_variant_frogs"));
+
+ /**
+ * {@code #minecraft:spawns_gold_rabbits}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> SPAWNS_GOLD_RABBITS = create(key("spawns_gold_rabbits"));
+
+ /**
+ * {@code #minecraft:spawns_snow_foxes}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> SPAWNS_SNOW_FOXES = create(key("spawns_snow_foxes"));
+
+ /**
+ * {@code #minecraft:spawns_warm_variant_frogs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> SPAWNS_WARM_VARIANT_FROGS = create(key("spawns_warm_variant_frogs"));
+
+ /**
+ * {@code #minecraft:spawns_white_rabbits}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> SPAWNS_WHITE_RABBITS = create(key("spawns_white_rabbits"));
+
+ /**
+ * {@code #minecraft:stronghold_biased_to}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> STRONGHOLD_BIASED_TO = create(key("stronghold_biased_to"));
+
+ /**
+ * {@code #minecraft:water_on_map_outlines}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> WATER_ON_MAP_OUTLINES = create(key("water_on_map_outlines"));
+
+ /**
+ * {@code #minecraft:without_patrol_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> WITHOUT_PATROL_SPAWNS = create(key("without_patrol_spawns"));
+
+ /**
+ * {@code #minecraft:without_wandering_trader_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> WITHOUT_WANDERING_TRADER_SPAWNS = create(key("without_wandering_trader_spawns"));
+
+ /**
+ * {@code #minecraft:without_zombie_sieges}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Biome> WITHOUT_ZOMBIE_SIEGES = create(key("without_zombie_sieges"));
+
+ private BiomeTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link Biome} in the registry {@code minecraft:worldgen/biome}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<Biome> create(final Key key) {
+ return TagKey.create(RegistryKey.BIOME, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java
new file mode 100644
index 0000000000..dcf9dddf97
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java
@@ -0,0 +1,1348 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.MinecraftExperimental;
+import org.bukkit.block.BlockType;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#BLOCK}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class BlockTypeTagKeys {
+ /**
+ * {@code #minecraft:acacia_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ACACIA_LOGS = create(key("acacia_logs"));
+
+ /**
+ * {@code #minecraft:air}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> AIR = create(key("air"));
+
+ /**
+ * {@code #minecraft:all_hanging_signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ALL_HANGING_SIGNS = create(key("all_hanging_signs"));
+
+ /**
+ * {@code #minecraft:all_signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ALL_SIGNS = create(key("all_signs"));
+
+ /**
+ * {@code #minecraft:ancient_city_replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ANCIENT_CITY_REPLACEABLE = create(key("ancient_city_replaceable"));
+
+ /**
+ * {@code #minecraft:animals_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ANIMALS_SPAWNABLE_ON = create(key("animals_spawnable_on"));
+
+ /**
+ * {@code #minecraft:anvil}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ANVIL = create(key("anvil"));
+
+ /**
+ * {@code #minecraft:armadillo_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ARMADILLO_SPAWNABLE_ON = create(key("armadillo_spawnable_on"));
+
+ /**
+ * {@code #minecraft:axolotls_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> AXOLOTLS_SPAWNABLE_ON = create(key("axolotls_spawnable_on"));
+
+ /**
+ * {@code #minecraft:azalea_grows_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> AZALEA_GROWS_ON = create(key("azalea_grows_on"));
+
+ /**
+ * {@code #minecraft:azalea_root_replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> AZALEA_ROOT_REPLACEABLE = create(key("azalea_root_replaceable"));
+
+ /**
+ * {@code #minecraft:badlands_terracotta}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BADLANDS_TERRACOTTA = create(key("badlands_terracotta"));
+
+ /**
+ * {@code #minecraft:bamboo_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BAMBOO_BLOCKS = create(key("bamboo_blocks"));
+
+ /**
+ * {@code #minecraft:bamboo_plantable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BAMBOO_PLANTABLE_ON = create(key("bamboo_plantable_on"));
+
+ /**
+ * {@code #minecraft:banners}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BANNERS = create(key("banners"));
+
+ /**
+ * {@code #minecraft:base_stone_nether}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BASE_STONE_NETHER = create(key("base_stone_nether"));
+
+ /**
+ * {@code #minecraft:base_stone_overworld}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BASE_STONE_OVERWORLD = create(key("base_stone_overworld"));
+
+ /**
+ * {@code #minecraft:bats_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BATS_SPAWNABLE_ON = create(key("bats_spawnable_on"));
+
+ /**
+ * {@code #minecraft:beacon_base_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BEACON_BASE_BLOCKS = create(key("beacon_base_blocks"));
+
+ /**
+ * {@code #minecraft:beds}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BEDS = create(key("beds"));
+
+ /**
+ * {@code #minecraft:bee_growables}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BEE_GROWABLES = create(key("bee_growables"));
+
+ /**
+ * {@code #minecraft:beehives}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BEEHIVES = create(key("beehives"));
+
+ /**
+ * {@code #minecraft:big_dripleaf_placeable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BIG_DRIPLEAF_PLACEABLE = create(key("big_dripleaf_placeable"));
+
+ /**
+ * {@code #minecraft:birch_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BIRCH_LOGS = create(key("birch_logs"));
+
+ /**
+ * {@code #minecraft:blocks_wind_charge_explosions}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BLOCKS_WIND_CHARGE_EXPLOSIONS = create(key("blocks_wind_charge_explosions"));
+
+ /**
+ * {@code #minecraft:buttons}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> BUTTONS = create(key("buttons"));
+
+ /**
+ * {@code #minecraft:camel_sand_step_sound_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CAMEL_SAND_STEP_SOUND_BLOCKS = create(key("camel_sand_step_sound_blocks"));
+
+ /**
+ * {@code #minecraft:campfires}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CAMPFIRES = create(key("campfires"));
+
+ /**
+ * {@code #minecraft:candle_cakes}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CANDLE_CAKES = create(key("candle_cakes"));
+
+ /**
+ * {@code #minecraft:candles}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CANDLES = create(key("candles"));
+
+ /**
+ * {@code #minecraft:cauldrons}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CAULDRONS = create(key("cauldrons"));
+
+ /**
+ * {@code #minecraft:cave_vines}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CAVE_VINES = create(key("cave_vines"));
+
+ /**
+ * {@code #minecraft:ceiling_hanging_signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CEILING_HANGING_SIGNS = create(key("ceiling_hanging_signs"));
+
+ /**
+ * {@code #minecraft:cherry_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CHERRY_LOGS = create(key("cherry_logs"));
+
+ /**
+ * {@code #minecraft:climbable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CLIMBABLE = create(key("climbable"));
+
+ /**
+ * {@code #minecraft:coal_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> COAL_ORES = create(key("coal_ores"));
+
+ /**
+ * {@code #minecraft:combination_step_sound_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> COMBINATION_STEP_SOUND_BLOCKS = create(key("combination_step_sound_blocks"));
+
+ /**
+ * {@code #minecraft:completes_find_tree_tutorial}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> COMPLETES_FIND_TREE_TUTORIAL = create(key("completes_find_tree_tutorial"));
+
+ /**
+ * {@code #minecraft:concrete_powder}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CONCRETE_POWDER = create(key("concrete_powder"));
+
+ /**
+ * {@code #minecraft:convertable_to_mud}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CONVERTABLE_TO_MUD = create(key("convertable_to_mud"));
+
+ /**
+ * {@code #minecraft:copper_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> COPPER_ORES = create(key("copper_ores"));
+
+ /**
+ * {@code #minecraft:coral_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CORAL_BLOCKS = create(key("coral_blocks"));
+
+ /**
+ * {@code #minecraft:coral_plants}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CORAL_PLANTS = create(key("coral_plants"));
+
+ /**
+ * {@code #minecraft:corals}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CORALS = create(key("corals"));
+
+ /**
+ * {@code #minecraft:crimson_stems}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CRIMSON_STEMS = create(key("crimson_stems"));
+
+ /**
+ * {@code #minecraft:crops}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CROPS = create(key("crops"));
+
+ /**
+ * {@code #minecraft:crystal_sound_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> CRYSTAL_SOUND_BLOCKS = create(key("crystal_sound_blocks"));
+
+ /**
+ * {@code #minecraft:dampens_vibrations}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DAMPENS_VIBRATIONS = create(key("dampens_vibrations"));
+
+ /**
+ * {@code #minecraft:dark_oak_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DARK_OAK_LOGS = create(key("dark_oak_logs"));
+
+ /**
+ * {@code #minecraft:dead_bush_may_place_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DEAD_BUSH_MAY_PLACE_ON = create(key("dead_bush_may_place_on"));
+
+ /**
+ * {@code #minecraft:deepslate_ore_replaceables}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DEEPSLATE_ORE_REPLACEABLES = create(key("deepslate_ore_replaceables"));
+
+ /**
+ * {@code #minecraft:diamond_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DIAMOND_ORES = create(key("diamond_ores"));
+
+ /**
+ * {@code #minecraft:dirt}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DIRT = create(key("dirt"));
+
+ /**
+ * {@code #minecraft:does_not_block_hoppers}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DOES_NOT_BLOCK_HOPPERS = create(key("does_not_block_hoppers"));
+
+ /**
+ * {@code #minecraft:doors}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DOORS = create(key("doors"));
+
+ /**
+ * {@code #minecraft:dragon_immune}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DRAGON_IMMUNE = create(key("dragon_immune"));
+
+ /**
+ * {@code #minecraft:dragon_transparent}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DRAGON_TRANSPARENT = create(key("dragon_transparent"));
+
+ /**
+ * {@code #minecraft:dripstone_replaceable_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> DRIPSTONE_REPLACEABLE_BLOCKS = create(key("dripstone_replaceable_blocks"));
+
+ /**
+ * {@code #minecraft:emerald_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> EMERALD_ORES = create(key("emerald_ores"));
+
+ /**
+ * {@code #minecraft:enchantment_power_provider}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ENCHANTMENT_POWER_PROVIDER = create(key("enchantment_power_provider"));
+
+ /**
+ * {@code #minecraft:enchantment_power_transmitter}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ENCHANTMENT_POWER_TRANSMITTER = create(key("enchantment_power_transmitter"));
+
+ /**
+ * {@code #minecraft:enderman_holdable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ENDERMAN_HOLDABLE = create(key("enderman_holdable"));
+
+ /**
+ * {@code #minecraft:fall_damage_resetting}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FALL_DAMAGE_RESETTING = create(key("fall_damage_resetting"));
+
+ /**
+ * {@code #minecraft:features_cannot_replace}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FEATURES_CANNOT_REPLACE = create(key("features_cannot_replace"));
+
+ /**
+ * {@code #minecraft:fence_gates}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FENCE_GATES = create(key("fence_gates"));
+
+ /**
+ * {@code #minecraft:fences}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FENCES = create(key("fences"));
+
+ /**
+ * {@code #minecraft:fire}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FIRE = create(key("fire"));
+
+ /**
+ * {@code #minecraft:flower_pots}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FLOWER_POTS = create(key("flower_pots"));
+
+ /**
+ * {@code #minecraft:flowers}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FLOWERS = create(key("flowers"));
+
+ /**
+ * {@code #minecraft:foxes_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FOXES_SPAWNABLE_ON = create(key("foxes_spawnable_on"));
+
+ /**
+ * {@code #minecraft:frog_prefer_jump_to}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FROG_PREFER_JUMP_TO = create(key("frog_prefer_jump_to"));
+
+ /**
+ * {@code #minecraft:frogs_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> FROGS_SPAWNABLE_ON = create(key("frogs_spawnable_on"));
+
+ /**
+ * {@code #minecraft:geode_invalid_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> GEODE_INVALID_BLOCKS = create(key("geode_invalid_blocks"));
+
+ /**
+ * {@code #minecraft:goats_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> GOATS_SPAWNABLE_ON = create(key("goats_spawnable_on"));
+
+ /**
+ * {@code #minecraft:gold_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> GOLD_ORES = create(key("gold_ores"));
+
+ /**
+ * {@code #minecraft:guarded_by_piglins}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> GUARDED_BY_PIGLINS = create(key("guarded_by_piglins"));
+
+ /**
+ * {@code #minecraft:hoglin_repellents}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> HOGLIN_REPELLENTS = create(key("hoglin_repellents"));
+
+ /**
+ * {@code #minecraft:ice}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> ICE = create(key("ice"));
+
+ /**
+ * {@code #minecraft:impermeable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> IMPERMEABLE = create(key("impermeable"));
+
+ /**
+ * {@code #minecraft:incorrect_for_diamond_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INCORRECT_FOR_DIAMOND_TOOL = create(key("incorrect_for_diamond_tool"));
+
+ /**
+ * {@code #minecraft:incorrect_for_gold_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INCORRECT_FOR_GOLD_TOOL = create(key("incorrect_for_gold_tool"));
+
+ /**
+ * {@code #minecraft:incorrect_for_iron_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INCORRECT_FOR_IRON_TOOL = create(key("incorrect_for_iron_tool"));
+
+ /**
+ * {@code #minecraft:incorrect_for_netherite_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INCORRECT_FOR_NETHERITE_TOOL = create(key("incorrect_for_netherite_tool"));
+
+ /**
+ * {@code #minecraft:incorrect_for_stone_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INCORRECT_FOR_STONE_TOOL = create(key("incorrect_for_stone_tool"));
+
+ /**
+ * {@code #minecraft:incorrect_for_wooden_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INCORRECT_FOR_WOODEN_TOOL = create(key("incorrect_for_wooden_tool"));
+
+ /**
+ * {@code #minecraft:infiniburn_end}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INFINIBURN_END = create(key("infiniburn_end"));
+
+ /**
+ * {@code #minecraft:infiniburn_nether}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INFINIBURN_NETHER = create(key("infiniburn_nether"));
+
+ /**
+ * {@code #minecraft:infiniburn_overworld}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INFINIBURN_OVERWORLD = create(key("infiniburn_overworld"));
+
+ /**
+ * {@code #minecraft:inside_step_sound_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INSIDE_STEP_SOUND_BLOCKS = create(key("inside_step_sound_blocks"));
+
+ /**
+ * {@code #minecraft:invalid_spawn_inside}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> INVALID_SPAWN_INSIDE = create(key("invalid_spawn_inside"));
+
+ /**
+ * {@code #minecraft:iron_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> IRON_ORES = create(key("iron_ores"));
+
+ /**
+ * {@code #minecraft:jungle_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> JUNGLE_LOGS = create(key("jungle_logs"));
+
+ /**
+ * {@code #minecraft:lapis_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> LAPIS_ORES = create(key("lapis_ores"));
+
+ /**
+ * {@code #minecraft:lava_pool_stone_cannot_replace}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> LAVA_POOL_STONE_CANNOT_REPLACE = create(key("lava_pool_stone_cannot_replace"));
+
+ /**
+ * {@code #minecraft:leaves}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> LEAVES = create(key("leaves"));
+
+ /**
+ * {@code #minecraft:logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> LOGS = create(key("logs"));
+
+ /**
+ * {@code #minecraft:logs_that_burn}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> LOGS_THAT_BURN = create(key("logs_that_burn"));
+
+ /**
+ * {@code #minecraft:lush_ground_replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> LUSH_GROUND_REPLACEABLE = create(key("lush_ground_replaceable"));
+
+ /**
+ * {@code #minecraft:maintains_farmland}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MAINTAINS_FARMLAND = create(key("maintains_farmland"));
+
+ /**
+ * {@code #minecraft:mangrove_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MANGROVE_LOGS = create(key("mangrove_logs"));
+
+ /**
+ * {@code #minecraft:mangrove_logs_can_grow_through}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MANGROVE_LOGS_CAN_GROW_THROUGH = create(key("mangrove_logs_can_grow_through"));
+
+ /**
+ * {@code #minecraft:mangrove_roots_can_grow_through}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MANGROVE_ROOTS_CAN_GROW_THROUGH = create(key("mangrove_roots_can_grow_through"));
+
+ /**
+ * {@code #minecraft:mineable/axe}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MINEABLE_AXE = create(key("mineable/axe"));
+
+ /**
+ * {@code #minecraft:mineable/hoe}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MINEABLE_HOE = create(key("mineable/hoe"));
+
+ /**
+ * {@code #minecraft:mineable/pickaxe}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MINEABLE_PICKAXE = create(key("mineable/pickaxe"));
+
+ /**
+ * {@code #minecraft:mineable/shovel}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MINEABLE_SHOVEL = create(key("mineable/shovel"));
+
+ /**
+ * {@code #minecraft:mob_interactable_doors}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MOB_INTERACTABLE_DOORS = create(key("mob_interactable_doors"));
+
+ /**
+ * {@code #minecraft:mooshrooms_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MOOSHROOMS_SPAWNABLE_ON = create(key("mooshrooms_spawnable_on"));
+
+ /**
+ * {@code #minecraft:moss_replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MOSS_REPLACEABLE = create(key("moss_replaceable"));
+
+ /**
+ * {@code #minecraft:mushroom_grow_block}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> MUSHROOM_GROW_BLOCK = create(key("mushroom_grow_block"));
+
+ /**
+ * {@code #minecraft:needs_diamond_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> NEEDS_DIAMOND_TOOL = create(key("needs_diamond_tool"));
+
+ /**
+ * {@code #minecraft:needs_iron_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> NEEDS_IRON_TOOL = create(key("needs_iron_tool"));
+
+ /**
+ * {@code #minecraft:needs_stone_tool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> NEEDS_STONE_TOOL = create(key("needs_stone_tool"));
+
+ /**
+ * {@code #minecraft:nether_carver_replaceables}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> NETHER_CARVER_REPLACEABLES = create(key("nether_carver_replaceables"));
+
+ /**
+ * {@code #minecraft:nylium}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> NYLIUM = create(key("nylium"));
+
+ /**
+ * {@code #minecraft:oak_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> OAK_LOGS = create(key("oak_logs"));
+
+ /**
+ * {@code #minecraft:occludes_vibration_signals}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> OCCLUDES_VIBRATION_SIGNALS = create(key("occludes_vibration_signals"));
+
+ /**
+ * {@code #minecraft:overworld_carver_replaceables}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> OVERWORLD_CARVER_REPLACEABLES = create(key("overworld_carver_replaceables"));
+
+ /**
+ * {@code #minecraft:overworld_natural_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> OVERWORLD_NATURAL_LOGS = create(key("overworld_natural_logs"));
+
+ /**
+ * {@code #minecraft:pale_oak_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ public static final TagKey<BlockType> PALE_OAK_LOGS = create(key("pale_oak_logs"));
+
+ /**
+ * {@code #minecraft:parrots_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> PARROTS_SPAWNABLE_ON = create(key("parrots_spawnable_on"));
+
+ /**
+ * {@code #minecraft:piglin_repellents}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> PIGLIN_REPELLENTS = create(key("piglin_repellents"));
+
+ /**
+ * {@code #minecraft:planks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> PLANKS = create(key("planks"));
+
+ /**
+ * {@code #minecraft:polar_bears_spawnable_on_alternate}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> POLAR_BEARS_SPAWNABLE_ON_ALTERNATE = create(key("polar_bears_spawnable_on_alternate"));
+
+ /**
+ * {@code #minecraft:portals}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> PORTALS = create(key("portals"));
+
+ /**
+ * {@code #minecraft:pressure_plates}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> PRESSURE_PLATES = create(key("pressure_plates"));
+
+ /**
+ * {@code #minecraft:prevent_mob_spawning_inside}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> PREVENT_MOB_SPAWNING_INSIDE = create(key("prevent_mob_spawning_inside"));
+
+ /**
+ * {@code #minecraft:rabbits_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> RABBITS_SPAWNABLE_ON = create(key("rabbits_spawnable_on"));
+
+ /**
+ * {@code #minecraft:rails}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> RAILS = create(key("rails"));
+
+ /**
+ * {@code #minecraft:redstone_ores}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> REDSTONE_ORES = create(key("redstone_ores"));
+
+ /**
+ * {@code #minecraft:replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> REPLACEABLE = create(key("replaceable"));
+
+ /**
+ * {@code #minecraft:replaceable_by_trees}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> REPLACEABLE_BY_TREES = create(key("replaceable_by_trees"));
+
+ /**
+ * {@code #minecraft:sand}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SAND = create(key("sand"));
+
+ /**
+ * {@code #minecraft:saplings}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SAPLINGS = create(key("saplings"));
+
+ /**
+ * {@code #minecraft:sculk_replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SCULK_REPLACEABLE = create(key("sculk_replaceable"));
+
+ /**
+ * {@code #minecraft:sculk_replaceable_world_gen}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SCULK_REPLACEABLE_WORLD_GEN = create(key("sculk_replaceable_world_gen"));
+
+ /**
+ * {@code #minecraft:shulker_boxes}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SHULKER_BOXES = create(key("shulker_boxes"));
+
+ /**
+ * {@code #minecraft:signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SIGNS = create(key("signs"));
+
+ /**
+ * {@code #minecraft:slabs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SLABS = create(key("slabs"));
+
+ /**
+ * {@code #minecraft:small_dripleaf_placeable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SMALL_DRIPLEAF_PLACEABLE = create(key("small_dripleaf_placeable"));
+
+ /**
+ * {@code #minecraft:small_flowers}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SMALL_FLOWERS = create(key("small_flowers"));
+
+ /**
+ * {@code #minecraft:smelts_to_glass}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SMELTS_TO_GLASS = create(key("smelts_to_glass"));
+
+ /**
+ * {@code #minecraft:snaps_goat_horn}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SNAPS_GOAT_HORN = create(key("snaps_goat_horn"));
+
+ /**
+ * {@code #minecraft:sniffer_diggable_block}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SNIFFER_DIGGABLE_BLOCK = create(key("sniffer_diggable_block"));
+
+ /**
+ * {@code #minecraft:sniffer_egg_hatch_boost}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SNIFFER_EGG_HATCH_BOOST = create(key("sniffer_egg_hatch_boost"));
+
+ /**
+ * {@code #minecraft:snow}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SNOW = create(key("snow"));
+
+ /**
+ * {@code #minecraft:snow_layer_can_survive_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SNOW_LAYER_CAN_SURVIVE_ON = create(key("snow_layer_can_survive_on"));
+
+ /**
+ * {@code #minecraft:snow_layer_cannot_survive_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SNOW_LAYER_CANNOT_SURVIVE_ON = create(key("snow_layer_cannot_survive_on"));
+
+ /**
+ * {@code #minecraft:soul_fire_base_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SOUL_FIRE_BASE_BLOCKS = create(key("soul_fire_base_blocks"));
+
+ /**
+ * {@code #minecraft:soul_speed_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SOUL_SPEED_BLOCKS = create(key("soul_speed_blocks"));
+
+ /**
+ * {@code #minecraft:spruce_logs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SPRUCE_LOGS = create(key("spruce_logs"));
+
+ /**
+ * {@code #minecraft:stairs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STAIRS = create(key("stairs"));
+
+ /**
+ * {@code #minecraft:standing_signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STANDING_SIGNS = create(key("standing_signs"));
+
+ /**
+ * {@code #minecraft:stone_bricks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STONE_BRICKS = create(key("stone_bricks"));
+
+ /**
+ * {@code #minecraft:stone_buttons}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STONE_BUTTONS = create(key("stone_buttons"));
+
+ /**
+ * {@code #minecraft:stone_ore_replaceables}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STONE_ORE_REPLACEABLES = create(key("stone_ore_replaceables"));
+
+ /**
+ * {@code #minecraft:stone_pressure_plates}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STONE_PRESSURE_PLATES = create(key("stone_pressure_plates"));
+
+ /**
+ * {@code #minecraft:strider_warm_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> STRIDER_WARM_BLOCKS = create(key("strider_warm_blocks"));
+
+ /**
+ * {@code #minecraft:sword_efficient}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> SWORD_EFFICIENT = create(key("sword_efficient"));
+
+ /**
+ * {@code #minecraft:tall_flowers}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> TALL_FLOWERS = create(key("tall_flowers"));
+
+ /**
+ * {@code #minecraft:terracotta}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> TERRACOTTA = create(key("terracotta"));
+
+ /**
+ * {@code #minecraft:trail_ruins_replaceable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> TRAIL_RUINS_REPLACEABLE = create(key("trail_ruins_replaceable"));
+
+ /**
+ * {@code #minecraft:trapdoors}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> TRAPDOORS = create(key("trapdoors"));
+
+ /**
+ * {@code #minecraft:underwater_bonemeals}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> UNDERWATER_BONEMEALS = create(key("underwater_bonemeals"));
+
+ /**
+ * {@code #minecraft:unstable_bottom_center}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> UNSTABLE_BOTTOM_CENTER = create(key("unstable_bottom_center"));
+
+ /**
+ * {@code #minecraft:valid_spawn}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> VALID_SPAWN = create(key("valid_spawn"));
+
+ /**
+ * {@code #minecraft:vibration_resonators}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> VIBRATION_RESONATORS = create(key("vibration_resonators"));
+
+ /**
+ * {@code #minecraft:wall_corals}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WALL_CORALS = create(key("wall_corals"));
+
+ /**
+ * {@code #minecraft:wall_hanging_signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WALL_HANGING_SIGNS = create(key("wall_hanging_signs"));
+
+ /**
+ * {@code #minecraft:wall_post_override}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WALL_POST_OVERRIDE = create(key("wall_post_override"));
+
+ /**
+ * {@code #minecraft:wall_signs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WALL_SIGNS = create(key("wall_signs"));
+
+ /**
+ * {@code #minecraft:walls}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WALLS = create(key("walls"));
+
+ /**
+ * {@code #minecraft:warped_stems}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WARPED_STEMS = create(key("warped_stems"));
+
+ /**
+ * {@code #minecraft:wart_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WART_BLOCKS = create(key("wart_blocks"));
+
+ /**
+ * {@code #minecraft:wither_immune}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WITHER_IMMUNE = create(key("wither_immune"));
+
+ /**
+ * {@code #minecraft:wither_summon_base_blocks}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WITHER_SUMMON_BASE_BLOCKS = create(key("wither_summon_base_blocks"));
+
+ /**
+ * {@code #minecraft:wolves_spawnable_on}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOLVES_SPAWNABLE_ON = create(key("wolves_spawnable_on"));
+
+ /**
+ * {@code #minecraft:wooden_buttons}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_BUTTONS = create(key("wooden_buttons"));
+
+ /**
+ * {@code #minecraft:wooden_doors}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_DOORS = create(key("wooden_doors"));
+
+ /**
+ * {@code #minecraft:wooden_fences}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_FENCES = create(key("wooden_fences"));
+
+ /**
+ * {@code #minecraft:wooden_pressure_plates}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_PRESSURE_PLATES = create(key("wooden_pressure_plates"));
+
+ /**
+ * {@code #minecraft:wooden_slabs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_SLABS = create(key("wooden_slabs"));
+
+ /**
+ * {@code #minecraft:wooden_stairs}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_STAIRS = create(key("wooden_stairs"));
+
+ /**
+ * {@code #minecraft:wooden_trapdoors}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOODEN_TRAPDOORS = create(key("wooden_trapdoors"));
+
+ /**
+ * {@code #minecraft:wool}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOOL = create(key("wool"));
+
+ /**
+ * {@code #minecraft:wool_carpets}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<BlockType> WOOL_CARPETS = create(key("wool_carpets"));
+
+ private BlockTypeTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link BlockType} in the registry {@code minecraft:block}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<BlockType> create(final Key key) {
+ return TagKey.create(RegistryKey.BLOCK, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java
new file mode 100644
index 0000000000..2557a4a3f1
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java
@@ -0,0 +1,57 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.entity.Cat;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#CAT_VARIANT}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class CatVariantTagKeys {
+ /**
+ * {@code #minecraft:default_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Cat.Type> DEFAULT_SPAWNS = create(key("default_spawns"));
+
+ /**
+ * {@code #minecraft:full_moon_spawns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Cat.Type> FULL_MOON_SPAWNS = create(key("full_moon_spawns"));
+
+ private CatVariantTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link Cat.Type} in the registry {@code minecraft:cat_variant}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<Cat.Type> create(final Key key) {
+ return TagKey.create(RegistryKey.CAT_VARIANT, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java
new file mode 100644
index 0000000000..084d2832b5
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java
@@ -0,0 +1,274 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.damage.DamageType;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#DAMAGE_TYPE}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class DamageTypeTagKeys {
+ /**
+ * {@code #minecraft:always_hurts_ender_dragons}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> ALWAYS_HURTS_ENDER_DRAGONS = create(key("always_hurts_ender_dragons"));
+
+ /**
+ * {@code #minecraft:always_kills_armor_stands}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> ALWAYS_KILLS_ARMOR_STANDS = create(key("always_kills_armor_stands"));
+
+ /**
+ * {@code #minecraft:always_most_significant_fall}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> ALWAYS_MOST_SIGNIFICANT_FALL = create(key("always_most_significant_fall"));
+
+ /**
+ * {@code #minecraft:always_triggers_silverfish}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> ALWAYS_TRIGGERS_SILVERFISH = create(key("always_triggers_silverfish"));
+
+ /**
+ * {@code #minecraft:avoids_guardian_thorns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> AVOIDS_GUARDIAN_THORNS = create(key("avoids_guardian_thorns"));
+
+ /**
+ * {@code #minecraft:burn_from_stepping}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BURN_FROM_STEPPING = create(key("burn_from_stepping"));
+
+ /**
+ * {@code #minecraft:burns_armor_stands}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BURNS_ARMOR_STANDS = create(key("burns_armor_stands"));
+
+ /**
+ * {@code #minecraft:bypasses_armor}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_ARMOR = create(key("bypasses_armor"));
+
+ /**
+ * {@code #minecraft:bypasses_effects}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_EFFECTS = create(key("bypasses_effects"));
+
+ /**
+ * {@code #minecraft:bypasses_enchantments}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_ENCHANTMENTS = create(key("bypasses_enchantments"));
+
+ /**
+ * {@code #minecraft:bypasses_invulnerability}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_INVULNERABILITY = create(key("bypasses_invulnerability"));
+
+ /**
+ * {@code #minecraft:bypasses_resistance}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_RESISTANCE = create(key("bypasses_resistance"));
+
+ /**
+ * {@code #minecraft:bypasses_shield}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_SHIELD = create(key("bypasses_shield"));
+
+ /**
+ * {@code #minecraft:bypasses_wolf_armor}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> BYPASSES_WOLF_ARMOR = create(key("bypasses_wolf_armor"));
+
+ /**
+ * {@code #minecraft:can_break_armor_stand}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> CAN_BREAK_ARMOR_STAND = create(key("can_break_armor_stand"));
+
+ /**
+ * {@code #minecraft:damages_helmet}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> DAMAGES_HELMET = create(key("damages_helmet"));
+
+ /**
+ * {@code #minecraft:ignites_armor_stands}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IGNITES_ARMOR_STANDS = create(key("ignites_armor_stands"));
+
+ /**
+ * {@code #minecraft:is_drowning}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_DROWNING = create(key("is_drowning"));
+
+ /**
+ * {@code #minecraft:is_explosion}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_EXPLOSION = create(key("is_explosion"));
+
+ /**
+ * {@code #minecraft:is_fall}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_FALL = create(key("is_fall"));
+
+ /**
+ * {@code #minecraft:is_fire}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_FIRE = create(key("is_fire"));
+
+ /**
+ * {@code #minecraft:is_freezing}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_FREEZING = create(key("is_freezing"));
+
+ /**
+ * {@code #minecraft:is_lightning}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_LIGHTNING = create(key("is_lightning"));
+
+ /**
+ * {@code #minecraft:is_player_attack}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_PLAYER_ATTACK = create(key("is_player_attack"));
+
+ /**
+ * {@code #minecraft:is_projectile}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> IS_PROJECTILE = create(key("is_projectile"));
+
+ /**
+ * {@code #minecraft:mace_smash}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> MACE_SMASH = create(key("mace_smash"));
+
+ /**
+ * {@code #minecraft:no_anger}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> NO_ANGER = create(key("no_anger"));
+
+ /**
+ * {@code #minecraft:no_impact}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> NO_IMPACT = create(key("no_impact"));
+
+ /**
+ * {@code #minecraft:no_knockback}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> NO_KNOCKBACK = create(key("no_knockback"));
+
+ /**
+ * {@code #minecraft:panic_causes}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> PANIC_CAUSES = create(key("panic_causes"));
+
+ /**
+ * {@code #minecraft:panic_environmental_causes}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> PANIC_ENVIRONMENTAL_CAUSES = create(key("panic_environmental_causes"));
+
+ /**
+ * {@code #minecraft:witch_resistant_to}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> WITCH_RESISTANT_TO = create(key("witch_resistant_to"));
+
+ /**
+ * {@code #minecraft:wither_immune_to}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<DamageType> WITHER_IMMUNE_TO = create(key("wither_immune_to"));
+
+ private DamageTypeTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link DamageType} in the registry {@code minecraft:damage_type}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<DamageType> create(final Key key) {
+ return TagKey.create(RegistryKey.DAMAGE_TYPE, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/FluidTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/FluidTagKeys.java
new file mode 100644
index 0000000000..5574a7813a
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/FluidTagKeys.java
@@ -0,0 +1,57 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.Fluid;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#FLUID}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class FluidTagKeys {
+ /**
+ * {@code #minecraft:lava}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Fluid> LAVA = create(key("lava"));
+
+ /**
+ * {@code #minecraft:water}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Fluid> WATER = create(key("water"));
+
+ private FluidTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link Fluid} in the registry {@code minecraft:fluid}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<Fluid> create(final Key key) {
+ return TagKey.create(RegistryKey.FLUID, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java
new file mode 100644
index 0000000000..06209e840b
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java
@@ -0,0 +1,78 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.GameEvent;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#GAME_EVENT}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class GameEventTagKeys {
+ /**
+ * {@code #minecraft:allay_can_listen}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<GameEvent> ALLAY_CAN_LISTEN = create(key("allay_can_listen"));
+
+ /**
+ * {@code #minecraft:ignore_vibrations_sneaking}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<GameEvent> IGNORE_VIBRATIONS_SNEAKING = create(key("ignore_vibrations_sneaking"));
+
+ /**
+ * {@code #minecraft:shrieker_can_listen}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<GameEvent> SHRIEKER_CAN_LISTEN = create(key("shrieker_can_listen"));
+
+ /**
+ * {@code #minecraft:vibrations}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<GameEvent> VIBRATIONS = create(key("vibrations"));
+
+ /**
+ * {@code #minecraft:warden_can_listen}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<GameEvent> WARDEN_CAN_LISTEN = create(key("warden_can_listen"));
+
+ private GameEventTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link GameEvent} in the registry {@code minecraft:game_event}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<GameEvent> create(final Key key) {
+ return TagKey.create(RegistryKey.GAME_EVENT, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java
new file mode 100644
index 0000000000..5a74738058
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java
@@ -0,0 +1,64 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.MusicInstrument;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#INSTRUMENT}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class InstrumentTagKeys {
+ /**
+ * {@code #minecraft:goat_horns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<MusicInstrument> GOAT_HORNS = create(key("goat_horns"));
+
+ /**
+ * {@code #minecraft:regular_goat_horns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<MusicInstrument> REGULAR_GOAT_HORNS = create(key("regular_goat_horns"));
+
+ /**
+ * {@code #minecraft:screaming_goat_horns}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<MusicInstrument> SCREAMING_GOAT_HORNS = create(key("screaming_goat_horns"));
+
+ private InstrumentTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link MusicInstrument} in the registry {@code minecraft:instrument}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<MusicInstrument> create(final Key key) {
+ return TagKey.create(RegistryKey.INSTRUMENT, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java
new file mode 100644
index 0000000000..4ca9f37200
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java
@@ -0,0 +1,50 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.Art;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#PAINTING_VARIANT}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class PaintingVariantTagKeys {
+ /**
+ * {@code #minecraft:placeable}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Art> PLACEABLE = create(key("placeable"));
+
+ private PaintingVariantTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link Art} in the registry {@code minecraft:painting_variant}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<Art> create(final Key key) {
+ return TagKey.create(RegistryKey.PAINTING_VARIANT, key);
+ }
+}
diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/StructureTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/StructureTagKeys.java
new file mode 100644
index 0000000000..7c98210107
--- /dev/null
+++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/StructureTagKeys.java
@@ -0,0 +1,198 @@
+package io.papermc.paper.registry.keys.tags;
+
+import static net.kyori.adventure.key.Key.key;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import io.papermc.paper.registry.RegistryKey;
+import io.papermc.paper.registry.tag.TagKey;
+import net.kyori.adventure.key.Key;
+import org.bukkit.MinecraftExperimental;
+import org.bukkit.generator.structure.Structure;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Vanilla keys for {@link RegistryKey#STRUCTURE}.
+ *
+ * @apiNote The fields provided here are a direct representation of
+ * what is available from the vanilla game source. They may be
+ * changed (including removals) on any Minecraft version
+ * bump, so cross-version compatibility is not provided on the
+ * same level as it is on most of the other API.
+ */
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.3")
+@NullMarked
+public final class StructureTagKeys {
+ /**
+ * {@code #minecraft:cats_spawn_as_black}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> CATS_SPAWN_AS_BLACK = create(key("cats_spawn_as_black"));
+
+ /**
+ * {@code #minecraft:cats_spawn_in}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> CATS_SPAWN_IN = create(key("cats_spawn_in"));
+
+ /**
+ * {@code #minecraft:dolphin_located}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> DOLPHIN_LOCATED = create(key("dolphin_located"));
+
+ /**
+ * {@code #minecraft:eye_of_ender_located}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> EYE_OF_ENDER_LOCATED = create(key("eye_of_ender_located"));
+
+ /**
+ * {@code #minecraft:mineshaft}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> MINESHAFT = create(key("mineshaft"));
+
+ /**
+ * {@code #minecraft:ocean_ruin}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> OCEAN_RUIN = create(key("ocean_ruin"));
+
+ /**
+ * {@code #minecraft:on_desert_village_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_DESERT_VILLAGE_MAPS = create(key("on_desert_village_maps"));
+
+ /**
+ * {@code #minecraft:on_jungle_explorer_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_JUNGLE_EXPLORER_MAPS = create(key("on_jungle_explorer_maps"));
+
+ /**
+ * {@code #minecraft:on_ocean_explorer_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> ON_OCEAN_EXPLORER_MAPS = create(key("on_ocean_explorer_maps"));
+
+ /**
+ * {@code #minecraft:on_plains_village_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_PLAINS_VILLAGE_MAPS = create(key("on_plains_village_maps"));
+
+ /**
+ * {@code #minecraft:on_savanna_village_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_SAVANNA_VILLAGE_MAPS = create(key("on_savanna_village_maps"));
+
+ /**
+ * {@code #minecraft:on_snowy_village_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_SNOWY_VILLAGE_MAPS = create(key("on_snowy_village_maps"));
+
+ /**
+ * {@code #minecraft:on_swamp_explorer_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_SWAMP_EXPLORER_MAPS = create(key("on_swamp_explorer_maps"));
+
+ /**
+ * {@code #minecraft:on_taiga_village_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ @ApiStatus.Experimental
+ @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE)
+ public static final TagKey<Structure> ON_TAIGA_VILLAGE_MAPS = create(key("on_taiga_village_maps"));
+
+ /**
+ * {@code #minecraft:on_treasure_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> ON_TREASURE_MAPS = create(key("on_treasure_maps"));
+
+ /**
+ * {@code #minecraft:on_trial_chambers_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> ON_TRIAL_CHAMBERS_MAPS = create(key("on_trial_chambers_maps"));
+
+ /**
+ * {@code #minecraft:on_woodland_explorer_maps}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> ON_WOODLAND_EXPLORER_MAPS = create(key("on_woodland_explorer_maps"));
+
+ /**
+ * {@code #minecraft:ruined_portal}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> RUINED_PORTAL = create(key("ruined_portal"));
+
+ /**
+ * {@code #minecraft:shipwreck}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> SHIPWRECK = create(key("shipwreck"));
+
+ /**
+ * {@code #minecraft:village}
+ *
+ * @apiNote This field is version-dependant and may be removed in future Minecraft versions
+ */
+ public static final TagKey<Structure> VILLAGE = create(key("village"));
+
+ private StructureTagKeys() {
+ }
+
+ /**
+ * Creates a tag key for {@link Structure} in the registry {@code minecraft:worldgen/structure}.
+ *
+ * @param key the tag key's key
+ * @return a new tag key
+ */
+ @ApiStatus.Experimental
+ public static TagKey<Structure> create(final Key key) {
+ return TagKey.create(RegistryKey.STRUCTURE, key);
+ }
+}
diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Generators.java b/paper-api-generator/src/main/java/io/papermc/generator/Generators.java
index a33d52a696..73e4f70825 100644
--- a/paper-api-generator/src/main/java/io/papermc/generator/Generators.java
+++ b/paper-api-generator/src/main/java/io/papermc/generator/Generators.java
@@ -66,8 +66,19 @@ public interface Generators {
simpleKey("InstrumentKeys", MusicInstrument.class, Registries.INSTRUMENT, RegistryKey.INSTRUMENT, true),
// tags
- simpleTagKey("EnchantmentTagKeys", Enchantment.class, Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT),
+ simpleTagKey("GameEventTagKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT),
+ simpleTagKey("BlockTypeTagKeys", BlockType.class, Registries.BLOCK, RegistryKey.BLOCK),
simpleTagKey("ItemTypeTagKeys", ItemType.class, Registries.ITEM, RegistryKey.ITEM),
+ simpleTagKey("CatVariantTagKeys", Cat.Type.class, Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT),
+ simpleTagKey("FluidTagKeys", Fluid.class, Registries.FLUID, RegistryKey.FLUID),
+
+ simpleTagKey("BiomeTagKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME),
+ simpleTagKey("StructureTagKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE),
+ simpleTagKey("DamageTypeTagKeys", DamageType.class, Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE),
+ simpleTagKey("EnchantmentTagKeys", Enchantment.class, Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT),
+ simpleTagKey("BannerPatternTagKeys", PatternType.class, Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN),
+ simpleTagKey("PaintingVariantTagKeys", Art.class, Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT),
+ simpleTagKey("InstrumentTagKeys", MusicInstrument.class, Registries.INSTRUMENT, RegistryKey.INSTRUMENT),
new MobGoalGenerator("VanillaGoal", "com.destroystokyo.paper.entity.ai")
};