These are old notes about the previous implementation that may be superseded.
The old approach used a monolithic scanner with no dependency injection.