Implement the game of Tic-Tac-Toe (X/O) with focus on logic.
Given an ordered list of moves, where X plays first and players alternate, process every move on a 3x3 board. Return Invalid for an out-of-range coordinate or an occupied cell. After processing all moves, return the player symbol associated with the final move if the board contains a winning line, Draw if the board is full without a winner, or In Progress otherwise.
moves is a list of [row, column] pairs. Return one of "X", "O", "Draw", "In Progress", or "Invalid".
def tic_tac_toe(moves):