The reason for the globals was so that associations (attributes) would work. And it's the associations that are ultimately causing the maximum callstack errors. That's why when I make them not global, the error goes away. That's because associations aren't working because since the models aren't global when it comes time to convert, the non-globals cannot be found.
- var Cache = can.Model({id: 'name',attributes: {dataVolumes: 'Volume.models'}}, {});
When Volume isn't global, dataVolumes won't be converted to Volume models and will just be regular objects.
Hopefully that makes sense.