The parameters of those contracts are collectively bargained by the players union with the league.
And the terms of those contracts are negotiated with the teams by the agent representing the player.
If a player doesn't agree with the language in a contract he should get a better agent and get...