When I was five years old, my great grandma, my Nana, decided to get me a cardigan sweater the color of egg nog for Christmas. It was 1983. Camcorders were the hot thing, and my dad recorded the whole present-opening debacle while saying things like "Is this thing taping or what?" while my mom yelled back "Is the red button flashing?" Upon opening up my cream cardigan, my dad said: "Ooh, what a nice sweater. Do you like it, Brad?" At which point I yelled "Yuck!" and flung it across the room. 

True story. It's all on tape. 

My dad was horrified. I'm sure my Nana felt terrible. But what can I say? It was a crud gift. You're expecting something great like a Hot Wheels track or maybe a baseball glove and instead you get an egg-nog sweater? But that's life, isn't it? 

Not every deal ends up the way you'd hoped. Certainly not in the NBA. Which, in the spirit of the Christmas gift-return season, is a long way of saying: Here's a list of 10 recent NBA deals that have turned out to be an egg-nog sweaters that teams, if they were being honest, would love to fling across the room if they could. 

1. Sixers trade up to draft Markelle Fultz No. 1 overall (2017)

Technically, the Sixers traded for the No. 1 overall pick in the 2017 draft, which inevitably became Markelle Fultz. In return, they sent the No. 3 pick, which became Jayson Tatum, and an additional first-round pick to the Celtics. If the trade was just a straight Fultz-for-Tatum swap, it would, at this point, still look like a heist. When you factor in the pick Philly gave up, which will almost certainly be the Kings' 2019 first-rounder -- a likely lottery pick -- it looks, somehow, even worse. 

Nobody could've predicted how Fultz's career has gone to this point, and surely everyone is still holding out hope that the player most everyone had as the No. 1 prospect on the 2017 board can still come to some level of fruition. Still, there is no question Philly would love a take-back on this one. Can you imagine the Sixers with Tatum right now? It still would've cost them the first-round pick because Boston was going to take Tatum No. 1, but after the trade, Philly was open to take anyone it wanted. Again, nobody could've seen the Fultz debacle coming, but think about both the short- and long-term potential of a team including Joel Embiid, Ben Simmons, Jimmy Butler and Tatum. The Sixers would without question have one of the two or three best five-year outlooks in the league and would be an immediate title contender, if not a favorite. 

2. Wizards give John Wall 4-year, $170M extension (2017)

I've had multiple league executives tell me, in these exact words, that Wall's deal is the "worst contract in the league." This, of course, isn't exactly a revelation. The money is a mess, as are the Wizards ... and the extension hasn't even kicked in yet. Starting next season, Wall will make $38 million, $41 million, $44 million and $47 million in each of the next four seasons. 

At this point, we know what a John Wall-led team is, and it's absolutely nothing special. Fifty wins, give or take. A second-round team in a watered-down Eastern Conference, and a likely lottery team in this year's upgraded Eastern Conference. A second star good enough to supplant Wall on the Wizards' hierarchy is clearly needed, but Wall's contract, in large part, makes that a virtual impossibility. 

If they had it to do all over again, would the Wizards give that contract to Wall again? Well, it's the Wizards. So maybe. But they certainly shouldn't. Now they're saddled with a contract that they almost certainly can't trade and will continue crippling their books for years to come -- making them just good enough to miss out on a good draft pick, but not nearly good enough to matter. 

3. Heat give Hassan Whiteside $98 million (2016)

With the highest payroll and one of the worst-looking cap sheets in the league, the Heat have several contracts they'd probably like a do-over on: Tyler Johnson, Dion Waiters, James Johnson -- those three alone are set to make more than $94 million over the next three seasons. But Whiteside's deal is the ultimate killer. To be paying a guy who hasn't even been able to stay on the floor in key situations, for long stretches, $24 million this season, and $27 million next season, and to have given him a four-year, $98 million extension in the summer of 2016, is a franchise crippler. 

The Heat would've traded him long ago if anyone was willing to take on their mistake, but Whiteside isn't even close to impactful enough to be worth anywhere near that money, and thus nobody has been willing to touch that deal. He's the worst example of a Heat franchise that has doled out money hand over fist to guys who just aren't that good, at least not relative to their contracts, and now they're scrambling to try to compete without a true star player and no cap space to acquire one by any other means than a trade. 

Problem is, Josh Richardson is their only valuable trade piece, and perhaps Justise Winslow if he performs well after signing a three-year, $39 million extension earlier this season. Maybe -- and this is a gigantic maybe -- there would be some team willing to take a chance on reviving the Whiteside of 2015-16 as his deal draws closer to expiration in 2020. By then, the damage of this deal will have already been done. 

4. Kings draft Marvin Bagley III over Luka Doncic (2018)

