we cannot modify the interface. It would be a BC break. Thus, passing an object into something called ``$class`` does not make sense. A class and an object are different things

Regarding the scope, filling values into an existing object is not the same topic than deserializing data as an object (think about what happens for nested objects). If what you want to do is binding data into an existing object graph, the right tool for the job is the Form component (most of the code of the component is actually a data-binder, which is not restricted to handling HTML forms)