We should use `onChangeSync` to make children `onChangeSync`s working. Also, probably we can eliminate some code duplicity by having:

```dart
TransformedDataCollection(List<DataCollectionView> sources) {
  for (var i = 0; i < sources.length; i++) {
    sources[i].onChangeSync.listen((event) => _mergeIn(event['change'], i + 1, author: event['author']));
    // i+1 is used to preserve the numbering, but we can just use i
  }
```