channelsFired property
Which channels had something to say about this item.
The cheap question, kept apart from deltas because a list draws it on
every row of every frame and deltas allocates. Nothing here builds a
delta: it asks each channel whether it changed and takes its name.
Events answer with EventChannel.significant — a row chip saying
events over pure system chatter is the list restating the noise the
verdict just learned to ignore.
Implementation
List<String> get channelsFired => [
if (pixels?.changed ?? false) 'pixels',
if (tree?.significant ?? false) 'tree',
if (texts?.changed ?? false) 'texts',
if (events?.significant ?? false) 'events',
];