Will,
Sorry for the slow response. I've been busy.
Yes, folks do want to put more complex data into JRD as opposed to linking, including objects or arrays. I can see how this can be abused, but then I can also see an argument for not linking to data that could be trivially represented inside the JRD itself.
Unfortunately, I do not have details of the specific use cases. All I do know is that there people working on unrelated applications where they want to be able to do things like this with WebFinger:
Perhaps what might be worse is the possibility that people do this:
When working on WebFinger, there was a desire to keep it as simple as possible. However, I fully appreciate why some would want to do something like this. Sometimes, linking to external resources is "overkill" for the task at hand. And, you're right that dealing with polymorphic data types can be a pain. Then again, the JSON parser deals with much of this automatically and the client is likely going to only be looking for known members, anyway.
So, I'm not sure what to do here. I'm OK with making a change. It bothers me that we might break any client code that assumes all properties are strings. But, there is always the option to add some other member named something other than "properties".
I take it you're not too keen on the idea, though.
Paul