@aononye The best way to pass a dictionary like this is via a class, and this is just my opinion. It’s a little longer, and it shows exactly why it’s there. It allows to pass other data at the same time. After all, you are not OK with enumerating the dictionary because it actually represents 2 different data streams at the same time. So, we might as well find a way that can pass 3 streams at the same time and be happy about it.
About using lists. Yes, lists are an instance. But I see the problem of, possibly, one day the Grasshopper SDK accepting lists-of-lists as trees (in GH2 land), and so using a list with just an item to actually just shield the content from enumeration could be a poor choice in the long term, because eventually the dictionary might be enumerated.
Also, I find it an unfortunate practice when a side-effect is used as a feature, because when I will look back at the code, I will not know why the list was put there in the first place. That being said, there is nothing prohibiting this from being used. Generally, use what makes you feel best with your code.