Self-sovereign identity is probably the most viable use case at the moment. No third party needed to manage your identity, replace keys, and broadcast updates to the world. Additionally adding the dimension of time, where you can differentiate between something signed while a key was active vs something signed after the key was retired.
Some argue this is the only data necessary on-chain — all other application data can remain in normal data stores while the identities interacting with that data are immutable and auditable.
Also, never understood why JSON allows for duplicate keys at the same level. Behavior is implemented differently across languages. Some throwing an error on parsing of duplicate keys while others simply overwrite the first value encountered with the second.
https://pydantic-docs.helpmanual.io/