Are CHOP exports by channel index, or channel name?

TL;DR: Internally, does a Chop export with the reference string (in green in a par, say) of “null1:a”. mean “use the channel of op null1 named ‘a’”, or “use the channel of op null1 with index 0”?

I have a Script CHOP that does some processing, creates a python dictionary, then saves the values of that dictionary to channels in the CHOP. So, {‘a’:1, ‘b’:2, ‘c’:3} renders into a CHOP with single-value channels a, b, and c.

I then exported these channels via drag & drop to parameters in some Tops. Everything works fine, I saved the component as a Tox, and went ahead. The next time I loaded the Tox, the exported channels were scrambled. In this example, the par that had been set to the Chops ‘a’ channel would now be using the Chop’s ‘c’ channel.

If I look at the text in the par area of the destination Top, the values are name-based (e.g. ‘null1:y’), but this behavior could be explained if the actual link were to integer-indexed channels rather than name-indexed channels, since the channels weren’t necessarily added in the same order each time. Internally, does that Chop export mean “use the channel of op null1 named ‘a’”, or “use the channel of op null1 with index 0”?

If you look under the Common tab in the parameter window of any CHOP node, you see you can choose the export method for that node to be either by index(the default) or by name.