Amazing. I especially like the little red texts with historical context. I just have a few minor gripes with roads leading to what seems to be dead ends. Some city labels are hard to read because they overlap borders, coastlines, lakes and even graticules in the case of Conimbriga in Portugal.
In my opinion there is little purpose in showing a road that leads to an unmarked settlement, and it just makes an otherwise great and high-effort map look rushed and unfinished. I'd also remove random stretches of rivers in Arabia who doesn't seem to lead anywhere. But this is probably a matter of taste.
The use of fonts are tastefully distinguished with italic serif labels representing natural landscapes and sans serif representing political entities.
Thank you for the detailed feedback! So originally, I had planned to have type knockouts (to kind of remove a tiny bit of the borders/coast/any other vector surrounding a letter) for every label on this map (which I have done in a few of my projects that I have not yet posted). However, I faced a few issues with my Illustrator file crashing whenever I tried to move the layers into the knockout group. I could probably figure out how to do it eventually for this map's next version, but it'll take a little time.
With the exception of the rivers in the north-east of the map, all the rivers and roads in this map are derived from a few datasets on the web that I imported into QGIS, reprojected, cropped, and exported as an SVG to be simplified and edited in Illustrator. One of the biggest challenges of cartography is finding a balance between accuracy, style, and legibility. I think to edit a dataset made by professional archaeologists would be to prioritise style and legibility over accuracy (for these roads and rivers did exist, but are either missing data simply because historians do not yet know where they led or missing evidence of settlements that likely existed at the end of the roads and rivers). So, I opted to prioritise accuracy in this map over style and legibility. However, I kind of agree with you that this might not have been the best choice. The purpose of this map is not to provide a dataset for professional historians, but to simply illustrate broadly what the Roman Empire. So, I think cleaning-up the random rivers and roads is probably a good idea for this map's next version.
Illustrator can really be a mess when it comes to handling a lot of type knockouts. What i tend to do nowadays is to only add labels that are obstructed by other elements to knockout groups which improves performance and stability greatly. Another measure to improve software stability is to chop up the different layers into separate Illustrator files and only combine them for the final render. I've never tried this and I'd imagine that it could be clunky for most projects. But it's worth a try if a map project is larger and more ambitious than one's CPU power :p
That last suggestion is something I was thinking I might try to do for later huge projects like this I'm thinking I could do labels on a separate illustrator file, then import add the transparent stroke effect to everything in that file. I think the main issue wasn't so much the quantity of labels as it was the quantity of anchor points per map feature. The datasets were designed for scales much larger than this map, and I think I definitely should have either simplified every vector much more than I did, or manually traced it by hand (which I have done for essentially every other map I've made)
I've consulted a few different atlases, made by historians a lot more knowledgably on the subject than myself, when deciding where to place the province boundaries and, interestingly, most seemed to put Thracia larger than I would have thought before starting this project!