It feels like 500 years ago, but only five years have passed since 2015.
That June's NBA draft had its cream of the crop, followed by a big drop-off. Eight first-round picks no longer - or never did - play in the league. Meanwhile, seven second-rounders still do, some in significant roles. Another half-dozen undrafted players from that year play or played in the league.
With hindsight being 20/20, let's redraft.
Actual pick: Karl-Anthony Towns
New pick: Karl-Anthony Towns
Towns is the best and most productive NBA player in this draft, and it's not even really that close. KAT remains the deserving No. 1.
Actual pick: D'Angelo Russell
New pick: Kristaps Porzingis
Actual pick: Jahlil Okafor
New pick: Devin Booker
Actual pick: Kristaps Porzingis
New pick: D'Angelo Russell
Then-Knicks president Phil Jackson was fined in March 2015 for innocuously complimenting the undeclared Russell. Would the Knickerbockers' subsequent recent history have turned out any better?
Let's not get ridiculous.
Actual pick: Mario Hezonja
New pick: Montrezl Harrell
The tricky thing about any draft is finding the right opportunity and fit for a player. By virtue of his experience with the Clippers and Rockets, Harrell became an elite sixth man. But based on his high motor and retrospective production, the Magic take a flyer on the forward. He ultimately went in the second round, 32nd overall.
Actual pick: Willie Cauley-Stein
New pick: Josh Richardson
The Kings' three drafts prior to 2015 yielded Nik Stauskas, Ben McLemore, Ray McCallum Jr., Thomas Robinson, and Orlando Johnson. Richardson, who was picked 40th overall, has outperformed all of them - as well as Cauley-Stein.
Actual pick: Emmanuel Mudiay
New pick: Myles Turner
Turner's career thus far doesn't necessarily merit moving up, but this draft just wasn't that deep. The real-life Pacers center still comes with a lot of potential and upside, and you wonder if he might fare better alongside a big like Nikola Jokic, who'd give him more space.
Actual pick: Stanley Johnson
New pick: Terry Rozier
Actual pick: Frank Kaminsky
New pick: Norman Powell
Hornets owner Michael Jordan was determined to draft Kaminsky, but he should've taken a guard to pair with Kemba Walker. Powell makes the biggest jump here, as he was originally selected with the 46th pick.
Actual pick: Justise Winslow
New pick: Delon Wright
Actual pick: Myles Turner
New pick: Richaun Holmes
One of seven second-round picks in this draft still playing in the NBA, Holmes went 37th overall. He's bounced around and dealt with injuries, but he's also come into his own.
Actual pick: Trey Lyles
New pick: Larry Nance Jr.
Actual pick: Devin Booker
New pick: Bobby Portis
Hindsight sets the Suns. Portis remains, however, an effective stretch big.
Actual pick: Cameron Payne
New pick: Kelly Oubre
Oubre remains something of an enigma, but the talent is there. He could've come off the bench in the last year of the KD-Russ era.
Actual pick: Kelly Oubre (traded)
New pick: Willie Cauley-Stein
After trading Oubre, Atlanta ended up with Tim Hardaway Jr., who eventually left in free agency. Cauley-Stein would've been a logical addition to the bench of Mike Budenholzer's Hawks with Tiago Splitter injured for much of 2015-16.
Actual pick: Terry Rozier
New pick: Frank Kaminsky
The Celtics reportedly offered six picks to Charlotte in an effort to draft Justise Winslow, but Jordan was too enamored with Kaminsky. In this world, Boston gets Frank the Tank.
Actual pick: Rashad Vaughn
New pick: Trey Lyles
Vaughn logged a 43.2 true shooting percentage in 139 NBA games. Lyles is still a contributing stretch-four.
Actual pick: Sam Dekker
New pick: Justise Winslow
Winslow was drafted based on talent, but injuries and inconsistency hindered his NBA career. Here, he lands with his hometown Rockets.
Actual pick: Jerian Grant (traded)
New pick: Christian Wood
Actual pick: Delon Wright
New pick: Rondae Hollis-Jefferson
This draft was one of Raptors president Masai Ujiri's signature moments, as he snagged Wright and Powell with late first- and second-round picks, respectively. Hindsight robs Toronto of those rewards and leaves it with Hollis-Jefferson, who signed a cheap, one-year contract with the team four years later.
Actual pick: Justin Anderson
New pick: Cedi Osman
Actual pick: Bobby Portis
New pick: Jahlil Okafor
It would be strong verbiage to call Okafor a "bust," but he certainly never lived up to being picked third. This range is more in his wheelhouse and he becomes a selection of his hometown Bulls.
Actual pick: Rondae Hollis-Jefferson (traded)
New pick: Quinn Cook
Cook went undrafted after four years at Duke, but he has shot 41% from deep in 159 NBA games.
Actual pick: Tyus Jones (traded)
New pick: Tyus Jones
The Cavs traded Jones for Osman, then stashed him in Europe for two more years. They didn't have another draft pick until 2018. Jones has been a dependable backup point guard since he entered the league.
Actual pick: Jarell Martin
New pick: Royce O'Neale
O'Neale was draft eligible in 2015, but he played in Europe for two years before landing in the league. He especially came into his own this season.
Actual pick: Nikola Milutinov
New pick: Emmanuel Mudiay
As a traditional center, Milutinov was a very Spurs-ian pick, but he remains in Europe having never played a minute in the NBA. While Mudiay isn't the most efficient point guard in the league, maybe he could've benefited from playing under Gregg Popovich.
Actual pick: Larry Nance Jr.
New pick: Mario Hezonja
Relax, they (fake) got Porzingis at No. 2.
Actual pick: R.J. Hunter
New pick: T.J. McConnell
The undrafted McConnell has developed a reputation as a scrappy backup point guard.
Actual pick: Chris McCullough
New pick: Justin Anderson
Is Anderson much of a downgrade from McCullough, who last played in South Korea?
Actual pick: Kevon Looney
New pick: Willy Hernangomez