Короче запилил гломурную систему автообновления моделей при получении данных с сервера.
Строится дерево моделей, данные плюются в корневую и она рекурсивно обновляет всё что внутри нее.

Код AS3:
/**
* Пропихивает данные полученные с сервера по веткам моделей.
* @param data
*/
protected function updateData(data:Object):void
{
for (var key:String in data) // проходим по каждому ключу данных
{
if (_data.hasOwnProperty(key)) // если в дате есть такой ключ
{
if (_data[key] is BaseDataModel) // и если этот ключ является BaseDataModel
{
_data[key].updateData.call(this, data[key]) // значит в нем должен быть метод автоапдейта. Запускаем его
}
else
{
_data[key] = data[key]; // Иначе данные принимаем за базовый тип и просто приравниваем
}
}
else // если же такого ключа нету
{
updateNoKey(key, data[key]); // то запускаем функцию занимающуюся обновлением без ключей.
}
update(key); // Кричим во вьюху что изменили параметр.
}
}
/**
* Оверрайдим там где надо.
* @param key
* @param data
*/
protected function updateNoKey(key:Object, data:Object):void
{
trace(key);
_data[key] = data;
}
Вот как-то так.
Не конает только в том случае если данные вот здесь:
updateData(data:Object) являются одним параметром из словаря по иду.
Ну т.е. вот словарь:

Код:
{
"users":
{
"bdc2f7d3e41640da8c66722641387b3e":
{
"ingame":"36e0e36b-d404-4178-9979-daf6cf1a5a69"
},
"f44f40619a8f4865972ac5df06387aef":
{
"ingame":false
},
"3ce5ab7aa4674235ab36f857f5f2227d":
{
"ingame":"36e0e36b-d404-4178-9979-daf6cf1a5a69"
}
}
}
А вот сюда:
updateData(data:Object)
Пихаем вот это:

Код:
"3ce5ab7aa4674235ab36f857f5f2227d":// Вот этот кусок, тобишь ид как таковой мы в принимаемом обжекте не видим
{// а видим только его значение.
"ingame":"36e0e36b-d404-4178-9979-daf6cf1a5a69"
}
Вот как-то так. Так вот в такой ситуации надо передавать кроме самого обжекта еще и ид.
И это надо довольно-таки редко. Потому вводить ид в базовый класс ради парочки ситуаций неохота. Было бы удобно оверрайдить функцию автоапдейта и чтоб она еще и ид принимала и что-то там нахимичить. Но оверрайд соответственно должен быть клоном того что именно мы оверрайдим.
Пока что не вижу решений кроме как задать какой-то дефолтный ид даже там где его не надо, и чтоб и дальше автоматом делалось так как сейчас делается.