I've just looked over the Agreement entity and the "history" of it in svn. I can completely see why we're coming at this from different perspectives. Agreement.productId has ALWAYS been there. I'm shocked. I assumed Agreement was meant to be generic (there I go assuming again). If Agreement.productId exists, the Agreement entities are anything but generic. If productId is a foreign key, the Agreement entities are not designed to support employment agreements, order agreements, etc. and technically, not even pricing lists (as that would be require a one to many relationship between agreements and products, but this is a one to one relationship).
Hopefully, by the end of the week I'll be finished with the changes I'm making to the party relationships http://issues.apache.org/jira/browse/OFBIZ-149 (for my local use, but will be available in JIRA when I'm done, and if there's any interest I'll create a patch that replaces the current party relationship stuff) After that I'd be more than happy to collaborate/develop a generic Agreement model that will be easier to model and integrate with other generic models as we'll end up needing it to be generic in our local implementation.
