from __future__ import annotations from dataclasses import dataclass from typing import Dict, Any @dataclass class LocalProblem: asset_id: str payload: Dict[str, Any] @dataclass class ContractDefinition: name: str version: str schema: Dict[str, Any] class ContractRegistry: """Lightweight, in-memory, versioned contract registry used by tests.""" def __init__(self) -> None: self._store: Dict[str, Dict[str, ContractDefinition]] = {} def add_contract(self, name: str, version: str, schema: Dict[str, Any]) -> None: self._store.setdefault(name, {})[version] = ContractDefinition(name, version, schema) def get_contract(self, name: str, version: str) -> ContractDefinition | None: return self._store.get(name, {}).get(version) def list_contracts(self) -> Dict[str, Dict[str, ContractDefinition]]: return self._store