"""Camera calibration DTO."""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any


@dataclass(frozen=True)
class CameraCalibration:
    """Camera intrinsics + distortion + body-to-camera + provenance.

    Acquisition method is preserved so downstream estimators can tag estimates with
    the calibration provenance per D-CROSS-CAL-1.
    """

    camera_id: str
    intrinsics_3x3: Any
    distortion: Any
    body_to_camera_se3: Any
    acquisition_method: str
    metadata: dict[str, Any] = field(default_factory=dict)
