from __future__ import annotations from typing import Dict from .contracts import LocalProblem as CanonicalLocalProblem class LocalProblem: def __init__(self, asset_id: str, payload: Dict[str, object]): self.asset_id = asset_id self.payload = payload class CatOptBridge: @staticmethod def to_canonical(lp: LocalProblem) -> Dict[str, object]: return {"object_id": lp.asset_id, "payload": lp.payload} @staticmethod def from_canonical(data: Dict[str, object]) -> LocalProblem: asset_id = str(data.get("object_id", "unknown")) payload = dict(data.get("payload", {})) # Return canonical LocalProblem type defined in core.contracts (tests shim) return CanonicalLocalProblem(asset_id=asset_id, payload=payload)