I've used lots of languages and those are fairly minor things. For example, I use Rust as well as Dart and just, "types on the left" is seriously an issue? In Dart 3 as well, many statements are now expressions, like switch and if/else, and in some cases, for. For something like JSON serde, Dart will have it soon via macros [0], just like Rust's serde macros. Sounds like you just need to build something you want to build and you'll get used to the language naturally. For me, the utility of Flutter and making cross platform apps outweighs Dart, and anyway, it is quite nice now with Dart 3.
1) Types on the left
2) Statement, not expression, based
3) No privacy modifiers (aka, underscores everywhere)
4) required semicolons
5) no language support for json (de)serialization, or, json boilerplate everywhere (yikes)
I've tried to get into Flutter 3x now, and each time Dart has defeated me.
Flutter is quite good though, so take the good with the bad, I just can't stomach Dart (yet).