In my experience you need exactly what you said, and I would add that he probably would have spent half day to do the refactoring himself and it would be sure he did right.
I don't think you have to know the answer. If the person you replied to knew the answer, there wouldn't have been a big, lengthy discussion.
But yes, being an expert in the problem domain helps. Or at least knowing enough to know what the right questions are and what plausible answers look like.
I just had a similar situation where an hour or two of conversation turned into a five-minute robot coding task. The problem required a solution and the number of possible solutions is vast, but that list can be refined, and then once the course of action is set, sometimes the course itself isn't all that complicated.