Is your feature request related to a problem? Please describe.
Currently the code to form at protocol commands, interpret the response and process notifications is distributed throughout the code base. The class names VerbBuilders should be CommandBuilders.
The behaviour of the current code is tested indirectly (primarily as end to end tests with the virtual env).
It difficult to assess the code coverage.
Describe the solution you'd like
Create a new package called protocol, migrate and refactor all existing code and compare against the at protocol specification.
Create unit tests that give 100% coverage
Describe alternatives you've considered
No response
Additional context
No response