Apievsys_sdk
protocols
Protocol contracts for every extension point.
We use typing.Protocol (PEP 544) instead of ABCs so extensions don't have
to subclass anything from the library - any class that implements the methods
satisfies the protocol. This is what makes third-party algorithms / verifiers
/ metrics trivial to add.
A few protocols are runtime-checkable so the registry can give better error messages, but most are duck-typed.