"""Connecting and describing the backend. Split out of the single 1854-line ``AutoCADBackend`` ABC in v1.5.0 (M7). ``AutoCADBackend`` composes every contract in this package, so importing ``backends.base.AutoCADBackend`` is unchanged for callers. """ from __future__ import annotations from abc import ABC, abstractmethod from typing import TYPE_CHECKING if TYPE_CHECKING: from backends.base import CapabilityMap class IdentityContract(ABC): @property @abstractmethod def name(self) -> str: ... @property @abstractmethod def is_connected(self) -> bool: ... @abstractmethod async def connect(self) -> None: ... @abstractmethod async def disconnect(self) -> None: ... @abstractmethod def capabilities(self) -> CapabilityMap: ...