There are half-full and half-empty ways to view the Twins' season. On the half-full side they won 83 games compared to a Las Vegas over/under of 72.5 and local optimism topping out around 78, emerging as a contender ahead of schedule. On the half-empty side they made plenty of decisions on playing time, player evaluation, and call-ups that seemed iffy at the time and now stand out as especially damaging within the context of missing out on a Wild Card spot by just three games.

Whichever side you lean toward from a team-wide perspective, there's no doubt that looking at the Twins' season from a player-by-player view leads to an abundance of half-full glasses and a few that are overflowing. I've identified eight players whose 2015 performance stood out in a very positive way, both for this season and for the Twins' long-term plans. There are more, of course, but these eight made me feel the best about what happened this season on the way to 83-79.

• Miguel Sano: I've spent the past three months obsessively posting Sano statistical porn on Twitter, so I'll try to keep this #SanoPorn somewhat brief. Sano arrived from Double-A on July 2 as a fully formed middle-of-the-order monster and one of the most extreme Three True Outcomes bats of all time, hitting .269/.385/.530 with 18 homers, 17 doubles, 53 walks, and 119 strikeouts in 80 games at age 22. He was a revelation, shattering the typical Twins hitting mold.

He's not without flaws, including a strikeout rate that will make posting decent batting averages difficult, but Sano's power and patience are both 99th percentile skills and his debut was one of the best in Twins history. Actually, that's underselling it. Sano had the 12th-highest OPS (.915) in MLB history among 22-year-old right-handed hitters, taking his spot on the list directly after Hank Aaron (.923) and Alex Rodriguez (.919). His long-term potential is drool-inducing.

• Eddie Rosario: Despite little in his 2013 or 2014 performance to suggest he was ready for the majors Rosario was the first outfielder called up when reinforcements were needed in early May and never went back to the minors. He swung at everything on the way to 118 strikeouts and 15 walks in 122 games to match the idea that he wasn't ready, but Rosario also batted .267 with 46 extra-base hits and plus defense to show Paul Molitor was right to believe in his raw talent.

There's no doubting Rosario's tools, which include an extremely quick bat, very good speed on the bases and in the outfield, and a strong arm that killed 16 runners when stubborn teams refused to stop testing him. None of that will mean much if Rosario can't develop some semblance of strike zone control, but in terms of debuts for 23-year-olds there was a ton to like and even with the undisciplined approach at the plate he was an above-average player as a rookie.

• Trevor May: May was sent down to Triple-A at the end of spring training, but Ricky Nolasco immediately getting hurt opened up a rotation spot and he had the best strikeout rate, swinging strike rate, and xFIP among Twins starters through mid-July. And then the Twins moved May to the bullpen, where he took the unwanted and undeserved role change in stride and thrived as a reliever with a 2.87 ERA and 37 strikeouts in 31 innings.

Like most starters May's velocity and raw stuff went up a tick or two as a reliever, giving him the potential to be a late-inning setup man or closer. However, he's also shown enough as a starter to think he can help the Twins more logging 200 innings in the rotation instead of 70 innings in the bullpen and May has made it clear he wants to start. Whatever happens, May took a huge step forward this season at age 25 and gives the Twins' pitching staff a much-needed building block.

• Eduardo Escobar: For whatever reason the Twins were very hesitant to trust Escobar as their starting shortstop despite a strong 2014 in that role, first handing the Opening Day job to Danny Santana and then waiting three months to give it back to Escobar when Santana flopped. Escobar ended up starting 71 games at shortstop--along with way too many games miscast as a left fielder and designated hitter--and batted .262/.309/.445 with 12 homers and 47 total extra-base hits.

For his Twins career Escobar has started 187 games at shortstop and hit .281/.328/.480 in those games, which is the best shortstop production in team history and should be more than enough to make him the 2016 starter. Escobar is a free-swinger, but he's got rare power for the position and offers solid, sure-handed defense too. At age 26 he's under team control through 2018, so they may have stumbled into a shortstop solution after two decades of unsuccessful searching.

