I've got base code for each of the base entiity types built in my sandbox ... I'm now turning my attention to defining the relationship and interaction between individual entities.
Relationships can have a few different structures. When developing a league heirarchy, there may be a parent-child relationship between conferences/divisions/teirs/etc. They can be one to many, with a players belonging to multiple teams as an example. They can be one-to-one and fixed (the 'Point Guard' position relation to the 'Basketball' sport). A roster can serve as a 'container' for multiple player references.
While I'm just starting down this path, my intention was to investigate use of the 'Relation' module to define the various relationships between One League API entities and components. Relationships created with this module are entities themself, come with views support, and are fieldable. This last distinction allows us to create relationships such as 'Teams A, B, and C have a Standings relationship with League X, and the value of the "current rank" field for each is 1st, 2nd, and 3rd'.
All in all, this provides a lot of flexibility. The challenge comes in identifying all of the potential relationships that could be modeled in sports & leagues ... so I'm looking for some brainstorming from the members of this group before I get too far into the coding, after which we can categorize the results into a few different relationship models that we may want to represent, and define how to build these consistently within the One League API code base and related projects.