The only problem I see with this is that it doesn't have support for optional types. This is nice to be able to distinguish between null/empty fields and defaults. But this is very nice work regardless and will be useful in.many people's usecases.
Yes, it does have support for optional types. See the evolution fields in the Pokedex sample! Output in TypeScript or Swift to make this clearer (some languages don't have built-in types or syntax for nullable types).