Good suggestion, your way is much cleaner.

We do care about raw types because we need to do type-checking here just to make sure the backends don't receive incorrectly-typed data (e.g. if the backend expects a certain attribute to be a string, but the frontend sets it to an integer). Typechecking is very simple in the intermediate though, or at least that's the plan.