Python CLI tool

Bad input hardening

Migrate to uv-based build and packaging

The Treachery of Development

Add end to end tests

Diagnose end to end test failure

Fix end to end test CI job

Optimize end to end tests

Migrate to modern linting tools

Abstract the provider interfaces

Implement support for the Vultr hosting platform

Allow separate DNS zone config per hosting provider

Fix Vultr end to end test failure