Why doesn't hook_preprocess_block() alter the block content? I'm finding I can't alter block content with hook_preprocess_block() in Drupal 8.  Should I expect to be able to alter content, such as a block body, using hook_preprocess_block()?

For example, this has no effect on my block output:

function mysite_preprocess_block(&amp;$variables) {
  $variables['elements']['content']['body'][0]['#text'] = 'alter all block bodies everywhere';
}
There were two issues, in my case.  For one thing, I was using the wrong key.  I needed to use...

$variables['content']['body'][0]['#text'] 


...instead of...

$variables['elements']['content']['body'][0]['#text']


The other issue was that I had nothing saved in the body field, and in some cases setting a value for the body field in hook_preprocess_block() has no effect on output unless there is a value saved in the body field.  You must at least save some garbage characters to the field or else setting a value in hook_preprocess_block() will have no effect on the output.