Having to think about some of the "structs" (things like Vector3 and Transform3D) in Godot Dart, and how to hand them back and forth.

For some of the math types, I want to implement them in Dart to prevent constant thunking between C++ and Dart. I made it so that the first time the struct needs to be exchanged from Dart to Godot, it allocates the memory, then holds it from then on, just in case. But I think this is wasteful, especially for "combo" structs like Transform3D.

I could alternately allocate memory just to perform function calls when it's needed, but this incurs a lot of extra memory allocations, which might also be wasteful.
@fuzzybinary Can you use typed data for some of these (it sounds like vectors and transformations could be an extension type around Float64List perhaps)? For leaf FFI calls, you can use the .address extension to pass typed views as pointers without allocating, but the pointer is only valid before the native function returns.

@simonbinder internally they do. I need to check if Godot ever retains those pointers. I've made the safer assumption so far that it might (which is likely more true for strings and some other types than Vectors).

I need to look into the TypeData address though. I honestly forgot about that.