Object **MUST** be a class, it uses inheritance.  In my patches I've renamed it to _Object to avoid conflicts with object.Object.  Hopefully there is another way to do this.  Definitely not a struct.

OutBuffer is a class in the generated code because the default constructor is not all zeros, so it can't safely be dropped.  The situation is similar with scope.  My plan is to automatically generate default values based on the contents of the constructor.

I don't know what branch of dmd you've been compiling with, but if it contains 'Object' it's not the one I'm using.