San Francisco 49ers head coach Kyle Shanahan has long since stressed that training camp practices are more important than preseason games.
But players looking to crack a 53-man roster must take advantage of every opportunity they get.
As such, Friday's preseason finale against the Las Vegas Raiders is key for several players on the bubble.
Here I look at three with a strong chance of making it and break down what they must do to achieve that goal.
RB Cody Schrader
Veteran Elijah Mitchell could find himself as the odd man out in the running back room after the preseason finale, but the 49ers' 2021 leading rusher being cut is not just contingent on him playing poorly, it also depends on the rookies with whom he is competing enjoying a strong display.
Isaac Guerendo, having recovered from a hamstring injury, will hope to lock down his roster spot by displaying the speed that convinced the 49ers to move up for him in the fourth round.
But Guerendo's draft status gives him an inherent advantage, one Schrader does not enjoy.
However, the undrafted free agent who led the SEC in rushing with Missouri last season has passed the eye test to this point in his two preseason appearances, displaying the vision and decisiveness necessary to excel in a zone-blocking scheme.
Head coach Kyle Shanahan said of Schrader this week: "He's a good running back, he hits the right holes, doesn't mess around and falls forward."
That's close to the dictionary definition of a Shanahan running back. If he impresses against Las Vegas while once again showing those traits, he'll have an excellent chance of being picked as one of the likely four backs on the 49er roster.
OL Jarrett Kingston
The recipe for Jarrett Kingston is simple, perform to a standard that will make the 49ers not want to risk trying to sneak the sixth-round pick on the practice squad.
He has been excellent through two preseason games, the USC product allowing just one pressure, per Pro Football Focus, while demonstrating his versatility in playing both left and right guard.
Kingston, along with likely right guard starter Dominick Puni, has displayed all the hallmarks of being a rookie gem for the 49ers.
He has competition for places on the interior line in the likes of Nick Zakelj and Ben Bartch, who both have the versatility to play center and guard.
However, Kingston's play to this point has suggested he could eventually join Puni in becoming a starter at guard. Should he maintain that standard while adhering to offensive line coach Chris Foerster's recent advice in improving his anchor, it may be impossible for the 49ers to risk waiving Kingston.
DL Jonathan Garvin
A late free agent signing after impressing in the UFL, former Green Bay Packers edge rusher Garvin has enjoyed a solid preseason for the 49ers.
He has four stops in the run game, per PFF, and has also tallied two pressures, including one that led to a sack by linebacker Jalen Graham against the New Orleans Saints. Garvin boasts the explosive traits the 49ers look for in their pass rushers, but that pressure also demonstrated Garvin's ability to bend, a trait the Niners haven't had in spades in recent years.
Intriguingly, the 49ers have also given Garvin some snaps at defensive tackle as well as off the edge.
Garvin either has to beat out last year's fifth-round pick Robert Beal Jr. for the fourth edge rusher spot behind Nick Bosa, Leonard Floyd and Yetur Gross-Matos, or convince the 49ers that he is worth carrying as a fifth outside pass rusher.
The key to him doing that is displaying more of that flexibility in being able to turn the corner. Another strong display in which he does that will give the 49ers a very difficult decision to make.