Each offseason, MiLB.com goes position by position across each system and honors the players -- regardless of age or prospect status -- who had the best seasons in their organization. Click here to locate your favorite club. This edition of Toolshed covers the entire Minor Leagues, picking out the players who enjoyed

Each offseason, MiLB.com goes position by position across each system and honors the players -- regardless of age or prospect status -- who had the best seasons in their organization. Click here to locate your favorite club. This edition of Toolshed covers the entire Minor Leagues, picking out the players who enjoyed the best 2019 seasons under the same parameters. It's what we call the All-MiLB Team.

Catcher -- David Freitas , San Antonio (85 games), Tacoma (six games), Milwaukee (16 games), Seattle (one game): It's not often this can be said -- a catcher won the batting title. Freitas' .381 average was tops among Minor League full-season qualifiers, beating out Corban Joseph (.371) by a full 10 points. For those who believe batting average isn't less important than it used to be, Freitas was also in the top spot with a .461 on-base percentage, sixth with a 1.022 OPS and 24th with a 154 wRC+. (That's out of 810 qualifiers.) The 30-year-old veteran, who was traded from Seattle to the Milwaukee system on April 14, also finished with 12 homers and a 55/47 K/BB ratio through his 91 games in the Pacific Coast League, where he earned end-of-season All-Star honors.

First baseman -- Kevin Cron , AZL D-backs (two games), Reno (84 games), Arizona (39 games): Joe Bauman Home Run Award winners are typically easy selections. It's no different with Cron, who went deep 39 times between Reno and a short rehab assignment in the Arizona League. It's no secret that offense erupted at Triple-A in 2019 -- of the 22 to hit least 30 homers, only one ( Mason Martin ) didn't play a significant amount of time at the Minors' top level -- but even under the conditions of the Major League ball, no one was better at mashing taters than Cron. Arizona's No. 26 prospect went deep in 10.2 percent of his 382 plate appearances this season. Second-highest was Jared Walsh at 7.9 percent. He was also the only Minor League qualifier with a slugging percentage above .700 or an OPS above 1.200; his were .777 and 1.223 respectively. Cron will have to find a way to make that bat translate to the Majors, where he hit .211/.269/.511 in limited looks, because his other tools won't get him a spot on their merits. But for now, there's no doubting Cron put together one of the most dominant slugging seasons in recent memory.

Second baseman -- Josh Rojas , Corpus Christi (44 games), Round Rock (53 games), Reno (eight games), Arizona (41 games): Rojas played six positions in the Minors this season -- all but pitcher, catcher and center field -- but none more than second base, where played 45 games between Double-A and Triple-A. Regardless of what position got him on this list, the 25-year-old stood out for his offensive work in a breakout season. A 26th-round pick in 2017, Rojas hit .332/.418/.606 with 23 homers and 33 stolen bases in 105 games in the Minors. Along with Luis Robert , the breakout star was one of two full-season Minor Leaguers with a 20-20 season that also featured an OPS above 1.000. Rojas' offensive improvements were big reasons why the D-backs asked for him in the Zack Greinke trade negotiations and why the Astros reportedly hemmed and hawed on his inclusion. He was promoted to the Majors 12 days following the deal and stuck it out the rest of the way with the big club, playing primarily in left.

Third baseman -- Ty France , El Paso (76 games), San Diego (69 games) -- Just one year after another prominent third baseman in Vladimir Guerrero Jr. chased .400, France did the same, finishing out at .399 and falling just a few at-bats shy of qualification due to a mid-August Major League promotion. (Not exactly a tough break.) The 25-year-old infielder finished with a .399/.477/.770 line and 55 extra-base hits (including 27 homers) in his 76 games in the Pacific Coast League. His 196 wRC+ was highest among the 1,100 Minor Leaguers with at least 300 plate appearances -- Cron's 182 was second -- and his 1.247 OPS also topped that group.

Shortstop -- Gavin Lux , Tulsa (64 games), Oklahoma City (49 games), Los Angeles (23 games): A typically loaded position, but there could be only one selection here. The Dodgers' top prospect got off to a hot start, hitting .313/.375/.521 with 13 homers in the Texas League before truly taking off in the PCL. The 22-year-old produced an incredible .392/.478/.719 line and 13 homers with Oklahoma City. His .392 average was the best among qualified Triple-A players from June 27 through the end of the season while his 1.197 OPS placed third. Lux's 26 total homers between both Minor League stops marked a career high, besting 15 in 2018. Now ranked as MLB.com's No. 2 overall prospect, Lux showed the promising hit and power tools to push himself onto a crowded Los Angeles roster in September. The next goal will be to find a defensive home that enables him to stick with the Dodgers -- manager Dave Roberts floated the possibility of a temporary move to the outfield at the Winter Meetings -- but Lux's stick is good enough to give him a blinding present and an incredibly bright future.

Outfielders