If we were to re-do the 2018 NBA Draft, Luka Doncic would almost certainly go No. 1. He's the best player right now and projecting forward, and frankly, it's pretty obvious. That said, even with the benefit of hindsight, there is at least a statistical justification for the Suns still taking Deandre Ayton at No. 1. Almost nobody would advise it, even with the great numbers Ayton has put up as a rookie in his own right, but there's a case to be made, I suppose. 

On the other hand, there is no way in the world the Kings would have any business taking Bagley over Doncic again. Heck, Dave Joerger basically said as much when he recently told reporters: "Perhaps there was an idea that there was a ceiling on [Doncic]. I don't see it, unfortunately for us."

Joerger later "clarified" his comments:

I think we can all agree, Joerger is in damage control here. Saying Marvin Bagley is going to be the next Kevin Durant is ridiculous. De'Aaron Fox has had a breakout sophomore season, but calling him the next Russell Westbrook is also nuts. There is a simple truth here that pretty much everyone is already prepared to carve in stone: Luka Doncic is the best player in his class, and anyone who passed on him is going to regret it for a long time. That would include the Suns, the Kings, and don't forget the Hawks, who traded Doncic's rights to Dallas for Trae Young and Dallas' 2019 first-round pick. 

That additional pick may not end up being much consolation for Atlanta, but it's something. You can at least understand the rationale of a bad team in the business of compiling multiple assets valuing a second potential top-10 pick. The Kings had no such additional incentive to let Luka pass, and appear to have simply just whiffed on this one. 

"There is no doubt in my mind that [Doncic] should have been the No. 1 pick," Chris Thomas, a former NBA scout with the Bulls, Jazz and Warriors who is now coaching professionally in Doncic's native Slovenia, told CBS Sports. "He is that rare player who was the most ready to contribute right away and has an incredibly high ceiling."

5. Suns draft Josh Jackson No. 4 overall (2017)

If we gave the Suns the benefit of the doubt for taking Ayton over Doncic, we can give no such leeway for drafting Josh Jackson at No. 4 two years ago. After a largely disappointing rookie season, Jackson has been one of the worst players in the league this season. It doesn't take much to imagine what could've been with De'Aaron Fox having gone just one slot after Jackson at No. 5 to the Kings. A Fox-Devin Booker backcourt, with Ayton in the middle and Mikal Bridges on the wing, would be a pretty sweet, super-young core moving forward. Instead, you have Jackson over Fox and Ayton over Doncic. That has take-back written all over it. 

6. Pistons trade for Blake Griffin (2018)

When Detroit acquired Griffin via trade, one scout told me it was a "desperate move by a desperate team." The Pistons gave up a first- and second-round draft pick and two good players in Avery Bradley and Tobias Harris, who is playing like an All-Star this season. But it's not really about who the Pistons lost (who knows if they would've re-signed Bradley, and Harris will cost a boatload this summer, so they may well have lost them anyway) Instead, it's about what they took on in the form of Griffin's five-year, $175 million deal, on which they still have four years remaining, including this season, at $32 million, $34.2 million, $34.5 million and $39 million per year, respectively. 

Griffin has been great this season, but the Pistons, even with another borderline All-Star in Andre Drummond, are still basically a .500 team at best in the Eastern Conference. Pulling the trigger on Griffin was a last-ditch effort by Stan Van Gundy, who was on his way out and had no interest in a long-term rebuild, to microwave a competitive team. 

If the Pistons, back in action on Friday against the Pacers (7 p.m. ET -- watch on fuboTV with the NBA League Pass extension), can do some fancy maneuvering on the fringes of their team, Griffin is playing good enough right now to at least come close to warranting that money, but for how much longer? He'll be 33 at the end of this contract, at which point he won't be nearly worth this money. So you have the next couple years to make it worth it, and again, the Pistons don't have much of an avenue toward real relevance in the next few years. So basically, you just took on a monster deal to remain just good enough to miss out on a good draft pick and not nearly good enough to be a real threat. Wait, didn't we just say the same thing about John Wall and the Wizards? Ouch. 

My guess is if the Pistons had it to do over again, and SVG wasn't pushing the buttons on his way out, they would not have taken on Griffin's contract. 

7. Lakers don't trade for Paul George (2017)

When the Lakers didn't make a move for Paul George when he was forcing his way out of Indiana two offseasons ago, it was because they were pretty sure he was going to come to L.A. in free agency a year later anyway -- so why give up young assets? It made sense on paper, but as we've learned, when you have a chance to get an MVP-level player, which George has been in the past and is again playing like this season, you're playing with fire to leave him sitting out there. As we know, George was ultimately dealt to Oklahoma City, where this summer he decided to stay for the next four years without even giving the Lakers a meeting. 

I know the Lakers are high on their young guys, and that they likely would've had to give up either Lonzo Ball or Brandon Ingram, if not both, to get George. I also know the chances of either Ingram or Ball becoming anywhere near the player George is are slim, and in the meantime, the Lakers would be a no-doubt title contender right now with George next to LeBron James and still a solid core of young and veteran players around them. 

