TODO: Add details about the problem constraints (league rules) and optimization strategy (linear programming, PuLP).