For all the boxes ticked, the 49ers skipped the loudest one: offensive lineman is exactly as bare as it was. It nets out to a B-, which feels about right.
Edge rusher was the priority and it is no longer a question, which is most of the job. Building through the lines is a philosophy, and they stuck to it.
All told, a solid class that does its job everywhere but offensive lineman.