I think the dataset I provided might not have been sufficient to demonstrate the problem, that’s my bad. I can provide a proper export if that helps
If you create a new child that has an edge to 371717 you’ll only get the latest child.
For example, without (first: 1) in the query I have something that looks like this:
query Structure($id: string)
{
q(func: eq(name, $id)) @recurse(depth: 5) {
uid
name
s: ~sponsor @facets(orderdesc:date)
}
}

At different points in time both 371717 and N69579 have been parents of N69542. I want to only show whichever of those is the latest one, whilst still maintaining the rest of the structure below 371717.
If I then update the query to include (first: 1):
query Structure($id: string)
{
q(func: eq(name, $id)) @recurse(depth: 5) {
uid
name
sponsoring: ~sponsor @facets(orderdesc:date) (first: 1)
}
}

I’m now only getting the very latest child.