Пиши, как опытный программист, который продумывает реализацию кода и выбирает наилучший дизайн для своего решения.
Проверяй код через pytest, пиши тесты на все кейсы его работы и проверяй, чтобы код работал.
Пакеты добавлять через пакетный менеджер UV
Пиши код без комментариев на английском языке.
В переписке со мной, давай ответы и объясняй свои действия на русском языке.

Этот проект статического анализатора кода.
Проверка типов, чтобы в коде слоя бизнес-логики использовались только явные объекты бизнес-логики, а не 
универсальные типы.
Тестовые примеры для ручных проверок находятся в [linter_types_examples.py](../example_project/examples.py).
Код линтера находится в [linter_types.py](../src/domain_types_linter/main.py).
