Better move validator (uses set theory) (documented in comments)
Better move validator
(uses set theory)
(documented in comments)

aakashrajput/Pokemon-Showdown,LustyAsh/EOS-Master,forbiddennightmare/Pokemon-Showdown-1,johtooo/PS,sama2/Universe-Pokemon-Showdown,Stroke123/POKEMON,Pikachuun/Joimmon-Showdown,ScottehMax/Pokemon-Showdown,yashagl/pokecommunity,ZestOfLife/PSserver,MayukhKundu/Technogear,iFaZe/SliverX,Celecitia/Plux-Pokemon-Showdown,comedianchameleon/test,SkyeTheFemaleSylveon/Pokemon-Showdown,SerperiorBae/PokemonShowdown2,Breakfastqueen/advanced,Darkshadow6/PokeMoon-Creation,Flareninja/Lumen-Pokemon-Showdown,javi501/Lumen-Pokemon-Showdown,HoeenCoder/SpacialGaze,kubetz/Pokemon-Showdown,svivian/Pokemon-Showdown,cadaeic/Pokemon-Showdown,SkyeTheFemaleSylveon/Mudkip-Server,JennyPRO/Jenny,ZestOfLife/FestiveLife,xfix/Pokemon-Showdown,catanatron/pokemon-rebalance,Parukia/Pokemon-Showdown,ShowdownHelper/Saffron,PauLucario/LQP-Server-Showdown,BuzzyOG/Pokemon-Showdown,Adithya4Uberz/The-Tsunami-League,BuzzyOG/Pokemon-Showdown,BlakJack/Kill-The-Noise,Enigami/Pokemon-Showdown,HoeenCoder/SpacialGaze,abulechu/Dropp-Pokemon-Showdown,danpantry/Pokemon-Showdown,hayleysworld/Pokemon-Showdown,RustServer/Pokemon-Showdown,Volcos/SpacialGaze,CreaturePhil/Pokemon-Showdown,TheManwithskills/Server-2,Flareninja/Showdown-Boilerplate,DarkSuicune/Pokemon-Showdown,Kevinxzllz/PS-Openshift-Server,SerperiorBae/Bae-Showdown-2,megaslowbro1/Pokemon-Showdown,asdfghjklohhnhn/Pokemon-Showdown,Wando94/Spite,Hidden-Mia/Roleplay-PS,ZestOfLife/FestiveLife,abulechu/Lumen-Pokemon-Showdown,panpawn/Gold-Server,PrimalGallade45/Dropp-Pokemon-Showdown,xfix/Pokemon-Showdown,lAlejandro22/lolipoop,forbiddennightmare/Pokemon-Showdown-1,ShowdownHelper/Saffron,hayleysworld/serenity,HoeenKid/Pokemon-Showdown-Johto,MasterFloat/LQP-Server-Showdown,xCrystal/Pokemon-Showdown,hayleysworld/Showdown-Boilerplate,panpawn/Pokemon-Showdown,PauLucario/LQP-Server-Showdown,Bryan-0/Pokemon-Showdown,SilverTactic/Dragotica-Pokemon-Showdown,DesoGit/TsunamiPS,Disaster-Area/Pokemon-Showdown,AWailOfATail/Pokemon-Showdown,urkerab/Pokemon-Showdown,megaslowbro1/Showdown-Server-again,Ridukuo/Test,ehk12/clone,FakeSloth/Infinite,xfix/Pokemon-Showdown,Zarel/Pokemon-Showdown,Hidden-Mia/Roleplay-PS,Pikachuun/Pokemon-Showdown-SMCMDM,cadaeic/Pokemon-Showdown,MayukhKundu/Pokemon-Domain,MasterFloat/Pokemon-Showdown,hayleysworld/harmonia,Tesarand/Pokemon-Showdown,zczd/enculer,JennyPRO/Jenny,Chespin14/Custom-Platform-Pokemon-Showdown,Ridukuo/Test,javi501/Lumen-Pokemon-Showdown,Nineage/Origin,MeliodasBH/boarhat,bai2/Dropp,Kokonoe-san/Glacia-PS,iFaZe/SilverZ,UniversalMan12/Universe-Server,Wando94/Pokemon-Showdown,Ecuacion/Pokemon-Showdown,sirDonovan/Pokemon-Showdown,MayukhKundu/Technogear-Final,DB898/theregalias,MeliodasBH/Articuno-Land,ehk12/coregit,lFernanl/Mudkip-Server,Kill-The-Noise/BlakJack-Boilerplate,JellalTheMage/Jellals-Server,NoahVSGamingYT/Pokemon-Showdown,Zipzapadam/Server,KewlStatics/Shit,Legendaryhades/Oblivion,sama2/Lumen-Pokemon-Showdown,Johto-Serverr/Werfin-Boilerplate,EienSeiryuu/Pokemon-Showdown,Raina4uberz/Light-server,Bryan-0/Pokemon-Showdown,jumbowhales/Pokemon-Showdown,urkerab/Pokemon-Showdown,Pikachuun/Pokemon-Showdown-SMCMDM,SerperiorBae/Bae-Showdown,Checkinator/Pokemon-Showdown,Guernouille/Pokemon-Showdown,gustavo515/batata,xfix/Pokemon-Showdown,CorruptedHelix/Pokemon-Showdown,Breakfastqueen/advanced,TheDiabolicGift/Showdown-Boilerplate,kuroscafe/Paradox,CrestfallPS/Pokemon-Showdown,BadSteel/Omega-Pokemon-Showdown,sama2/Dropp-Pokemon-Showdown,BuzzyOG/Pokemon-Showdown,ZeroParadox/ugh,asdfghjklohhnhn/Pokemon-Showdown,hayleysworld/asdfasdf,Alpha-Devs/Alpha-Server,SerperiorBae/PokemonShowdown2,Darkshadow6/git-remote-add-scalingo-git-scalingo.com-pokemoonforums,k3naan/Pokemon-Showdown,CreaturePhil/Showdown-Boilerplate,LegendBorned/PS-Boilerplate,Celecitia/Plux-Pokemon-Showdown,KewlStatics/Showdown-Template,ehk12/bigbangtempclone,sama2/Dropp-Pokemon-Showdown,SilverTactic/Pokemon-Showdown,Lord-Haji/SpacialGaze,AWailOfATail/Pokemon-Showdown,InvalidDN/Pokemon-Showdown,PS-Spectral/Spectral,Irraquated/EOS-Master,DalleTest/Pokemon-Showdown,Tesarand/Pokemon-Showdown,Flareninja/Pokemon-Showdown,Flareninja/Hispano-Pokemon-Showdown,DarkSuicune/Kakuja-2.0,jumbowhales/Pokemon-Showdown,AnaRitaTorres/Pokemon-Showdown,ehk12/bigbangtempclone,CorruptedHelix/Pokemon-Showdown,AvinashSwaminathan/Pokelegends,lAlejandro22/lolipoop,SilverTactic/Pokemon-Showdown,miahjennatills/Pokemon-Showdown,Kill-The-Noise/BlakJack-Boilerplate,Flareninja/Pokemon-Showdown-1,Articuno-I/Pokemon-Showdown,ZeroParadox/BlastBurners,Firestatics/omega,Stroke123/POKEMON,SerperiorBae/BaeShowdown,Irraquated/Pokemon-Showdown,lFernanl/Mudkip-Server,SilverTactic/Showdown-Boilerplate,AnaRitaTorres/Pokemon-Showdown,AustinXII/Pokemon-Showdown,TheManwithskills/Server---Thermal,PrimalGallade45/Dropp-Pokemon-Showdown,Ecuacion/Lumen-Pokemon-Showdown,Evil-kun/Pokemon-Showdown,Elveman/RPCShowdownServer,Wando94/Spite,zek7rom/SpacialGaze,panpawn/Gold-Server,superman8900/Pokemon-Showdown,Adithya4Uberz/KTN,ehk12/coregit,ZeroParadox/BlastBurners,QuiteQuiet/Pokemon-Showdown,bai2/Dropp,KewlStatics/Pokeindia-Codes,kuroscafe/Paradox,johtooo/PS,Pikachuun/Joimmon-Showdown,Kokonoe-san/Glacia-PS,anubhabsen/Pokemon-Showdown,yashagl/yash-showdown,Sora-Server/Sora,Yggdrasil-League/Yggdrasil,Atwar/ServerClassroom,Ecuacion/Pokemon-Showdown,lFernanl/Lumen-Pokemon-Showdown,CharizardtheFireMage/Showdown-Boilerplate,Firestatics/Firestatics46,TheManwithskills/Dusk--Showdown,comedianchameleon/servertest1,ZeroParadox/ugh,Pikachuun/Pokemon-Showdown,Darkshadow6/PokeMoon-Creation,KaitoV4X/Showdown,sirDonovan/Pokemon-Showdown,Lauc1an/Perulink-Showdown,Pokemon-Devs/Pokemon-Showdown,JellalTheMage/PS-,azum4roll/Pokemon-Showdown,Parukia/Pokemon-Showdown,kuroscafe/Showdown-Boilerplate,Enigami/Pokemon-Showdown,Flareninja/Pokemon-Showdown,JellalTheMage/Jellals-Server,SerperiorBae/Pokemon-Showdown-1,Extradeath/psserver,sama2/Lumen-Pokemon-Showdown,Flareninja/Sora,ZestOfLife/PSserver,Firestatics/Omega-Alpha,TheManwithskills/serenity,DarkSuicune/Pokemon-Showdown,SilverTactic/Dragotica-Pokemon-Showdown,gustavo515/gashoro,theodelhay/test,azum4roll/Pokemon-Showdown,Gold-Solox/Pokemon-Showdown,Extradeath/advanced,UniversalMan12/Universe-Server,gustavo515/test,Kill-The-Noise/BlakJack-Boilerplate,svivian/Pokemon-Showdown,TheDiabolicGift/Showdown-Boilerplate,Neosweiss/Pokemon-Showdown,TogeSR/Lumen-Pokemon-Showdown,EmmaKitty/Pokemon-Showdown,HoeenCoder/SpacialGaze,Pikachuun/Touhoumon-Showdown,QuiteQuiet/Pokemon-Showdown,xCrystal/Pokemon-Showdown,Psyientist/Showdown-Boilerplate,CharizardtheFireMage/Showdown-Boilerplate,DesoGit/Tsunami_PS,brettjbush/Pokemon-Showdown,scotchkorean27/Pokemon-Showdown,SolarisFox/Pokemon-Showdown,Ridukuo/Test2,SerperiorBae/Pokemon-Showdown,anubhabsen/Pokemon-Showdown,AvinashSwaminathan/lotus-v3,Irraquated/Pokemon-Showdown,lFernanl/Pokemon-Showdown,Sora-Server/Sora,Oiawesome/DPPtServ2,VoltStorm/Server-pokemon-showdown,KewlStatics/Showdown-Template,Flareninja/Hispano-Pokemon-Showdown,Atwar/http-server-femalehq.rhcloud.com-80.psim.us-,TheManwithskills/COC,zczd/enculer,DarkSuicune/Kakuja-2.0,megaslowbro1/Pokemon-Showdown-Server-for-megaslowbro1,arkanox/MistShowdown,danpantry/Pokemon-Showdown,SkyeTheFemaleSylveon/Pokemon-Showdown,Flareninja/Sora,lFernanl/Pokemon-Showdown,Syurra/Pokemon-Showdown,Werfin96/Ultimate,Atwar/server-epilogueleague.rhcloud.com,Extradeath/advanced,AWailOfATail/awoat,Sora-League/Sora,TheManwithskills/Dusk--Showdown,Zarel/Pokemon-Showdown,xCrystal/Pokemon-Showdown,LegendBorned/PS-Boilerplate,Arcticblast/Pokemon-Showdown,lFernanl/Lumen-Pokemon-Showdown,megaslowbro1/Pokemon-Showdown,HoeenCoder/SpacialGaze,DesoGit/TsunamiPS,kuroscafe/Showdown-Boilerplate,TheManwithskills/DS,SerperiorBae/BaeShowdown,arkanox/MistShowdown,DB898/theregalias,gustavo515/gashoro,LightningStormServer/Lightning-Storm,Breakfastqueen/advanced,hayleysworld/serenity,Enigami/Pokemon-Showdown,aakashrajput/Pokemon-Showdown,ShowdownHelper/Saffron,aakashrajput/Pokemon-Showdown,SubZeroo99/Pokemon-Showdown,megaslowbro1/Showdown-Server-again,xfix/Pokemon-Showdown,hayleysworld/serenityserver,BasedGod7/PH,TheManwithskills/Server---Thermal,abrulochp/Dropp-Pokemon-Showdown,TheFenderStory/Showdown-Boilerplate,piiiikachuuu/Pokemon-Showdown,yashagl/pokecommunity,brettjbush/Pokemon-Showdown,Flareninja/Pokemon-Showdown-1,comedianchameleon/test,Git-Worm/City-PS,Irraquated/Showdown-Boilerplate,SerperiorBae/Bae-Showdown-2,CreaturePhil/Pokemon-Showdown,SerperiorBae/Pokemon-Showdown-1,Ransei1/Alt,kubetz/Pokemon-Showdown,EmmaKitty/Pokemon-Showdown,Gold-Solox/Pokemon-Showdown,TheManwithskills/Creature-phil-boiler,Zipzapadam/Server,UniversalMan12/Universe-Server,gustavo515/final,Oiawesome/DPPtServ2,megaslowbro1/Pokemon-Showdown-Server-for-megaslowbro1,Irraquated/Pokemon-Showdown,Lord-Haji/SpacialGaze,Luobata/Pokemon-Showdown,piiiikachuuu/Pokemon-Showdown,svivian/Pokemon-Showdown,DalleTest/Pokemon-Showdown,Atwar/http-server-femalehq.rhcloud.com-80.psim.us-,Lauc1an/Perulink-Showdown,scotchkorean27/Pokemon-Showdown,panpawn/Pokemon-Showdown,Alpha-Devs/OmegaRuby-Server,SerperiorBae/Bae-Showdown,Flareninja/Showdown-Boilerplate,Enigami/Pokemon-Showdown,TheManwithskills/New-boiler-test,Mystifi/Exiled,catanatron/pokemon-rebalance,jd4564/Pokemon-Showdown,Mystifi/Exiled,Pablo000/aaa,Parukia/Pokemon-Showdown,MasterFloat/Pokemon-Showdown,SilverTactic/Showdown-Boilerplate,TheManwithskills/Server-2,PS-Spectral/Spectral,Syurra/Pokemon-Showdown,theodelhay/test,panpawn/Gold-Server,yashagl/pokemon-showdown,abrulochp/Lumen-Pokemon-Showdown,Yggdrasil-League/Yggdrasil,AustinXII/Pokemon-Showdown,TheManwithskills/Server-2,Legit99/Lightning-Storm-Server,TheManwithskills/COC,Darkshadow6/PokeMoon-Creation,hayleysworld/serenityc9,PS-Spectral/Spectral,Flareninja/Sora,TheDiabolicGift/Lumen-Pokemon-Showdown,kupochu/Pokemon-Showdown,AbsolitoSweep/Absol-server,AvinashSwaminathan/lotus,hayleysworld/harmonia,BadSteel/Pokemon-Showdown,JellalTheMage/PS-,BlazingAura/Showdown-Boilerplate,abulechu/Dropp-Pokemon-Showdown,Evil-kun/Pokemon-Showdown,Firestatics/Omega-Alpha,AvinashSwaminathan/lotus-v2,gustavo515/final,TheFenderStory/Pokemon-Showdown,PrimalGallade45/Lumen-Pokemon-Showdown,hayleysworld/asdfasdf,Vacate/Pokemon-Showdown,SkyeTheFemaleSylveon/Mudkip-Server,CreaturePhil/Showdown-Boilerplate,SerperiorBae/Pokemon-Showdown,KewlStatics/Pokeindia-Codes,MeliodasBH/boarhat,Wando94/Pokemon-Showdown,miahjennatills/Pokemon-Showdown,SerperiorBae/Pokemon-Showdown-1,Alpha-Devs/OmegaRuby-Server,Lord-Haji/SpacialGaze,comedianchameleon/test,EienSeiryuu/Pokemon-Showdown,superman8900/Pokemon-Showdown,Ransei1/Alt,psnsVGC/Wish-Server,BlazingAura/Showdown-Boilerplate,SerperiorBae/Bae-Showdown-2,SerperiorBae/BaeShowdown,FakeSloth/Infinite,Irraquated/Showdown-Boilerplate,k3naan/Pokemon-Showdown,Articuno-I/Pokemon-Showdown,gustavo515/test,gustavo515/batata,ankailou/Pokemon-Showdown,Vacate/Pokemon-Showdown,kotarou3/Krister-Pokemon-Showdown,TheManwithskills/Creature-phil-boiler,KewlStatics/Alliance,Sora-Server/Sora,yashagl/pokemon-showdown,Pokemon-Devs/Pokemon-Showdown,MeliodasBH/Articuno-Land,Flareninja/Lumen-Pokemon-Showdown,Irraquated/EOS-Master,MayukhKundu/Mudkip-Server,lFernanl/Zero-Pokemon-Showdown,ScottehMax/Pokemon-Showdown,MayukhKundu/Technogear,sama2/Viridian-Pokemon-Showdown,Sora-League/Sora,Extradeath/psserver,TheFenderStory/Showdown-Boilerplate,SerperiorBae/Bae-Showdown,Ecuacion/Lumen-Pokemon-Showdown,InvalidDN/Pokemon-Showdown,ankailou/Pokemon-Showdown,MayukhKundu/Flame-Savior,Kenny-/Pokemon-Showdown,psnsVGC/Wish-Server,Pikachuun/Pokemon-Showdown,Psyientist/Showdown-Boilerplate,Tesarand/Pokemon-Showdown,abrulochp/Lumen-Pokemon-Showdown,zek7rom/SpacialGaze,MayukhKundu/Pokemon-Domain,hayleysworld/Pokemon-Showdown,MayukhKundu/Flame-Savior,comedianchameleon/servertest1,PrimalGallade45/Lumen-Pokemon-Showdown,MayukhKundu/Technogear-Final,QuiteQuiet/Pokemon-Showdown,yashagl/pokemon,SSJGVegito007/Vegito-s-Server,Hopenub/Pokemon-Showdown,TbirdClanWish/Pokemon-Showdown,Darkshadow6/git-remote-add-scalingo-git-scalingo.com-pokemoonforums,KewlStatics/Shit,TheManwithskills/Server,DesoGit/Tsunami_PS,jumbowhales/Pokemon-Showdown,abrulochp/Dropp-Pokemon-Showdown,Firestatics/omega,kotarou3/Krister-Pokemon-Showdown,FakeSloth/wulu,TheManwithskills/New-boiler-test,TheDiabolicGift/Lumen-Pokemon-Showdown,abulechu/Lumen-Pokemon-Showdown,AbsolitoSweep/Absol-server,Git-Worm/City-PS,svivian/Pokemon-Showdown,Guernouille/Pokemon-Showdown,Mystifi/Exiled,NoahVSGamingYT/Pokemon-Showdown,LustyAsh/EOS-Master,urkerab/Pokemon-Showdown,Darkshadow6/git-remote-add-scalingo-git-scalingo.com-pokemoonforums,yashagl/pokemon,Neosweiss/Pokemon-Showdown,Raina4uberz/Light-server,lFernanl/Zero-Pokemon-Showdown,Atwar/server-epilogueleague.rhcloud.com,MasterFloat/LQP-Server-Showdown,Disaster-Area/Pokemon-Showdown,Fusxfaranto/Pokemon-Showdown,Adithya4Uberz/The-Tsunami-League,Alpha-Devs/Alpha-Server,TbirdClanWish/Pokemon-Showdown,TheManwithskills/serenity,AWailOfATail/awoat,jd4564/Pokemon-Showdown,Checkinator/Pokemon-Showdown,kupochu/Pokemon-Showdown,RustServer/Pokemon-Showdown,Firestatics/Firestatics46,sirDonovan/Pokemon-Showdown,Nineage/Showdown-Boilerplate,KaitoV4X/Showdown,yashagl/yash-showdown,hayleysworld/serenityserver,TheFenderStory/Pokemon-Showdown,Kevinxzllz/PS-Openshift-Server,Nineage/Origin,TheManwithskills/DS,SerperiorBae/Pokemon-Showdown,SolarisFox/Pokemon-Showdown,svivian/Pokemon-Showdown,CreaturePhil/Showdown-Boilerplate,AustinXII/Pokemon-Showdown,SubZeroo99/Pokemon-Showdown,Thiediev/Pokemon-Showdown,LightningStormServer/Lightning-Storm,AWailOfATail/Pokemon-Showdown,sama2/Viridian-Pokemon-Showdown,MayukhKundu/Mudkip-Server,Sora-League/Sora,ehk12/clone,Atwar/ServerClassroom,hayleysworld/Showdown-Boilerplate,Zarel/Pokemon-Showdown,Ridukuo/Test2,TheManwithskills/Server,Volcos/SpacialGaze,SSJGVegito007/Vegito-s-Server,Elveman/RPCShowdownServer,Legit99/Lightning-Storm-Server,Pablo000/aaa,sama2/Universe-Pokemon-Showdown,hayleysworld/serenityc9,LightningStormServer/Lightning-Storm,DesoGit/Tsunami_PS,KewlStatics/Alliance,TogeSR/Lumen-Pokemon-Showdown