public override void ExecuteReplication(Connection connection)
            {
                var componentDataArray  = ReplicationComponentGroup.GetComponentArray <SpatialOSExhaustiveOptional>();
                var spatialEntityIdData = ReplicationComponentGroup.GetComponentDataArray <SpatialEntityId>();

                for (var i = 0; i < componentDataArray.Length; i++)
                {
                    var componentData    = componentDataArray[i];
                    var entityId         = spatialEntityIdData[i].EntityId;
                    var hasPendingEvents = false;

                    if (componentData.DirtyBit || hasPendingEvents)
                    {
                        var update = new global::Improbable.Gdk.Tests.ExhaustiveOptional.Update();
                        update.SetField2(componentData.Field2.HasValue ? new global::Improbable.Collections.Option <float>(componentData.Field2.Value) : new global::Improbable.Collections.Option <float>());
                        update.SetField4(componentData.Field4.HasValue ? new global::Improbable.Collections.Option <int>(componentData.Field4.Value) : new global::Improbable.Collections.Option <int>());
                        update.SetField5(componentData.Field5.HasValue ? new global::Improbable.Collections.Option <long>(componentData.Field5.Value) : new global::Improbable.Collections.Option <long>());
                        update.SetField6(componentData.Field6.HasValue ? new global::Improbable.Collections.Option <double>(componentData.Field6.Value) : new global::Improbable.Collections.Option <double>());
                        update.SetField8(componentData.Field8.HasValue ? new global::Improbable.Collections.Option <uint>(componentData.Field8.Value) : new global::Improbable.Collections.Option <uint>());
                        update.SetField9(componentData.Field9.HasValue ? new global::Improbable.Collections.Option <ulong>(componentData.Field9.Value) : new global::Improbable.Collections.Option <ulong>());
                        update.SetField10(componentData.Field10.HasValue ? new global::Improbable.Collections.Option <int>(componentData.Field10.Value) : new global::Improbable.Collections.Option <int>());
                        update.SetField11(componentData.Field11.HasValue ? new global::Improbable.Collections.Option <long>(componentData.Field11.Value) : new global::Improbable.Collections.Option <long>());
                        update.SetField12(componentData.Field12.HasValue ? new global::Improbable.Collections.Option <uint>(componentData.Field12.Value) : new global::Improbable.Collections.Option <uint>());
                        update.SetField13(componentData.Field13.HasValue ? new global::Improbable.Collections.Option <ulong>(componentData.Field13.Value) : new global::Improbable.Collections.Option <ulong>());
                        update.SetField14(componentData.Field14.HasValue ? new global::Improbable.Collections.Option <int>(componentData.Field14.Value) : new global::Improbable.Collections.Option <int>());
                        update.SetField15(componentData.Field15.HasValue ? new global::Improbable.Collections.Option <long>(componentData.Field15.Value) : new global::Improbable.Collections.Option <long>());
                        update.SetField16(componentData.Field16.HasValue ? new global::Improbable.Collections.Option <global::Improbable.EntityId>(new global::Improbable.EntityId(componentData.Field16.Value)) : new global::Improbable.Collections.Option <global::Improbable.EntityId>());
                        update.SetField17(componentData.Field17.HasValue ? new global::Improbable.Collections.Option <global::Improbable.Gdk.Tests.SomeType>(global::Generated.Improbable.Gdk.Tests.SomeType.ToSpatial(componentData.Field17.Value)) : new global::Improbable.Collections.Option <global::Improbable.Gdk.Tests.SomeType>());
                        SendComponentUpdate(connection, entityId, update);

                        componentData.DirtyBit = false;
                        view.SetComponentObject(entityId, componentData);
                    }
                }
            }
 public static void SendComponentUpdate(Connection connection, long entityId, global::Improbable.Gdk.Tests.ExhaustiveOptional.Update update)
 {
     connection.SendComponentUpdate(new global::Improbable.EntityId(entityId), update);
 }