Like defining relationships between the models, on one side you define "representatives" - the other side then magically gets a "representative_id"? Why remove the s, why change abstraction between an object and its id?
Why does the framework manage to add a return reference there, but in other places like between domains and resources you need to add the back reference by hand?
But in general, love the concepts and clearly a lot of work went into it.