I would like to make this module more abstract, but I'm not sure how. For example, it assumes that Player, which is the code that generates a move (supply your own!), supports the following methods:
$player->size($somesize); # eg, $player->size(19), issued following the GTP command boardsize
$player->initboard($referee); # following the GTP command clear_board
$player->update($colour, $referee); # following GTP play
$player->chooselegalmove($colour, $referee); # following GTP genmove
$player->{_KGScleanup} = 1; # following the KGS specific kgs_genmove_cleanup
General use
An example of a script to run a bot on KGS is givenin the example folder.