We discussed a similar issue migrating to 3.x where my points were only meant to say I preferred the old CCArray/etc, but that I wanted all the rest of the improvements so I just worked around things and restructured code. I basically have serialize methods now for save/load and am currently in process of moving to FlatBuffer for this aspect of my game(s).
It would be smart for us to either come up with a good examples (past games if you can share) or set of patterns to use the cocos2d:: (or std:
container classes as they exist, or propose a new class which would support Ref*, for example. I’ll think about it some more and reply if I think of any more elegant solution.
Question: your comment on easy save/load did you mean that you still parse (or probably “trim” out) any non-PLIST compatible types? So if you’re storing a full Character* instance in a dict then you just skip over that in saving, and its created by normal create() during load that is then filled in with the valid plist data?