Merging two maps of objects

Hi guys,

I’m looking for some advice or help with the following. I’m not even sure if it’s possible.

locals {
   objs_a = {
       "item_1" = {
            "field1" = "value"
            "field2" = [ 
                 "list1", "list2"
            ]
       } 
   }
   objs_b = {
       "item_1" = {
            "field1" = ""
            "field2" = [ 
                 "list3"
            ]
       } 
   }
   objs_c = {
       "item_1" = {
            "field1" = "value"
            "field2" = [ 
                 "list1"
                 "list2"
                 "list3"
            ]
       } 
   }
}

So, I have two maps of object(string, map(string)) that I want to merge, such that in the example above, merge(local.objs_a, local.objs_b) = local.objs_c.

From what I can tell in the merge docs, when both maps contain the same key, it just takes the value from the later specified map. I want to make it merge two items together, null coalescing the string fields and merging the list fields.

Is this even possible, and if so, how?