e853bcd3 flatten: {"a": {"b": 1, "c": {"d": 2}}} -> {"a.b": 1, "a.c.d": 2} recursive DFS building dotted key path.