from __future__ import annotations from dataclasses import dataclass, field from typing import List, Dict, Optional @dataclass class SignalNode: asset: str venue: str signal_type: str timestamp: int # epoch seconds quality: float = 0.0 metadata: Dict[str, object] = field(default_factory=dict) @dataclass class Edge: from_id: str to_id: str relation: str # e.g., "causal", "temporal" timestamp: int metadata: Dict[str, object] = field(default_factory=dict) @dataclass class Scenario: id: str nodes: List[str] = field(default_factory=list) edges: List[str] = field(default_factory=list) description: str = "" version: int = 1 @dataclass class HedgePlan: id: str delta: Dict[str, object] # minimal representation of hedging actions version: int = 1 approvals: List[str] = field(default_factory=list) @dataclass class AuditLog: entry: str timestamp: int actor: Optional[str] = None @dataclass class PrivacyBudget: signal_id: str budget: float # DP budget allocated per signal policy: Dict[str, object] = field(default_factory=dict) @dataclass class RegistryEntry: adapter_name: str contract: Dict[str, object] conformance: bool = False