anchor.diff:  --------------------------------------------------
   // NOTCONSOLE
   
  -==== Empty Buckets
  +[[scripted-metric-aggregation-empty-buckets]]
  +==== Empty buckets
   
   If a parent bucket of the scripted metric aggregation does not collect any documents an empty aggregation response will be returned from the
   shard with a `null` value. In this case the `reduce_script`'s `states` variable will contain `null` as a response from that shard.
  
positive.code: In the above example, the `reduce_script` iterates through the `profit` returned by each shard summing the values before returning the
  final combined profit which will be returned in the response of the aggregation.
  
  ==== Worked Example
  
  Imagine a situation where you index the following documents into an index with 2 shards:
  
  
negative.code: * Map (containing only keys and values of the types listed here)
  * Array (containing elements of only the types listed here)
  
  [[scripted-metric-aggregation-scope]]
  ==== Scope of scripts
  
  The scripted metric aggregation uses scripts at 4 stages of its execution:
  