def interpret_go_point(bb, size):
    """Convert a raw SGF Go Point, Move, or Stone value to coordinates.

    bb   -- bytes-like object
    size -- board size (int)

    Returns a pair (row, col), or None for a pass.

    Raises ValueError if the data is malformed or the coordinates are out of
    range.

    Only supports board sizes up to 26.

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

    """
    if bb == b'' or bb == b'tt' and size <= 19:
        return None
    col_b, row_b = bb
    col = col_b - 97
    row = size - row_b + 96
    if not (0 <= col < size and 0 <= row < size):
        raise ValueError
    return row, col
