01 · The problem
What was wrong
ACCESS was a large CodeIgniter 3 application running on PHP 5.5 under WampServer on a Windows box, talking to Microsoft SQL Server. It worked, and that was precisely the problem — it worked well enough that nobody could afford to take it offline long enough to modernise it.
The stack was years past end of life. Security patches had stopped. Newer libraries would not install. And every module carried assumptions from a PHP 5 world: curly-brace string offsets, implicit type juggling, functions removed in PHP 7 and 8. A naive upgrade would have taken payroll down for an entire local government.