It can also be used to mutate hard game state (I wouldn't try it with dynamic, interpolated values like object position, angle, acceleration, or velocity.)
There are many other methods, some are more precise and compressible than others:
Trailing State Synchronization
https://www.cs.ubc.ca/~krasic/cpsc538a/summaries/38/
Basic ideas
https://www.gafferongames.com/post/state_synchronization/
https://engineering.monstar-lab.com/2021/02/09/Game-server-S...
https://www.gabrielgambetta.com/client-side-prediction-serve...