- [x] Swift 5.9 seems to execute code (unit tests) noticeably faster. Test if the "CGI bug" listed in `known-issues.md` is still a problem. - it is still a problem
- [x] Refactor all custom `Error`s to implement `errorDescription` instead of `localizedDescription` so you don't have to worry about downcasting them all.
- [x] Figure out how to get code coverage reports without Xcode
  - swift test --enable-code-coverage --show-codecov-path
  - [x] Find ready-made tool that generates visual report from JSON file from above command
  - `llvm-cov`
  - [x] script the above command to generate report
  - [x] works: `llvm-cov report .build/aarch64-unknown-linux-gnu/debug/smolverPackageTests.xctest -instr-profile=.build/aarch64-unknown-linux-gnu/debug/codecov/default.profdata --ignore-filename-regex=.build`
  - [x] pair output lines with a custom line: "has test file? (Y/N)" to allow for easily finding tests that accidentally leak into testing other files
  - [x] Do this for SocketServer too
- [x] Script new file creation
- [x] Refactor unit tests to use more private helper methods, too much duplicated code
- [x] Fix code coverage "leakage" by breaking ResponseTests.swift down into separate files like the prod code (suspected semi-false positive due to the way the coverage script determines leakage vs. how this file is structured)
- [x] Remove all SwiftLint configurations, and references in any scripts
- [x] Refactor EnvironmentVariables to not have a `dictionary` property, but to be subscriptable
- [x] Backlog meta
  - [x] Restructure backlog/ contents, update documentation accordingly
  - [x] Add reminder within new `v2-x/` dir
- [x] Refactor install.sh
  - [x] Recommend Swiftly
  - [x] Switch to `bash`
  - [x] Use Swift package manager to install smolver (simplifies script!)
  - [x] Simplify logic