What info needs to be sent?
I think it needs to be everything the Client has been doing since the last time the Client sent an update.
What do you do between updates?
Continue simulating and also record timestamps and the inputs and results of the simulations
What info comes back?
Server’s simulation results since the last time it sent you any.
What do you do on server updates?
Accept Server updates and blend them with the Client’s version of the world by replaying up to the point (using the timestamped changes from both the server and client) where they diverge by a significant amount. I’m not sure after that.