> what _is_ the array? Is it a patch? A canvas? A file?
When you use a dictionary, the name of the key is helpful in clearing this
up.<br><br>Well ... this just cosmetics ... I think the array is very flexible, in that you can just stuff objects in there. And, there will be arrays anyways. What you suggested is actually not possible : <br><pre><br>{
    &quot;elements&quot; : {
        &quot;obj&quot; : {&quot;id&quot; : 0, &quot;type&quot;: &quot;osc~&quot;, &quot;args&quot;: [440]},
        &quot;obj&quot; : {&quot;id&quot; : 1, &quot;type&quot;: &quot;dac~&quot;},
        &quot;connect&quot; : {&quot;from&quot;: [0, 0], &quot;to&quot;: [1, 0]},
        &quot;connect&quot; : {&quot;from&quot;: [0, 0], &quot;to&quot;: [1, 1]}<br>    }<br>}<br><br>In a map, keys need to be unique. So, you would need to write :<br><br>{
    &quot;elements&quot; : {
        &quot;obj&quot; : [<br>            {&quot;id&quot; : 0, &quot;type&quot;: &quot;osc~&quot;, &quot;args&quot;: [440]},
            {&quot;id&quot; : 1, &quot;type&quot;: &quot;dac~&quot;},<br>        ],<br>        &quot;connect&quot; : [<br>            {&quot;from&quot;: [0, 0], &quot;to&quot;: [1, 0]},
            {&quot;from&quot;: [0, 0], &quot;to&quot;: [1, 1]}<br>        ]<br>    }<br>}<br><br>Which imo, is not much better than :<br><br>[<br>    {&quot;class&quot;: &quot;object&quot;, &quot;id&quot; : 0, &quot;type&quot;: &quot;osc~&quot;, &quot;args&quot;: [440]},<br>
    {&quot;class&quot;: &quot;object&quot;, &quot;id&quot; : 1, &quot;type&quot;: &quot;dac~&quot;},<br>    {&quot;class&quot;: &quot;connect&quot;, &quot;from&quot;: [0, 0], &quot;to&quot;: [1, 0]},<br>    {&quot;class&quot;: &quot;canvas&quot;, ...},
 ]<br><br>in that there is less nesting, it is thus a bit simpler... but I guess that&#39;s a detail.<br><br>&gt; It can also simplify parsing order<br><br>That&#39;s true ...<br><br>&gt; I think [GUI info] deserves a classification higher than &#39;extra info&#39;.  A formal extension of the format, so to speak, since the majority of use cases involving a pd patch will require a visual layout.<br>
<br>That&#39;s a very good point, ... it&#39;s a good idea to specify GUI infos, for better interoperability, but it should be explicitly said that this is optional information, and parsers must handle the case when those are missing.<br>
<br>@Jonathan : Yes, backward compatibility is mandatory, in that the new format must be a subset of the old format - I mean, &quot;semantical&quot; subset : it must be able to contain all the infos contained in old file format<br>
And we suggested to write a converter to help this.<br></pre>