For action blocks, there must be an initial flow at the start and a final activity at the end, and flows cannot cross the blocks boundaries to actions in the block (though they might enter and leave the block itself). The code generator puts blocks code in curly braces, and this code block has language significance regarding variable scope and lifetime.