query = program => (
q,
f = u =>
Object.fromEntries(
Object.keys(u)
.map(k => {
if (u[k].id) return u[k].id == '_' ? null : [k, u[k].id];
else if (u[k].value || u[k].value === 0) return [k, u[k].value];
else return [k, u[k]];
})
.filter(k => k)
)
) => Array.from(program.query(q), s => f(s.links || s.args[0].args))