Type annotations

They may not be very pretty, and there's still a lot of magic involved, but at least they can pass a typechecker...

Required some minor refactoring, and dead-code removal.

There are still more dicts in play than I'd really like. And the biggest untyped thing are the argparse Namespace objects that get passed almost everywhere.

Merge request reports

Loading