Hello @somber jackal !
All of the factors @pine ether mentioned definitely are things to take into consideration. If you are looking to incorporate client prediction, not something NGO currently provides "out of the box" but definitely something that can be implemented using the NGO SDK, then that is definitely one path to take.
Otherwise, the fastest way to start prototyping your motion model might be to use an owner authoritative NetworkTransform (a.k.a "ClientNetworkTransform"). This basically allows the players to move locally and their motion is sent to the server-host and then synchronized with all other players.
You can read more about authority modes here:
https://docs-multiplayer.unity3d.com/netcode/current/components/networktransform/#authority-modes
Sending input to the server-host can be prone to a "latent" player-input experience, but is the easiest to visually synchronize.
Using an owner authoritative NetworkTransform removes the "latent" player-input issue, but can be a little tricky synchronizing the spawning of projectiles and the like.
We have announced a new session mode called Distributed Authority:
https://forum.unity.com/threads/multiplayer-development-status-and-next-milestones-november-2023.1516657/
Which is now on the NGO roadmap:
https://unity.com/roadmap/unity-platform/multiplayer-networking
This new mode for NGO will allow client-side spawning (amongst many other useful improvements) that removes the complexity of visually synchronizing things using an owner authoritative motion model.