For specifying a type dependence that is the same for all moves of a piece, the Interactive Diagram already supports the captureMatrix. With this you can specify for each piece which other piece types it cannot capture or jump over, and the remaining captures or jumps will then be allowed. This is usually enough; some variants do not allow some pieces to capture some other pieces (e.g. in Korean Chess Cannons cannot capture each other). But it only very rarely occurs that what you are allowed to capture depends on the exact move you capture it with. The only example I know of that is the Ultima Chameleon; it can capture like any other Ultima piece. But each such capture can only capture the piece that can capture this way itself.
For specifying a type dependence that is the same for all moves of a piece, the Interactive Diagram already supports the captureMatrix. With this you can specify for each piece which other piece types it cannot capture or jump over, and the remaining captures or jumps will then be allowed. This is usually enough; some variants do not allow some pieces to capture some other pieces (e.g. in Korean Chess Cannons cannot capture each other). But it only very rarely occurs that what you are allowed to capture depends on the exact move you capture it with. The only example I know of that is the Ultima Chameleon; it can capture like any other Ultima piece. But each such capture can only capture the piece that can capture this way itself.