Predicate<Block> serialization + more

At the moment it’s only possible to serialize blocktypes / blockstates.

So doing something like getting players to list blockstates / blocktypes in configs that match against Blocks/Entities/Items is going to get really tedious really quickly as everyone implements their own config language for dealing with this.

Is there any chance we can somewhat standardize, maybe even getting included in sponge, for a way to serialize block expressions to a config?

I had a quick jab at trying to write a gist that would be compatible with the existing vanilla blockstate serialization, but welcome feedback on how to make this more generic for DataHolders / entities / more.

Feel free to fork it, or provide comments on what you think could be done better.