"""The object-storage port (ADR-0013). `src/infrastructure/minio/storage.py` is the production adapter; tests use a hand-written fake (ADR-0016). Application code depends on this Protocol, not on the `minio` SDK. """ from typing import Protocol class ObjectStorage(Protocol): async def put_object(self, *, key: str, data: bytes, content_type: str) -> None: """Store `data` privately under `key`. Overwrites an existing object.""" ...