Reference Managment

Maybe look at this topic: [Dev] Is there a need for an OfflinePlayer

You can use the UUID for players, worlds and entities, and maybe a vector for blocks/chunks if you want use them as Map keys.
Even when players change their name, the UUID is constant.
There is an issue with block movement (pistons, physics) if you use a vector for blocks.