It's actually quite easy. team-validator.js ( https://github.com/Zarel/Pokemon-Sh...310d22583c77b37fba6f4280751/team-validator.js ) has a check on abilities. We'd probably just have to check for Prankster and if it is Prankster, then iterate over |set.moves| and look up the id to ensure that Swagger isn't a move on the Pokemon. If it fails this test, then |problems.push(name+"'s move"+set.moves+" is banned because Swagger is not allowed in conjunction with Prankster.")|.
I said that in a reply to someone who claimed there was nothing complex about a complex ban. Since you seem to be good at programming you could probably confirm that simply banning Swagger rather than a combination of Swagger + Prankster is significantly easier to code. Anyways it's really an unnecessary argument, there's just no good reason to opt for a complex ban when a simple Swagger ban solves everything. People might also want to take a look at the PO Swagger suspect test, they give some good extra explanations on why this is the case.