• Tyler Duffey: Entering the year as a mid-level prospect with questions about his durability and bat-missing ability, Duffey finished it as arguably the Twins' best starter. Called up in early August as a short-term rotation patch, Duffey got knocked around by the Blue Jays in his debut and then went 5-0 with a 2.25 ERA and 52/18 K/BB ratio in 56 innings over his final nine starts while giving up just two homers in 229 plate appearances.

Duffey was even stingier with the long ball in the minors this season, giving up just one homer in 138 innings and 559 plate appearances at Double-A and Triple-A before the call-up. Because he's not an extreme ground-ball pitcher those low homer totals figure to be somewhat of a fluke long term, but Duffey has good command of a low-90s fastball and his curveball is a swing-and-miss weapon. At age 25 he deserves a full-time shot in the Twins' rotation next season.

• Aaron Hicks: All but left for dead as a prospect after back-to-back awful seasons in the majors, Hicks earned his way back to Minnesota by dominating Triple-A for six weeks and finally showed the skills that made him a first-round draft pick and four-time Baseball America top-100 prospect. With a revamped approach at the plate that dialed up aggression and converted passiveness into patience, he hit .256/.323/.398 with 11 homers in 97 games.

Hicks also looked much better defensively in center field, making his usual assortment of standout plays without mixing in as much shaky route-running, and went 13-for-16 stealing bases too. He slumped down the stretch and it remains to be seen if the switch-hitting Hicks can handle right-handers well enough to thrive as an everyday player, but he was an above-average all-around center fielder at age 25 and that's a remarkable turnaround given how far his stock had fallen.

• Jose Berrios: Setting aside whether or not the Twins should have called up Berrios to the big leagues this season--in July or August would have been my preference--his performance while spending the entire year in the minors firmly established the 21-year-old right-hander as the organization's best pitching prospect since Matt Garza in 2006. Berrios began the season at Double-A, moved up to Triple-A in early July, and was one of the best pitchers in both leagues.

Overall he threw 166 innings with a 2.87 ERA and 175/38 K/BB ratio while limiting opponents to a .223 batting average and 12 homers. His handling may have been frustrating to Twins fans, but it was a fantastic season for an excellent prospect and one that would have gotten Berrios to the big leagues in most organizations. Pitching prospects fail at a remarkably high rate, but Berrios looks MLB-ready and projects as a potential front-line starter. His development in 2015 was impressive.

• Max Kepler: Prior to this season Kepler's prospect status was based more on his physical tools and youth than actual production, which was mostly mediocre thanks in part to a bunch of injuries keeping him off the field. That all changed in a huge way this year, as Kepler stayed healthy and crushed Double-A, hitting .322/.416/.531 with 54 extra-base hits, more walks (67) than strikeouts (63), and 18 steals to be named MVP of the Southern League at age 22.

Kepler is 6-foot-4 and significantly stronger than when the Twins signed him out of Germany as a 16-year-old in 2009, but still has enough range to occasionally play center field and figures to be a plus defender in a corner spot. Much like with Berrios, in most organizations Kepler likely would have been called up to the big leagues for more than a September cup of coffee, but regardless of that his season was a true breakout and thrusts him into the Twins' long-term plans.

Monday's off day provides an opportunity to stop and marvel at Miguel Sano's start with the Twins. Called up on July 2, he's hit .288/.397/.582 with 11 homers, 12 doubles, and 29 walks in 44 games as a 22-year-old rookie. Sano being a great hitter isn't a surprise--it's exactly what the Twins had in mind when they signed him for $3.15 million at age 16--but for him to be this good this soon after missing all of 2014 following elbow surgery and skipping Triple-A is incredible.

Among all hitters to debut with the Twins through their first 44 career games Sano has the most home runs (11), most walks (29), second-most RBIs (34), and third-highest OPS (.979). Sano's current numbers prorated to a full 162-game season would include a .288 batting average, .397 on-base percentage, .582 slugging percentage, 41 homers, 44 doubles, 107 walks, and 125 RBIs. Those are numbers Twins fans simply haven't seen much.

