How does the move_child function work?

Question

I get that I can use move_child to move a child node around under its parent, but what happens to the other child nodes?

For example,
a b c d

If I use move_child to move d to the 2nd position (where b is now), does that mean b is now in 3rd and c is in 4th? Or is it a swap and b is now in 4th?

I’m asking because I’m working on a turn counter that needs to be able to sort by time delay remaining, but I’m having a hard time writing the swap function because the documentation isn’t clear about this topic (and I’m also overthinking the algorithm but that’s my own problem).

The former is correct. The new order will be adbc.