+ my $json = { %$pos, fen => $pos->fen() };
+ delete $json->{'board'};
+ delete $json->{'prettyprint_cache'};
+ delete $json->{'black_castle_k'};
+ delete $json->{'black_castle_q'};
+ delete $json->{'white_castle_k'};
+ delete $json->{'white_castle_q'};
+ delete $json->{'time_since_100move_rule_reset'};
+ if ($json->{'player_w'} =~ /^base64:(.*)$/) {
+ $json->{'player_w'} = MIME::Base64::decode_base64($1);
+ }
+ if ($json->{'player_b'} =~ /^base64:(.*)$/) {
+ $json->{'player_b'} = MIME::Base64::decode_base64($1);
+ }
+ return $json;