Vyasa Extension Refactor Audit and Execution Plan

New Contract To ImplementURL copied

VyasaExtensionURL copied

Add this to vyasa/extensions.py or split into vyasa/extensions/contract.py after the first green refactor:

class VyasaExtension(Protocol):
    meta: ExtensionMeta

    def register(self, app: VyasaExtensionApp) -> None:
        ...

For developer friendliness, prefer a base class:

class VyasaExtensionBase:
    meta: ExtensionMeta

    def register(self, app: VyasaExtensionApp) -> None:
        raise NotImplementedError