Harmon Killebrew is the only hitter in Twins history with more than 35 homers in a season and no hitter in Twins history has totaled as many as 85 extra-base hits. Killebrew and Bob Allison are the only Twins hitters to draw 100 or more walks and Killebrew and Justin Morneau are the only Twins hitters with 125 or more RBIs. Prorated numbers after 44 games should be taken with large grains of salt, but you get the idea. Sano is a power-hitting, walk-drawing monster.

Sano has a hard-hit rate of 48.9 percent, which would lead the entire American League if he had enough playing time to qualify. He's swung at 24.5 percent of pitches outside of the strike zone, which would rank as the seventh-lowest rate in the league. His isolated power of .294 and walk rate of 15.8 percent would both rank second in the league. He's waiting for good pitches and then crushing them.

Sano blows away the competition in terms of the best OPS by 22-year-old Twins hitters:

Sano has the fourth-best OPS by a 22-year-old right-handed hitter and that entire list is crazy.

Sano will almost surely come back down to earth at some point--pitchers will adjust to him, he'll have to adjust back, and in particular his sky-high strikeout rate will make maintaining a batting average above .280 difficult--but Twins fans should be beyond thrilled with what they've seen of him through 44 games. He's living up to the considerable hype and then some, and it's easy to envision the Twins' lineup revolving around him for the next decade.

• Tyler Duffey allowed a grand total of one homer in 540 plate appearances between Double-A and Triple-A this season and then served up two homers in his Twins debut, including one to the second MLB hitter he faced. Based on the "game score" statistic Duffey had the seventh-worst debut start in Twins history. Who had the worst? LaTroy Hawkins in 1995. And then 21 years later Hawkins closed out the Blue Jays' win against the Twins in Duffey's debut.

• Trevor May never deserved to be demoted from the rotation to the bullpen in the first place and hopefully the Twins remain committed to him as a long-term starter, but he's looked strong as a reliever. He's got a 3.18 ERA and 10/2 K/BB ratio in 11 innings along with increased velocity, which is probably enough to make him the Twins' best right-handed bullpen option over Blaine Boyer, Casey Fien, and trade deadline pickupKevin Jepsen.

• Rookie reliever Ryan O'Rourke is living up to the hype of being death to left-handed hitters, who are 2-for-21 (.095) with 11 strikeouts against him since last month's call-up. Using him in a very limited role remains crucial, but the Twins may have found a long-term bullpen piece in the unheralded 27-year-old southpaw. With a strong finish he should be able to secure a spot in next year's Opening Day bullpen, which won't include Brian Duensing.

• Aaron Hicks' improved overall performance is very encouraging from a one-time top prospect who's still just 25 years old, but not being able to hit right-handed pitching remains a big issue. This season he's hit .375/.429/.578 off lefties and .228/.291/.315 off righties. For his career he's hit .288/.374/.466 off lefties and .197/.277/.287 off righties. Hicks is a switch-hitter, but in both the minors and the majors he's shown little ability to be an asset from the left side of the plate.

• Byron Buxton's long-awaited debut was cut short after 11 games by a thumb injury that he's still recovering from six weeks later, but fellow stud prospect Miguel Sano has immediately lived up to the hype. As expected he's struck out a ton and hit for a ton of power, but the 22-year-old has also shown incredible plate discipline with 21 walks in 27 games and an impressive ability to lay off borderline pitches. Twins fans should be thrilled with how he's looked so far.

• There have been occasional signs of life, but sadly Joe Mauer has continued to look like a shell of his former, pre-concussion self. He's hit just .275/.346/.398 in 47 games since I wrote a "What happened to Joe Mauer?" article that examined the numbers since his late-2012 concussion and expressed very little confidence in his getting back on track. Mauer is now in his second season of being a below-average first baseman after a decade of being a Hall of Fame-caliber catcher.

• Danny Santana got a longer leash than most struggling Twins prospects, but he's finally back in the minors after hitting .218/.242/.298 with a ghastly 66/5 K/BB ratio in 74 games and playing mistake-filled defense at shortstop. His great rookie season screamed fluke, but no one could have expected Santana to be this awful as a sophomore. However, his career .272/.316/.392 line and poor strike zone control in the minors are reasons to be skeptical of a big turnaround.

