model: make to_dict() properly recursive
Instead of relying on attr.asdict recursion, we do recursion ourselves. This simplifies a lot of the inherited to_dict() methods.
Test Plan
tox output is unchanged
Migrated from D2174 (view on Phabricator)
Staging instance, all changes can be removed at any time
Instead of relying on attr.asdict recursion, we do recursion ourselves. This simplifies a lot of the inherited to_dict() methods.
tox output is unchanged
Migrated from D2174 (view on Phabricator)