protected override void OnUpdate()
        {
            transformGroup.SetFilter(TransformInternal.ComponentAuthority.Authoritative);

            Entities.With(transformGroup).ForEach(
                (RateLimitedSendConfig config, ref TransformInternal.Component transform,
                 ref TransformToSend transformToSend, ref LastTransformSentData lastTransformSent,
                 ref TicksSinceLastTransformUpdate ticksSinceLastTransformUpdate) =>
            {
                lastTransformSent.TimeSinceLastUpdate += Time.deltaTime;

                if (lastTransformSent.TimeSinceLastUpdate < 1.0f / config.MaxTransformUpdateRateHz)
                {
                    return;
                }

                var transformHasChanged = false;

                var newVelocity = TransformUtils.ToFixedPointVector3(transformToSend.Velocity);
                if (TransformUtils.HasChanged(newVelocity, transform.Velocity))
                {
                    transform.Velocity  = newVelocity;
                    transformHasChanged = true;
                }

                var newLocation = TransformUtils.ToFixedPointVector3(transformToSend.Position - worker.Origin);
                if (TransformUtils.HasChanged(newLocation, transform.Location))
                {
                    transform.Location  = newLocation;
                    transformHasChanged = true;
                }

                var newRotation = TransformUtils.ToCompressedQuaternion(transformToSend.Orientation);
                if (TransformUtils.HasChanged(newRotation, transform.Rotation))
                {
                    transform.Rotation  = newRotation;
                    transformHasChanged = true;
                }

                if (!transformHasChanged)
                {
                    return;
                }

                transform.PhysicsTick   += ticksSinceLastTransformUpdate.NumberOfTicks;
                transform.TicksPerSecond = tickRate.PhysicsTicksPerRealSecond;

                lastTransformSent.TimeSinceLastUpdate = 0.0f;
                lastTransformSent.Transform           = transform;

                ticksSinceLastTransformUpdate = new TicksSinceLastTransformUpdate
                {
                    NumberOfTicks = 0
                };
            });
        }