Yes RJ, that is a bit more color on the same quagmire I outlined above with Smith.
In your example, there is no choice for the merge order at all. It must be Ziggy-5 as the final destination, regardless of whatever has a PPP or not, because Ziggy-5 is the lowest number match with the exact same spelling. The system does not allow merge into any higher number.
But since Ziggy-5 is not the original parent of the PPP child, then It does seem that a Leader must somehow complete the merge, or disconnect the relationship, which is a troublesome and awkward and distateful way to resolve what amounts to a bad bit of software programming.
So hopefully the fix can be built in to the program to accommodate this situation before this change goes live.
On the other hand, their is no guarantee that the lowest number match of the spelling is indeed the same person. For example, Ziggy-5 may perhaps be an infant sibling of the same name who died young. So he is an infant uncle of the PPP child.
But if the system allows an automatic merge override in this case, there is a possibility of a random new person merging away the correct parent into the wrong profile, simply because the grandparents are the same, and the name is the same.
I think the technical solution that I would like to see in such a case is to impose an automatic merge block on the PPP child, until a Leader completes the parent merge successfully..
In other words, whenever a merge proposal into a a PPP child profile has a conflicting parent of any kind, then merge completion is totally locked, similar to how it works now if both profiles have PPP. Nobody can complete the merge until one of the PPPs is removed.
The parent merge completion would also be locked (except for Leaders), per the new program rule, if the result would be a parent swap.
So this additional child PPP lock that I am proposing would then allow some extra time for project member and Leaders to assess the situation, and resolve the parents, through G2G or other alerts for Leader attention on the parents to resolve them in the correct way first..
Frankly, I would like to see that child lock (whenever parents differ) be imposed now in any case, on all merges, PPP or not. That would stop the awful practice of people disconnecting all the extra parents every time they complete a descendant merge first.
This single programming fix would be a blessing to the WikiTree, because it would train people into the best practice of resolving the oldest ancestors first.