Если были изменения wrapped типов, но потом произошли обратные действия и в итоге все осталось как было в рамках одного кадра, то система событий не реагирует на такие события. Например, если в рамках одного кадра было добавление и удаление элемента из списка. ### Хранение сырых событий Все события, которые копятся в течение одного кадра (сырые события), распределяются по своему контейнеру (контейнер - это коллекция, поле, компонент, сущность). Зачем это было сделано. Для того, чтобы при вызове Clear у коллекции, можно было оптимизировано удалять все сырые события. Например: collection.add() collection.Clear() // Здесь мы удаляем сырое событие add collection.Add() <br> ### Удаление и добавление уже существовавшего контейнера с данными Например, когда Entity удаляется и в том же кадре снова добавляется, при условии, что в прошлом кадре он уже существовал, возникает ситуация, что нужно сгенерировать событие на изменение Entity. Потому что, создав заново Entity, система могла добавить туда новых компонентов, которых в прошлых кадрах не было. Или же компоненты остались теми же, но поля у некоторых из них были изменены Или поля остались теми же, но в некоторые коллекции были добавлены новые элементы. <br> Пока что я не буду учитывать данный кейс. Посмотрю, на сколько он будет актуален.