There might be a few problems though. As I understand it a blockstate represents what we currently use two variables for (blocktype and blockmeta/nibbletype). Methods that currently require those two variables could have problems. We could add deprecated bindings for those to automatically convert the old blocktype/meta variables into a blockstate.
To be honest, while backwards compatibility is nice, this is such a huge architectural change which we need to move forward that I'm fine with a somewhat lacking compatibility layer like deprecated bindings which translate blocktype/meta on the fly.
To be honest, while backwards compatibility is nice, this is such a huge architectural change which we need to move forward that I'm fine with a somewhat lacking compatibility layer like deprecated bindings which translate blocktype/meta on the fly.