Minecraft wiki entry for Development_versions, associated text: Added minecraft:placement_filter component which allows the player to set conditions for where the block can be placed.
Added serialization to Block Descriptor.
Added static anyMatch functions to BlockDescriptor to compare a list of BlockDescriptors against: Block*, BlockLegacy, or BlockDescriptor.
Added a function to compare two BlockDescriptors.
Changed the BlockDescriptor BlockLegacy member variable to a Block*, to set the block states during deferred block resolution and get the block with the states set.
Removed all the existing Block* json parsing.
Added unit tests to verify parsing and serializing block descriptors.
Added unit tests to verify comparing a BlockDescriptors against each other.
Added unit tests to verify getting a block from BlockDescriptor with the states set.