board: check invalid move and create interface protocol