I noticed that there's a number of blocks in the org.bukkit.craftbukkit.block.impl package that extend BlockData but don't have an equivalent interface in the org.bukkit.block.data.type package. While not entirely necessary (I think all functionality can be accessed through Bukkit's API by instead casting to the appropriate superinterfaces) for the sake of convenience and completeness it would be nice if these had corresponding interfaces in the Bukkit API. Some of these (e.g. Cauldron) had a MaterialData equivalent before they were lost in the transition to 1.13.
Here's the list of missing BlockData types, with irrelevant abstract classes and technical blocks removed (apologies if I missed anything):
- CraftAnvil.java
- CraftBanner.java
- CraftBannerWall.java
- CraftBeetroot.java
- CraftCactus.java
- CraftCarrots.java
- CraftCauldron.java
- CraftChestTrapped.java
- CraftChorusFlower.java
- CraftChorusFruit.java
- CraftCobbleWall.java
- CraftCoralFan.java
- CraftCrops.java
- CraftDirtSnow.java
- CraftDropper.java
- CraftEndRod.java
- CraftFluids.java
- CraftGlazedTerracotta.java
- CraftGrass.java
- CraftHay.java
- CraftHugeMushroom.java
- CraftIceFrost.java
- CraftIronBars.java
- CraftKelp.java
- CraftLever.java
- CraftLogAbstract.java
- CraftMinecartDetector.java
- CraftMinecartTrack.java
- CraftMycel.java
- CraftNetherWart.java
- CraftPortal.java
- CraftPotatoes.java
- CraftPressurePlateBinary.java
- CraftPressurePlateWeighted.java
- CraftPumpkinCarved.java
- CraftRedstoneLamp.java
- CraftRedstoneOre.java
- CraftRedstoneTorch.java
- CraftReed.java
- CraftShulkerBox.java
- CraftSkull.java
- CraftSkullPlayer.java
- CraftSkullPlayerWall.java
- CraftSkullWall.java
- CraftStoneButton.java
- CraftStructure.java
- CraftTallPlantFlower.java
- CraftTallPlantShearable.java
- CraftTallSeaGrass.java
- CraftTorchWall.java
- CraftVine.java
- CraftWitherSkull.java
- CraftWitherSkullWall.java
- CraftWoodButton.java