Today I started working on custom entities.
I created the class derived of Block which is used for custom entity storage, with the corresponding unit tests and Lua bindings.

I added the AddBlock, RemoveBlock and ReplaceBlock classes, with unit tests and Lua bindings too.

After discussing with ries, I will modify the builder class to use the others operations (AddLayer, AddBlock, ...) in one undo cycle.