from __future__ import annotations from dataclasses import dataclass, field from typing import Dict, List, Optional @dataclass class LocalProblem: id: str domain: str assets: List[str] objective: str constraints: Dict[str, object] = field(default_factory=dict) @dataclass class SharedVariables: forecasts: Dict[str, float] priors: Dict[str, float] = field(default_factory=dict) version: int = 0 encryption_schema: Optional[str] = None @dataclass class PlanDelta: delta: Dict[str, object] timestamp: float author: str contract_id: str signature: Optional[str] = None @dataclass class DualVariables: multipliers: Dict[str, float] = field(default_factory=dict) @dataclass class PrivacyBudget: signal: str budget: float expiry: Optional[str] = None @dataclass class AuditLog: entry: str signer: str timestamp: float contract_id: str version: Optional[str] = None @dataclass class GraphOfContractsRegistryEntry: adapter_id: str supported_domains: List[str] contract_version: str @dataclass class GraphOfContractsRegistry: entries: List[GraphOfContractsRegistryEntry] = field(default_factory=list)