Allow different block extensions to be mapped to the same block name, but different contexts (aka structural containers). This allows the same block name to apply different behavior depending on what type of content it's annotating.
Custom example block.
Custom sidebar block
A unique block extension should be block name + context.
This can be partially alleviated if the extension knows which type of block it's handling, which is being addressed in #1606.
If we did this, it would allow us to set the cloaked context on the config object instead of passing it as an attribute.