I think this function will significantly simplify user-node->plan-node above. With the context as metadata, the recursive solution is no longer needed and the zipper fn becomes pretty simple. I didn't do that yet as we need to get this in to move on to other endpoints and the streaming refactors. This will be on my list once we get another endpoint in