Hi,
I'm just coming up to speed with ORM2. Great work so far!
I'm curious why you chose to implement hasMany by relying on a third join table between the associated models? In Downstairs (the ORM I created but probably won't continue) I assumed that if a Foo hasMany Bars, then the Bar table would have a foreign key called foo_id.
https://github.com/nicholasf/downstairs.js/blob/master/lib/collection.js#L127
Cheers,
Nicholas