Entity attributes object serialization has changed?

Trying to debug a blueprint which broke during the summer, and have tracked it down to some kind of change in how the entity attributes object works.

It seems the dictionary keys for the attributes object are no longer plain strings, but something else? You can still access individual values as if the keys were strings, but serializing an attributes object (or an object derived from an attributes object) does not work. Passing it back from Jinja to HA, the keys are weird so HA can no longer re-interpret the returned string as a dictionary.

Why did this change and how do I work around it? Is there some way to convert all dictionary keys for an object into plain strings?!

Now I will admit to not reading the release notes religiously, I mostly just skim over the big new features and then check if any integration I use appear under backward-incompatible changes, but I really cannot remember anything about this ever being mentioned…

I think it has something to do with making it so the attributes can work with the purpose-specific components and the UI autocomplete… but the autocomplete only seems to work with dot notation, not bracket notation.