def serialise_go_point(move, size):
    """Serialise a Go Point, Move, or Stone value.

    move -- pair (row, col), or None for a pass

    Returns a bytes object.

    Only supports board sizes up to 26.

    The move coordinates are in the GTP coordinate system, where (0, 0) is the
    lower left.

    """
    if not 1 <= size <= 26:
        raise ValueError
    if move is None:
        if size <= 19:
            return b'tt'
        else:
            return b''
    row, col = move
    if not (0 <= col < size and 0 <= row < size):
        raise ValueError
    col_b = b'abcdefghijklmnopqrstuvwxy'[col]
    row_b = b'abcdefghijklmnopqrstuvwxy'[size - row - 1]
    return bytes((col_b, row_b))
