Block Position
Represents the position of a block (x, y, z, and world).
Why not just use Block? Because Block contains lots of extra information such as the type of the block, and so cannot practically be serialized. Holding references to blocks for extended periods may also prevent chunks from unloading, and increase memory usage.