public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            var groupId = GroupId.GetFirstValue(payload.Data);

            var singleElement = SingleElement.GetFirstValue(payload.Data);

            var targetElementCount = NumberOfEntries.GetFirstValue(payload.Data);

            if (!DataShare.ContainsKey(groupId))
            {
                DataShare[groupId] = new List <MutableObject>();
            }
            DataShare[groupId].Add(singleElement);

            if (DataShare[groupId].Count >= targetElementCount)
            {
                var dataList = DataShare[groupId];
                RecombinedListTarget.SetValue(dataList, payload.Data);

                DataShare[groupId] = new List <MutableObject>();

                var iterator = Router.TransmitAll(payload);
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }
        }
        protected override void OnProcessOutputSchema(MutableObject newSchema)
        {
            RecombinedListTarget.SetValue(new List <MutableObject>
            {
                SingleElement.GetFirstValue(newSchema)
            }, newSchema);

            Router.TransmitAllSchema(newSchema);
        }