Luis Robert, Winston Salem (19 games), Birmingham (56 games), Charlotte (47 games): Tough to say anything here that wasn't mentioned when Robert won the MiLBY as the Top Offensive Player of 2019. But to sum up quickly -- the No. 3 overall prospect was one of only two 30-30 players in the Minors this season, having posted 32 homers and 36 stolen bases across three levels in the White Sox system. As previously mentioned, he was one of two 20/20/1.000 OPS players as well, finishing with a 1.001 OPS. Chicago was just hoping to get their potential star outfielder a full season after multiple injuries limited him to 50 games in 2018, and he accomplished way more than that. With above-average to plus tools across the board, Robert's arrival in 2020 should play a big role in a potential resurgence on the South Side.

Dylan Carlson , Springfield (108 games), Memphis (18 games): From one MiLBY winner to another. The switch-hitting outfielder was MiLB.com's pick for the Top Breakout Prospect after climbing from outside the Top 100 to his current spot at No. 24. Since this designation is meant to be prospect status-blind, it's worth pointing out Carlson was good enough to be Texas League MVP and only got better following his mid-August promotion to the PCL. The 2016 first-rounder batted .281/.364/.518 with 21 homers and 18 steals in 108 games with Springfield, making him one of two Double-A players with at least 20 long balls and 15 thefts at the level. ( Jazz Chisholm was the other.) He went deep five more times with Memphis, producing a .361/.418/.681 line in that 18-game span, to finish with a career-best 26 homers. That power jump makes Carlson an even more exciting prospect given his skill set to play all three outfield spots if needed.

Jarred Kelenic , West Virginia (50 games), Modesto (46 games), Arkansas (21 games): Kelenic earns points for climbing three levels and being fairly consistent all three. Even after reaching Double-A a month after his 20th birthday, the left-handed slugger homered six times and produced a .542 slugging percentage with Arkansas. The Mariners' top prospect finished with a .291/.364/.540 line, 23 homers and 20 stolen bases over his 117 total games, showcasing a plus hit tool with good power and above-average speed. He primarily played in center, but also saw time in left and right to give others (like fellow Top-100 prospect Julio Rodriguez ) time up the middle. All the same, he finished with nine outfield assists from the grass, rounding out his all-around ability.

Utility player -- Jared Walsh, Salt Lake (98 games), Los Angeles (31 games): This is the utility position to the extreme. Walsh was a very good hitter in his own right, and he might have fallen into the designated hitter category had we chosen to go that route. The Angels' No. 20 prospect finished third in the Minors with 36 homers and produced a robust .325/.423/.686 line in his 98 games at Triple-A. That worked out to a 1.109 OPS that led all full-season Minor Leaguers. If that wasn't enough -- and really it should be -- Walsh made 13 appearances on the mound for the Bees, pumping a fastball that averaged around 93 mph with a decent breaking ball. The numbers (4.15 ERA, 1.62 WHIP, nine strikeouts in 13 innings) weren't nearly as eye-popping on the mound, but that versatility makes Walsh an even more valuable player, especially with 26-man rosters right around the corner.

Right-handed starter -- Joe Ryan , Bowling Green (six games), Charlotte (15 games), Montgomery (three games): The seventh-round pick out of Cal State Stanislaus in 2018 made all of his 123 2/3 innings across three levels count during his first full season. His 183 strikeouts were second-most in the Minors, two behind Kris Bubic 's 185, while his 38.0 percent K rate was second-highest among Minor Leaguers with at least 100 innings. His 0.84 WHIP ranked second among the 436 hurlers in that group while his 1.96 ERA placed fifth and his 6.8 K/BB ratio third. For those with an even more sabermetrical bent, Ryan's 1.91 FIP was the lowest among Minor Leaguers with frames in the triple digits. Ryan has climbed to the No. 16 prospect spot in a crowded Tampa Bay system on the strength of these results as well as an above-average fastball and curve, each of which comes with a fair amount of deception. Not many paid attention to Ryan in the spring. They won't make the same mistake this time around.

Left-handed starter -- MacKenzie Gore , Lake Elsinore (15 games), Amarillo (five games): The Padres' top prospect was a lock for this spot as the Top Starting Pitcher MiLBY winner. Among Minor Leaguers with at least 100 innings, Gore was at the top of the leaderboard with a 1.69 ERA and an 0.83 WHIP. He fanned 135 and walked only 28 in 101 frames as well. The 20-year-old southpaw's numbers in the offense-rich California League (1.02 ERA, 0.71 WHIP, four homers allowed in 79 1/3 innings) were especially notable. The third overall pick in the 2017 Draft always had the stuff to dominate, headlined by a plus fastball and plus curve to go with good control of his entire four-pitch mix. He just needed the chance to prove it after blisters limited him for much of 2018. He got that opportunity in 2019 and ran with it, ascending to the No. 4 overall prospect in the process.

Relief pitcher -- Jackson Rees , Lansing (14 games), Dunedin (25 games): The Blue Jays signed Rees as an undrafted free agent out of the University of Hawaii in June 2018, only to see him blossom into a MiLBY winner in his first full season. Rees threw 61 2/3 innings between his two stops in the Toronto pipeline, but even with a threshold lowered to 40 frames to include more relievers, he was still the leader with a 1.50 FIP and placed third with a 0.73 ERA. The 25-year-old right-hander finished with 88 strikeouts against only 15 walks and only allowed one homer in his 39 combined appearances between the Class A and Class A Advanced levels. No Minor League reliever was better at keeping things within his control than Rees in 2019.