When the names within an object are not
unique, the behavior of software that receives such an object is
unpredictable. Many implementations report the last name/value pair
only. Other implementations report an error or fail to parse the object,
and some implementations report all of the name/value pairs,
JSON parsing libraries have been observed to differ as to whether or
not they make the ordering of object members visible to calling
software. Implementations whose behavior does not depend on member
ordering will be interoperable in the sense that they will not be
affected by these differences.
However, we could solve this by wrapping it in an array. Adapting your example above:
That’s a change we could make, yeah. It does mean that there’s more things that people can mess up in an implementation, and it’s not a problem that we have in the existing version of UCAN. Not forcing this eliminates a Byzantine (buggy not malicious) case.