The main limitations on players in the minors are service limits (that is, the amount of prior years of minor league service the player is allowed to have).
My suggestion is that the league be capable of defining certain roster roles and then the number of players minimum or maximum on that type can be on the roster.
The design would be as such:
Each league has a definition for:
- Rookie (input from x Pro years to y Pro years)
- Limited Service I (input from x Pro years to y Pro years)
- Limited Service II (input from x Pro years to y Pro years)
- Veteran (input from x Pro years to y Pro years)
Then, each league has a roster limitation for each category:
- Rookie Constraint (input from a players on active roster to b players on active roster)
- Limited Service I Constraint (input from a players on active roster to b players on active roster)
- Limited Service II Constraint (input from a players on active roster to b players on active roster)
- Veteran Constraint (input from a players on active roster to b players on active roster)