"""Product profile convergence layer. ONE canonical product profile (`CanonicalProductRegulatoryProfile`) that the Go gap engine and the Python reasoning engine both project from — so "SPS mit Remote Access" means the same thing everywhere. gap.ProductProfile leads; the reasoning ProductProfile is an adapter/DTO. Types + mappers only — no regulation logic, no UI, no new questions. """ from __future__ import annotations from .canonical import ( CanonicalLifecyclePhase, CanonicalProductRegulatoryProfile, CanonicalProductType, ComponentKind, EconomicOperatorRole, EnvironmentalImpact, ProductComponent, ) from .from_company_profile import from_company_profile from .from_product_wizard import from_product_wizard from .to_gap import to_gap_profile from .to_reasoning import to_reasoning_profile __all__ = [ "CanonicalProductRegulatoryProfile", "CanonicalProductType", "EconomicOperatorRole", "CanonicalLifecyclePhase", "ComponentKind", "ProductComponent", "EnvironmentalImpact", "from_product_wizard", "from_company_profile", "to_gap_profile", "to_reasoning_profile", ]