I think that there is no escaping to accept that it will always be possible to construct pieces with such complex moves that a move diagram, no matter how advanced, will be more confusing than helpful. In the variants I have made Interactive Diagrams for so far, I encountered pieces that could jump over any number of contiguous friendly pieces, that could capture linear groups of enemy pieces, that could slide only over occupied squares, and capture anything on the squares it passed over... This is why the primary function of the Diagram is to experiment with the piece on a fully populated board, surrounding it by friends and enemies in all kind of ways. If someone wants to study how the move pattern of a King is different on 5th rank, he can just drag the King to 5th rank, and then move it from there.
The move diagrams are already coupled to the mouse, for materializing an enemy Pawn by hovering, in order to reveal hopping and lameness. On an empty board a Grasshopper would not have any moves. The move diagram indicates where a mount would activate some moves. But you would never know whether these moves are like a Grasshoper or like a Korean Cannon without probing it. We cannot use the mouse for moving both the piece and its potential mount or victim. What if the piece is a Korean Cannon with position dependent moves? (Oops! Janggi actually has that!)
The Diagram treats cases like the Elk as two pieces. There is an 'Elk (light)' and an 'Elk (dark)', which are treated as different piece types, which morph/promote to each other. So you can summon a move diagram for each of those, without the need to move them around. Likewise, in Xiangqi you would have a 'Soldier (crossed)' and a 'Soldier (own half)'.
For confinement there is another mechanism, though. In principle you could implement confinement as location-dependent moving: a Xiangqi General has different moves on d0, d1, d2, e2, f2, f1, f0 and e0/e1, none of which happens to step out of the Palace. So we could have 8 different piece types, all promoting into each other when they move. If you really did that, you would have separate move diagrams for each location. But it is simpler to consider the General as a Wazir that is confined to a 3x3 sub-board. Because the moves of a General on, say, d0 are not really different from a Wazir. They just have some moves clipped that would leave the sub-board. So "Wazir that cannot leave the Palace area" is a much clearer description.
If one rally wants to have separate move diagrams for a 5th-rank King, the ID can provide that: you just have to define 'King (5th rank)' as a separate piece type from 'King', and make King oromote to 'King (5th rank)' when it reaches 5th rank, and the other way around when it reaches 4th rank. I don't think that would be particularly illuminating, though. Writing a sentence "the King is confined to the 3x3 Palace" right under the clickable list would be much clearer. I would prefer such a warning for every case where the normal move diagram would not tell the whole story.
I think that there is no escaping to accept that it will always be possible to construct pieces with such complex moves that a move diagram, no matter how advanced, will be more confusing than helpful. In the variants I have made Interactive Diagrams for so far, I encountered pieces that could jump over any number of contiguous friendly pieces, that could capture linear groups of enemy pieces, that could slide only over occupied squares, and capture anything on the squares it passed over... This is why the primary function of the Diagram is to experiment with the piece on a fully populated board, surrounding it by friends and enemies in all kind of ways. If someone wants to study how the move pattern of a King is different on 5th rank, he can just drag the King to 5th rank, and then move it from there.
The move diagrams are already coupled to the mouse, for materializing an enemy Pawn by hovering, in order to reveal hopping and lameness. On an empty board a Grasshopper would not have any moves. The move diagram indicates where a mount would activate some moves. But you would never know whether these moves are like a Grasshoper or like a Korean Cannon without probing it. We cannot use the mouse for moving both the piece and its potential mount or victim. What if the piece is a Korean Cannon with position dependent moves? (Oops! Janggi actually has that!)
The Diagram treats cases like the Elk as two pieces. There is an 'Elk (light)' and an 'Elk (dark)', which are treated as different piece types, which morph/promote to each other. So you can summon a move diagram for each of those, without the need to move them around. Likewise, in Xiangqi you would have a 'Soldier (crossed)' and a 'Soldier (own half)'.
For confinement there is another mechanism, though. In principle you could implement confinement as location-dependent moving: a Xiangqi General has different moves on d0, d1, d2, e2, f2, f1, f0 and e0/e1, none of which happens to step out of the Palace. So we could have 8 different piece types, all promoting into each other when they move. If you really did that, you would have separate move diagrams for each location. But it is simpler to consider the General as a Wazir that is confined to a 3x3 sub-board. Because the moves of a General on, say, d0 are not really different from a Wazir. They just have some moves clipped that would leave the sub-board. So "Wazir that cannot leave the Palace area" is a much clearer description.
If one rally wants to have separate move diagrams for a 5th-rank King, the ID can provide that: you just have to define 'King (5th rank)' as a separate piece type from 'King', and make King oromote to 'King (5th rank)' when it reaches 5th rank, and the other way around when it reaches 4th rank. I don't think that would be particularly illuminating, though. Writing a sentence "the King is confined to the 3x3 Palace" right under the clickable list would be much clearer. I would prefer such a warning for every case where the normal move diagram would not tell the whole story.