Future<Option<PieceType>> get promotion async { return Option.fromNullable(await _onPromote()).map( (t) => t == PieceType.king || t == PieceType.pawn ? PieceType.queen : t, ); }