Handling a large number of same-importance entities

Use waypoints instead of realtime position updates. A path is a collection of waypoints. Only when the path changes it is synchronized to clients. Instead of 20hz updates you now get a really low update frequency because the path stays the same for many entities over many ticks.

public struct PathingWaypoint : IBufferElementData
{
    [GhostField]
    public float3 Position;
    [GhostField]
    public int ArrivalTick;
}

Position can now be inferred by using spline interpolation logic.