By trading for George, the Lakers would also have acquired his Bird rights, meaning the money they would've paid him this summer wouldn't have restricted them from signing James -- and they would also still be able to clear enough money to sign a third star next summer. You can talk all you want about guarding your assets to protect your future, but let's be honest: When you sign LeBron, in his 16th season, your future is right now. 

Now, if hoarding all these young assets, and in doing so passing up a chance at George and Kawhi Leonard, ends up landing the Lakers Anthony Davis in a mega trade, then fine; it was worth it. But until then, my guess is if the Lakers were offered George for Ingram and Ball tomorrow, they would absolutely pull the trigger. So it stands to reason they should've done it the first time around. Because here's the other thing: If Davis becomes available, the Celtics have a much better trade package to offer anyway should they decide to go all in -- meaning Davis would have to wait two years to come to L.A. as a free agent, which would be LeBron's 18th season. The Lakers have George in their hand and would be gunning for a title RIGHT NOW. 

8. Wolves give Andrew Wiggins max rookie extension (2017)

This one is on the fence. Andrew Wiggins has not played at a level anywhere near worthy of a five-year, $147 million contract extension, but at the same time, the question is: How else would the Timberwolves have used that money? Wiggins was the first player to sign a max rookie extension, which was put into the CBA in 2017 to help teams hold onto their young "stars" even if they haven't actually proven to be stars yet, which is certainly the case with Wiggins. 

The Wolves locked up Wiggins for two reasons: First and foremost, they're hoping that he grows into a player that deserves that money, and beyond that, it's unclear how else they would've used it. Know this: Without Wiggins' money on the books next year, meaning if they'd signed an expiring deal rather than giving him that extension, the Wolves would be close to $20 million under the cap and thus could very reasonably attract a player as impactful as Wiggins without the long-term commitment to what could already be an overvalued and depreciating-every-day asset. 

I don't think this was a horrible move. But it's all about the upside of Wiggins, which is getting harder and harder to trust. 

9. Knicks draft Frank Ntilikina No. 8 overall (2017)

This is simple: Ntilikina is already a sporadic bench-warmer for the Knicks, and even when he plays, it's not for that long and he doesn't do much with his time. This was Phil Jackson's pick, and what makes it even harder to swallow is the Knicks were reportedly very high on Donovan Mitchell, who went five picks later at No. 13 to the Nuggets (who promptly traded him to the Jazz). 

The draft is a crapshoot, and in most cases it's just too easy to say a team "made a mistake" after you have the results of their early performance to guide your analysis. But Ntilikina was flawed from the start. He projects as an elite defender, and in limited time, he's already a guy who has played at that level defensively. But his offense is a mess, and it always has been, and I'm here to tell you there is a laundry list of guards who can't shoot who have gone in the lottery and wound up as disappointments: Emmanuel Mudiay, Elfrid Payton, Kris Dunn, Shabazz Muhammad, Dante Exum, Michael Carter-Williams, and on and on. Stretch it out to all perimeter players and you have Michael Kidd-Gilchrist, Justise Winslow and Stanley Johnson. Even Ricky Rubio and Tyreke Evans haven't been anywhere near the players they were expected to be. Not a single All-Star among any of those groups. 

There is obviously more to a player than whether he can shoot or not, but you better be seriously elite at other things on the offensive end to make up for it -- i.e. John Wall and Russell Westbrook. There was absolutely no evidence that Ntilikina was ever going to be anything close to that kind of player. There is no question the Knicks would change this pick if they could, even with the understanding that Ntilikina won't turn 21 years old until next summer and still has plenty of time to improve. 

10. NBPA rejects cap-smoothing proposal (2015)

This was just a monumental mistake and everyone knows it. In 2015, with a huge new television deal set to kick in, the players' union rejected a proposal to gradually smooth that influx of money into the salary cap, instead opting for a historic, one-time cap spike in 2016 that is still sending ripples across the league. 

For starters, because for one summer there was money growing on trees, it lead to ridiculous contracts being handed out: Evan Turner got $70 million, Evan Fournier got $85 million, Timofey Mozgov got $64 million. As mentioned above, Whiteside got almost $100 million. Deals like this have been strapping caps for the past two summers and will continue doing so next summer. 

One top of that, this one-time cash influx and subsequent cap spike created this super-team iteration of the Warriors. Had they figured in the money gradually, Golden State couldn't have signed Kevin Durant. For that reason alone, the league would definitely walk this decision back if it could. Throw in all the deserving players who have wound up getting relatively stiffed on contracts because, one, they didn't happen to become free agents in the right summer, and two, so many teams don't have the money left to give them, and it's a no-brainer. This decision is on the return list.