After some discussions how eval would work in jq i did experiments with jqjq. Making the path "transparent" so it works with assignment etc is quite fascinating:

$ ./jqjq -n '(.a | eval(".b.c, .d")) = 1'
{
"a": {
"b": {
"c": 1
},
"d": 1
}
}

#jq #jqjq