although, I like to be able to do this, i find the syntax somewhat confusing... it seems like the 2nd line overrides the first.
how do you see this being used?

it seems to me that it would be easier to have a single derived_metadata hash, which you can just edit...
``` ruby
c.update_metadata { |m| m[:b1_desc] = m[:description] + " (block 1)" }
c.update_metadata { |m| m[:b2_desc] = m[:b1_desc]     + " (block 2)" }
```