Design and implement a Connect Four game engine. Support a configurable board size (default 6x 7), a drop(column) operation that places a disc obeying gravity, and winner detection after each move for horizontal, vertical, and diagonal lines of four. Handle invalid inputs and full columns, return the current game state (in-progress, win for player A/B, or draw), and discuss time and space complexity per move as well as test strategies.