7#include <userver/formats/common/items.hpp> 
   17template <
typename Value>
 
   18void Merge(
typename Value::Builder& original, 
const Value& patch) {
 
   19  if (patch.IsObject() && original.IsObject() && !original.IsEmpty()) {
 
   20    for (
const auto& [elem_key, elem_value] : 
common::Items(patch)) {
 
   21      auto next_origin = original[elem_key];
 
   22      Merge(next_origin, elem_value);
 
   24  } 
else if (!patch.IsMissing()) {