That Machado deal is crazy. And he can opt out after 5 years, so in theory, he could be a free agent at age 31, also.
So what's Harper going to get? 10/320? And I can bet he would put in a 5 year opt out, too.
And I wish the Cards would offer Harper that deal, 10/320, but front load it. First year, 40/M, and then come down from there. If he opts out after 5, you've in theory had him for his most productive years. If he stays, then you are freeing up cap room every year.