• Liam Hendriks was the Twins minor league pitcher of the year in 2011, but he went 2-13 with a 6.06 ERA in 156 innings as a starter and they lost him on waivers for nothing. Still just 26 years old, he's found a home in Toronto's bullpen with a 2.47 ERA and 50/6 K/BB ratio in 47 innings. As a starter Hendriks always had modest raw stuff, topping out in the low 90s, but this season he's averaging 94.4 miles per hour with his fastball and topping out 97.

Miguel Sanois on his way to the majors and the 22-year-old top prospect will make his MLB debut at designated hitter rather than third base, stepping into a position that has been horribly unproductive for the Twins this season. Six players have started at least one game at DH for the Twins--led by Kennys Vargas with 29 and Torii Hunter and Eduardo Nunez with 11 each--and they've combined to hit .250/.305/.357 with five homers to rank second-worst in the league.

Vargas was the Opening Day starter following a strong rookie showing, but hit just .245/.277/.365 with five homers and an ugly 48/7 K/BB ratio in 47 games and has been sent to Double-A after previously being demoted to Triple-A. Oswaldo Arcia hasn't hit enough in Rochester to convince the Twins he's worth letting out of the doghouse and Josmil Pinto has been sidelined by with a concussion, so Sano is getting the call three weeks after fellow elite prospect Byron Buxton.

Signed out of the Dominican Republic as a 16-year-old in 2009 for a record $3.15 million, Sano's immense power potential was evident from Day 1. He's topped an .850 OPS in all five seasons as a pro despite being very young for each level of competition, including hitting .274/.374/.544 with 15 homers and 18 doubles in 66 games at Double-A this year after missing all of 2014 following Tommy John elbow surgery.

And those extremely impressive Double-A numbers include a terrible April, as Sano struggled to get back on track offensively and defensively. However, since May 1 he's hit .315/.400/.601 with 11 homers, 16 doubles, and 28 walks in 48 games. That's incredible production for a 22-year-old coming off a lost season and why, despite questions about his long-term ability to remain at third base defensively, the Twins feel Sano is ready to make an impact with his bat alone.

Even focusing strictly on his bat Sano is far from flawless. He strikes out a ton, whiffing 149 times in 133 games at Double-A, and as a result his career batting average is a modest .278. Of course, struggling to make consistent contact often comes with the territory for big-time power hitters and Sano balances the strikeouts with lots of walks. That's an important distinction, because it means Sano has shown patience and the ability to work deep counts rather than being a free-swinger.

Cutting down at least somewhat on the strikeouts to keep his batting average closer to .300 than .200 and maintaining a good walk rate are keys to his development, but make no mistake about it: Power is the one tool around which his career will revolve. Sano is a massive human being at 6-foot-4 and 260 pounds, looking the part of a prototypical middle-of-the-order slugger, and he's averaged 35 homers per 150 games in the minors.

Three years ago as a teenager at low Single-A he led the Midwest League with 28 homers. Two years ago as a 20-year-old playing at high Single-A and Double-A his 34 homers were the most by any Twins minor leaguer in three decades. This season, as a 22-year-old at Double-A coming back from elbow surgery and a year of lost development, his 15 homers in 58 games ranked second in the Southern League.

Sano has 40-homer potential, which is saying something considering Harmon Killebrew is the only player in Twins history to hit more than 35 homers. That type of power combined with lots of walks would be enough to make Sano an outstanding overall player even with a batting average in the .250 range and little defensive value. Getting into the .280 range and contributing positively defensively--at third base or elsewhere--could make him an MVP-caliber monster.

For now the Twins simply need Sano to be better offensively than a group of DHs that combined for a .662 OPS and are willing to put him into a role that takes defense out of the equation save for what figures to be spot starts in the field. Trevor Plouffe will remain the Twins' starting third baseman, Sano will try to establish himself as an impact bat at age 22, and they'll worry about where he winds up defensively and how well he plays there later.