I think that moto doesn't fit Dart at all, I use Dart and I have to make some workarounds that I just shouldn't be doing, but I have to because the language doesn't have the functionality that other languajes already have. The problem I see is that the Dart language developers never put them self in the shoes of the developer using their languaje.
In this case, I would be easy for them to add JSON serialization to objects, you know, but they didn't, why? polictics, apathy, whatever, but not technical problems.
So, my self, had to adapt to programming in Dart, so I every class must have a toJSON and fromJSON methods where I manually put the values to a map and then I use convert.JSON. But, I now I gave up using classes and now I just use Maps, just to write less code and is already the type Dart suppor for JSON serialization.