I've been poking at this for a few days, and I've decided to start by trying to modernize the networking stack. This will make everything more complicated in the short term, but hopefully easier to manage in the long term.
I settled on Siesta (https://bustoutsolutions.github.io/siesta/) to replace Alamofire and in theory, I like it a lot. I was having trouble for a day or so because I was receiving responses from the API, but not data... Weird!
Once I poked at the actual response headers last night, I realized the API has been returning application/javascript
for some arcane reason. Switching it to application/json
fixed the mixup and now I can keep moving and work on decoding API responses into native Swift models.