from __future__ import annotations from dataclasses import dataclass, field, asdict from typing import Dict, List, Any @dataclass class LocalProblem: shard_id: str projected_attributes: List[str] predicates: List[str] costs: Dict[str, float] constraints: Dict[str, Any] = field(default_factory=dict) def to_dict(self) -> Dict[str, Any]: return asdict(self) @dataclass class SharedVariables: version: int payload: Dict[str, Any] = field(default_factory=dict) @dataclass class DualVariables: version: int payload: Dict[str, Any] = field(default_factory=dict) @dataclass class PlanDelta: delta_id: str timestamp: float changes: Dict[str, Any] = field(default_factory=dict) @dataclass class DataContract: schemas: Dict[str, Any] = field(default_factory=dict) encryption_rules: Dict[str, Any] = field(default_factory=dict) @dataclass class AuditLog: entries: List[str] = field(default_factory=list)