i think we should allow to pass the id that block would have into the constructor. then we can produce the right key. and i guess the updatedAt should be `date()`. imo an empty block should not be a special case for caching. we just cache that when we ask for a block with some id, it is empty. this way manual cache invalidation when the block is created could also work, as we know which id to invalidate.

for the phpcr loader we would then pass the id that we tried to access, just as if it was a cmf BaseBlock with the phpcr id defined.