Joerg, just did a review of your fork.
I thought I had to take a long time for review, and so I delayed it. However, it took less than 10 minutes.
In any case, here is my feedback:
What you have probably works for simple cases. For instance, you can save an search a single model based on composite key.
However, the framework provides the most power by building relationships (one to many, many to many and polymorphic )
All these relationships are dependent on surrogate PK, but your implementation does not include any of them.
In other words, how can I have a one to many relationship, if the child table does not have an ID, but provides complex composite key?
So, in a sense you implementation works and can be adopted into the framework with understanding that it is limited and does not support relationships.
Adding real relationships for composite keys will take a lot more work.
Is this making sense ?
Thanks
igor