public static IEnumerable<Player> Can( [NotNull] this IEnumerable<Player> source, Permission permission ) {
if( source == null ) throw new ArgumentNullException( "source" );
foreach( Player player in source ) {
if( player.Can( permission ) ) {
yield return player;
}
}
}