This would work fine. But bear in mind it’s client-authoritative, so clients *can * cheat and really there’s not a lot you can do to prevent it other than checking for legal moves on the Server.
The ultimate solution would of course be Server-Authoritative with client-side prediction/reconciliation - but that’s a whole other ball game of complexity.