Although this is a good suggestion, I ponder why it's not even simpler... as such; Any team (those with the ability) that wishes can send out a contract at any time to an agent (NOT the dot), securing the rights for 1 (or more) dot(s) that that agent has or agrees to build. This contract is between Teams and Agents... not dots... so no code-rewrite or adjustment needs be made. The Team specifies what it wants in the same manner as a dot is signed... except it's a contract with the agent. The Agent then chooses to accept or decline the offer. If the offer is accepted, then the agent goes to his "Dots" and, where you put an agent on the market, simply chooses an added line, "Player is NOT available." This would make the player/dot NOT appear on ANYONE'S list when searching for players. At any time such a contract can be null and voided making the DOT once again a "free agent" open to anyone to sign.
+1 to the title anyways.