fn merge_dotted(root: &mut Value, key: &str, v: Value) -> Result<()>
Set obj[a][b][c] = v for a dotted key like "a.b.c". Creates intermediate objects as needed; bails on a non-object collision.
obj[a][b][c] = v
"a.b.c"