The Diagram does not support 'partial imitators', which can only imitate a subset of the pieces, or of the moves of some of the pieces. I suppose it would be possible to exploit the possibility to veto unwanted moves through a user-supplied JavaScript function BadZone.
I had to do something similar to this to get it working in ChessV. A basic imitator rule will, of course, imitate all moves. It requires extra code to stop it from imitating this. Also, the Joker imitating a pawn cannot capture en passant even if a pawn could do so. Fortunately, this did not require extra code for me just because of the way en passant is implemented as a rule and not a movement capability.
I had to do something similar to this to get it working in ChessV. A basic imitator rule will, of course, imitate all moves. It requires extra code to stop it from imitating this. Also, the Joker imitating a pawn cannot capture en passant even if a pawn could do so. Fortunately, this did not require extra code for me just because of the way en passant is implemented as a rule and not a movement capability.