The diagram below is a computer-generated version of a hand-drawn diagram in Robert Geroch’s book Mathematical Physics. The original diagram is better in some ways because Geroch arranges the classes in a way that implies structure not captured by the arrows. Solid arrows represent forgetful functors, i.e. there is a solid line from A to B if you can make every A into a B by ignoring some structure. Dashed lines indicate a free construction.
Here is the GraphViz file used to create the diagram.