@photivra/engine 1.5.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +414 -6
- package/CITATION.cff +1 -1
- package/NODE_SUPPORT.md +64 -12
- package/README.md +301 -182
- package/SECURITY.md +37 -28
- package/THIRD_PARTY.md +148 -4
- package/dist/camera/equivalent-focal-length.d.ts +13 -14
- package/dist/camera/equivalent-focal-length.js +15 -13
- package/dist/camera/equivalent-focal-length.js.map +1 -1
- package/dist/camera/field-of-view.d.ts +30 -19
- package/dist/camera/field-of-view.js +67 -18
- package/dist/camera/field-of-view.js.map +1 -1
- package/dist/camera/lens-projection.d.ts +170 -0
- package/dist/camera/lens-projection.js +444 -0
- package/dist/camera/lens-projection.js.map +1 -0
- package/dist/camera/projected-object-size.d.ts +10 -11
- package/dist/camera/projected-object-size.js +12 -10
- package/dist/camera/projected-object-size.js.map +1 -1
- package/dist/capture/capture-export-metadata.d.ts +9 -10
- package/dist/capture/capture-export-metadata.js +8 -5
- package/dist/capture/capture-export-metadata.js.map +1 -1
- package/dist/capture/dng-import.d.ts +91 -0
- package/dist/capture/dng-import.js +343 -0
- package/dist/capture/dng-import.js.map +1 -0
- package/dist/capture/environment-raw-producer.d.ts +37 -17
- package/dist/capture/environment-raw-producer.js +43 -19
- package/dist/capture/environment-raw-producer.js.map +1 -1
- package/dist/capture/export-jpeg.d.ts +35 -4
- package/dist/capture/export-jpeg.js +133 -47
- package/dist/capture/export-jpeg.js.map +1 -1
- package/dist/capture/export-tiff.d.ts +48 -24
- package/dist/capture/export-tiff.js +91 -31
- package/dist/capture/export-tiff.js.map +1 -1
- package/dist/capture/focus-control.d.ts +42 -65
- package/dist/capture/focus-control.js +56 -75
- package/dist/capture/focus-control.js.map +1 -1
- package/dist/capture/host-yield-cadence.d.ts +25 -0
- package/dist/capture/host-yield-cadence.js +25 -0
- package/dist/capture/host-yield-cadence.js.map +1 -0
- package/dist/capture/linear-encoding.d.ts +14 -12
- package/dist/capture/linear-encoding.js +14 -13
- package/dist/capture/linear-encoding.js.map +1 -1
- package/dist/capture/lossless-jpeg.d.ts +27 -0
- package/dist/capture/lossless-jpeg.js +237 -0
- package/dist/capture/lossless-jpeg.js.map +1 -0
- package/dist/capture/native-environment-lean.d.ts +227 -0
- package/dist/capture/native-environment-lean.js +974 -0
- package/dist/capture/native-environment-lean.js.map +1 -0
- package/dist/capture/native-environment-optical-stage.d.ts +97 -0
- package/dist/capture/native-environment-optical-stage.js +340 -0
- package/dist/capture/native-environment-optical-stage.js.map +1 -0
- package/dist/capture/native-environment-raw.d.ts +140 -6
- package/dist/capture/native-environment-raw.js +435 -34
- package/dist/capture/native-environment-raw.js.map +1 -1
- package/dist/capture/native-raw-development.d.ts +116 -9
- package/dist/capture/native-raw-development.js +221 -62
- package/dist/capture/native-raw-development.js.map +1 -1
- package/dist/capture/native-raw-dng.d.ts +60 -0
- package/dist/capture/native-raw-dng.js +167 -0
- package/dist/capture/native-raw-dng.js.map +1 -0
- package/dist/capture/native-raw.d.ts +65 -12
- package/dist/capture/native-raw.js +81 -19
- package/dist/capture/native-raw.js.map +1 -1
- package/dist/capture/packed-sensor-raw.d.ts +160 -0
- package/dist/capture/packed-sensor-raw.js +221 -0
- package/dist/capture/packed-sensor-raw.js.map +1 -0
- package/dist/capture/photographic-export.d.ts +58 -35
- package/dist/capture/photographic-export.js +177 -70
- package/dist/capture/photographic-export.js.map +1 -1
- package/dist/capture/raw-development-kernel.d.ts +52 -0
- package/dist/capture/raw-development-kernel.js +88 -0
- package/dist/capture/raw-development-kernel.js.map +1 -0
- package/dist/capture/raw-frame-limits.d.ts +7 -7
- package/dist/capture/raw-frame-limits.js +7 -6
- package/dist/capture/raw-frame-limits.js.map +1 -1
- package/dist/capture/raw-frame-reconstruction.d.ts +8 -9
- package/dist/capture/raw-frame-reconstruction.js +9 -8
- package/dist/capture/raw-frame-reconstruction.js.map +1 -1
- package/dist/capture/raw-white-level.d.ts +55 -0
- package/dist/capture/raw-white-level.js +165 -0
- package/dist/capture/raw-white-level.js.map +1 -0
- package/dist/capture/release-sequence.d.ts +5 -7
- package/dist/capture/release-sequence.js +15 -13
- package/dist/capture/release-sequence.js.map +1 -1
- package/dist/capture/sensor-raw-frame.d.ts +5 -6
- package/dist/capture/sensor-raw-frame.js +26 -9
- package/dist/capture/sensor-raw-frame.js.map +1 -1
- package/dist/capture/sensor-raw-producer.d.ts +21 -13
- package/dist/capture/sensor-raw-producer.js +86 -25
- package/dist/capture/sensor-raw-producer.js.map +1 -1
- package/dist/capture/simulated-capture.d.ts +15 -16
- package/dist/capture/simulated-capture.js +22 -12
- package/dist/capture/simulated-capture.js.map +1 -1
- package/dist/color/camera-color-matrix.d.ts +69 -0
- package/dist/color/camera-color-matrix.js +132 -0
- package/dist/color/camera-color-matrix.js.map +1 -0
- package/dist/color/capture-color.d.ts +17 -10
- package/dist/color/capture-color.js +50 -17
- package/dist/color/capture-color.js.map +1 -1
- package/dist/color/chromatic-adaptation.d.ts +63 -0
- package/dist/color/chromatic-adaptation.js +91 -0
- package/dist/color/chromatic-adaptation.js.map +1 -0
- package/dist/color/color-difference.d.ts +104 -0
- package/dist/color/color-difference.js +205 -0
- package/dist/color/color-difference.js.map +1 -0
- package/dist/color/color-matching-functions.d.ts +168 -0
- package/dist/color/color-matching-functions.js +309 -0
- package/dist/color/color-matching-functions.js.map +1 -0
- package/dist/color/colorimetry-math.d.ts +52 -0
- package/dist/color/colorimetry-math.js +144 -0
- package/dist/color/colorimetry-math.js.map +1 -0
- package/dist/color/gamut-mapping.d.ts +54 -0
- package/dist/color/gamut-mapping.js +107 -0
- package/dist/color/gamut-mapping.js.map +1 -0
- package/dist/color/illuminants.d.ts +182 -0
- package/dist/color/illuminants.js +434 -0
- package/dist/color/illuminants.js.map +1 -0
- package/dist/color/rgb-color-spaces.d.ts +79 -0
- package/dist/color/rgb-color-spaces.js +115 -0
- package/dist/color/rgb-color-spaces.js.map +1 -0
- package/dist/color/sensor-color-development.d.ts +33 -11
- package/dist/color/sensor-color-development.js +104 -30
- package/dist/color/sensor-color-development.js.map +1 -1
- package/dist/color/srgb-icc.d.ts +9 -2
- package/dist/color/srgb-icc.js +16 -5
- package/dist/color/srgb-icc.js.map +1 -1
- package/dist/color/srgb-transfer.d.ts +1 -2
- package/dist/color/srgb-transfer.js +1 -1
- package/dist/color/srgb-transfer.js.map +1 -1
- package/dist/color/white-balance.d.ts +68 -19
- package/dist/color/white-balance.js +168 -35
- package/dist/color/white-balance.js.map +1 -1
- package/dist/composition/image-formation-plan.d.ts +152 -128
- package/dist/composition/image-formation-plan.js +292 -138
- package/dist/composition/image-formation-plan.js.map +1 -1
- package/dist/composition/plan-consumer.d.ts +6 -7
- package/dist/composition/plan-consumer.js +14 -11
- package/dist/composition/plan-consumer.js.map +1 -1
- package/dist/core/calculation-result.d.ts +21 -14
- package/dist/core/calculation-result.js +209 -11
- package/dist/core/calculation-result.js.map +1 -1
- package/dist/core/canonical-json.d.ts +13 -8
- package/dist/core/canonical-json.js +34 -15
- package/dist/core/canonical-json.js.map +1 -1
- package/dist/core/configuration-error.d.ts +5 -4
- package/dist/core/configuration-error.js +5 -3
- package/dist/core/configuration-error.js.map +1 -1
- package/dist/core/evidence-provenance.d.ts +12 -12
- package/dist/core/evidence-provenance.js +10 -9
- package/dist/core/evidence-provenance.js.map +1 -1
- package/dist/core/image-formation.d.ts +11 -10
- package/dist/core/image-formation.js +11 -9
- package/dist/core/image-formation.js.map +1 -1
- package/dist/core/owned-data.d.ts +9 -17
- package/dist/core/owned-data.js +9 -16
- package/dist/core/owned-data.js.map +1 -1
- package/dist/core/portable-math.d.ts +15 -0
- package/dist/core/portable-math.js +56 -0
- package/dist/core/portable-math.js.map +1 -0
- package/dist/core/record-validation.d.ts +48 -9
- package/dist/core/record-validation.js +93 -19
- package/dist/core/record-validation.js.map +1 -1
- package/dist/core/scientific-assurance.d.ts +16 -14
- package/dist/core/scientific-assurance.js +22 -18
- package/dist/core/scientific-assurance.js.map +1 -1
- package/dist/core/spectral-composition.d.ts +13 -14
- package/dist/core/spectral-composition.js +30 -27
- package/dist/core/spectral-composition.js.map +1 -1
- package/dist/core/spectral.d.ts +5 -6
- package/dist/core/spectral.js +9 -7
- package/dist/core/spectral.js.map +1 -1
- package/dist/core/validation.d.ts +3 -6
- package/dist/core/validation.js +3 -5
- package/dist/core/validation.js.map +1 -1
- package/dist/core/version.d.ts +6 -6
- package/dist/core/version.js +6 -5
- package/dist/core/version.js.map +1 -1
- package/dist/equipment/exposure-capabilities.d.ts +10 -10
- package/dist/equipment/exposure-capabilities.js +40 -30
- package/dist/equipment/exposure-capabilities.js.map +1 -1
- package/dist/equipment/generic-tier-assets.d.ts +13 -6
- package/dist/equipment/generic-tier-assets.js +34 -15
- package/dist/equipment/generic-tier-assets.js.map +1 -1
- package/dist/equipment/generic-tier-presets.d.ts +5 -6
- package/dist/equipment/generic-tier-presets.js +15 -13
- package/dist/equipment/generic-tier-presets.js.map +1 -1
- package/dist/equipment/iso-capabilities.d.ts +21 -22
- package/dist/equipment/iso-capabilities.js +49 -44
- package/dist/equipment/iso-capabilities.js.map +1 -1
- package/dist/equipment/metering-capabilities.d.ts +5 -6
- package/dist/equipment/metering-capabilities.js +22 -19
- package/dist/equipment/metering-capabilities.js.map +1 -1
- package/dist/equipment/release-capabilities.d.ts +3 -4
- package/dist/equipment/release-capabilities.js +18 -14
- package/dist/equipment/release-capabilities.js.map +1 -1
- package/dist/exposure/exposure-duration-control.d.ts +19 -17
- package/dist/exposure/exposure-duration-control.js +27 -23
- package/dist/exposure/exposure-duration-control.js.map +1 -1
- package/dist/exposure/exposure-mode-resolver.d.ts +42 -39
- package/dist/exposure/exposure-mode-resolver.js +127 -82
- package/dist/exposure/exposure-mode-resolver.js.map +1 -1
- package/dist/exposure/exposure.d.ts +17 -16
- package/dist/exposure/exposure.js +22 -15
- package/dist/exposure/exposure.js.map +1 -1
- package/dist/exposure/flash-ttl.d.ts +135 -0
- package/dist/exposure/flash-ttl.js +193 -0
- package/dist/exposure/flash-ttl.js.map +1 -0
- package/dist/exposure/flash.d.ts +144 -36
- package/dist/exposure/flash.js +259 -59
- package/dist/exposure/flash.js.map +1 -1
- package/dist/exposure/metering-scene-radiance.d.ts +10 -10
- package/dist/exposure/metering-scene-radiance.js +42 -23
- package/dist/exposure/metering-scene-radiance.js.map +1 -1
- package/dist/exposure/metering-target.d.ts +8 -8
- package/dist/exposure/metering-target.js +30 -20
- package/dist/exposure/metering-target.js.map +1 -1
- package/dist/exposure/metering-temporal.d.ts +16 -15
- package/dist/exposure/metering-temporal.js +41 -19
- package/dist/exposure/metering-temporal.js.map +1 -1
- package/dist/exposure/metering.d.ts +64 -17
- package/dist/exposure/metering.js +159 -30
- package/dist/exposure/metering.js.map +1 -1
- package/dist/exposure/program-line.d.ts +5 -5
- package/dist/exposure/program-line.js +20 -13
- package/dist/exposure/program-line.js.map +1 -1
- package/dist/facade/camera-preset.d.ts +8 -0
- package/dist/facade/camera-preset.js +102 -0
- package/dist/facade/camera-preset.js.map +1 -0
- package/dist/facade/chart-radiance-batch.d.ts +57 -0
- package/dist/facade/chart-radiance-batch.js +121 -0
- package/dist/facade/chart-radiance-batch.js.map +1 -0
- package/dist/facade/chart-scenes.d.ts +177 -0
- package/dist/facade/chart-scenes.js +232 -0
- package/dist/facade/chart-scenes.js.map +1 -0
- package/dist/facade/diffraction-provider.d.ts +30 -0
- package/dist/facade/diffraction-provider.js +127 -0
- package/dist/facade/diffraction-provider.js.map +1 -0
- package/dist/facade/host-yield.d.ts +7 -0
- package/dist/facade/host-yield.js +19 -0
- package/dist/facade/host-yield.js.map +1 -0
- package/dist/facade/scene-radiance.d.ts +117 -0
- package/dist/facade/scene-radiance.js +205 -0
- package/dist/facade/scene-radiance.js.map +1 -0
- package/dist/facade/simulate-capture.d.ts +363 -0
- package/dist/facade/simulate-capture.js +1281 -0
- package/dist/facade/simulate-capture.js.map +1 -0
- package/dist/gpu/chart-radiance-gpu.d.ts +17 -0
- package/dist/gpu/chart-radiance-gpu.js +176 -0
- package/dist/gpu/chart-radiance-gpu.js.map +1 -0
- package/dist/gpu/image-kernel-accelerator.d.ts +132 -0
- package/dist/gpu/image-kernel-accelerator.js +720 -0
- package/dist/gpu/image-kernel-accelerator.js.map +1 -0
- package/dist/gpu/image-kernel-execution.d.ts +92 -0
- package/dist/gpu/image-kernel-execution.js +84 -0
- package/dist/gpu/image-kernel-execution.js.map +1 -0
- package/dist/gpu/sensor-stage-gpu.d.ts +44 -0
- package/dist/gpu/sensor-stage-gpu.js +317 -0
- package/dist/gpu/sensor-stage-gpu.js.map +1 -0
- package/dist/gpu/temporal-sum-gpu.d.ts +23 -0
- package/dist/gpu/temporal-sum-gpu.js +150 -0
- package/dist/gpu/temporal-sum-gpu.js.map +1 -0
- package/dist/gpu/webgpu-runtime.d.ts +63 -0
- package/dist/gpu/webgpu-runtime.js +215 -0
- package/dist/gpu/webgpu-runtime.js.map +1 -0
- package/dist/gpu/wgsl-chart-kernel.d.ts +30 -0
- package/dist/gpu/wgsl-chart-kernel.js +165 -0
- package/dist/gpu/wgsl-chart-kernel.js.map +1 -0
- package/dist/gpu/wgsl-kernels.d.ts +53 -0
- package/dist/gpu/wgsl-kernels.js +365 -0
- package/dist/gpu/wgsl-kernels.js.map +1 -0
- package/dist/gpu/wgsl-sensor-kernel.d.ts +64 -0
- package/dist/gpu/wgsl-sensor-kernel.js +409 -0
- package/dist/gpu/wgsl-sensor-kernel.js.map +1 -0
- package/dist/index.d.ts +91 -25
- package/dist/index.js +60 -15
- package/dist/index.js.map +1 -1
- package/dist/motion/camera-rotation.d.ts +92 -40
- package/dist/motion/camera-rotation.js +84 -47
- package/dist/motion/camera-rotation.js.map +1 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts +37 -34
- package/dist/motion/capture-rotation-inverse-mapping.js +32 -24
- package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts +39 -35
- package/dist/motion/capture-rotation-temporal-quadrature.js +37 -28
- package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
- package/dist/motion/capture-rotation-trajectory.d.ts +32 -28
- package/dist/motion/capture-rotation-trajectory.js +36 -26
- package/dist/motion/capture-rotation-trajectory.js.map +1 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +23 -21
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js +33 -14
- package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -1
- package/dist/motion/extended-object-projection.d.ts +19 -16
- package/dist/motion/extended-object-projection.js +38 -18
- package/dist/motion/extended-object-projection.js.map +1 -1
- package/dist/motion/projected-motion.d.ts +18 -17
- package/dist/motion/projected-motion.js +25 -17
- package/dist/motion/projected-motion.js.map +1 -1
- package/dist/motion/temporal-exposure-sum.d.ts +55 -0
- package/dist/motion/temporal-exposure-sum.js +141 -0
- package/dist/motion/temporal-exposure-sum.js.map +1 -0
- package/dist/motion/video-sequence.d.ts +111 -0
- package/dist/motion/video-sequence.js +179 -0
- package/dist/motion/video-sequence.js.map +1 -0
- package/dist/optics/aperture.d.ts +14 -15
- package/dist/optics/aperture.js +13 -11
- package/dist/optics/aperture.js.map +1 -1
- package/dist/optics/atmospheric-haze.d.ts +83 -0
- package/dist/optics/atmospheric-haze.js +113 -0
- package/dist/optics/atmospheric-haze.js.map +1 -0
- package/dist/optics/brown-conrady-distortion.d.ts +116 -0
- package/dist/optics/brown-conrady-distortion.js +291 -0
- package/dist/optics/brown-conrady-distortion.js.map +1 -0
- package/dist/optics/circle-of-confusion.d.ts +10 -10
- package/dist/optics/circle-of-confusion.js +15 -11
- package/dist/optics/circle-of-confusion.js.map +1 -1
- package/dist/optics/complex-pupil-psf.d.ts +64 -33
- package/dist/optics/complex-pupil-psf.js +190 -98
- package/dist/optics/complex-pupil-psf.js.map +1 -1
- package/dist/optics/depth-of-field.d.ts +25 -15
- package/dist/optics/depth-of-field.js +67 -27
- package/dist/optics/depth-of-field.js.map +1 -1
- package/dist/optics/diffraction-psf-profile.d.ts +118 -0
- package/dist/optics/diffraction-psf-profile.js +252 -0
- package/dist/optics/diffraction-psf-profile.js.map +1 -0
- package/dist/optics/diffraction.d.ts +14 -13
- package/dist/optics/diffraction.js +14 -10
- package/dist/optics/diffraction.js.map +1 -1
- package/dist/optics/focus-breathing.d.ts +88 -27
- package/dist/optics/focus-breathing.js +114 -23
- package/dist/optics/focus-breathing.js.map +1 -1
- package/dist/optics/focus-state.d.ts +18 -18
- package/dist/optics/focus-state.js +21 -15
- package/dist/optics/focus-state.js.map +1 -1
- package/dist/optics/front-of-lens-filter.d.ts +45 -14
- package/dist/optics/front-of-lens-filter.js +259 -88
- package/dist/optics/front-of-lens-filter.js.map +1 -1
- package/dist/optics/illumination-vignetting.d.ts +16 -17
- package/dist/optics/illumination-vignetting.js +40 -17
- package/dist/optics/illumination-vignetting.js.map +1 -1
- package/dist/optics/irradiance-convolution.d.ts +59 -0
- package/dist/optics/irradiance-convolution.js +138 -0
- package/dist/optics/irradiance-convolution.js.map +1 -0
- package/dist/optics/lateral-chromatic-aberration.d.ts +33 -30
- package/dist/optics/lateral-chromatic-aberration.js +33 -23
- package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
- package/dist/optics/lens-psf-kernels.d.ts +89 -0
- package/dist/optics/lens-psf-kernels.js +175 -0
- package/dist/optics/lens-psf-kernels.js.map +1 -0
- package/dist/optics/lens-psf-profile.d.ts +78 -46
- package/dist/optics/lens-psf-profile.js +335 -124
- package/dist/optics/lens-psf-profile.js.map +1 -1
- package/dist/optics/longitudinal-chromatic-aberration.d.ts +102 -0
- package/dist/optics/longitudinal-chromatic-aberration.js +210 -0
- package/dist/optics/longitudinal-chromatic-aberration.js.map +1 -0
- package/dist/optics/polygon-diffraction.d.ts +80 -23
- package/dist/optics/polygon-diffraction.js +130 -25
- package/dist/optics/polygon-diffraction.js.map +1 -1
- package/dist/optics/profile-contract.d.ts +5 -6
- package/dist/optics/profile-contract.js +14 -11
- package/dist/optics/profile-contract.js.map +1 -1
- package/dist/optics/psf-foundation.d.ts +23 -23
- package/dist/optics/psf-foundation.js +24 -21
- package/dist/optics/psf-foundation.js.map +1 -1
- package/dist/optics/pupil-vignetting.d.ts +118 -0
- package/dist/optics/pupil-vignetting.js +264 -0
- package/dist/optics/pupil-vignetting.js.map +1 -0
- package/dist/optics/radial-distortion.d.ts +34 -33
- package/dist/optics/radial-distortion.js +37 -30
- package/dist/optics/radial-distortion.js.map +1 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts +47 -33
- package/dist/optics/scene-to-sensor-irradiance.js +73 -45
- package/dist/optics/scene-to-sensor-irradiance.js.map +1 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts +23 -18
- package/dist/optics/scene-to-sensor-quadrature.js +16 -11
- package/dist/optics/scene-to-sensor-quadrature.js.map +1 -1
- package/dist/optics/sensor-aperture-rays.d.ts +20 -4
- package/dist/optics/sensor-aperture-rays.js +32 -14
- package/dist/optics/sensor-aperture-rays.js.map +1 -1
- package/dist/optics/sensor-environment-query.d.ts +81 -16
- package/dist/optics/sensor-environment-query.js +145 -12
- package/dist/optics/sensor-environment-query.js.map +1 -1
- package/dist/optics/sensor-psf-quadrature.d.ts +12 -10
- package/dist/optics/sensor-psf-quadrature.js +18 -11
- package/dist/optics/sensor-psf-quadrature.js.map +1 -1
- package/dist/optics/sensor-psf-support.d.ts +8 -6
- package/dist/optics/sensor-psf-support.js +8 -5
- package/dist/optics/sensor-psf-support.js.map +1 -1
- package/dist/optics/stray-light.d.ts +22 -19
- package/dist/optics/stray-light.js +18 -12
- package/dist/optics/stray-light.js.map +1 -1
- package/dist/optics/thin-lens.d.ts +10 -9
- package/dist/optics/thin-lens.js +12 -8
- package/dist/optics/thin-lens.js.map +1 -1
- package/dist/optics/zernike-wavefront.d.ts +154 -0
- package/dist/optics/zernike-wavefront.js +352 -0
- package/dist/optics/zernike-wavefront.js.map +1 -0
- package/dist/output/capture-corrected-sdr.d.ts +16 -8
- package/dist/output/capture-corrected-sdr.js +16 -8
- package/dist/output/capture-corrected-sdr.js.map +1 -1
- package/dist/output/capture-geometry.d.ts +34 -36
- package/dist/output/capture-geometry.js +52 -32
- package/dist/output/capture-geometry.js.map +1 -1
- package/dist/output/capture-sdr.d.ts +7 -6
- package/dist/output/capture-sdr.js +11 -8
- package/dist/output/capture-sdr.js.map +1 -1
- package/dist/output/crop.d.ts +22 -6
- package/dist/output/crop.js +40 -6
- package/dist/output/crop.js.map +1 -1
- package/dist/output/geometric-transforms.d.ts +60 -23
- package/dist/output/geometric-transforms.js +111 -24
- package/dist/output/geometric-transforms.js.map +1 -1
- package/dist/output/lens-corrections.d.ts +27 -19
- package/dist/output/lens-corrections.js +29 -13
- package/dist/output/lens-corrections.js.map +1 -1
- package/dist/output/native-capture-sdr.d.ts +71 -16
- package/dist/output/native-capture-sdr.js +190 -33
- package/dist/output/native-capture-sdr.js.map +1 -1
- package/dist/output/png-encoder.d.ts +65 -0
- package/dist/output/png-encoder.js +461 -0
- package/dist/output/png-encoder.js.map +1 -0
- package/dist/output/print-contrast-reference.d.ts +10 -9
- package/dist/output/print-contrast-reference.js +10 -8
- package/dist/output/print-contrast-reference.js.map +1 -1
- package/dist/output/print-detail.d.ts +18 -17
- package/dist/output/print-detail.js +12 -10
- package/dist/output/print-detail.js.map +1 -1
- package/dist/output/print-jpeg.d.ts +26 -5
- package/dist/output/print-jpeg.js +117 -50
- package/dist/output/print-jpeg.js.map +1 -1
- package/dist/output/print-plan.d.ts +19 -19
- package/dist/output/print-plan.js +11 -10
- package/dist/output/print-plan.js.map +1 -1
- package/dist/output/print-region-statistics.d.ts +14 -15
- package/dist/output/print-region-statistics.js +11 -11
- package/dist/output/print-region-statistics.js.map +1 -1
- package/dist/output/sdr-rendering.d.ts +48 -10
- package/dist/output/sdr-rendering.js +114 -25
- package/dist/output/sdr-rendering.js.map +1 -1
- package/dist/output/subject-framing-crop.d.ts +6 -10
- package/dist/output/subject-framing-crop.js +23 -13
- package/dist/output/subject-framing-crop.js.map +1 -1
- package/dist/processing/demosaic.d.ts +90 -0
- package/dist/processing/demosaic.js +275 -0
- package/dist/processing/demosaic.js.map +1 -0
- package/dist/processing/denoise.d.ts +68 -0
- package/dist/processing/denoise.js +214 -0
- package/dist/processing/denoise.js.map +1 -0
- package/dist/processing/focus-stacking.d.ts +17 -0
- package/dist/processing/focus-stacking.js +80 -0
- package/dist/processing/focus-stacking.js.map +1 -0
- package/dist/processing/hdr.d.ts +54 -0
- package/dist/processing/hdr.js +172 -0
- package/dist/processing/hdr.js.map +1 -0
- package/dist/processing/image-ops.d.ts +66 -0
- package/dist/processing/image-ops.js +192 -0
- package/dist/processing/image-ops.js.map +1 -0
- package/dist/processing/panorama.d.ts +51 -0
- package/dist/processing/panorama.js +305 -0
- package/dist/processing/panorama.js.map +1 -0
- package/dist/processing/processing-task.d.ts +85 -0
- package/dist/processing/processing-task.js +164 -0
- package/dist/processing/processing-task.js.map +1 -0
- package/dist/processing/tone-mapping.d.ts +69 -0
- package/dist/processing/tone-mapping.js +310 -0
- package/dist/processing/tone-mapping.js.map +1 -0
- package/dist/schema/camera.d.ts +5 -4
- package/dist/schema/illumination-spectral.d.ts +13 -19
- package/dist/schema/illumination-spectral.js +23 -19
- package/dist/schema/illumination-spectral.js.map +1 -1
- package/dist/schema/illumination-temporal.d.ts +12 -15
- package/dist/schema/illumination-temporal.js +43 -28
- package/dist/schema/illumination-temporal.js.map +1 -1
- package/dist/schema/illumination.d.ts +5 -4
- package/dist/schema/illumination.js +55 -20
- package/dist/schema/illumination.js.map +1 -1
- package/dist/schema/scene-radiance-temporal.d.ts +9 -11
- package/dist/schema/scene-radiance-temporal.js +26 -23
- package/dist/schema/scene-radiance-temporal.js.map +1 -1
- package/dist/schema/scene-radiance.d.ts +17 -17
- package/dist/schema/scene-radiance.js +56 -34
- package/dist/schema/scene-radiance.js.map +1 -1
- package/dist/schema/scene.d.ts +14 -13
- package/dist/schema/validation.d.ts +0 -1
- package/dist/schema/validation.js +17 -15
- package/dist/schema/validation.js.map +1 -1
- package/dist/sensor/accumulated-charge.d.ts +45 -64
- package/dist/sensor/accumulated-charge.js +41 -47
- package/dist/sensor/accumulated-charge.js.map +1 -1
- package/dist/sensor/architecture.d.ts +22 -25
- package/dist/sensor/architecture.js +17 -16
- package/dist/sensor/architecture.js.map +1 -1
- package/dist/sensor/camera-saturation-capacity.d.ts +21 -28
- package/dist/sensor/camera-saturation-capacity.js +36 -34
- package/dist/sensor/camera-saturation-capacity.js.map +1 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts +46 -51
- package/dist/sensor/capture-color-sampling-binding.js +39 -41
- package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
- package/dist/sensor/capture-mode-timing.d.ts +8 -9
- package/dist/sensor/capture-mode-timing.js +24 -21
- package/dist/sensor/capture-mode-timing.js.map +1 -1
- package/dist/sensor/capture-mode.d.ts +28 -30
- package/dist/sensor/capture-mode.js +33 -31
- package/dist/sensor/capture-mode.js.map +1 -1
- package/dist/sensor/color-sampling.d.ts +30 -33
- package/dist/sensor/color-sampling.js +32 -37
- package/dist/sensor/color-sampling.js.map +1 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts +19 -23
- package/dist/sensor/constant-rate-temporal-integration.js +28 -26
- package/dist/sensor/constant-rate-temporal-integration.js.map +1 -1
- package/dist/sensor/dark-current.d.ts +53 -49
- package/dist/sensor/dark-current.js +87 -46
- package/dist/sensor/dark-current.js.map +1 -1
- package/dist/sensor/environment-photo-signal.d.ts +71 -30
- package/dist/sensor/environment-photo-signal.js +127 -46
- package/dist/sensor/environment-photo-signal.js.map +1 -1
- package/dist/sensor/eqe-electron-rate.d.ts +14 -13
- package/dist/sensor/eqe-electron-rate.js +34 -14
- package/dist/sensor/eqe-electron-rate.js.map +1 -1
- package/dist/sensor/eqe-local-exposure.d.ts +24 -24
- package/dist/sensor/eqe-local-exposure.js +15 -11
- package/dist/sensor/eqe-local-exposure.js.map +1 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts +11 -11
- package/dist/sensor/eqe-temporal-exposure.js +15 -10
- package/dist/sensor/eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/exposure-window.d.ts +48 -34
- package/dist/sensor/exposure-window.js +77 -36
- package/dist/sensor/exposure-window.js.map +1 -1
- package/dist/sensor/fixed-pattern-noise.d.ts +108 -0
- package/dist/sensor/fixed-pattern-noise.js +166 -0
- package/dist/sensor/fixed-pattern-noise.js.map +1 -0
- package/dist/sensor/iso-gain.d.ts +44 -0
- package/dist/sensor/iso-gain.js +119 -0
- package/dist/sensor/iso-gain.js.map +1 -0
- package/dist/sensor/iso-signal-chain.d.ts +25 -48
- package/dist/sensor/iso-signal-chain.js +52 -66
- package/dist/sensor/iso-signal-chain.js.map +1 -1
- package/dist/sensor/local-exposure-binding.d.ts +21 -21
- package/dist/sensor/local-exposure-binding.js +22 -18
- package/dist/sensor/local-exposure-binding.js.map +1 -1
- package/dist/sensor/optical-stack.d.ts +36 -40
- package/dist/sensor/optical-stack.js +34 -37
- package/dist/sensor/optical-stack.js.map +1 -1
- package/dist/sensor/photon-energy.d.ts +22 -28
- package/dist/sensor/photon-energy.js +42 -34
- package/dist/sensor/photon-energy.js.map +1 -1
- package/dist/sensor/physical-charge-capacity.d.ts +20 -30
- package/dist/sensor/physical-charge-capacity.js +35 -36
- package/dist/sensor/physical-charge-capacity.js.map +1 -1
- package/dist/sensor/pixel-pitch.d.ts +2 -3
- package/dist/sensor/pixel-pitch.js +4 -2
- package/dist/sensor/pixel-pitch.js.map +1 -1
- package/dist/sensor/radiometry-readiness.d.ts +13 -15
- package/dist/sensor/radiometry-readiness.js +20 -17
- package/dist/sensor/radiometry-readiness.js.map +1 -1
- package/dist/sensor/raw-readout.d.ts +173 -83
- package/dist/sensor/raw-readout.js +425 -160
- package/dist/sensor/raw-readout.js.map +1 -1
- package/dist/sensor/raw-reconstruction.d.ts +112 -44
- package/dist/sensor/raw-reconstruction.js +200 -47
- package/dist/sensor/raw-reconstruction.js.map +1 -1
- package/dist/sensor/readout-exposure-linkage.d.ts +103 -34
- package/dist/sensor/readout-exposure-linkage.js +125 -27
- package/dist/sensor/readout-exposure-linkage.js.map +1 -1
- package/dist/sensor/readout-timing.d.ts +43 -44
- package/dist/sensor/readout-timing.js +38 -30
- package/dist/sensor/readout-timing.js.map +1 -1
- package/dist/sensor/response-application-compatibility.d.ts +21 -28
- package/dist/sensor/response-application-compatibility.js +35 -34
- package/dist/sensor/response-application-compatibility.js.map +1 -1
- package/dist/sensor/response-operating-range.d.ts +26 -35
- package/dist/sensor/response-operating-range.js +40 -39
- package/dist/sensor/response-operating-range.js.map +1 -1
- package/dist/sensor/responsivity-photocurrent.d.ts +21 -29
- package/dist/sensor/responsivity-photocurrent.js +57 -40
- package/dist/sensor/responsivity-photocurrent.js.map +1 -1
- package/dist/sensor/sampling-aperture.d.ts +21 -25
- package/dist/sensor/sampling-aperture.js +29 -28
- package/dist/sensor/sampling-aperture.js.map +1 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts +14 -12
- package/dist/sensor/scene-eqe-temporal-exposure.js +13 -8
- package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -1
- package/dist/sensor/sensor-geometry.d.ts +28 -32
- package/dist/sensor/sensor-geometry.js +35 -20
- package/dist/sensor/sensor-geometry.js.map +1 -1
- package/dist/sensor/signal-noise.d.ts +14 -16
- package/dist/sensor/signal-noise.js +15 -13
- package/dist/sensor/signal-noise.js.map +1 -1
- package/dist/sensor/spatial-sample-reduction.d.ts +45 -60
- package/dist/sensor/spatial-sample-reduction.js +39 -48
- package/dist/sensor/spatial-sample-reduction.js.map +1 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts +46 -54
- package/dist/sensor/spatial-sampling-quadrature.js +31 -36
- package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts +32 -42
- package/dist/sensor/spatio-spectral-reduction.js +24 -29
- package/dist/sensor/spatio-spectral-reduction.js.map +1 -1
- package/dist/sensor/spectral-coverage.d.ts +6 -9
- package/dist/sensor/spectral-coverage.js +9 -6
- package/dist/sensor/spectral-coverage.js.map +1 -1
- package/dist/sensor/spectral-quadrature.d.ts +46 -60
- package/dist/sensor/spectral-quadrature.js +38 -48
- package/dist/sensor/spectral-quadrature.js.map +1 -1
- package/dist/sensor/spectral-response.d.ts +53 -41
- package/dist/sensor/spectral-response.js +80 -47
- package/dist/sensor/spectral-response.js.map +1 -1
- package/dist/sensor/stochastic-seed.d.ts +50 -0
- package/dist/sensor/stochastic-seed.js +123 -0
- package/dist/sensor/stochastic-seed.js.map +1 -0
- package/dist/sensor/temporal-eqe-sum.d.ts +2 -4
- package/dist/sensor/temporal-eqe-sum.js +5 -6
- package/dist/sensor/temporal-eqe-sum.js.map +1 -1
- package/dist/sensor/temporal-photo-signal.d.ts +5 -6
- package/dist/sensor/temporal-photo-signal.js +11 -10
- package/dist/sensor/temporal-photo-signal.js.map +1 -1
- package/dist/sensor/temporal-sample-binding.d.ts +1 -2
- package/dist/sensor/temporal-sample-binding.js +3 -3
- package/dist/sensor/temporal-sample-binding.js.map +1 -1
- package/dist/simulation/poc-simulation.d.ts +16 -16
- package/dist/simulation/poc-simulation.js +20 -15
- package/dist/simulation/poc-simulation.js.map +1 -1
- package/dist/stabilization/camera-shake.d.ts +42 -18
- package/dist/stabilization/camera-shake.js +43 -20
- package/dist/stabilization/camera-shake.js.map +1 -1
- package/dist/stabilization/system.d.ts +44 -41
- package/dist/stabilization/system.js +196 -108
- package/dist/stabilization/system.js.map +1 -1
- package/docs/AGENT_GUIDE.md +183 -0
- package/docs/API_REFERENCE.md +777 -2
- package/docs/QUICK_START.md +663 -0
- package/docs/USAGE.md +1719 -714
- package/docs/api/camera-equivalent-focal-length.md +6 -7
- package/docs/api/camera-field-of-view.md +16 -8
- package/docs/api/camera-lens-projection.md +246 -0
- package/docs/api/camera-projected-object-size.md +6 -5
- package/docs/api/capture-capture-export-metadata.md +10 -10
- package/docs/api/capture-dng-import.md +134 -0
- package/docs/api/capture-environment-raw-producer.md +17 -11
- package/docs/api/capture-export-jpeg.md +16 -0
- package/docs/api/capture-focus-control.md +25 -47
- package/docs/api/capture-linear-encoding.md +21 -12
- package/docs/api/capture-lossless-jpeg.md +49 -0
- package/docs/api/capture-native-environment-optical-stage.md +75 -0
- package/docs/api/capture-native-environment-raw.md +161 -4
- package/docs/api/capture-native-raw-development.md +69 -8
- package/docs/api/capture-native-raw-dng.md +84 -0
- package/docs/api/capture-native-raw.md +21 -10
- package/docs/api/capture-packed-sensor-raw.md +156 -0
- package/docs/api/capture-photographic-export.md +69 -31
- package/docs/api/capture-raw-frame-reconstruction.md +8 -8
- package/docs/api/capture-raw-white-level.md +37 -0
- package/docs/api/capture-release-sequence.md +6 -7
- package/docs/api/capture-sensor-raw-frame.md +6 -6
- package/docs/api/capture-sensor-raw-producer.md +17 -11
- package/docs/api/capture-simulated-capture.md +15 -15
- package/docs/api/color-camera-color-matrix.md +103 -0
- package/docs/api/color-capture-color.md +22 -11
- package/docs/api/color-chromatic-adaptation.md +82 -0
- package/docs/api/color-color-difference.md +134 -0
- package/docs/api/color-color-matching-functions.md +259 -0
- package/docs/api/color-colorimetry-math.md +54 -0
- package/docs/api/color-gamut-mapping.md +72 -0
- package/docs/api/color-illuminants.md +280 -0
- package/docs/api/color-rgb-color-spaces.md +151 -0
- package/docs/api/color-sensor-color-development.md +27 -0
- package/docs/api/color-srgb-icc.md +2 -4
- package/docs/api/color-white-balance.md +95 -19
- package/docs/api/composition-image-formation-plan.md +124 -95
- package/docs/api/composition-plan-consumer.md +7 -7
- package/docs/api/core-calculation-result.md +18 -14
- package/docs/api/core-configuration-error.md +1 -1
- package/docs/api/core-image-formation.md +7 -7
- package/docs/api/core-scientific-assurance.md +12 -10
- package/docs/api/core-spectral-composition.md +14 -14
- package/docs/api/core-spectral.md +6 -6
- package/docs/api/core-validation.md +3 -3
- package/docs/api/core-version.md +7 -6
- package/docs/api/equipment-exposure-capabilities.md +11 -10
- package/docs/api/equipment-generic-tier-assets.md +7 -2
- package/docs/api/equipment-generic-tier-presets.md +6 -6
- package/docs/api/equipment-iso-capabilities.md +18 -18
- package/docs/api/equipment-metering-capabilities.md +6 -6
- package/docs/api/equipment-release-capabilities.md +4 -4
- package/docs/api/exports.json +2253 -3
- package/docs/api/exposure-exposure-duration-control.md +9 -9
- package/docs/api/exposure-exposure-mode-resolver.md +35 -31
- package/docs/api/exposure-exposure.md +10 -10
- package/docs/api/exposure-flash-ttl.md +182 -0
- package/docs/api/exposure-flash.md +183 -28
- package/docs/api/exposure-metering-scene-radiance.md +11 -10
- package/docs/api/exposure-metering-target.md +9 -8
- package/docs/api/exposure-metering-temporal.md +8 -8
- package/docs/api/exposure-metering.md +69 -9
- package/docs/api/exposure-program-line.md +6 -5
- package/docs/api/facade-chart-radiance-batch.md +96 -0
- package/docs/api/facade-chart-scenes.md +240 -0
- package/docs/api/facade-scene-radiance.md +122 -0
- package/docs/api/facade-simulate-capture.md +397 -0
- package/docs/api/gpu-image-kernel-accelerator.md +157 -0
- package/docs/api/gpu-image-kernel-execution.md +152 -0
- package/docs/api/motion-camera-rotation.md +43 -26
- package/docs/api/motion-capture-rotation-inverse-mapping.md +24 -23
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +22 -22
- package/docs/api/motion-capture-rotation-trajectory.md +15 -15
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +15 -14
- package/docs/api/motion-extended-object-projection.md +10 -8
- package/docs/api/motion-projected-motion.md +8 -8
- package/docs/api/motion-temporal-exposure-sum.md +98 -0
- package/docs/api/motion-video-sequence.md +159 -0
- package/docs/api/optics-aperture.md +8 -8
- package/docs/api/optics-atmospheric-haze.md +104 -0
- package/docs/api/optics-brown-conrady-distortion.md +123 -0
- package/docs/api/optics-circle-of-confusion.md +5 -4
- package/docs/api/optics-complex-pupil-psf.md +57 -16
- package/docs/api/optics-depth-of-field.md +12 -6
- package/docs/api/optics-diffraction-psf-profile.md +96 -0
- package/docs/api/optics-diffraction.md +8 -7
- package/docs/api/optics-focus-breathing.md +104 -16
- package/docs/api/optics-focus-state.md +9 -10
- package/docs/api/optics-front-of-lens-filter.md +72 -14
- package/docs/api/optics-illumination-vignetting.md +10 -10
- package/docs/api/optics-irradiance-convolution.md +95 -0
- package/docs/api/optics-lateral-chromatic-aberration.md +22 -21
- package/docs/api/optics-lens-psf-kernels.md +72 -0
- package/docs/api/optics-lens-psf-profile.md +48 -26
- package/docs/api/optics-longitudinal-chromatic-aberration.md +128 -0
- package/docs/api/optics-polygon-diffraction.md +78 -13
- package/docs/api/optics-profile-contract.md +4 -4
- package/docs/api/optics-psf-foundation.md +12 -12
- package/docs/api/optics-pupil-vignetting.md +132 -0
- package/docs/api/optics-radial-distortion.md +12 -12
- package/docs/api/optics-scene-to-sensor-irradiance.md +25 -14
- package/docs/api/optics-scene-to-sensor-quadrature.md +15 -12
- package/docs/api/optics-sensor-aperture-rays.md +3 -2
- package/docs/api/optics-sensor-environment-query.md +52 -9
- package/docs/api/optics-sensor-psf-quadrature.md +13 -10
- package/docs/api/optics-stray-light.md +12 -11
- package/docs/api/optics-thin-lens.md +4 -3
- package/docs/api/optics-zernike-wavefront.md +229 -0
- package/docs/api/output-capture-corrected-sdr.md +10 -7
- package/docs/api/output-capture-geometry.md +35 -36
- package/docs/api/output-capture-sdr.md +4 -4
- package/docs/api/output-crop.md +7 -4
- package/docs/api/output-geometric-transforms.md +65 -19
- package/docs/api/output-lens-corrections.md +17 -15
- package/docs/api/output-native-capture-sdr.md +26 -13
- package/docs/api/output-png-encoder.md +105 -0
- package/docs/api/output-print-contrast-reference.md +8 -8
- package/docs/api/output-print-detail.md +14 -14
- package/docs/api/output-print-jpeg.md +22 -5
- package/docs/api/output-print-plan.md +18 -18
- package/docs/api/output-print-region-statistics.md +14 -14
- package/docs/api/output-sdr-rendering.md +52 -10
- package/docs/api/output-subject-framing-crop.md +5 -6
- package/docs/api/processing-demosaic.md +120 -0
- package/docs/api/processing-denoise.md +148 -0
- package/docs/api/processing-focus-stacking.md +41 -0
- package/docs/api/processing-hdr.md +113 -0
- package/docs/api/processing-panorama.md +82 -0
- package/docs/api/processing-processing-task.md +107 -0
- package/docs/api/processing-tone-mapping.md +142 -0
- package/docs/api/schema-camera.md +6 -4
- package/docs/api/schema-illumination-spectral.md +10 -11
- package/docs/api/schema-illumination-temporal.md +13 -15
- package/docs/api/schema-illumination.md +4 -4
- package/docs/api/schema-scene-radiance-temporal.md +10 -11
- package/docs/api/schema-scene-radiance.md +18 -17
- package/docs/api/schema-scene.md +9 -9
- package/docs/api/schema-validation.md +1 -1
- package/docs/api/sensor-accumulated-charge.md +12 -20
- package/docs/api/sensor-architecture.md +15 -16
- package/docs/api/sensor-camera-saturation-capacity.md +9 -11
- package/docs/api/sensor-capture-color-sampling-binding.md +47 -51
- package/docs/api/sensor-capture-mode-timing.md +9 -9
- package/docs/api/sensor-capture-mode.md +29 -30
- package/docs/api/sensor-color-sampling.md +31 -33
- package/docs/api/sensor-constant-rate-temporal-integration.md +10 -11
- package/docs/api/sensor-dark-current.md +30 -14
- package/docs/api/sensor-environment-photo-signal.md +13 -6
- package/docs/api/sensor-eqe-electron-rate.md +9 -8
- package/docs/api/sensor-eqe-local-exposure.md +18 -17
- package/docs/api/sensor-eqe-temporal-exposure.md +12 -11
- package/docs/api/sensor-exposure-window.md +24 -24
- package/docs/api/sensor-fixed-pattern-noise.md +104 -0
- package/docs/api/sensor-iso-gain.md +63 -0
- package/docs/api/sensor-iso-signal-chain.md +13 -22
- package/docs/api/sensor-local-exposure-binding.md +12 -13
- package/docs/api/sensor-optical-stack.md +37 -40
- package/docs/api/sensor-photon-energy.md +10 -11
- package/docs/api/sensor-physical-charge-capacity.md +8 -13
- package/docs/api/sensor-pixel-pitch.md +1 -1
- package/docs/api/sensor-radiometry-readiness.md +9 -9
- package/docs/api/sensor-raw-readout.md +118 -52
- package/docs/api/sensor-raw-reconstruction.md +97 -20
- package/docs/api/sensor-readout-exposure-linkage.md +120 -24
- package/docs/api/sensor-readout-timing.md +33 -35
- package/docs/api/sensor-response-application-compatibility.md +9 -11
- package/docs/api/sensor-response-operating-range.md +14 -18
- package/docs/api/sensor-responsivity-photocurrent.md +9 -12
- package/docs/api/sensor-sampling-aperture.md +22 -25
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +9 -8
- package/docs/api/sensor-sensor-geometry.md +23 -24
- package/docs/api/sensor-signal-noise.md +10 -10
- package/docs/api/sensor-spatial-sample-reduction.md +27 -30
- package/docs/api/sensor-spatial-sampling-quadrature.md +37 -39
- package/docs/api/sensor-spatio-spectral-reduction.md +27 -29
- package/docs/api/sensor-spectral-coverage.md +5 -5
- package/docs/api/sensor-spectral-quadrature.md +33 -35
- package/docs/api/sensor-spectral-response.md +28 -16
- package/docs/api/sensor-temporal-photo-signal.md +6 -6
- package/docs/api/simulation-poc-simulation.md +17 -16
- package/docs/api/stabilization-camera-shake.md +29 -10
- package/docs/api/stabilization-system.md +25 -21
- package/docs/examples/production-request.json +3821 -2157
- package/docs/examples/simulate-capture.mjs +14 -0
- package/llms.txt +35 -0
- package/package.json +32 -11
- package/AGENTS.md +0 -674
- package/CONTRIBUTING.md +0 -76
- package/DCO +0 -33
- package/dist/camera/equivalent-focal-length.d.ts.map +0 -1
- package/dist/camera/field-of-view.d.ts.map +0 -1
- package/dist/camera/projected-object-size.d.ts.map +0 -1
- package/dist/capture/capture-export-metadata.d.ts.map +0 -1
- package/dist/capture/environment-raw-producer.d.ts.map +0 -1
- package/dist/capture/export-jpeg.d.ts.map +0 -1
- package/dist/capture/export-tiff.d.ts.map +0 -1
- package/dist/capture/focus-control.d.ts.map +0 -1
- package/dist/capture/linear-encoding.d.ts.map +0 -1
- package/dist/capture/native-environment-raw.d.ts.map +0 -1
- package/dist/capture/native-raw-development.d.ts.map +0 -1
- package/dist/capture/native-raw.d.ts.map +0 -1
- package/dist/capture/photographic-export.d.ts.map +0 -1
- package/dist/capture/raw-frame-limits.d.ts.map +0 -1
- package/dist/capture/raw-frame-reconstruction.d.ts.map +0 -1
- package/dist/capture/release-sequence.d.ts.map +0 -1
- package/dist/capture/sensor-raw-frame.d.ts.map +0 -1
- package/dist/capture/sensor-raw-producer.d.ts.map +0 -1
- package/dist/capture/simulated-capture.d.ts.map +0 -1
- package/dist/color/capture-color.d.ts.map +0 -1
- package/dist/color/sensor-color-development.d.ts.map +0 -1
- package/dist/color/srgb-icc.d.ts.map +0 -1
- package/dist/color/srgb-transfer.d.ts.map +0 -1
- package/dist/color/white-balance.d.ts.map +0 -1
- package/dist/composition/image-formation-plan.d.ts.map +0 -1
- package/dist/composition/plan-consumer.d.ts.map +0 -1
- package/dist/core/calculation-result.d.ts.map +0 -1
- package/dist/core/canonical-json.d.ts.map +0 -1
- package/dist/core/configuration-error.d.ts.map +0 -1
- package/dist/core/evidence-provenance.d.ts.map +0 -1
- package/dist/core/image-formation.d.ts.map +0 -1
- package/dist/core/owned-data.d.ts.map +0 -1
- package/dist/core/record-validation.d.ts.map +0 -1
- package/dist/core/scientific-assurance.d.ts.map +0 -1
- package/dist/core/spectral-composition.d.ts.map +0 -1
- package/dist/core/spectral.d.ts.map +0 -1
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/equipment/exposure-capabilities.d.ts.map +0 -1
- package/dist/equipment/generic-tier-assets.d.ts.map +0 -1
- package/dist/equipment/generic-tier-presets.d.ts.map +0 -1
- package/dist/equipment/iso-capabilities.d.ts.map +0 -1
- package/dist/equipment/metering-capabilities.d.ts.map +0 -1
- package/dist/equipment/release-capabilities.d.ts.map +0 -1
- package/dist/exposure/exposure-duration-control.d.ts.map +0 -1
- package/dist/exposure/exposure-mode-resolver.d.ts.map +0 -1
- package/dist/exposure/exposure.d.ts.map +0 -1
- package/dist/exposure/flash.d.ts.map +0 -1
- package/dist/exposure/metering-scene-radiance.d.ts.map +0 -1
- package/dist/exposure/metering-target.d.ts.map +0 -1
- package/dist/exposure/metering-temporal.d.ts.map +0 -1
- package/dist/exposure/metering.d.ts.map +0 -1
- package/dist/exposure/program-line.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/motion/camera-rotation.d.ts.map +0 -1
- package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +0 -1
- package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/capture-rotation-trajectory.d.ts.map +0 -1
- package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +0 -1
- package/dist/motion/extended-object-projection.d.ts.map +0 -1
- package/dist/motion/projected-motion.d.ts.map +0 -1
- package/dist/optics/aperture.d.ts.map +0 -1
- package/dist/optics/circle-of-confusion.d.ts.map +0 -1
- package/dist/optics/complex-pupil-psf.d.ts.map +0 -1
- package/dist/optics/depth-of-field.d.ts.map +0 -1
- package/dist/optics/diffraction.d.ts.map +0 -1
- package/dist/optics/focus-breathing.d.ts.map +0 -1
- package/dist/optics/focus-state.d.ts.map +0 -1
- package/dist/optics/front-of-lens-filter.d.ts.map +0 -1
- package/dist/optics/illumination-vignetting.d.ts.map +0 -1
- package/dist/optics/lateral-chromatic-aberration.d.ts.map +0 -1
- package/dist/optics/lens-psf-profile.d.ts.map +0 -1
- package/dist/optics/polygon-diffraction.d.ts.map +0 -1
- package/dist/optics/profile-contract.d.ts.map +0 -1
- package/dist/optics/psf-foundation.d.ts.map +0 -1
- package/dist/optics/radial-distortion.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-irradiance.d.ts.map +0 -1
- package/dist/optics/scene-to-sensor-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-aperture-rays.d.ts.map +0 -1
- package/dist/optics/sensor-environment-query.d.ts.map +0 -1
- package/dist/optics/sensor-psf-quadrature.d.ts.map +0 -1
- package/dist/optics/sensor-psf-support.d.ts.map +0 -1
- package/dist/optics/stray-light.d.ts.map +0 -1
- package/dist/optics/thin-lens.d.ts.map +0 -1
- package/dist/output/capture-corrected-sdr.d.ts.map +0 -1
- package/dist/output/capture-geometry.d.ts.map +0 -1
- package/dist/output/capture-sdr.d.ts.map +0 -1
- package/dist/output/crop.d.ts.map +0 -1
- package/dist/output/geometric-transforms.d.ts.map +0 -1
- package/dist/output/lens-corrections.d.ts.map +0 -1
- package/dist/output/native-capture-sdr.d.ts.map +0 -1
- package/dist/output/print-contrast-reference.d.ts.map +0 -1
- package/dist/output/print-detail.d.ts.map +0 -1
- package/dist/output/print-jpeg.d.ts.map +0 -1
- package/dist/output/print-plan.d.ts.map +0 -1
- package/dist/output/print-region-statistics.d.ts.map +0 -1
- package/dist/output/sdr-rendering.d.ts.map +0 -1
- package/dist/output/subject-framing-crop.d.ts.map +0 -1
- package/dist/schema/camera.d.ts.map +0 -1
- package/dist/schema/camera.js +0 -3
- package/dist/schema/camera.js.map +0 -1
- package/dist/schema/illumination-spectral.d.ts.map +0 -1
- package/dist/schema/illumination-temporal.d.ts.map +0 -1
- package/dist/schema/illumination.d.ts.map +0 -1
- package/dist/schema/scene-radiance-temporal.d.ts.map +0 -1
- package/dist/schema/scene-radiance.d.ts.map +0 -1
- package/dist/schema/scene.d.ts.map +0 -1
- package/dist/schema/scene.js +0 -3
- package/dist/schema/scene.js.map +0 -1
- package/dist/schema/validation.d.ts.map +0 -1
- package/dist/sensor/accumulated-charge.d.ts.map +0 -1
- package/dist/sensor/architecture.d.ts.map +0 -1
- package/dist/sensor/camera-saturation-capacity.d.ts.map +0 -1
- package/dist/sensor/capture-color-sampling-binding.d.ts.map +0 -1
- package/dist/sensor/capture-mode-timing.d.ts.map +0 -1
- package/dist/sensor/capture-mode.d.ts.map +0 -1
- package/dist/sensor/color-sampling.d.ts.map +0 -1
- package/dist/sensor/constant-rate-temporal-integration.d.ts.map +0 -1
- package/dist/sensor/dark-current.d.ts.map +0 -1
- package/dist/sensor/environment-photo-signal.d.ts.map +0 -1
- package/dist/sensor/eqe-electron-rate.d.ts.map +0 -1
- package/dist/sensor/eqe-local-exposure.d.ts.map +0 -1
- package/dist/sensor/eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/exposure-window.d.ts.map +0 -1
- package/dist/sensor/iso-signal-chain.d.ts.map +0 -1
- package/dist/sensor/local-exposure-binding.d.ts.map +0 -1
- package/dist/sensor/optical-stack.d.ts.map +0 -1
- package/dist/sensor/photon-energy.d.ts.map +0 -1
- package/dist/sensor/physical-charge-capacity.d.ts.map +0 -1
- package/dist/sensor/pixel-pitch.d.ts.map +0 -1
- package/dist/sensor/radiometry-readiness.d.ts.map +0 -1
- package/dist/sensor/raw-readout.d.ts.map +0 -1
- package/dist/sensor/raw-reconstruction.d.ts.map +0 -1
- package/dist/sensor/readout-exposure-linkage.d.ts.map +0 -1
- package/dist/sensor/readout-timing.d.ts.map +0 -1
- package/dist/sensor/response-application-compatibility.d.ts.map +0 -1
- package/dist/sensor/response-operating-range.d.ts.map +0 -1
- package/dist/sensor/responsivity-photocurrent.d.ts.map +0 -1
- package/dist/sensor/sampling-aperture.d.ts.map +0 -1
- package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +0 -1
- package/dist/sensor/sensor-geometry.d.ts.map +0 -1
- package/dist/sensor/signal-noise.d.ts.map +0 -1
- package/dist/sensor/spatial-sample-reduction.d.ts.map +0 -1
- package/dist/sensor/spatial-sampling-quadrature.d.ts.map +0 -1
- package/dist/sensor/spatio-spectral-reduction.d.ts.map +0 -1
- package/dist/sensor/spectral-coverage.d.ts.map +0 -1
- package/dist/sensor/spectral-quadrature.d.ts.map +0 -1
- package/dist/sensor/spectral-response.d.ts.map +0 -1
- package/dist/sensor/temporal-eqe-sum.d.ts.map +0 -1
- package/dist/sensor/temporal-photo-signal.d.ts.map +0 -1
- package/dist/sensor/temporal-sample-binding.d.ts.map +0 -1
- package/dist/simulation/poc-simulation.d.ts.map +0 -1
- package/dist/stabilization/camera-shake.d.ts.map +0 -1
- package/dist/stabilization/system.d.ts.map +0 -1
- package/docs/API_STYLE.md +0 -235
- package/docs/ARCHITECTURE.md +0 -356
- package/docs/AUTOMATION_COORDINATION.md +0 -190
- package/docs/CAPTURE_COLOR.md +0 -25
- package/docs/CAPTURE_CORRECTED_SDR.md +0 -25
- package/docs/CAPTURE_EXPORT_METADATA.md +0 -27
- package/docs/CAPTURE_SDR.md +0 -22
- package/docs/DENSE_PUPIL_QUALIFICATION.md +0 -121
- package/docs/DEVELOPERS.md +0 -68
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +0 -69
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +0 -208
- package/docs/EXPORT_ACCEPTANCE.md +0 -133
- package/docs/GENERIC_TIER_PRESETS.md +0 -269
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +0 -141
- package/docs/IMAGE_FORMATION.md +0 -247
- package/docs/LINEAR_CAPTURE_ENCODING.md +0 -25
- package/docs/MOTION_AND_SIGNAL.md +0 -250
- package/docs/NATIVE_CAPTURE_SDR.md +0 -70
- package/docs/NATIVE_CAPTURE_SDR_REVIEW.md +0 -37
- package/docs/NATIVE_CAPTURE_SDR_VALIDATION.md +0 -34
- package/docs/NATIVE_RAW_AND_PRINT.md +0 -54
- package/docs/NUMERICAL_CORRECTNESS.md +0 -191
- package/docs/PERFORMANCE_BASELINE.md +0 -56
- package/docs/PHOTOGRAPHIC_EXPORT.md +0 -206
- package/docs/PHYSICS_FOUNDATION.md +0 -426
- package/docs/POC_API.md +0 -278
- package/docs/POC_PROJECTION_PLATFORM_REFERENCE.md +0 -12
- package/docs/POC_PROJECTION_REUSE.md +0 -124
- package/docs/PRINT_195_196_REVIEW.md +0 -93
- package/docs/PRINT_196_ENGINE_ACCEPTANCE.md +0 -45
- package/docs/PRINT_CONTRAST_REFERENCE.md +0 -43
- package/docs/PRINT_DETAIL_ASSESSMENT.md +0 -81
- package/docs/PRINT_DETAIL_JPEG_EVIDENCE.md +0 -36
- package/docs/PRINT_DETAIL_SDR_EVIDENCE.md +0 -29
- package/docs/PRINT_DETAIL_VALIDATION.md +0 -36
- package/docs/PRINT_PLANNING.md +0 -75
- package/docs/PRINT_REGION_STATISTICS.md +0 -38
- package/docs/PROCESSED_OUTPUT.md +0 -157
- package/docs/PRODUCTION_COMPOSITION.md +0 -373
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +0 -131
- package/docs/PROVENANCE.md +0 -115
- package/docs/PSF_FOUNDATION.md +0 -165
- package/docs/RAW_FRAME_ENVELOPE.md +0 -56
- package/docs/RAW_FRAME_RECONSTRUCTION.md +0 -30
- package/docs/RELEASE_1_0.md +0 -66
- package/docs/RELEASE_1_0_1.md +0 -61
- package/docs/RELEASE_1_1_0.md +0 -25
- package/docs/RELEASE_1_2_0.md +0 -51
- package/docs/RELEASE_1_3_0.md +0 -15
- package/docs/RELEASE_1_4_0.md +0 -23
- package/docs/RELEASE_1_5_0.md +0 -105
- package/docs/RELEASE_AUDIT.md +0 -39
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +0 -298
- package/docs/SCENE_SENSOR_QUADRATURE.md +0 -98
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +0 -86
- package/docs/SCIENTIFIC_ASSURANCE.md +0 -280
- package/docs/SCIENTIFIC_CONFORMANCE.md +0 -83
- package/docs/SDR_RENDERING.md +0 -33
- package/docs/SENSOR_APERTURE_RAYS.md +0 -23
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +0 -86
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +0 -104
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +0 -74
- package/docs/SENSOR_PSF_QUADRATURE.md +0 -90
- package/docs/SENSOR_RAW_FRAME.md +0 -20
- package/docs/SENSOR_RAW_PRODUCER.md +0 -77
- package/docs/SEPARABLE_EMISSION_DRAFT.md +0 -103
- package/docs/SIGNAL_CONFORMANCE.md +0 -23
- package/docs/SIMULATED_CAPTURE.md +0 -65
- package/docs/STABILIZATION.md +0 -234
- package/docs/TEMPORAL_PHOTO_RAW.md +0 -83
- package/docs/TIER_ACCEPTANCE.md +0 -129
- package/docs/TIER_PRESET_ACCEPTANCE.md +0 -59
- package/docs/V1_COMPOSITION_MAP.md +0 -123
- package/docs/V1_HELPER_REUSE_REVIEW.md +0 -60
- package/docs/V1_PERFORMANCE_DISPOSITION.md +0 -88
- package/docs/benchmarks/2026-10-01-main-baseline.json +0 -694
- package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +0 -2190
- package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +0 -2423
- package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +0 -210
- package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +0 -187
- package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +0 -756
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +0 -711
- package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +0 -885
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +0 -868
- package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +0 -868
- package/docs/licenses/castleCSF-MIT.txt +0 -21
- package/docs/validation/dense-pupil-2026-10-06/pilot.jsonl +0 -6
- package/docs/validation/documentation-fragments.json +0 -212
- package/docs/validation/native-capture-sdr-darwin-arm64-node26-review.jsonl +0 -4
- package/docs/validation/native-capture-sdr-darwin-arm64.jsonl +0 -3
- package/docs/validation/native-raw-print-2026-10-04/fractional-asymmetric-crop.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/gray-ramp.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/linear-area-checker.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/manifest.json +0 -218
- package/docs/validation/native-raw-print-2026-10-04/megapixel-native.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/native-color.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel-validation.json +0 -9
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json +0 -29
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.codes.u16le.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.jpg +0 -0
- package/docs/validation/native-raw-print-2026-10-04/photivra-native-full-megapixel.json.rgb.gz +0 -0
- package/docs/validation/native-raw-print-2026-10-04/srgb.icc +0 -0
- package/docs/validation/native-raw-print-2026-10-04/validation.json +0 -41
- package/docs/validation/print-196-candidate-capabilities.json +0 -28
- package/docs/validation/print-196-candidate-evidence.json +0 -356
- package/docs/validation/print-196-engine-acceptance.json +0 -81
- package/docs/validation/print-detail-capabilities.json +0 -103
- package/docs/validation/print-detail-jpeg-evidence.json +0 -116
- package/docs/validation/print-detail-sdr-evidence.json +0 -81
- package/docs/validation/release-audit-inventory.json +0 -1306
- package/docs/validation/tier-acceptance-report-v1.json +0 -2538
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-formation-plan.js","sourceRoot":"","sources":["../../src/composition/image-formation-plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"image-formation-plan.js","sourceRoot":"","sources":["../../src/composition/image-formation-plan.ts"],"names":[],"mappings":"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","sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\n/**\n * The production image-formation plan: the ordered list of scientific stages that turns a scene into\n * a capture, and the record of which stages ran.\n *\n * The parsers validate untrusted input and return the normalized typed contract. Unknown enum values,\n * missing required fields and incompatible scientific data are rejected.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @see docs/PRODUCTION_ENVIRONMENT_CAPTURE.md for the equations, units, coordinate conventions, known\n * blockers and support limits.\n */\n\nimport { simulateEnvironmentSensorRawFrame, type SimulateEnvironmentSensorRawFrameInput } from \"../capture/environment-raw-producer.js\";\nimport { parseSimulatedCapture, type SimulatedCapture } from \"../capture/simulated-capture.js\";\nimport { calculateProcessedSensorRaw, validateProcessedSensorRawEnvelope, PROCESSED_SENSOR_RAW_MODEL_VERSION, type ProcessedSensorRawInput } from \"../capture/photographic-export.js\";\n\nimport { stringifyCanonicalJson } from \"../core/canonical-json.js\";\nimport {\n RELEASE_SEQUENCE_VERSION,\n type ReleaseTimingConstraint,\n type ResolvedReleaseFrame\n} from \"../capture/release-sequence.js\";\nimport {\n parseResolvedWhiteBalanceState,\n type ResolvedWhiteBalanceState\n} from \"../color/white-balance.js\";\nimport { InvalidConfigurationError } from \"../core/configuration-error.js\";\nimport {\n getImageFormationContract,\n IMAGE_FORMATION_CONTRACT_VERSION,\n type ImageFormationEffectId,\n type ImageFormationStageId\n} from \"../core/image-formation.js\";\nimport { ENGINE_API_VERSION } from \"../core/version.js\";\nimport {\n SCIENTIFIC_ASSURANCE_CONTRACT_VERSION,\n composeScientificAssurance,\n type ComposedScientificAssurance,\n type ScientificAssuranceComponent,\n type ScientificAssuranceComponentUncertainty\n} from \"../core/scientific-assurance.js\";\nimport { InvalidScientificInputError } from \"../core/validation.js\";\nimport { parseEvidenceList, type EvidenceProvenance } from \"../core/evidence-provenance.js\";\nimport { isElectronicRollingShutterExposureSchedule } from \"../sensor/readout-exposure-linkage.js\";\nimport {\n calculateCaptureRotationTemporalQuadrature,\n type CaptureRotationTemporalQuadrature\n} from \"../motion/capture-rotation-temporal-quadrature.js\";\nimport type {\n CameraAngularVelocityRadPerSec\n} from \"../motion/camera-rotation.js\";\nimport type {\n CaptureOrientation\n} from \"../output/capture-geometry.js\";\nimport {\n calculateCaptureExposureWindows,\n type CalculateCaptureExposureWindowsInput,\n type CaptureExposureWindows\n} from \"../sensor/exposure-window.js\";\nimport {\n calculateSensorReadoutTiming,\n type SensorReadoutTiming,\n type SensorReadoutTimingDeclaration\n} from \"../sensor/readout-timing.js\";\nimport type {\n SensorImagingArea\n} from \"../sensor/sensor-geometry.js\";\nimport {\n GENERIC_EQUIPMENT_EXPOSURE_CAPABILITY_SCHEMA_VERSION,\n type ResolvedGenericEquipmentExposureCapabilities,\n type ResolvedNumericSettingGrid\n} from \"../equipment/exposure-capabilities.js\";\nimport {\n parseFrontOfLensFilterProfile,\n resolveFrontOfLensFilterTransmission,\n type FrontOfLensFilterProfile,\n type FrontOfLensFilterUncertainty\n} from \"../optics/front-of-lens-filter.js\";\nimport {\n parseFocusPlane,\n type FocusPlane\n} from \"../optics/focus-state.js\";\nimport {\n calculateSceneRadianceToSensorIrradiance,\n parseSceneToSensorIrradianceProfile,\n type OpticalBridgeFieldThroughput,\n type OpticalBridgeFocusContext,\n type OpticalBridgeUncertainty,\n type SceneToSensorIrradianceProfile,\n type SceneToSensorIrradianceResult\n} from \"../optics/scene-to-sensor-irradiance.js\";\nimport {\n parseSceneRadianceEvaluationRequest,\n parseSceneRadianceEvaluationResult,\n type SceneRadianceEvaluationRequest,\n type SceneRadianceEvaluationResult,\n type SceneRadianceUncertainty\n} from \"../schema/scene-radiance.js\";\nimport { requireInputObject, requireInputKeys, rejectUnknownFields, rejectUnknownVariantFields } from \"../core/record-validation.js\";\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport const PRODUCTION_IMAGE_FORMATION_PLAN_VERSION =\n \"0.7.0\" as const;\nexport const PREPARED_IMAGE_FORMATION_CONTEXT_VERSION =\n \"0.1.0\" as const;\nexport const PRODUCTION_CAPTURE_SNAPSHOT_VERSION =\n \"0.3.0\" as const;\nexport const RENDERER_CAPABILITY_SCHEMA_VERSION =\n \"0.1.0\" as const;\nexport const IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION =\n \"0.1.0\" as const;\n\nexport type RendererConsumerKind =\n | \"interactive-optimized\"\n | \"reference\";\n\n/**\n * Plain-data declaration of what one rendering backend supports: scientific\n * domains, stages and effects, and its time-sample budget. It is validated\n * metadata. It is not executable renderer code and not proof of physical\n * correctness. If a capability is unknown or not enough, the requested\n * fidelity is blocked before any trusted provider code runs. Interactive and\n * reference backends keep the same committed science even when their fidelity\n * differs.\n */\nexport interface RendererCapabilityDeclaration {\n schemaVersion:\n typeof RENDERER_CAPABILITY_SCHEMA_VERSION;\n rendererId: string;\n rendererVersion: string;\n consumerKind: RendererConsumerKind;\n supportedStages:\n readonly ImageFormationStageId[];\n supportedEffects:\n readonly ImageFormationEffectId[];\n spectralCapability:\n | \"wavelength-resolved\"\n | \"wavelength-independent-approximation\";\n temporalSampling:\n | {\n kind: \"none\";\n }\n | {\n kind: \"bounded\";\n maximumSamples: number;\n };\n depthCapability:\n | \"none\"\n | \"per-layer\";\n inverseFieldMapping: boolean;\n alphaRepresentation:\n | \"premultiplied\"\n | \"straight\";\n preservesDepthOrderAcrossWarps:\n boolean;\n sensorDomainProcessing: boolean;\n}\n\nexport interface RequiredImageFormationEffect {\n effectId: ImageFormationEffectId;\n modelId: string;\n modelVersion: string;\n}\n\nexport interface ImageFormationFidelityProfile {\n schemaVersion:\n typeof IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION;\n profileId: string;\n profileVersion: string;\n requiredStages:\n readonly ImageFormationStageId[];\n requiredEffects:\n readonly RequiredImageFormationEffect[];\n rendererRequirements: {\n spectral:\n | \"wavelength-resolved\"\n | \"wavelength-independent-approximation\";\n sensorDomainProcessing: boolean;\n depth:\n | \"none\"\n | \"per-layer\";\n };\n}\n\nexport interface PrepareImageFormationContextInput {\n contextId: string;\n sceneId: string;\n sceneRadianceProviderProfileId:\n string;\n outputGeometryProfileId: string;\n equipmentCapabilities:\n ResolvedGenericEquipmentExposureCapabilities;\n opticalBridgeProfile?:\n SceneToSensorIrradianceProfile;\n renderer:\n RendererCapabilityDeclaration;\n fidelity:\n ImageFormationFidelityProfile;\n}\n\nexport interface PreparedImageFormationContext {\n version:\n typeof PREPARED_IMAGE_FORMATION_CONTEXT_VERSION;\n contextId: string;\n sceneId: string;\n sceneRadianceProviderProfileId:\n string;\n outputGeometryProfileId: string;\n equipmentCapabilities:\n ResolvedGenericEquipmentExposureCapabilities;\n opticalBridgeProfile?:\n SceneToSensorIrradianceProfile;\n renderer:\n RendererCapabilityDeclaration;\n fidelity:\n ImageFormationFidelityProfile;\n fingerprint: {\n algorithm:\n \"fnv1a-32-non-cryptographic\";\n value: string;\n };\n}\n\nexport interface ProductionPhysicalSceneSample {\n sceneRadianceRequest:\n SceneRadianceEvaluationRequest;\n sceneRadianceResult:\n SceneRadianceEvaluationResult;\n focus:\n OpticalBridgeFocusContext;\n imagePointMm: {\n x: number;\n y: number;\n };\n fieldThroughput:\n OpticalBridgeFieldThroughput;\n frontOfLensFilters?:\n readonly FrontOfLensFilterProfile[];\n}\n\nexport interface ProductionTemporalCaptureInput {\n exposureWindowInput:\n CalculateCaptureExposureWindowsInput;\n imagingArea: SensorImagingArea;\n orientation: CaptureOrientation;\n readout?:\n SensorReadoutTimingDeclaration;\n /**\n * Optional explicit link from sensor readout to exposure timing. With the electronic\n * rolling-shutter model, the exposure-window schedule must equal\n * resolveElectronicRollingShutterExposureSchedule(readout). Then every per-site exposure window\n * (and the rotation time sampling) includes the per-line offset.\n */\n readoutExposureLinkage?: {\n kind: \"electronic-rolling-shutter-line-reset-read\";\n evidence: readonly EvidenceProvenance[];\n };\n rotation?: {\n angularVelocityRadPerSec:\n CameraAngularVelocityRadPerSec;\n focusDistanceM?: number;\n temporalSampleCount: number;\n };\n}\n\nexport interface ProductionTemporalCaptureResult {\n exposureWindows:\n CaptureExposureWindows;\n sensorReadoutTiming?:\n SensorReadoutTiming;\n rotationQuadrature?:\n CaptureRotationTemporalQuadrature;\n exposureTimeReference:\n \"first-opening-boundary-phase\";\n readoutExposureSynchronization:\n | \"not-assumed\"\n | \"electronic-rolling-shutter-line-linked\";\n sensorReadoutTimingRemainsSeparate:\n true;\n temporalRadianceIntegrated:\n false;\n}\n\nexport interface ProductionReleaseFrameBinding {\n releaseSequenceVersion:\n typeof RELEASE_SEQUENCE_VERSION;\n sequenceId: string;\n releaseFrameId: string;\n frameIndex: number;\n exposure: {\n aperture: number;\n shutterSeconds: number;\n iso: number;\n };\n stochasticSeedUint32: number;\n exposureStartTimeSeconds: number;\n exposureEndTimeSeconds: number;\n sceneTimeSecondsFromSequenceStart:\n number;\n startIntervalFromPreviousSeconds:\n number | null;\n timingConstraints:\n readonly ReleaseTimingConstraint[];\n focus:\n ResolvedReleaseFrame[\"focus\"];\n automation:\n ResolvedReleaseFrame[\"automation\"];\n whiteBalanceStateId?: string;\n}\n\nexport interface CreateProductionCaptureSnapshotFromReleaseFrameInput {\n captureId: string;\n sceneStateId: string;\n sceneTimeSecondsFromExposureStart:\n number;\n outputStateId: string;\n releaseFrame:\n ResolvedReleaseFrame;\n whiteBalanceState?:\n ResolvedWhiteBalanceState;\n physicalSceneSample?:\n ProductionPhysicalSceneSample;\n temporalCapture?:\n ProductionTemporalCaptureInput;\n}\n\nexport interface CreateProductionCaptureSnapshotInput {\n captureId: string;\n releaseFrameId: string;\n sceneStateId: string;\n sceneTimeSecondsFromExposureStart:\n number;\n outputStateId: string;\n exposure: {\n aperture: number;\n shutterSeconds: number;\n iso: number;\n };\n stochasticSeedUint32: number;\n releaseFrameBinding?:\n ProductionReleaseFrameBinding;\n whiteBalanceState?:\n ResolvedWhiteBalanceState;\n physicalSceneSample?:\n ProductionPhysicalSceneSample;\n temporalCapture?:\n ProductionTemporalCaptureInput;\n}\n\n/**\n * Frozen state for one capture event. It links the capture, release, scene and\n * output IDs, the physical aperture, shutter and ISO, the scene time in seconds\n * and an explicit uint32 seed. Optional focus, white-balance and timing\n * bindings record their exact resolved state. This is a description of the\n * capture, not the generated image. If a UI value changes later, make a new\n * snapshot; never change a capture that is already planned.\n */\nexport interface ProductionCaptureSnapshot {\n version:\n typeof PRODUCTION_CAPTURE_SNAPSHOT_VERSION;\n captureId: string;\n releaseFrameId: string;\n sceneStateId: string;\n sceneTimeSecondsFromExposureStart:\n number;\n outputStateId: string;\n exposure: {\n aperture: number;\n shutterSeconds: number;\n iso: number;\n };\n stochasticSeedUint32: number;\n releaseFrameBinding?:\n ProductionReleaseFrameBinding;\n whiteBalanceState?:\n ResolvedWhiteBalanceState;\n physicalSceneSample?:\n ProductionPhysicalSceneSample;\n temporalCapture?:\n ProductionTemporalCaptureInput;\n fingerprint: {\n algorithm:\n \"fnv1a-32-non-cryptographic\";\n value: string;\n };\n}\n\nexport type PlannedImageFormationStageState =\n | \"active\"\n | \"modeled-zero\"\n | \"omitted-by-fidelity\"\n | \"unsupported\"\n | \"blocked\";\n\nexport type PlannedScientificStatus =\n | \"calibrated\"\n | \"approximation\"\n | \"not-applicable\";\n\nexport interface PlannedImageFormationStage {\n stageId: ImageFormationStageId;\n contractStatus:\n ReturnType<\n typeof getImageFormationContract\n >[\"stages\"][number][\"status\"];\n state:\n PlannedImageFormationStageState;\n scientificStatus:\n PlannedScientificStatus;\n requiredByFidelity: boolean;\n requiredUpstreamStages:\n readonly ImageFormationStageId[];\n coupledStages:\n readonly ImageFormationStageId[];\n modelId?: string;\n modelVersion?: string;\n resultIdentity?: string;\n blockerCodes:\n readonly ProductionImageFormationBlockerCode[];\n}\n\nexport type PlannedImageFormationEffectState =\n | \"active\"\n | \"modeled-zero\"\n | \"omitted-by-fidelity\"\n | \"unsupported\"\n | \"blocked\";\n\nexport interface PlannedImageFormationEffect {\n effectId: ImageFormationEffectId;\n primaryStage: ImageFormationStageId;\n coupledStages:\n readonly ImageFormationStageId[];\n state:\n PlannedImageFormationEffectState;\n scientificStatus:\n PlannedScientificStatus;\n requiredByFidelity: boolean;\n modelId?: string;\n modelVersion?: string;\n blockerCodes:\n readonly ProductionImageFormationBlockerCode[];\n}\n\nexport type ProductionImageFormationBlockerCode =\n | \"environment-capture-evaluation-blocked\"\n | \"processed-output-evaluation-blocked\"\n | \"engine-stage-not-composed\"\n | \"engine-effect-not-composed\"\n | \"renderer-stage-unsupported\"\n | \"renderer-effect-unsupported\"\n | \"renderer-spectral-capability-insufficient\"\n | \"renderer-sensor-domain-processing-unavailable\"\n | \"renderer-depth-capability-insufficient\"\n | \"renderer-inverse-field-mapping-required\"\n | \"renderer-premultiplied-alpha-required\"\n | \"renderer-depth-order-preservation-required\"\n | \"missing-optical-bridge-profile\"\n | \"missing-physical-scene-sample\"\n | \"undeclared-field-throughput-effect\"\n | \"physical-radiometry-evaluation-blocked\"\n | \"missing-temporal-capture-input\"\n | \"temporal-evaluation-blocked\"\n | \"missing-camera-rotation-model\"\n | \"missing-lens-field-mapping\"\n | \"missing-sensor-readout-timing\"\n | \"renderer-temporal-sampling-insufficient\";\n\nexport interface ProductionImageFormationBlocker {\n code:\n ProductionImageFormationBlockerCode;\n message: string;\n stageId?: ImageFormationStageId;\n effectId?: ImageFormationEffectId;\n}\n\n/**\n * Immutable record, owned by the engine, of what the scientific pipeline did.\n * Check the status and blockers before using any requested stage. Each stage\n * says whether it ran, was modelled as zero, was left out for fidelity, or had\n * unsupported inputs. Optional environment and processed results carry their\n * exact child lineage; sample-only routes keep their upstream blockers.\n * Versions identify independent contracts. The fingerprint is a canonical FNV\n * key for reproducibility; it does not protect against tampering. A replay also\n * needs identical provider responses. No renderer callback is serialized.\n */\nexport interface ProductionImageFormationPlan {\n version:\n typeof PRODUCTION_IMAGE_FORMATION_PLAN_VERSION;\n status: \"ready\" | \"blocked\";\n versions: {\n engineApi: typeof ENGINE_API_VERSION;\n imageFormationContract:\n typeof IMAGE_FORMATION_CONTRACT_VERSION;\n plan:\n typeof PRODUCTION_IMAGE_FORMATION_PLAN_VERSION;\n preparedContext:\n typeof PREPARED_IMAGE_FORMATION_CONTEXT_VERSION;\n captureSnapshot:\n typeof PRODUCTION_CAPTURE_SNAPSHOT_VERSION;\n rendererCapability:\n typeof RENDERER_CAPABILITY_SCHEMA_VERSION;\n fidelityProfile:\n typeof IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION;\n scientificAssurance:\n typeof SCIENTIFIC_ASSURANCE_CONTRACT_VERSION;\n };\n contextIdentity: {\n contextId: string;\n preparedContextFingerprint:\n string;\n };\n captureIdentity: {\n captureId: string;\n releaseFrameId: string;\n sceneStateId: string;\n releaseSequenceId?: string;\n releaseFrameIndex?: number;\n whiteBalanceStateId?: string;\n captureSnapshotFingerprint:\n string;\n };\n rendererIdentity: {\n rendererId: string;\n rendererVersion: string;\n consumerKind:\n RendererConsumerKind;\n };\n fidelityIdentity: {\n profileId: string;\n profileVersion: string;\n };\n stagePlan:\n readonly PlannedImageFormationStage[];\n effectPlan:\n readonly PlannedImageFormationEffect[];\n blockers:\n readonly ProductionImageFormationBlocker[];\n /** Non-cryptographic fingerprint of the execution data. Does not include the callback's identity. */\n environmentCaptureRequestFingerprint?: string;\n /** Lineage of the executed, bounded path from light source to ADC. The provider's transport is not verified. */\n environmentCaptureResult?: ReturnType<typeof simulateEnvironmentSensorRawFrame>;\n processedOutputResult?: ReturnType<typeof calculateProcessedSensorRaw>;\n physicalSceneToSensorResult?:\n SceneToSensorIrradianceResult;\n temporalCaptureResult?:\n ProductionTemporalCaptureResult;\n scientificAssurance?:\n ComposedScientificAssurance;\n stochastic: {\n captureSeedUint32: number;\n backendRandomnessMayRedefineScientificResult:\n false;\n };\n immutableCaptureSnapshot: true;\n legacyPocModified: false;\n fingerprint: {\n algorithm:\n \"fnv1a-32-non-cryptographic\";\n value: string;\n purpose:\n \"deterministic-reproducibility-key-not-integrity-security\";\n };\n}\n\nexport interface ProductionProcessedOutputInput {\n /** Explicit binding of numeric raster/crop policy to the committed output state. */\n outputStateId: string;\n processing: ProcessedSensorRawInput;\n}\n\n/**\n * Runs the existing bounded environment capture inside the plan. The callback is\n * synchronous local provider code and is never serialized. Replay is tied to the\n * returned provider samples and the realized RAW, not to the function's identity.\n */\nexport interface ProductionEnvironmentCaptureInput {\n capture: SimulateEnvironmentSensorRawFrameInput;\n /** Optional post-capture policy. Only execution supplies the RAW source. */\n processing?: Omit<ProcessedSensorRawInput, \"reconstruction\"> & {\n reconstruction: Omit<ProcessedSensorRawInput[\"reconstruction\"], \"rawFrame\">;\n };\n}\n\n/**\n * Combines one validated prepared context and one immutable capture snapshot\n * with exactly one supported physical input route: a supplied sample, processing\n * of an attached RAW, or an executed environment capture. The environment route\n * brings its own synchronous provider callback. It may supply a processing\n * policy without a RAW; execution then provides the exact realized frame.\n * Incompatible route combinations are rejected. A complete record does not make\n * effects outside the supported range valid.\n */\nexport interface CreateProductionImageFormationPlanInput {\n environmentCapture?: ProductionEnvironmentCaptureInput;\n /** Explicit RAW input after the ADC. Output processing cannot invent the upstream scene. */\n processedOutput?: ProductionProcessedOutputInput;\n preparedContext:\n PreparedImageFormationContext;\n captureSnapshot:\n ProductionCaptureSnapshot;\n}\n\nconst PROCESSED_OUTPUT_STAGES = new Set<ImageFormationStageId>([\n \"reconstruction\", \"physical-orientation-transform\", \"output-crop-resample\", \"display-processing\"\n]);\n\nconst COMPOSER_SUPPORTED_STAGES =\n new Set<ImageFormationStageId>([\n \"scene-ray-projection\",\n \"scene-radiance-evaluation\",\n \"lens-field-pupil-evaluation\",\n \"temporal-exposure-readout\"\n ]);\n\nconst COMPOSER_SUPPORTED_EFFECTS =\n new Set<ImageFormationEffectId>([\n \"illumination-vignetting\",\n \"geometric-distortion\",\n \"spatial-camera-rotation\",\n \"rolling-readout\"\n ]);\n\nfunction requireRecord(\n value: unknown,\n path: string,\n allowedKeys: readonly string[] | null\n): UnknownRecord {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Array.isArray(value)\n ) {\n throw new InvalidConfigurationError(\n path + \" must be an object.\"\n );\n }\n if (allowedKeys !== null) rejectUnknownFields(value, allowedKeys, path);\n return value as UnknownRecord;\n}\n\nfunction requireNonEmptyString(\n value: unknown,\n path: string\n): string {\n if (\n typeof value !== \"string\" ||\n value.trim().length === 0\n ) {\n throw new InvalidConfigurationError(\n path + \" must be a non-empty string.\"\n );\n }\n return value.trim();\n}\n\nfunction requireFinite(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isFinite(value)\n ) {\n throw new InvalidConfigurationError(\n path + \" must be finite.\"\n );\n }\n return value;\n}\n\nfunction requirePositiveFinite(\n value: unknown,\n path: string\n): number {\n const parsed =\n requireFinite(value, path);\n if (parsed <= 0) {\n throw new InvalidConfigurationError(\n path +\n \" must be greater than zero.\"\n );\n }\n return parsed;\n}\n\nfunction requireUint32(\n value: unknown,\n path: string\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isSafeInteger(value) ||\n value < 0 ||\n value > 0xffff_ffff\n ) {\n throw new InvalidConfigurationError(\n path +\n \" must be an unsigned 32-bit integer.\"\n );\n }\n return value;\n}\n\nfunction contractStageIds():\n ReadonlySet<ImageFormationStageId> {\n return new Set(\n getImageFormationContract()\n .stages.map(\n (stage) => stage.id\n )\n );\n}\n\nfunction contractEffectIds():\n ReadonlySet<ImageFormationEffectId> {\n return new Set(\n getImageFormationContract()\n .effectPlacements.map(\n (effect) => effect.id\n )\n );\n}\n\nfunction parseUniqueStageIds(\n value: unknown,\n path: string\n): readonly ImageFormationStageId[] {\n if (!Array.isArray(value)) {\n throw new InvalidConfigurationError(\n path + \" must be an array.\"\n );\n }\n const valid = contractStageIds();\n const seen =\n new Set<ImageFormationStageId>();\n value.forEach(\n (entry, index) => {\n if (\n typeof entry !== \"string\" ||\n !valid.has(\n entry as ImageFormationStageId\n )\n ) {\n throw new InvalidConfigurationError(\n path +\n \"[\" +\n index +\n \"] is not a declared image-formation stage.\"\n );\n }\n const typed =\n entry as ImageFormationStageId;\n if (seen.has(typed)) {\n throw new InvalidConfigurationError(\n path +\n \" must not contain duplicate stage IDs.\"\n );\n }\n seen.add(typed);\n }\n );\n\n return getImageFormationContract()\n .stages\n .map((stage) => stage.id)\n .filter((stageId) =>\n seen.has(stageId)\n );\n}\n\nfunction parseUniqueEffectIds(\n value: unknown,\n path: string\n): readonly ImageFormationEffectId[] {\n if (!Array.isArray(value)) {\n throw new InvalidConfigurationError(\n path + \" must be an array.\"\n );\n }\n const valid = contractEffectIds();\n const seen =\n new Set<ImageFormationEffectId>();\n value.forEach(\n (entry, index) => {\n if (\n typeof entry !== \"string\" ||\n !valid.has(\n entry as ImageFormationEffectId\n )\n ) {\n throw new InvalidConfigurationError(\n path +\n \"[\" +\n index +\n \"] is not a declared image-formation effect.\"\n );\n }\n const typed =\n entry as ImageFormationEffectId;\n if (seen.has(typed)) {\n throw new InvalidConfigurationError(\n path +\n \" must not contain duplicate effect IDs.\"\n );\n }\n seen.add(typed);\n }\n );\n\n return getImageFormationContract()\n .effectPlacements\n .map((effect) => effect.id)\n .filter((effectId) =>\n seen.has(effectId)\n );\n}\n\n/**\n * Validates an untrusted declaration and returns the normalized typed contract. Unknown enum values,\n * missing required fields and incompatible scientific data are rejected here.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param value - unknown. Untrusted input; TypeScript types alone are not validation.\n * @returns RendererCapabilityDeclaration. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function parseRendererCapabilityDeclaration(\n value: unknown\n): RendererCapabilityDeclaration {\n const record =\n requireRecord(\n value,\n \"rendererCapability\", [\"schemaVersion\", \"consumerKind\", \"spectralCapability\", \"temporalSampling\", \"depthCapability\", \"alphaRepresentation\", \"inverseFieldMapping\", \"preservesDepthOrderAcrossWarps\", \"sensorDomainProcessing\", \"rendererId\", \"rendererVersion\", \"supportedStages\", \"supportedEffects\"]\n );\n if (\n record.schemaVersion !==\n RENDERER_CAPABILITY_SCHEMA_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'rendererCapability.schemaVersion must be \"' +\n RENDERER_CAPABILITY_SCHEMA_VERSION +\n '\".'\n );\n }\n\n const consumerKind =\n record.consumerKind;\n if (\n consumerKind !==\n \"interactive-optimized\" &&\n consumerKind !== \"reference\"\n ) {\n throw new InvalidConfigurationError(\n \"rendererCapability.consumerKind is invalid.\"\n );\n }\n\n const spectralCapability =\n record.spectralCapability;\n if (\n spectralCapability !==\n \"wavelength-resolved\" &&\n spectralCapability !==\n \"wavelength-independent-approximation\"\n ) {\n throw new InvalidConfigurationError(\n \"rendererCapability.spectralCapability is invalid.\"\n );\n }\n\n const temporal =\n requireRecord(\n record.temporalSampling,\n \"rendererCapability.temporalSampling\", null\n );\n rejectUnknownVariantFields(temporal, \"kind\", { none: [\"kind\"], bounded: [\"kind\", \"maximumSamples\"] }, \"rendererCapability.temporalSampling\");\n let temporalSampling:\n RendererCapabilityDeclaration[\"temporalSampling\"];\n if (temporal.kind === \"none\") {\n temporalSampling = {\n kind: \"none\"\n };\n } else if (\n temporal.kind === \"bounded\"\n ) {\n const maximumSamples =\n temporal.maximumSamples;\n if (\n typeof maximumSamples !==\n \"number\" ||\n !Number.isSafeInteger(\n maximumSamples\n ) ||\n maximumSamples <= 0\n ) {\n throw new InvalidConfigurationError(\n \"rendererCapability.temporalSampling.maximumSamples must be a positive safe integer.\"\n );\n }\n temporalSampling = {\n kind: \"bounded\",\n maximumSamples\n };\n } else {\n throw new InvalidConfigurationError(\n \"rendererCapability.temporalSampling.kind is invalid.\"\n );\n }\n\n const depthCapability =\n record.depthCapability;\n if (\n depthCapability !== \"none\" &&\n depthCapability !== \"per-layer\"\n ) {\n throw new InvalidConfigurationError(\n \"rendererCapability.depthCapability is invalid.\"\n );\n }\n\n const alphaRepresentation =\n record.alphaRepresentation;\n if (\n alphaRepresentation !==\n \"premultiplied\" &&\n alphaRepresentation !==\n \"straight\"\n ) {\n throw new InvalidConfigurationError(\n \"rendererCapability.alphaRepresentation is invalid.\"\n );\n }\n\n for (const [key, raw] of [\n [\n \"inverseFieldMapping\",\n record.inverseFieldMapping\n ],\n [\n \"preservesDepthOrderAcrossWarps\",\n record\n .preservesDepthOrderAcrossWarps\n ],\n [\n \"sensorDomainProcessing\",\n record.sensorDomainProcessing\n ]\n ] as const) {\n if (typeof raw !== \"boolean\") {\n throw new InvalidConfigurationError(\n \"rendererCapability.\" +\n key +\n \" must be boolean.\"\n );\n }\n }\n\n return {\n schemaVersion:\n RENDERER_CAPABILITY_SCHEMA_VERSION,\n rendererId:\n requireNonEmptyString(\n record.rendererId,\n \"rendererCapability.rendererId\"\n ),\n rendererVersion:\n requireNonEmptyString(\n record.rendererVersion,\n \"rendererCapability.rendererVersion\"\n ),\n consumerKind,\n supportedStages:\n parseUniqueStageIds(\n record.supportedStages,\n \"rendererCapability.supportedStages\"\n ),\n supportedEffects:\n parseUniqueEffectIds(\n record.supportedEffects,\n \"rendererCapability.supportedEffects\"\n ),\n spectralCapability,\n temporalSampling,\n depthCapability,\n inverseFieldMapping:\n record\n .inverseFieldMapping as boolean,\n alphaRepresentation,\n preservesDepthOrderAcrossWarps:\n record\n .preservesDepthOrderAcrossWarps as boolean,\n sensorDomainProcessing:\n record\n .sensorDomainProcessing as boolean\n };\n}\n\n/**\n * Validates an untrusted declaration and returns the normalized typed contract. Unknown enum values,\n * missing required fields and incompatible scientific data are rejected here.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param value - unknown. Untrusted input; TypeScript types alone are not validation.\n * @returns ImageFormationFidelityProfile. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function parseImageFormationFidelityProfile(\n value: unknown\n): ImageFormationFidelityProfile {\n const record =\n requireRecord(\n value,\n \"imageFormationFidelityProfile\", [\"schemaVersion\", \"requiredEffects\", \"rendererRequirements\", \"profileId\", \"profileVersion\", \"requiredStages\"]\n );\n if (\n record.schemaVersion !==\n IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'imageFormationFidelityProfile.schemaVersion must be \"' +\n IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION +\n '\".'\n );\n }\n\n if (\n !Array.isArray(\n record.requiredEffects\n )\n ) {\n throw new InvalidConfigurationError(\n \"imageFormationFidelityProfile.requiredEffects must be an array.\"\n );\n }\n const validEffects =\n contractEffectIds();\n const seenEffects =\n new Set<ImageFormationEffectId>();\n const requestedEffects =\n record.requiredEffects.map(\n (entry, index) => {\n const path =\n \"imageFormationFidelityProfile.requiredEffects[\" +\n index +\n \"]\";\n const effect =\n requireRecord(\n entry,\n path, [\"effectId\", \"modelId\", \"modelVersion\"]\n );\n const effectId =\n effect.effectId;\n if (\n typeof effectId !==\n \"string\" ||\n !validEffects.has(\n effectId as ImageFormationEffectId\n )\n ) {\n throw new InvalidConfigurationError(\n path +\n \".effectId is not a declared image-formation effect.\"\n );\n }\n const typed =\n effectId as ImageFormationEffectId;\n if (\n seenEffects.has(typed)\n ) {\n throw new InvalidConfigurationError(\n \"imageFormationFidelityProfile.requiredEffects must not contain duplicate effect IDs.\"\n );\n }\n seenEffects.add(typed);\n return {\n effectId: typed,\n modelId:\n requireNonEmptyString(\n effect.modelId,\n path + \".modelId\"\n ),\n modelVersion:\n requireNonEmptyString(\n effect.modelVersion,\n path +\n \".modelVersion\"\n )\n };\n }\n );\n\n const effectOrder =\n new Map(\n getImageFormationContract()\n .effectPlacements.map(\n (effect, index) => [\n effect.id,\n index\n ] as const\n )\n );\n const requiredEffects = [\n ...requestedEffects\n ].sort(\n (left, right) =>\n (effectOrder.get(\n left.effectId\n ) ?? 0) -\n (effectOrder.get(\n right.effectId\n ) ?? 0)\n );\n\n const requirements =\n requireRecord(\n record.rendererRequirements,\n \"imageFormationFidelityProfile.rendererRequirements\", [\"spectral\", \"sensorDomainProcessing\", \"depth\"]\n );\n const spectral =\n requirements.spectral;\n if (\n spectral !==\n \"wavelength-resolved\" &&\n spectral !==\n \"wavelength-independent-approximation\"\n ) {\n throw new InvalidConfigurationError(\n \"imageFormationFidelityProfile.rendererRequirements.spectral is invalid.\"\n );\n }\n if (\n typeof requirements\n .sensorDomainProcessing !==\n \"boolean\"\n ) {\n throw new InvalidConfigurationError(\n \"imageFormationFidelityProfile.rendererRequirements.sensorDomainProcessing must be boolean.\"\n );\n }\n const depth =\n requirements.depth;\n if (\n depth !== \"none\" &&\n depth !== \"per-layer\"\n ) {\n throw new InvalidConfigurationError(\n \"imageFormationFidelityProfile.rendererRequirements.depth is invalid.\"\n );\n }\n\n return {\n schemaVersion:\n IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION,\n profileId:\n requireNonEmptyString(\n record.profileId,\n \"imageFormationFidelityProfile.profileId\"\n ),\n profileVersion:\n requireNonEmptyString(\n record.profileVersion,\n \"imageFormationFidelityProfile.profileVersion\"\n ),\n requiredStages:\n parseUniqueStageIds(\n record.requiredStages,\n \"imageFormationFidelityProfile.requiredStages\"\n ),\n requiredEffects,\n rendererRequirements: {\n spectral,\n sensorDomainProcessing:\n requirements\n .sensorDomainProcessing as boolean,\n depth\n }\n };\n}\n\nfunction validateEquipmentCapabilities(\n value:\n ResolvedGenericEquipmentExposureCapabilities\n): void {\n requireInputObject(value, \"value input\");\n if (\n value.schemaVersion !==\n GENERIC_EQUIPMENT_EXPOSURE_CAPABILITY_SCHEMA_VERSION ||\n value.scientificStatus !==\n \"approximation\"\n ) {\n throw new InvalidConfigurationError(\n \"equipmentCapabilities do not satisfy the resolved generic equipment capability contract.\"\n );\n }\n requireNonEmptyString(\n value.bodyProfile.profileId,\n \"equipmentCapabilities.bodyProfile.profileId\"\n );\n requireNonEmptyString(\n value.bodyProfile.profileVersion,\n \"equipmentCapabilities.bodyProfile.profileVersion\"\n );\n requireNonEmptyString(\n value.lensProfile.profileId,\n \"equipmentCapabilities.lensProfile.profileId\"\n );\n requireNonEmptyString(\n value.lensProfile.profileVersion,\n \"equipmentCapabilities.lensProfile.profileVersion\"\n );\n requirePositiveFinite(\n value.selectedFocalLengthMm,\n \"equipmentCapabilities.selectedFocalLengthMm\"\n );\n requirePositiveFinite(\n value.aperture\n .widestAvailableFNumber,\n \"equipmentCapabilities.aperture.widestAvailableFNumber\"\n );\n requirePositiveFinite(\n value.aperture\n .narrowestAvailableFNumber,\n \"equipmentCapabilities.aperture.narrowestAvailableFNumber\"\n );\n requirePositiveFinite(\n value.shutter.minimumSeconds,\n \"equipmentCapabilities.shutter.minimumSeconds\"\n );\n requirePositiveFinite(\n value.shutter.maximumSeconds,\n \"equipmentCapabilities.shutter.maximumSeconds\"\n );\n requirePositiveFinite(\n value.iso.minimum,\n \"equipmentCapabilities.iso.minimum\"\n );\n requirePositiveFinite(\n value.iso.maximum,\n \"equipmentCapabilities.iso.maximum\"\n );\n}\n\nfunction settingEquals(\n left: number,\n right: number\n): boolean {\n const scale = Math.max(\n 1,\n Math.abs(left),\n Math.abs(right)\n );\n return (\n Math.abs(left - right) <=\n Number.EPSILON *\n 32 *\n scale\n );\n}\n\nfunction validateSetting(\n value: number,\n minimum: number,\n maximum: number,\n grid:\n ResolvedNumericSettingGrid,\n path: string\n): void {\n if (\n value < minimum ||\n value > maximum\n ) {\n throw new InvalidScientificInputError(\n path +\n \" lies outside the prepared equipment capability range.\"\n );\n }\n if (\n grid.kind ===\n \"discrete-values\" &&\n !grid.values.some(\n (candidate) =>\n settingEquals(\n candidate,\n value\n )\n )\n ) {\n throw new InvalidScientificInputError(\n path +\n \" is not present in the prepared discrete equipment setting grid.\"\n );\n }\n}\n\nfunction cloneJson<T>(\n value: T\n): T {\n return JSON.parse(\n JSON.stringify(value)\n ) as T;\n}\n\nfunction deepFreeze<T>(\n value: T\n): T {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Object.isFrozen(value)\n ) {\n return value;\n }\n\n Object.freeze(value);\n for (\n const child of\n Object.values(\n value as UnknownRecord\n )\n ) {\n deepFreeze(child);\n }\n return value;\n}\n\nfunction canonicalStringify(value: unknown): string {\n return stringifyCanonicalJson(value, {\n undefinedObjectProperties: \"omit\",\n nonFiniteNumberMessage: \"Canonical plan serialization does not permit non-finite numbers.\",\n unsupportedValueMessage: \"Canonical plan serialization encountered an unsupported value type.\"\n });\n}\n\nfunction fingerprintText(\n text: string\n): string {\n let hash = 0x811c9dc5;\n const bytes =\n new TextEncoder().encode(text);\n for (const byte of bytes) {\n hash ^= byte;\n hash =\n Math.imul(\n hash,\n 0x01000193\n ) >>> 0;\n }\n return hash\n .toString(16)\n .padStart(8, \"0\");\n}\n\nfunction fingerprintValue(\n value: unknown\n): string {\n return fingerprintText(\n canonicalStringify(value)\n );\n}\n\n/** Top-level fields of `ProductionImageFormationPlan`. */\nconst PRODUCTION_PLAN_FIELDS = [\"version\", \"status\", \"versions\", \"contextIdentity\", \"captureIdentity\", \"rendererIdentity\",\n \"fidelityIdentity\", \"stagePlan\", \"effectPlan\", \"blockers\", \"environmentCaptureRequestFingerprint\", \"environmentCaptureResult\",\n \"processedOutputResult\", \"physicalSceneToSensorResult\", \"temporalCaptureResult\", \"scientificAssurance\", \"stochastic\",\n \"immutableCaptureSnapshot\", \"legacyPocModified\", \"fingerprint\"] as const;\n\n/**\n * Returns deterministic canonical JSON for a validated production plan. Object keys are sorted;\n * array order is kept. The JSON holds data only and leaves out provider callbacks. The plan version\n * and its fingerprint (recomputed over the content) must match, so an empty or edited object is\n * rejected instead of serialized.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param plan - ProductionImageFormationPlan. See that type for coordinates, units and profile binding.\n * @returns string. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function serializeProductionImageFormationPlan(\n plan:\n ProductionImageFormationPlan\n): string {\n requireInputObject(plan, \"serializeProductionImageFormationPlan input\");\n // 2.0.0: unknown top-level and fingerprint fields are named. Nested content is bound by the recomputed fingerprint.\n rejectUnknownFields(plan, PRODUCTION_PLAN_FIELDS, \"productionImageFormationPlan\");\n const { fingerprint, ...core } = plan as unknown as Record<string, unknown> & { fingerprint?: unknown };\n if (isPlainObjectValue(fingerprint)) {\n rejectUnknownFields(fingerprint, [\"algorithm\", \"value\", \"purpose\"], \"productionImageFormationPlan.fingerprint\");\n }\n if (core.version !== PRODUCTION_IMAGE_FORMATION_PLAN_VERSION) {\n throw new InvalidConfigurationError(\n `Production plan version must be \"${PRODUCTION_IMAGE_FORMATION_PLAN_VERSION}\".`\n );\n }\n const supplied = fingerprint as Record<string, unknown> | null | undefined;\n if (\n typeof supplied !== \"object\" || supplied === null ||\n supplied.algorithm !== \"fnv1a-32-non-cryptographic\" ||\n supplied.purpose !== \"deterministic-reproducibility-key-not-integrity-security\" ||\n supplied.value !== fingerprintValue(core)\n ) {\n throw new InvalidConfigurationError(\n \"Production plan fingerprint does not match its content; serialize only a plan returned by createProductionImageFormationPlan.\"\n );\n }\n return canonicalStringify(plan);\n}\n\n/**\n * Validates an untrusted declaration and returns the normalized typed contract. Unknown enum values,\n * missing required fields and incompatible scientific data are rejected here.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param value - unknown. Untrusted input; TypeScript types alone are not validation.\n * @returns PreparedImageFormationContext. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function parsePreparedImageFormationContext(\n value: unknown\n): PreparedImageFormationContext {\n const record =\n requireRecord(\n value,\n \"preparedImageFormationContext\", [\"version\", \"contextId\", \"sceneId\", \"sceneRadianceProviderProfileId\", \"outputGeometryProfileId\", \"equipmentCapabilities\", \"opticalBridgeProfile\", \"renderer\", \"fidelity\", \"fingerprint\"]\n );\n if (\n record.version !==\n PREPARED_IMAGE_FORMATION_CONTEXT_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'preparedImageFormationContext.version must be \"' +\n PREPARED_IMAGE_FORMATION_CONTEXT_VERSION +\n '\".'\n );\n }\n const parsed =\n prepareImageFormationContext({\n contextId:\n record.contextId as string,\n sceneId:\n record.sceneId as string,\n sceneRadianceProviderProfileId:\n record\n .sceneRadianceProviderProfileId as string,\n outputGeometryProfileId:\n record\n .outputGeometryProfileId as string,\n equipmentCapabilities:\n record\n .equipmentCapabilities as ResolvedGenericEquipmentExposureCapabilities,\n ...(record\n .opticalBridgeProfile ===\n undefined\n ? {}\n : {\n opticalBridgeProfile:\n record\n .opticalBridgeProfile as SceneToSensorIrradianceProfile\n }),\n renderer:\n record.renderer as RendererCapabilityDeclaration,\n fidelity:\n record.fidelity as ImageFormationFidelityProfile\n });\n if (\n typeof record.fingerprint !==\n \"object\" ||\n record.fingerprint === null\n ) {\n throw new InvalidConfigurationError(\n \"preparedImageFormationContext.fingerprint must be present.\"\n );\n }\n const supplied =\n requireRecord(\n record.fingerprint,\n \"preparedImageFormationContext.fingerprint\", [\"algorithm\", \"value\"]\n );\n if (\n supplied.algorithm !==\n \"fnv1a-32-non-cryptographic\" ||\n supplied.value !==\n parsed.fingerprint.value\n ) {\n throw new InvalidConfigurationError(\n \"preparedImageFormationContext fingerprint does not match its parsed content.\"\n );\n }\n return parsed;\n}\n\n/**\n * Parses, copies and freezes the declarations that change rarely (equipment, scene, renderer and\n * fidelity), so later immutable captures can reuse them. This prepares state; it does not render a\n * frame.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param input - PrepareImageFormationContextInput. See that type for coordinates, units and profile binding.\n * @returns PreparedImageFormationContext. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function prepareImageFormationContext(\n input:\n PrepareImageFormationContextInput\n): PreparedImageFormationContext {\n requireInputKeys(input, \"prepareImageFormationContext\", [\"contextId\", \"sceneId\", \"sceneRadianceProviderProfileId\", \"outputGeometryProfileId\", \"equipmentCapabilities\", \"opticalBridgeProfile\", \"renderer\", \"fidelity\", \"version\", \"fingerprint\"]);\n validateEquipmentCapabilities(\n input.equipmentCapabilities\n );\n const renderer =\n parseRendererCapabilityDeclaration(\n input.renderer\n );\n const fidelity =\n parseImageFormationFidelityProfile(\n input.fidelity\n );\n const opticalBridgeProfile =\n input.opticalBridgeProfile ===\n undefined\n ? undefined\n : parseSceneToSensorIrradianceProfile(\n input\n .opticalBridgeProfile\n );\n\n if (\n opticalBridgeProfile !==\n undefined &&\n opticalBridgeProfile\n .lensProfileId !==\n input\n .equipmentCapabilities\n .lensProfile.profileId\n ) {\n throw new InvalidConfigurationError(\n \"opticalBridgeProfile.lensProfileId must match equipmentCapabilities.lensProfile.profileId.\"\n );\n }\n\n const core = {\n version:\n PREPARED_IMAGE_FORMATION_CONTEXT_VERSION,\n contextId:\n requireNonEmptyString(\n input.contextId,\n \"contextId\"\n ),\n sceneId:\n requireNonEmptyString(\n input.sceneId,\n \"sceneId\"\n ),\n sceneRadianceProviderProfileId:\n requireNonEmptyString(\n input\n .sceneRadianceProviderProfileId,\n \"sceneRadianceProviderProfileId\"\n ),\n outputGeometryProfileId:\n requireNonEmptyString(\n input.outputGeometryProfileId,\n \"outputGeometryProfileId\"\n ),\n equipmentCapabilities:\n cloneJson(\n input\n .equipmentCapabilities\n ),\n ...(opticalBridgeProfile ===\n undefined\n ? {}\n : {\n opticalBridgeProfile:\n cloneJson(\n opticalBridgeProfile\n )\n }),\n renderer,\n fidelity\n };\n\n const prepared:\n PreparedImageFormationContext = {\n ...core,\n fingerprint: {\n algorithm:\n \"fnv1a-32-non-cryptographic\",\n value:\n fingerprintValue(core)\n }\n };\n\n return deepFreeze(\n cloneJson(prepared)\n );\n}\n\n/**\n * Rejects unknown fields in the optical-bridge focus and field-throughput declarations carried by a\n * physical scene sample. Values that are not objects are left to the optical bridge, which reports\n * them; the vignetting `result` is an engine result and is checked where it is used.\n */\nfunction rejectUnknownOpticalBridgeFields(focus: unknown, fieldThroughput: unknown, path: string): void {\n if (isPlainObjectValue(focus)) {\n rejectUnknownVariantFields(focus, \"kind\", {\n \"infinity-focus\": [\"kind\"],\n \"ideal-symmetric-thin-lens\": [\"kind\", \"objectDistanceM\", \"pupilMagnificationAssumption\"],\n \"supplied-working-f-number\": [\"kind\", \"focus\", \"workingFNumber\", \"basis\"]\n }, path + \".focus\");\n if (focus.kind === \"supplied-working-f-number\") {\n if (isPlainObjectValue(focus.focus)) {\n rejectUnknownVariantFields(focus.focus, \"kind\", { infinity: [\"kind\"], finite: [\"kind\", \"objectDistanceM\"] }, path + \".focus.focus\");\n }\n if (isPlainObjectValue(focus.workingFNumber)) {\n rejectUnknownFields(focus.workingFNumber, [\"value\", \"evidence\"], path + \".focus.workingFNumber\");\n }\n }\n }\n if (isPlainObjectValue(fieldThroughput)) {\n rejectUnknownVariantFields(fieldThroughput, \"kind\", {\n unity: [\"kind\"],\n \"illumination-vignetting-result\": [\"kind\", \"result\"]\n }, path + \".fieldThroughput\");\n }\n}\n\nfunction isPlainObjectValue(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction validatePhysicalSceneSample(\n sample:\n ProductionPhysicalSceneSample,\n sceneTimeSecondsFromExposureStart:\n number\n): ProductionPhysicalSceneSample {\n requireRecord(sample, \"physicalSceneSample\", [\"sceneRadianceRequest\", \"sceneRadianceResult\", \"focus\", \"imagePointMm\",\n \"fieldThroughput\", \"frontOfLensFilters\"]);\n rejectUnknownOpticalBridgeFields(sample.focus, sample.fieldThroughput, \"physicalSceneSample\");\n const request =\n parseSceneRadianceEvaluationRequest(\n sample.sceneRadianceRequest\n );\n const result =\n parseSceneRadianceEvaluationResult(\n sample.sceneRadianceResult\n );\n\n if (\n request\n .timeSecondsFromExposureStart !==\n sceneTimeSecondsFromExposureStart\n ) {\n throw new InvalidConfigurationError(\n \"physicalSceneSample.sceneRadianceRequest.timeSecondsFromExposureStart must equal the capture snapshot scene time.\"\n );\n }\n\n const imagePoint =\n requireRecord(\n sample.imagePointMm,\n \"physicalSceneSample.imagePointMm\", [\"x\", \"y\"]\n );\n\n return cloneJson({\n sceneRadianceRequest:\n request,\n sceneRadianceResult:\n result,\n focus: sample.focus,\n imagePointMm: {\n x:\n requireFinite(\n imagePoint.x,\n \"physicalSceneSample.imagePointMm.x\"\n ),\n y:\n requireFinite(\n imagePoint.y,\n \"physicalSceneSample.imagePointMm.y\"\n )\n },\n fieldThroughput:\n sample.fieldThroughput,\n ...(sample.frontOfLensFilters ===\n undefined\n ? {}\n : {\n frontOfLensFilters:\n sample.frontOfLensFilters.map(\n (profile) =>\n parseFrontOfLensFilterProfile(\n profile\n )\n )\n })\n });\n}\n\nconst CAPTURE_ORIENTATIONS =\n new Set<CaptureOrientation>([\n \"landscape\",\n \"portrait-clockwise\",\n \"landscape-inverted\",\n \"portrait-counter-clockwise\"\n ]);\n\nfunction validateTemporalCaptureInput(\n input:\n ProductionTemporalCaptureInput,\n shutterSeconds: number\n): ProductionTemporalCaptureInput {\n requireRecord(input, \"temporalCapture\", [\"exposureWindowInput\", \"imagingArea\", \"orientation\", \"readout\",\n \"readoutExposureLinkage\", \"rotation\"]);\n requireRecord(input.imagingArea, \"temporalCapture.imagingArea\", [\"widthMm\", \"heightMm\"]);\n if (isPlainObjectValue(input.readoutExposureLinkage)) {\n rejectUnknownFields(input.readoutExposureLinkage, [\"kind\", \"evidence\"], \"temporalCapture.readoutExposureLinkage\");\n }\n if (input.rotation !== undefined) {\n requireRecord(input.rotation, \"temporalCapture.rotation\", [\"angularVelocityRadPerSec\", \"focusDistanceM\", \"temporalSampleCount\"]);\n requireRecord(input.rotation.angularVelocityRadPerSec, \"temporalCapture.rotation.angularVelocityRadPerSec\", [\"pitch\", \"yaw\", \"roll\"]);\n }\n const exposureWindows =\n calculateCaptureExposureWindows(\n input.exposureWindowInput\n ).value;\n\n if (\n !settingEquals(\n exposureWindows\n .nominalExposureDurationSeconds\n .value,\n shutterSeconds\n )\n ) {\n throw new InvalidConfigurationError(\n \"temporalCapture.exposureWindowInput.nominalExposureDurationSeconds must match exposure.shutterSeconds.\"\n );\n }\n\n requirePositiveFinite(\n input.imagingArea.widthMm,\n \"temporalCapture.imagingArea.widthMm\"\n );\n requirePositiveFinite(\n input.imagingArea.heightMm,\n \"temporalCapture.imagingArea.heightMm\"\n );\n\n if (\n !CAPTURE_ORIENTATIONS.has(\n input.orientation\n )\n ) {\n throw new InvalidConfigurationError(\n \"temporalCapture.orientation is invalid.\"\n );\n }\n\n if (input.readout !== undefined) {\n calculateSensorReadoutTiming({\n nativeRaster:\n input.exposureWindowInput\n .nativeRaster,\n ...(input.exposureWindowInput\n .activeCaptureRect ===\n undefined\n ? {}\n : {\n activeCaptureRect:\n input\n .exposureWindowInput\n .activeCaptureRect\n }),\n shutterMechanism:\n input.exposureWindowInput\n .shutterMechanism,\n readout: input.readout,\n ...(input.exposureWindowInput\n .samplePointsNative ===\n undefined\n ? {}\n : {\n samplePointsNative:\n input\n .exposureWindowInput\n .samplePointsNative\n })\n });\n }\n\n if (input.readoutExposureLinkage !== undefined) {\n const linkage = input.readoutExposureLinkage;\n if (\n typeof linkage !== \"object\" ||\n linkage === null ||\n linkage.kind !== \"electronic-rolling-shutter-line-reset-read\"\n ) {\n throw new InvalidConfigurationError(\n \"temporalCapture.readoutExposureLinkage.kind is invalid.\"\n );\n }\n parseEvidenceList(\n linkage.evidence,\n \"temporalCapture.readoutExposureLinkage.evidence\"\n );\n if (\n input.readout === undefined ||\n !isElectronicRollingShutterExposureSchedule(\n input.exposureWindowInput,\n input.readout\n )\n ) {\n throw new InvalidConfigurationError(\n \"temporalCapture electronic rolling-shutter linkage requires a rolling readout and the exposure schedule derived from it.\"\n );\n }\n }\n\n if (input.rotation !== undefined) {\n const sampleCount =\n input.rotation\n .temporalSampleCount;\n if (\n !Number.isSafeInteger(\n sampleCount\n ) ||\n sampleCount <= 0\n ) {\n throw new InvalidConfigurationError(\n \"temporalCapture.rotation.temporalSampleCount must be a positive safe integer.\"\n );\n }\n\n for (const [axis, value] of [\n [\n \"pitch\",\n input.rotation\n .angularVelocityRadPerSec\n .pitch\n ],\n [\n \"yaw\",\n input.rotation\n .angularVelocityRadPerSec\n .yaw\n ],\n [\n \"roll\",\n input.rotation\n .angularVelocityRadPerSec\n .roll\n ]\n ] as const) {\n requireFinite(\n value,\n \"temporalCapture.rotation.angularVelocityRadPerSec.\" +\n axis\n );\n }\n\n if (\n input.rotation\n .focusDistanceM !==\n undefined\n ) {\n requirePositiveFinite(\n input.rotation\n .focusDistanceM,\n \"temporalCapture.rotation.focusDistanceM\"\n );\n }\n\n if (\n !Array.isArray(\n input.exposureWindowInput\n .samplePointsNative\n ) ||\n input.exposureWindowInput\n .samplePointsNative\n .length === 0\n ) {\n throw new InvalidConfigurationError(\n \"temporalCapture.rotation requires non-empty exposureWindowInput.samplePointsNative.\"\n );\n }\n }\n\n return cloneJson(input);\n}\n\nconst RELEASE_TIMING_CONSTRAINTS =\n new Set<ReleaseTimingConstraint>([\n \"requested-cadence\",\n \"body-maximum-cadence\",\n \"exposure-duration\",\n \"minimum-inter-frame-gap\"\n ]);\n\nfunction validateReleaseAutomationState(\n value: unknown,\n path: string\n): ResolvedReleaseFrame[\"automation\"][\"ae\"] {\n if (\n value !== \"manual\" &&\n value !== \"locked\" &&\n value !== \"continuous\"\n ) {\n throw new InvalidConfigurationError(\n path + \" is invalid.\"\n );\n }\n return value;\n}\n\nfunction validateProductionReleaseFrameBinding(\n binding:\n ProductionReleaseFrameBinding,\n releaseFrameId: string,\n exposure: {\n aperture: number;\n shutterSeconds: number;\n iso: number;\n },\n stochasticSeedUint32: number\n): ProductionReleaseFrameBinding {\n requireRecord(binding, \"releaseFrameBinding\", [\"releaseSequenceVersion\", \"sequenceId\", \"releaseFrameId\", \"frameIndex\", \"exposure\",\n \"stochasticSeedUint32\", \"exposureStartTimeSeconds\", \"exposureEndTimeSeconds\", \"sceneTimeSecondsFromSequenceStart\",\n \"startIntervalFromPreviousSeconds\", \"timingConstraints\", \"focus\", \"automation\", \"whiteBalanceStateId\"]);\n if (\n binding.releaseSequenceVersion !==\n RELEASE_SEQUENCE_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'releaseFrameBinding.releaseSequenceVersion must be \"' +\n RELEASE_SEQUENCE_VERSION +\n '\".'\n );\n }\n\n const frameIndex =\n binding.frameIndex;\n if (\n !Number.isSafeInteger(frameIndex) ||\n frameIndex < 0\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.frameIndex must be a non-negative safe integer.\"\n );\n }\n\n const start =\n requireFinite(\n binding.exposureStartTimeSeconds,\n \"releaseFrameBinding.exposureStartTimeSeconds\"\n );\n const end =\n requireFinite(\n binding.exposureEndTimeSeconds,\n \"releaseFrameBinding.exposureEndTimeSeconds\"\n );\n if (end <= start) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding exposure end must be after exposure start.\"\n );\n }\n if (\n !settingEquals(\n end - start,\n exposure.shutterSeconds\n )\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding exposure duration must match exposure.shutterSeconds.\"\n );\n }\n\n const sceneTime =\n requireFinite(\n binding.sceneTimeSecondsFromSequenceStart,\n \"releaseFrameBinding.sceneTimeSecondsFromSequenceStart\"\n );\n if (sceneTime < 0) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.sceneTimeSecondsFromSequenceStart must be greater than or equal to zero.\"\n );\n }\n\n let interval:\n number | null = null;\n if (\n binding.startIntervalFromPreviousSeconds !==\n null\n ) {\n interval =\n requirePositiveFinite(\n binding.startIntervalFromPreviousSeconds,\n \"releaseFrameBinding.startIntervalFromPreviousSeconds\"\n );\n }\n if (\n frameIndex === 0 &&\n interval !== null\n ) {\n throw new InvalidConfigurationError(\n \"The first release frame must not declare a previous-frame interval.\"\n );\n }\n if (\n frameIndex > 0 &&\n interval === null\n ) {\n throw new InvalidConfigurationError(\n \"A non-first release frame must declare its previous-frame interval.\"\n );\n }\n\n if (\n !Array.isArray(\n binding.timingConstraints\n )\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.timingConstraints must be an array.\"\n );\n }\n const timingConstraints =\n binding.timingConstraints.map(\n (constraint, index) => {\n if (\n !RELEASE_TIMING_CONSTRAINTS.has(\n constraint\n )\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.timingConstraints[\" +\n index +\n \"] is invalid.\"\n );\n }\n return constraint;\n }\n );\n if (\n new Set(timingConstraints).size !==\n timingConstraints.length\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.timingConstraints must not contain duplicates.\"\n );\n }\n\n const automationRecord =\n requireRecord(\n binding.automation,\n \"releaseFrameBinding.automation\", [\"ae\", \"af\", \"awb\"]\n );\n const automation = {\n ae:\n validateReleaseAutomationState(\n automationRecord.ae,\n \"releaseFrameBinding.automation.ae\"\n ),\n af:\n validateReleaseAutomationState(\n automationRecord.af,\n \"releaseFrameBinding.automation.af\"\n ),\n awb:\n validateReleaseAutomationState(\n automationRecord.awb,\n \"releaseFrameBinding.automation.awb\"\n )\n };\n\n const whiteBalanceStateId =\n binding.whiteBalanceStateId ===\n undefined\n ? undefined\n : requireNonEmptyString(\n binding.whiteBalanceStateId,\n \"releaseFrameBinding.whiteBalanceStateId\"\n );\n\n const exposureRecord =\n requireRecord(\n binding.exposure,\n \"releaseFrameBinding.exposure\", [\"aperture\", \"shutterSeconds\", \"iso\"]\n );\n const parsedExposure = {\n aperture:\n requirePositiveFinite(\n exposureRecord.aperture,\n \"releaseFrameBinding.exposure.aperture\"\n ),\n shutterSeconds:\n requirePositiveFinite(\n exposureRecord.shutterSeconds,\n \"releaseFrameBinding.exposure.shutterSeconds\"\n ),\n iso:\n requirePositiveFinite(\n exposureRecord.iso,\n \"releaseFrameBinding.exposure.iso\"\n )\n };\n const parsedSeed =\n requireUint32(\n binding.stochasticSeedUint32,\n \"releaseFrameBinding.stochasticSeedUint32\"\n );\n\n if (\n !settingEquals(\n parsedExposure.aperture,\n exposure.aperture\n ) ||\n !settingEquals(\n parsedExposure.shutterSeconds,\n exposure.shutterSeconds\n ) ||\n !settingEquals(\n parsedExposure.iso,\n exposure.iso\n )\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.exposure must match the committed capture exposure.\"\n );\n }\n if (\n parsedSeed !==\n stochasticSeedUint32\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.stochasticSeedUint32 must match the committed capture seed.\"\n );\n }\n\n const parsed: ProductionReleaseFrameBinding = {\n releaseSequenceVersion:\n RELEASE_SEQUENCE_VERSION,\n sequenceId:\n requireNonEmptyString(\n binding.sequenceId,\n \"releaseFrameBinding.sequenceId\"\n ),\n releaseFrameId:\n requireNonEmptyString(\n binding.releaseFrameId,\n \"releaseFrameBinding.releaseFrameId\"\n ),\n frameIndex,\n exposure:\n parsedExposure,\n stochasticSeedUint32:\n parsedSeed,\n exposureStartTimeSeconds:\n start,\n exposureEndTimeSeconds:\n end,\n sceneTimeSecondsFromSequenceStart:\n sceneTime,\n startIntervalFromPreviousSeconds:\n interval,\n timingConstraints,\n focus:\n parseFocusPlane(\n binding.focus\n ),\n automation,\n ...(whiteBalanceStateId ===\n undefined\n ? {}\n : {\n whiteBalanceStateId\n })\n };\n\n if (\n parsed.releaseFrameId !==\n releaseFrameId\n ) {\n throw new InvalidConfigurationError(\n \"releaseFrameBinding.releaseFrameId must match releaseFrameId.\"\n );\n }\n\n return parsed;\n}\n\nfunction releaseFocusMatchesOpticalFocus(\n releaseFocus: FocusPlane,\n opticalFocus:\n OpticalBridgeFocusContext\n): boolean {\n if (\n releaseFocus.kind ===\n \"infinity\"\n ) {\n return (\n opticalFocus.kind ===\n \"infinity-focus\" ||\n (\n opticalFocus.kind ===\n \"supplied-working-f-number\" &&\n opticalFocus.focus.kind ===\n \"infinity\"\n )\n );\n }\n\n if (\n opticalFocus.kind ===\n \"ideal-symmetric-thin-lens\"\n ) {\n return settingEquals(\n opticalFocus.objectDistanceM,\n releaseFocus.distanceM\n );\n }\n if (\n opticalFocus.kind ===\n \"supplied-working-f-number\" &&\n opticalFocus.focus.kind ===\n \"finite\"\n ) {\n return settingEquals(\n opticalFocus.focus.objectDistanceM,\n releaseFocus.distanceM\n );\n }\n return false;\n}\n\nfunction validateCommittedWhiteBalanceState(\n state:\n ResolvedWhiteBalanceState | undefined,\n binding:\n ProductionReleaseFrameBinding | undefined\n): ResolvedWhiteBalanceState | undefined {\n const parsed =\n state === undefined\n ? undefined\n : parseResolvedWhiteBalanceState(\n state\n );\n\n if (binding === undefined) {\n return parsed;\n }\n\n if (\n binding.whiteBalanceStateId ===\n undefined\n ) {\n if (parsed !== undefined) {\n throw new InvalidConfigurationError(\n \"A release frame without whiteBalanceStateId must not receive a committed whiteBalanceState.\"\n );\n }\n return undefined;\n }\n\n if (parsed === undefined) {\n throw new InvalidConfigurationError(\n \"A release frame with whiteBalanceStateId requires the committed resolved white-balance state.\"\n );\n }\n if (\n parsed.stateId !==\n binding.whiteBalanceStateId\n ) {\n throw new InvalidConfigurationError(\n \"whiteBalanceState.stateId must match releaseFrameBinding.whiteBalanceStateId.\"\n );\n }\n if (\n binding.automation.awb ===\n \"locked\" &&\n !parsed.locked\n ) {\n throw new InvalidConfigurationError(\n \"A release frame with locked AWB requires a locked committed white-balance state.\"\n );\n }\n\n return parsed;\n}\n\n/**\n * Records, by value, the resolved capture settings, the scene time and identity, the random seed,\n * and optional timing, focus and white-balance state. Later changes in the application cannot alter\n * this captured event.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param input - CreateProductionCaptureSnapshotInput. See that type for coordinates, units and profile binding.\n * @returns ProductionCaptureSnapshot. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function createProductionCaptureSnapshot(\n input:\n CreateProductionCaptureSnapshotInput\n): ProductionCaptureSnapshot {\n requireInputKeys(input, \"createProductionCaptureSnapshot\", [\"captureId\", \"releaseFrameId\", \"sceneStateId\", \"sceneTimeSecondsFromExposureStart\", \"outputStateId\", \"exposure\", \"stochasticSeedUint32\", \"releaseFrameBinding\", \"whiteBalanceState\", \"physicalSceneSample\", \"temporalCapture\", \"version\", \"fingerprint\"]);\n const sceneTime =\n requireFinite(\n input\n .sceneTimeSecondsFromExposureStart,\n \"sceneTimeSecondsFromExposureStart\"\n );\n if (sceneTime < 0) {\n throw new InvalidConfigurationError(\n \"sceneTimeSecondsFromExposureStart must be greater than or equal to zero.\"\n );\n }\n\n const releaseFrameId =\n requireNonEmptyString(\n input.releaseFrameId,\n \"releaseFrameId\"\n );\n requireRecord(input.exposure, \"exposure\", null);\n const exposure = {\n aperture:\n requirePositiveFinite(\n input.exposure.aperture,\n \"exposure.aperture\"\n ),\n shutterSeconds:\n requirePositiveFinite(\n input.exposure\n .shutterSeconds,\n \"exposure.shutterSeconds\"\n ),\n iso:\n requirePositiveFinite(\n input.exposure.iso,\n \"exposure.iso\"\n )\n };\n\n const releaseFrameBinding =\n input.releaseFrameBinding ===\n undefined\n ? undefined\n : validateProductionReleaseFrameBinding(\n input.releaseFrameBinding,\n releaseFrameId,\n exposure,\n requireUint32(\n input.stochasticSeedUint32,\n \"stochasticSeedUint32\"\n )\n );\n\n const whiteBalanceState =\n validateCommittedWhiteBalanceState(\n input.whiteBalanceState,\n releaseFrameBinding\n );\n\n const physicalSceneSample =\n input.physicalSceneSample ===\n undefined\n ? undefined\n : validatePhysicalSceneSample(\n input.physicalSceneSample,\n sceneTime\n );\n\n if (\n releaseFrameBinding !==\n undefined &&\n physicalSceneSample !==\n undefined &&\n !releaseFocusMatchesOpticalFocus(\n releaseFrameBinding.focus,\n physicalSceneSample.focus\n )\n ) {\n throw new InvalidConfigurationError(\n \"physicalSceneSample.focus must match the committed release-frame focus.\"\n );\n }\n\n const core = {\n version:\n PRODUCTION_CAPTURE_SNAPSHOT_VERSION,\n captureId:\n requireNonEmptyString(\n input.captureId,\n \"captureId\"\n ),\n releaseFrameId,\n sceneStateId:\n requireNonEmptyString(\n input.sceneStateId,\n \"sceneStateId\"\n ),\n sceneTimeSecondsFromExposureStart:\n sceneTime,\n outputStateId:\n requireNonEmptyString(\n input.outputStateId,\n \"outputStateId\"\n ),\n exposure,\n stochasticSeedUint32:\n requireUint32(\n input.stochasticSeedUint32,\n \"stochasticSeedUint32\"\n ),\n ...(releaseFrameBinding ===\n undefined\n ? {}\n : {\n releaseFrameBinding\n }),\n ...(whiteBalanceState ===\n undefined\n ? {}\n : {\n whiteBalanceState\n }),\n ...(input.temporalCapture ===\n undefined\n ? {}\n : {\n temporalCapture:\n validateTemporalCaptureInput(\n input.temporalCapture,\n exposure.shutterSeconds\n )\n }),\n ...(physicalSceneSample ===\n undefined\n ? {}\n : {\n physicalSceneSample\n })\n };\n\n const snapshot:\n ProductionCaptureSnapshot = {\n ...core,\n fingerprint: {\n algorithm:\n \"fnv1a-32-non-cryptographic\",\n value:\n fingerprintValue(core)\n }\n };\n\n return deepFreeze(\n cloneJson(snapshot)\n );\n}\n\n/**\n * Creates one immutable production snapshot directly from a committed release\n * frame (ResolvedReleaseFrame). The release frame supplies the exposure, focus,\n * automation and seed. The caller supplies only the scene and output state that\n * the release sequence does not.\n */\nexport function createProductionCaptureSnapshotFromReleaseFrame(\n input:\n CreateProductionCaptureSnapshotFromReleaseFrameInput\n): ProductionCaptureSnapshot {\n requireInputKeys(input, \"createProductionCaptureSnapshotFromReleaseFrame\", [\"captureId\", \"sceneStateId\", \"sceneTimeSecondsFromExposureStart\", \"outputStateId\", \"releaseFrame\", \"whiteBalanceState\", \"physicalSceneSample\", \"temporalCapture\"]);\n const frame =\n input.releaseFrame;\n\n requireInputObject(frame, \"frame input\");\n const releaseFrameBinding:\n ProductionReleaseFrameBinding = {\n releaseSequenceVersion:\n RELEASE_SEQUENCE_VERSION,\n sequenceId:\n requireNonEmptyString(\n frame.sequenceId,\n \"releaseFrame.sequenceId\"\n ),\n releaseFrameId:\n requireNonEmptyString(\n frame.releaseFrameId,\n \"releaseFrame.releaseFrameId\"\n ),\n frameIndex:\n frame.frameIndex,\n exposure: {\n ...frame.exposure\n },\n stochasticSeedUint32:\n frame.stochasticSeedUint32,\n exposureStartTimeSeconds:\n frame.exposureStartTimeSeconds,\n exposureEndTimeSeconds:\n frame.exposureEndTimeSeconds,\n sceneTimeSecondsFromSequenceStart:\n frame.sceneTimeSecondsFromSequenceStart,\n startIntervalFromPreviousSeconds:\n frame.startIntervalFromPreviousSeconds,\n timingConstraints: [\n ...frame.timingConstraints\n ],\n focus:\n parseFocusPlane(\n frame.focus\n ),\n automation: {\n ...frame.automation\n },\n ...(frame.whiteBalanceStateId ===\n undefined\n ? {}\n : {\n whiteBalanceStateId:\n frame.whiteBalanceStateId\n })\n };\n\n return createProductionCaptureSnapshot({\n captureId:\n input.captureId,\n releaseFrameId:\n frame.releaseFrameId,\n sceneStateId:\n input.sceneStateId,\n sceneTimeSecondsFromExposureStart:\n input\n .sceneTimeSecondsFromExposureStart,\n outputStateId:\n input.outputStateId,\n exposure: {\n ...frame.exposure\n },\n stochasticSeedUint32:\n frame.stochasticSeedUint32,\n releaseFrameBinding,\n ...(input.whiteBalanceState ===\n undefined\n ? {}\n : {\n whiteBalanceState:\n input.whiteBalanceState\n }),\n ...(input.physicalSceneSample ===\n undefined\n ? {}\n : {\n physicalSceneSample:\n input.physicalSceneSample\n }),\n ...(input.temporalCapture ===\n undefined\n ? {}\n : {\n temporalCapture:\n input.temporalCapture\n })\n });\n}\n\n/**\n * Validates an untrusted declaration and returns the normalized typed contract. Unknown enum values,\n * missing required fields and incompatible scientific data are rejected here.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param value - unknown. Untrusted input; TypeScript types alone are not validation.\n * @returns ProductionCaptureSnapshot. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function parseProductionCaptureSnapshot(\n value: unknown\n): ProductionCaptureSnapshot {\n const record =\n requireRecord(\n value,\n \"productionCaptureSnapshot\", [\"version\", \"captureId\", \"releaseFrameId\", \"sceneStateId\", \"sceneTimeSecondsFromExposureStart\", \"outputStateId\", \"exposure\", \"stochasticSeedUint32\", \"releaseFrameBinding\", \"whiteBalanceState\", \"physicalSceneSample\", \"temporalCapture\", \"fingerprint\"]\n );\n if (\n record.version !==\n PRODUCTION_CAPTURE_SNAPSHOT_VERSION\n ) {\n throw new InvalidConfigurationError(\n 'productionCaptureSnapshot.version must be \"' +\n PRODUCTION_CAPTURE_SNAPSHOT_VERSION +\n '\".'\n );\n }\n requireRecord(record.exposure, \"productionCaptureSnapshot.exposure\", [\"aperture\", \"shutterSeconds\", \"iso\"]);\n const parsed =\n createProductionCaptureSnapshot({\n captureId:\n record.captureId as string,\n releaseFrameId:\n record.releaseFrameId as string,\n sceneStateId:\n record.sceneStateId as string,\n sceneTimeSecondsFromExposureStart:\n record\n .sceneTimeSecondsFromExposureStart as number,\n outputStateId:\n record.outputStateId as string,\n exposure:\n record.exposure as {\n aperture: number;\n shutterSeconds: number;\n iso: number;\n },\n stochasticSeedUint32:\n record\n .stochasticSeedUint32 as number,\n ...(record\n .releaseFrameBinding ===\n undefined\n ? {}\n : {\n releaseFrameBinding:\n record\n .releaseFrameBinding as ProductionReleaseFrameBinding\n }),\n ...(record\n .whiteBalanceState ===\n undefined\n ? {}\n : {\n whiteBalanceState:\n record\n .whiteBalanceState as ResolvedWhiteBalanceState\n }),\n ...(record\n .physicalSceneSample ===\n undefined\n ? {}\n : {\n physicalSceneSample:\n record\n .physicalSceneSample as ProductionPhysicalSceneSample\n }),\n ...(record.temporalCapture ===\n undefined\n ? {}\n : {\n temporalCapture:\n record\n .temporalCapture as ProductionTemporalCaptureInput\n })\n });\n\n const supplied =\n requireRecord(\n record.fingerprint,\n \"productionCaptureSnapshot.fingerprint\", [\"algorithm\", \"value\"]\n );\n if (\n supplied.algorithm !==\n \"fnv1a-32-non-cryptographic\" ||\n supplied.value !==\n parsed.fingerprint.value\n ) {\n throw new InvalidConfigurationError(\n \"productionCaptureSnapshot fingerprint does not match its parsed content.\"\n );\n }\n return parsed;\n}\n\n/**\n * Adds the hard upstream dependencies of each requested stage, as the engine\n * contract defines them. Shared or coupled effects stay separate from the\n * serialization order. Adding a dependency does not mean it runs: deriveStagePlan\n * still checks the declared inputs, renderer capabilities and scientific support\n * for every added stage.\n */\nfunction expandRequiredStages(\n fidelity:\n ImageFormationFidelityProfile\n): ReadonlySet<ImageFormationStageId> {\n const contract =\n getImageFormationContract();\n const byId =\n new Map(\n contract.stages.map(\n (stage) => [\n stage.id,\n stage\n ] as const\n )\n );\n const effects =\n new Map(\n contract.effectPlacements.map(\n (effect) => [\n effect.id,\n effect\n ] as const\n )\n );\n\n const required =\n new Set<ImageFormationStageId>();\n\n const addStage = (\n stageId:\n ImageFormationStageId\n ): void => {\n if (required.has(stageId)) {\n return;\n }\n required.add(stageId);\n const stage =\n byId.get(stageId);\n if (stage === undefined) {\n throw new InvalidConfigurationError(\n \"Image-formation contract is missing stage \" +\n stageId +\n \".\"\n );\n }\n for (\n const upstream of\n stage.requiredUpstreamStages\n ) {\n addStage(upstream);\n }\n };\n\n for (\n const stageId of\n fidelity.requiredStages\n ) {\n addStage(stageId);\n }\n\n for (\n const requiredEffect of\n fidelity.requiredEffects\n ) {\n const placement =\n effects.get(\n requiredEffect.effectId\n );\n if (\n placement === undefined\n ) {\n throw new InvalidConfigurationError(\n \"Image-formation contract is missing effect \" +\n requiredEffect.effectId +\n \".\"\n );\n }\n addStage(\n placement.primaryStage\n );\n for (\n const coupled of\n placement.coupledStages\n ) {\n addStage(coupled);\n }\n }\n\n return required;\n}\n\nfunction validateSnapshotAgainstContext(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot\n): void {\n if (\n prepared.outputGeometryProfileId !==\n snapshot.outputStateId\n ) {\n throw new InvalidScientificInputError(\n \"captureSnapshot.outputStateId must match the prepared outputGeometryProfileId in plan schema \" +\n PRODUCTION_IMAGE_FORMATION_PLAN_VERSION +\n \".\"\n );\n }\n\n validateSetting(\n snapshot.exposure.aperture,\n prepared\n .equipmentCapabilities\n .aperture\n .widestAvailableFNumber,\n prepared\n .equipmentCapabilities\n .aperture\n .narrowestAvailableFNumber,\n prepared\n .equipmentCapabilities\n .aperture.settingGrid,\n \"captureSnapshot.exposure.aperture\"\n );\n validateSetting(\n snapshot.exposure\n .shutterSeconds,\n prepared\n .equipmentCapabilities\n .shutter.minimumSeconds,\n prepared\n .equipmentCapabilities\n .shutter.maximumSeconds,\n prepared\n .equipmentCapabilities\n .shutter.settingGrid,\n \"captureSnapshot.exposure.shutterSeconds\"\n );\n validateSetting(\n snapshot.exposure.iso,\n prepared\n .equipmentCapabilities\n .iso.minimum,\n prepared\n .equipmentCapabilities\n .iso.maximum,\n prepared\n .equipmentCapabilities\n .iso.settingGrid,\n \"captureSnapshot.exposure.iso\"\n );\n\n const sample =\n snapshot\n .physicalSceneSample;\n if (sample !== undefined) {\n if (\n sample.sceneRadianceRequest\n .sceneId !==\n prepared.sceneId ||\n sample.sceneRadianceResult\n .sceneId !==\n prepared.sceneId\n ) {\n throw new InvalidScientificInputError(\n \"Physical scene sample sceneId must match the prepared sceneId.\"\n );\n }\n if (\n sample.sceneRadianceRequest\n .providerProfileId !==\n prepared\n .sceneRadianceProviderProfileId ||\n sample.sceneRadianceResult\n .providerProfileId !==\n prepared\n .sceneRadianceProviderProfileId\n ) {\n throw new InvalidScientificInputError(\n \"Physical scene sample providerProfileId must match the prepared scene-radiance provider.\"\n );\n }\n }\n}\n\nfunction addBlocker(\n blockers:\n ProductionImageFormationBlocker[],\n blocker:\n ProductionImageFormationBlocker\n): void {\n if (\n !blockers.some(\n (existing) =>\n canonicalStringify(\n existing\n ) ===\n canonicalStringify(\n blocker\n )\n )\n ) {\n blockers.push(blocker);\n }\n}\n\nfunction evaluateRendererRequirements(\n prepared:\n PreparedImageFormationContext,\n requiredStages:\n ReadonlySet<ImageFormationStageId>,\n blockers:\n ProductionImageFormationBlocker[]\n): void {\n const renderer =\n prepared.renderer;\n const fidelity =\n prepared.fidelity;\n\n if (\n fidelity.rendererRequirements\n .spectral ===\n \"wavelength-resolved\" &&\n renderer.spectralCapability !==\n \"wavelength-resolved\"\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-spectral-capability-insufficient\",\n message:\n \"Requested fidelity requires wavelength-resolved renderer support.\"\n });\n }\n\n if (\n fidelity.rendererRequirements\n .sensorDomainProcessing &&\n !renderer\n .sensorDomainProcessing\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-sensor-domain-processing-unavailable\",\n message:\n \"Requested fidelity requires renderer sensor-domain processing support.\"\n });\n }\n\n if (\n fidelity.rendererRequirements\n .depth === \"per-layer\" &&\n renderer.depthCapability !==\n \"per-layer\"\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-depth-capability-insufficient\",\n message:\n \"Requested fidelity requires per-layer depth capability.\"\n });\n }\n\n if (\n !renderer.inverseFieldMapping &&\n [...requiredStages].some(\n (stageId) =>\n stageId ===\n \"lens-field-pupil-evaluation\" ||\n stageId ===\n \"field-wavelength-psf\"\n )\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-inverse-field-mapping-required\",\n message:\n \"The requested lens/field plan requires inverse field mapping semantics.\"\n });\n }\n\n if (\n renderer.alphaRepresentation !==\n \"premultiplied\"\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-premultiplied-alpha-required\",\n message:\n \"The image-formation renderer contract requires premultiplied alpha.\"\n });\n }\n\n if (\n !renderer\n .preservesDepthOrderAcrossWarps\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-depth-order-preservation-required\",\n message:\n \"The image-formation renderer contract requires depth-order preservation across warps.\"\n });\n }\n}\n\nfunction requestedEffectMap(\n fidelity:\n ImageFormationFidelityProfile\n): ReadonlyMap<\n ImageFormationEffectId,\n RequiredImageFormationEffect\n> {\n return new Map(\n fidelity.requiredEffects.map(\n (effect) => [\n effect.effectId,\n effect\n ] as const\n )\n );\n}\n\n/** True when a declared lens field mapping applies no distortion (absent, \"none\" or all-zero terms). */\nfunction lensDistortionIsZero(mapping: { distortion?: { kind?: unknown; profile?: { coefficients?: unknown } } } | undefined): boolean {\n const distortion = mapping?.distortion;\n if (distortion === undefined || distortion.kind === \"none\") return true;\n const coefficients = distortion.profile?.coefficients;\n return typeof coefficients === \"object\" && coefficients !== null &&\n Object.values(coefficients).every(value => value === 0);\n}\n\nfunction hasActiveUndeclaredFieldThroughput(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot\n): boolean {\n const sample =\n snapshot.physicalSceneSample;\n if (\n sample === undefined ||\n sample.fieldThroughput.kind ===\n \"unity\"\n ) {\n return false;\n }\n return !prepared.fidelity\n .requiredEffects.some(\n (effect) =>\n effect.effectId ===\n \"illumination-vignetting\"\n );\n}\n\nfunction angularVelocityIsZero(\n velocity:\n CameraAngularVelocityRadPerSec\n): boolean {\n return (\n velocity.pitch === 0 &&\n velocity.yaw === 0 &&\n velocity.roll === 0\n );\n}\n\nfunction computeTemporalResult(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot,\n requiredStages:\n ReadonlySet<ImageFormationStageId>,\n blockers:\n ProductionImageFormationBlocker[]\n): ProductionTemporalCaptureResult | undefined {\n if (\n !requiredStages.has(\n \"temporal-exposure-readout\"\n )\n ) {\n return undefined;\n }\n\n const temporal =\n snapshot.temporalCapture;\n if (temporal === undefined) {\n addBlocker(blockers, {\n code:\n \"missing-temporal-capture-input\",\n stageId:\n \"temporal-exposure-readout\",\n message:\n \"Temporal exposure/readout planning requires immutable temporal capture input.\"\n });\n return undefined;\n }\n\n const requestedEffects =\n requestedEffectMap(\n prepared.fidelity\n );\n\n if (\n requestedEffects.has(\n \"spatial-camera-rotation\"\n ) &&\n temporal.rotation === undefined\n ) {\n addBlocker(blockers, {\n code:\n \"missing-camera-rotation-model\",\n stageId:\n \"temporal-exposure-readout\",\n effectId:\n \"spatial-camera-rotation\",\n message:\n \"Requested spatial camera rotation requires an explicit capture rotation model.\"\n });\n }\n\n if (\n requestedEffects.has(\n \"rolling-readout\"\n ) &&\n temporal.readout === undefined\n ) {\n addBlocker(blockers, {\n code:\n \"missing-sensor-readout-timing\",\n stageId:\n \"temporal-exposure-readout\",\n effectId:\n \"rolling-readout\",\n message:\n \"Requested rolling-readout semantics require an explicit sensor readout declaration.\"\n });\n }\n\n const rotationRequested =\n requestedEffects.has(\n \"spatial-camera-rotation\"\n );\n\n if (\n rotationRequested &&\n temporal.rotation !== undefined\n ) {\n const rendererTemporal =\n prepared.renderer\n .temporalSampling;\n if (\n rendererTemporal.kind ===\n \"none\" ||\n rendererTemporal\n .maximumSamples <\n temporal.rotation\n .temporalSampleCount\n ) {\n addBlocker(blockers, {\n code:\n \"renderer-temporal-sampling-insufficient\",\n stageId:\n \"temporal-exposure-readout\",\n effectId:\n \"spatial-camera-rotation\",\n message:\n \"Renderer temporal-sampling capability is insufficient for the committed rotation quadrature sample count.\"\n });\n }\n }\n\n try {\n const exposureWindows =\n calculateCaptureExposureWindows(\n temporal\n .exposureWindowInput\n ).value;\n\n const sensorReadoutTiming =\n temporal.readout === undefined\n ? undefined\n : calculateSensorReadoutTiming({\n nativeRaster:\n temporal\n .exposureWindowInput\n .nativeRaster,\n ...(temporal\n .exposureWindowInput\n .activeCaptureRect ===\n undefined\n ? {}\n : {\n activeCaptureRect:\n temporal\n .exposureWindowInput\n .activeCaptureRect\n }),\n shutterMechanism:\n temporal\n .exposureWindowInput\n .shutterMechanism,\n readout:\n temporal.readout,\n ...(temporal\n .exposureWindowInput\n .samplePointsNative ===\n undefined\n ? {}\n : {\n samplePointsNative:\n temporal\n .exposureWindowInput\n .samplePointsNative\n })\n }).value;\n\n const rotationQuadrature =\n !rotationRequested ||\n temporal.rotation === undefined\n ? undefined\n : calculateCaptureRotationTemporalQuadrature({\n ...temporal\n .exposureWindowInput,\n imagingArea:\n temporal.imagingArea,\n focalLengthMm:\n prepared\n .equipmentCapabilities\n .selectedFocalLengthMm,\n ...(temporal.rotation\n .focusDistanceM ===\n undefined\n ? {}\n : {\n focusDistanceM:\n temporal.rotation\n .focusDistanceM\n }),\n angularVelocityRadPerSec:\n temporal.rotation\n .angularVelocityRadPerSec,\n orientation:\n temporal.orientation,\n temporalSampleCount:\n temporal.rotation\n .temporalSampleCount,\n samplePointsNative:\n temporal\n .exposureWindowInput\n .samplePointsNative!\n }).value;\n\n return {\n exposureWindows,\n ...(sensorReadoutTiming ===\n undefined\n ? {}\n : {\n sensorReadoutTiming\n }),\n ...(rotationQuadrature ===\n undefined\n ? {}\n : {\n rotationQuadrature\n }),\n exposureTimeReference:\n \"first-opening-boundary-phase\",\n readoutExposureSynchronization:\n temporal.readoutExposureLinkage ===\n undefined\n ? \"not-assumed\"\n : \"electronic-rolling-shutter-line-linked\",\n sensorReadoutTimingRemainsSeparate:\n true,\n temporalRadianceIntegrated:\n false\n };\n } catch (error) {\n if (\n error instanceof\n InvalidConfigurationError ||\n error instanceof\n InvalidScientificInputError\n ) {\n addBlocker(blockers, {\n code:\n \"temporal-evaluation-blocked\",\n stageId:\n \"temporal-exposure-readout\",\n message: error.message\n });\n return undefined;\n }\n throw error;\n }\n}\n\nfunction deriveEffectPlan(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot,\n temporalResult:\n ProductionTemporalCaptureResult | undefined,\n blockers:\n ProductionImageFormationBlocker[],\n environmentCapture?: ProductionEnvironmentCaptureInput\n): readonly PlannedImageFormationEffect[] {\n const contract =\n getImageFormationContract();\n const requested =\n requestedEffectMap(\n prepared.fidelity\n );\n const rendererEffects =\n new Set(\n prepared.renderer\n .supportedEffects\n );\n\n return contract\n .effectPlacements.map(\n (placement) => {\n const request =\n requested.get(\n placement.id\n );\n if (request === undefined) {\n return {\n effectId: placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state:\n \"omitted-by-fidelity\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n false,\n blockerCodes: []\n };\n }\n\n if (\n !COMPOSER_SUPPORTED_EFFECTS.has(\n placement.id\n )\n ) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"engine-effect-not-composed\",\n effectId:\n placement.id,\n message:\n \"Production plan schema \" +\n PRODUCTION_IMAGE_FORMATION_PLAN_VERSION +\n \" does not yet compose required effect \" +\n placement.id +\n \".\"\n };\n addBlocker(\n blockers,\n blocker\n );\n return {\n effectId: placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state:\n \"unsupported\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: [\n blocker.code\n ]\n };\n }\n\n if (\n !rendererEffects.has(\n placement.id\n )\n ) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"renderer-effect-unsupported\",\n effectId:\n placement.id,\n message:\n \"Renderer does not declare support for required effect \" +\n placement.id +\n \".\"\n };\n addBlocker(\n blockers,\n blocker\n );\n return {\n effectId: placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state:\n \"blocked\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: [\n blocker.code\n ]\n };\n }\n\n if (placement.id === \"geometric-distortion\") {\n // 2.0: lens distortion is applied only through an executed environment capture whose\n // sites declare a lens field mapping. The ray query applies the inverse map and area factor.\n const mapping = environmentCapture?.capture.sites[0]?.environment.lensFieldMapping;\n if (mapping === undefined) {\n const blocker: ProductionImageFormationBlocker = {\n code: \"missing-lens-field-mapping\",\n effectId: placement.id,\n message: \"Geometric-distortion planning requires an executed environment capture with an explicit lens field mapping.\"\n };\n addBlocker(blockers, blocker);\n return {\n effectId: placement.id, primaryStage: placement.primaryStage, coupledStages: [...placement.coupledStages],\n state: \"blocked\" as const, scientificStatus: \"not-applicable\" as const, requiredByFidelity: true,\n modelId: request.modelId, modelVersion: request.modelVersion, blockerCodes: [blocker.code]\n };\n }\n return {\n effectId: placement.id, primaryStage: placement.primaryStage, coupledStages: [...placement.coupledStages],\n state: lensDistortionIsZero(mapping) ? \"modeled-zero\" as const : \"active\" as const,\n scientificStatus: \"approximation\" as const, requiredByFidelity: true,\n modelId: request.modelId, modelVersion: request.modelVersion, blockerCodes: []\n };\n }\n\n if (\n placement.id ===\n \"illumination-vignetting\"\n ) {\n const environmentField = environmentCapture?.capture.sites[0]?.environment.fieldThroughput;\n const field =\n snapshot\n .physicalSceneSample\n ?.fieldThroughput;\n if (field === undefined && environmentField === undefined) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"missing-physical-scene-sample\",\n effectId:\n placement.id,\n message:\n \"Illumination-vignetting planning requires a physical scene sample with explicit field throughput.\"\n };\n addBlocker(\n blockers,\n blocker\n );\n return {\n effectId:\n placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [],\n state:\n \"blocked\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: [\n blocker.code\n ]\n };\n }\n\n const modeledZero =\n environmentField !== undefined\n ? environmentField.kind === \"unity\" || (environmentField.kind === \"radial-illumination-vignetting\" &&\n environmentField.profile?.coefficients != null && Object.values(environmentField.profile.coefficients).every(value => value === 0))\n : field!.kind === \"unity\" || field!.result.linearThroughputFactor === 1;\n return {\n effectId:\n placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [],\n state: modeledZero\n ? \"modeled-zero\"\n : \"active\",\n scientificStatus:\n \"approximation\",\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: []\n };\n }\n\n if (\n placement.id ===\n \"spatial-camera-rotation\"\n ) {\n const rotation =\n snapshot.temporalCapture\n ?.rotation;\n if (rotation === undefined) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"missing-camera-rotation-model\",\n effectId:\n placement.id,\n stageId:\n \"temporal-exposure-readout\",\n message:\n \"Spatial camera rotation requires committed rotation input.\"\n };\n addBlocker(\n blockers,\n blocker\n );\n return {\n effectId:\n placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state: \"blocked\",\n scientificStatus:\n \"not-applicable\",\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: [\n blocker.code\n ]\n };\n }\n\n const blocked =\n temporalResult\n ?.rotationQuadrature ===\n undefined &&\n !angularVelocityIsZero(\n rotation\n .angularVelocityRadPerSec\n );\n\n return {\n effectId:\n placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state: blocked\n ? \"blocked\"\n : angularVelocityIsZero(\n rotation\n .angularVelocityRadPerSec\n )\n ? \"modeled-zero\"\n : \"active\",\n scientificStatus:\n blocked\n ? \"not-applicable\"\n : \"approximation\",\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes:\n blocked\n ? blockers\n .filter(\n (blocker) =>\n blocker.effectId ===\n placement.id ||\n blocker.stageId ===\n placement\n .primaryStage\n )\n .map(\n (blocker) =>\n blocker.code\n )\n : []\n };\n }\n\n if (\n placement.id ===\n \"rolling-readout\"\n ) {\n const timing =\n temporalResult\n ?.sensorReadoutTiming;\n if (timing === undefined) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"missing-sensor-readout-timing\",\n effectId:\n placement.id,\n stageId:\n \"temporal-exposure-readout\",\n message:\n \"Rolling-readout effect requires resolved sensor readout timing.\"\n };\n addBlocker(\n blockers,\n blocker\n );\n return {\n effectId:\n placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state: \"blocked\",\n scientificStatus:\n \"not-applicable\",\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: [\n blocker.code\n ]\n };\n }\n\n const modeledZero =\n timing.readoutMode ===\n \"global\" ||\n timing\n .maximumSpatialSamplingSkewSeconds ===\n 0;\n\n return {\n effectId:\n placement.id,\n primaryStage:\n placement.primaryStage,\n coupledStages: [\n ...placement\n .coupledStages\n ],\n state: modeledZero\n ? \"modeled-zero\"\n : \"active\",\n scientificStatus:\n \"approximation\",\n requiredByFidelity:\n true,\n modelId:\n request.modelId,\n modelVersion:\n request.modelVersion,\n blockerCodes: []\n };\n }\n\n throw new InvalidConfigurationError(\n \"Unexpected composed effect \" +\n placement.id +\n \".\"\n );\n }\n );\n}\n\nfunction computePhysicalResult(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot,\n requiredStages:\n ReadonlySet<ImageFormationStageId>,\n blockers:\n ProductionImageFormationBlocker[]\n): SceneToSensorIrradianceResult | undefined {\n if (\n !requiredStages.has(\n \"lens-field-pupil-evaluation\"\n )\n ) {\n return undefined;\n }\n\n if (\n prepared.opticalBridgeProfile ===\n undefined\n ) {\n addBlocker(blockers, {\n code:\n \"missing-optical-bridge-profile\",\n stageId:\n \"lens-field-pupil-evaluation\",\n message:\n \"Physical lens-throughput planning requires a prepared scene-radiance-to-sensor-irradiance optical bridge profile.\"\n });\n return undefined;\n }\n\n const sample =\n snapshot\n .physicalSceneSample;\n if (sample === undefined) {\n addBlocker(blockers, {\n code:\n \"missing-physical-scene-sample\",\n stageId:\n \"lens-field-pupil-evaluation\",\n message:\n \"Physical lens-throughput planning requires one immutable scene-radiance/field sample.\"\n });\n return undefined;\n }\n\n if (\n hasActiveUndeclaredFieldThroughput(\n prepared,\n snapshot\n )\n ) {\n addBlocker(blockers, {\n code:\n \"undeclared-field-throughput-effect\",\n stageId:\n \"lens-field-pupil-evaluation\",\n effectId:\n \"illumination-vignetting\",\n message:\n \"A non-unity field-throughput input was supplied without requesting illumination-vignetting in the fidelity profile.\"\n });\n return undefined;\n }\n\n try {\n return calculateSceneRadianceToSensorIrradiance({\n sceneRadianceRequest:\n sample\n .sceneRadianceRequest,\n sceneRadianceResult:\n sample\n .sceneRadianceResult,\n profile:\n prepared\n .opticalBridgeProfile,\n focalLengthMm:\n prepared\n .equipmentCapabilities\n .selectedFocalLengthMm,\n nominalFNumber:\n snapshot.exposure\n .aperture,\n focus: sample.focus,\n imagePointMm:\n sample.imagePointMm,\n fieldThroughput:\n sample.fieldThroughput,\n ...(sample.frontOfLensFilters ===\n undefined\n ? {}\n : {\n frontOfLensFilters:\n sample.frontOfLensFilters\n })\n }).value;\n } catch (error) {\n if (\n error instanceof\n InvalidConfigurationError ||\n error instanceof\n InvalidScientificInputError\n ) {\n addBlocker(blockers, {\n code:\n \"physical-radiometry-evaluation-blocked\",\n stageId:\n \"lens-field-pupil-evaluation\",\n message:\n error.message\n });\n return undefined;\n }\n throw error;\n }\n}\n\nfunction deriveStagePlan(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot,\n requiredStages:\n ReadonlySet<ImageFormationStageId>,\n physicalResult:\n SceneToSensorIrradianceResult | undefined,\n temporalResult:\n ProductionTemporalCaptureResult | undefined,\n blockers:\n ProductionImageFormationBlocker[],\n processedResult?: ReturnType<typeof calculateProcessedSensorRaw>,\n environmentResult?: ReturnType<typeof simulateEnvironmentSensorRawFrame>,\n environmentRequested = false\n): readonly PlannedImageFormationStage[] {\n const contract =\n getImageFormationContract();\n const rendererStages =\n new Set(\n prepared.renderer\n .supportedStages\n );\n\n return contract.stages.map(\n (stage) => {\n if (\n !requiredStages.has(\n stage.id\n )\n ) {\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state:\n \"omitted-by-fidelity\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n false,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n blockerCodes: []\n };\n }\n\n const stageBlockers:\n ProductionImageFormationBlockerCode[] =\n [];\n\n if (environmentRequested && environmentResult === undefined) {\n return { stageId: stage.id, contractStatus: stage.status, state: \"blocked\" as const,\n scientificStatus: \"not-applicable\" as const, requiredByFidelity: true,\n requiredUpstreamStages: [...stage.requiredUpstreamStages], coupledStages: [...stage.coupledStages],\n blockerCodes: [\"environment-capture-evaluation-blocked\" as const] };\n }\n\n if (environmentResult !== undefined && !PROCESSED_OUTPUT_STAGES.has(stage.id)) {\n const supported = rendererStages.has(stage.id);\n const psfOmitted = stage.id === \"field-wavelength-psf\" &&\n environmentResult.value.sites.every(site => !site.value.psfRedistributionApplied);\n if (!supported) addBlocker(blockers, { code: \"renderer-stage-unsupported\", stageId: stage.id,\n message: \"Renderer does not declare the executed environment stage \" + stage.id + \".\" });\n return { stageId: stage.id, contractStatus: stage.status,\n state: !supported ? \"blocked\" as const : psfOmitted ? \"modeled-zero\" as const : \"active\" as const,\n scientificStatus: supported ? \"approximation\" as const : \"not-applicable\" as const,\n requiredByFidelity: true, requiredUpstreamStages: [...stage.requiredUpstreamStages],\n coupledStages: [...stage.coupledStages], modelId: \"environment-native-raw-producer\", modelVersion: \"0.1.0\",\n resultIdentity: environmentResult.value.raw.value.frame.frameId,\n blockerCodes: supported ? [] : [\"renderer-stage-unsupported\" as const] };\n }\n\n if (processedResult !== undefined && PROCESSED_OUTPUT_STAGES.has(stage.id)) {\n const supported = rendererStages.has(stage.id);\n if (!supported) addBlocker(blockers, { code:\"renderer-stage-unsupported\",stageId:stage.id,\n message:\"Renderer does not declare support for processed output stage \" + stage.id + \".\" });\n return { stageId:stage.id,contractStatus:stage.status,state:supported ? \"active\" as const : \"blocked\" as const,\n scientificStatus:supported ? \"approximation\" as const : \"not-applicable\" as const,requiredByFidelity:true,\n requiredUpstreamStages:[...stage.requiredUpstreamStages],coupledStages:[...stage.coupledStages],\n modelId:\"processed-sensor-raw-sdr\",modelVersion:PROCESSED_SENSOR_RAW_MODEL_VERSION,\n resultIdentity:processedResult.value.source.value.rawFrame.frameId,\n blockerCodes:supported ? [] : [\"renderer-stage-unsupported\" as const] };\n }\n\n if (\n !COMPOSER_SUPPORTED_STAGES.has(\n stage.id\n )\n ) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"engine-stage-not-composed\",\n stageId: stage.id,\n message:\n \"Production plan schema \" +\n PRODUCTION_IMAGE_FORMATION_PLAN_VERSION +\n \" does not yet compose required stage \" +\n stage.id +\n \".\"\n };\n addBlocker(\n blockers,\n blocker\n );\n stageBlockers.push(\n blocker.code\n );\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state:\n \"unsupported\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n blockerCodes:\n stageBlockers\n };\n }\n\n if (\n !rendererStages.has(\n stage.id\n )\n ) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"renderer-stage-unsupported\",\n stageId: stage.id,\n message:\n \"Renderer does not declare support for required stage \" +\n stage.id +\n \".\"\n };\n addBlocker(\n blockers,\n blocker\n );\n stageBlockers.push(\n blocker.code\n );\n }\n\n if (\n stage.id ===\n \"lens-field-pupil-evaluation\" &&\n physicalResult ===\n undefined\n ) {\n const relevant =\n blockers\n .filter(\n (blocker) =>\n blocker.stageId ===\n stage.id\n )\n .map(\n (blocker) =>\n blocker.code\n );\n stageBlockers.push(\n ...relevant\n );\n }\n\n if (\n stageBlockers.length > 0\n ) {\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state:\n \"blocked\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n blockerCodes: [\n ...new Set(\n stageBlockers\n )\n ]\n };\n }\n\n if (\n stage.id ===\n \"scene-ray-projection\"\n ) {\n const target =\n snapshot\n .physicalSceneSample\n ?.sceneRadianceRequest\n .target;\n const modeledZero =\n target?.kind ===\n \"environment-direction\";\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state: modeledZero\n ? \"modeled-zero\"\n : \"active\",\n scientificStatus:\n \"approximation\",\n requiredByFidelity:\n true,\n requiredUpstreamStages: [],\n coupledStages: [\n ...stage.coupledStages\n ],\n modelId:\n \"capture-bound-scene-ray-target\",\n modelVersion:\n \"1.0.0\",\n resultIdentity:\n target?.kind ??\n \"unresolved-target\",\n blockerCodes: []\n };\n }\n\n if (\n stage.id ===\n \"scene-radiance-evaluation\"\n ) {\n const sample =\n snapshot\n .physicalSceneSample;\n if (sample === undefined) {\n const blocker:\n ProductionImageFormationBlocker = {\n code:\n \"missing-physical-scene-sample\",\n stageId: stage.id,\n message:\n \"Scene-radiance stage requires one immutable scene-radiance provider request/result sample.\"\n };\n addBlocker(\n blockers,\n blocker\n );\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state:\n \"blocked\" as const,\n scientificStatus:\n \"not-applicable\" as const,\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage\n .coupledStages\n ],\n blockerCodes: [\n blocker.code\n ]\n };\n }\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state: \"active\" as const,\n scientificStatus:\n \"approximation\" as const,\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n modelId:\n \"scene-radiance-provider-result\",\n modelVersion:\n sample\n .sceneRadianceResult\n .schemaVersion,\n resultIdentity:\n sample\n .sceneRadianceResult\n .sampleId,\n blockerCodes: []\n };\n }\n\n if (\n stage.id ===\n \"lens-field-pupil-evaluation\"\n ) {\n const result =\n physicalResult!;\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state: \"active\" as const,\n scientificStatus:\n result.scientificStatus,\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n modelId:\n \"scene-radiance-to-sensor-irradiance\",\n modelVersion: \"1.0.0\",\n resultIdentity:\n result.sampleId,\n blockerCodes: []\n };\n }\n\n if (\n stage.id ===\n \"temporal-exposure-readout\"\n ) {\n if (temporalResult === undefined) {\n const relevant =\n blockers\n .filter(\n (blocker) =>\n blocker.stageId ===\n stage.id\n )\n .map(\n (blocker) =>\n blocker.code\n );\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state: \"blocked\",\n scientificStatus:\n \"not-applicable\",\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n modelId:\n \"capture-temporal-schedule\",\n modelVersion:\n \"1.0.0\",\n blockerCodes: [\n ...new Set(relevant)\n ]\n };\n }\n\n return {\n stageId: stage.id,\n contractStatus:\n stage.status,\n state: \"active\",\n scientificStatus:\n \"approximation\",\n requiredByFidelity:\n true,\n requiredUpstreamStages: [\n ...stage\n .requiredUpstreamStages\n ],\n coupledStages: [\n ...stage.coupledStages\n ],\n modelId:\n \"capture-temporal-schedule\",\n modelVersion:\n \"1.0.0\",\n resultIdentity:\n snapshot\n .fingerprint.value,\n blockerCodes: []\n };\n }\n\n throw new InvalidConfigurationError(\n \"Unexpected composed stage.\"\n );\n }\n );\n}\n\ntype ProductionUncertaintyInput =\n | SceneRadianceUncertainty\n | OpticalBridgeUncertainty\n | FrontOfLensFilterUncertainty;\n\nfunction toAssuranceUncertainty(\n uncertainty:\n ProductionUncertaintyInput\n): ScientificAssuranceComponentUncertainty {\n if (\n uncertainty.kind ===\n \"relative\"\n ) {\n return {\n kind: \"relative\",\n fraction:\n uncertainty.fraction,\n basis:\n uncertainty.basis\n };\n }\n\n return {\n kind: \"not-quantified\",\n limitation:\n uncertainty.limitation\n };\n}\n\nfunction physicalAssuranceComponents(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot,\n physicalResult:\n SceneToSensorIrradianceResult\n): readonly ScientificAssuranceComponent[] {\n const sample =\n snapshot.physicalSceneSample;\n const optical =\n prepared.opticalBridgeProfile;\n\n if (\n sample === undefined ||\n optical === undefined\n ) {\n throw new InvalidConfigurationError(\n \"Physical scientific assurance requires the committed physical sample and optical profile.\"\n );\n }\n\n const components:\n ScientificAssuranceComponent[] =\n [\n {\n componentId:\n \"scene-radiance\",\n role:\n \"outgoing scene spectral radiance\",\n required: true,\n sourceIdentity: {\n kind: \"result\",\n id:\n sample\n .sceneRadianceResult\n .sampleId,\n version:\n sample\n .sceneRadianceResult\n .schemaVersion\n },\n basisKind:\n \"evidence-backed-fact\",\n scientificStatus:\n sample\n .sceneRadianceResult\n .scientificStatus,\n evidenceRequirement:\n \"required\",\n evidence:\n sample\n .sceneRadianceResult\n .evidence,\n uncertainty:\n toAssuranceUncertainty(\n sample\n .sceneRadianceResult\n .uncertainty\n ),\n limitations: [\n ...sample\n .sceneRadianceResult\n .limitations\n ]\n },\n {\n componentId:\n \"optical-throughput-profile\",\n role:\n \"lens throughput and working-aperture profile\",\n required: true,\n sourceIdentity: {\n kind: \"profile\",\n id:\n optical.profileId,\n version:\n optical.profileVersion\n },\n basisKind:\n \"evidence-backed-fact\",\n scientificStatus:\n optical\n .scientificStatus,\n evidenceRequirement:\n \"required\",\n evidence: [\n ...physicalResult\n .componentEvidence\n .opticalProfile,\n ...physicalResult\n .componentEvidence\n .transmission,\n ...physicalResult\n .componentEvidence\n .workingFNumber\n ],\n uncertainty:\n toAssuranceUncertainty(\n optical\n .transmission\n .uncertainty\n ),\n limitations: [\n ...optical.limitations\n ]\n },\n {\n componentId:\n \"primary-optics-bridge-model\",\n role:\n \"scene-radiance to pre-sensor-stack irradiance composition model\",\n required: true,\n sourceIdentity: {\n kind: \"model\",\n id:\n \"scene-radiance-to-sensor-irradiance\",\n version: \"1.1.0\"\n },\n basisKind:\n \"photivra-model-assumption\",\n scientificStatus:\n \"approximation\",\n evidenceRequirement:\n \"not-required\",\n evidence: [],\n uncertainty: {\n kind:\n \"not-quantified\",\n limitation:\n \"The paraxial primary-optics bridge is an explicit approximation with no defensible aggregate model-error bound yet.\"\n },\n limitations: [\n \"Paraxial circular-pupil acceptance is not a full ray-traced pupil solution.\",\n \"PSF redistribution, sensor optical-stack response and polarization remain outside this bridge.\"\n ]\n }\n ];\n\n for (\n let index = 0;\n index <\n (sample.frontOfLensFilters\n ?.length ?? 0);\n index += 1\n ) {\n const profile =\n sample\n .frontOfLensFilters![\n index\n ]!;\n const resolved =\n resolveFrontOfLensFilterTransmission({\n profile,\n wavelengthNanometers:\n physicalResult\n .wavelengthNanometers,\n wavelengthBasis:\n physicalResult\n .wavelengthBasis\n });\n\n components.push({\n componentId:\n \"front-filter:\" +\n index,\n role:\n \"front-of-lens transmission filter\",\n required: true,\n sourceIdentity: {\n kind: \"profile\",\n id: resolved.filterId,\n version:\n resolved.profileVersion\n },\n basisKind:\n \"evidence-backed-fact\",\n scientificStatus:\n resolved\n .scientificStatus,\n evidenceRequirement:\n \"required\",\n evidence:\n resolved.evidence,\n uncertainty:\n toAssuranceUncertainty(\n resolved.uncertainty\n ),\n limitations: [\n ...resolved.limitations\n ]\n });\n }\n\n if (\n sample.fieldThroughput.kind !==\n \"unity\"\n ) {\n components.push({\n componentId:\n \"field-throughput-model\",\n role:\n \"field-dependent illumination throughput\",\n required: true,\n sourceIdentity: {\n kind: \"model\",\n id:\n \"generic-illumination-vignetting\",\n version: \"1.0.0\"\n },\n basisKind:\n \"photivra-model-assumption\",\n scientificStatus:\n \"approximation\",\n evidenceRequirement:\n \"not-required\",\n evidence: [],\n uncertainty: {\n kind: \"not-quantified\",\n limitation:\n \"The capture snapshot retains the evaluated vignetting value but not the source CalculationResult quality envelope; no numeric uncertainty is inferred.\"\n },\n limitations: [\n \"Field-throughput model status remains separate from lens transmission and front-filter transmission.\",\n \"Future capture contracts must explicitly preserve source quality if calibrated field-throughput uncertainty is required downstream.\"\n ]\n });\n }\n\n return components;\n}\n\nfunction temporalAssuranceComponent(\n snapshot:\n ProductionCaptureSnapshot\n): ScientificAssuranceComponent {\n return {\n componentId:\n \"temporal-capture-schedule\",\n role:\n \"capture exposure/readout temporal composition\",\n required: true,\n sourceIdentity: {\n kind: \"model\",\n id:\n \"capture-temporal-schedule\",\n version: \"1.0.0\"\n },\n basisKind:\n \"photivra-model-assumption\",\n scientificStatus:\n \"approximation\",\n evidenceRequirement:\n \"not-required\",\n evidence: [],\n uncertainty: {\n kind: \"not-quantified\",\n limitation:\n \"Temporal schedule composition preserves declared timing facts but does not claim a generic aggregate timing/model uncertainty.\"\n },\n limitations: [\n \"Readout/exposure synchronization is not assumed unless explicitly modeled.\",\n \"Renderer execution timing does not redefine the committed capture schedule.\",\n \"Capture identity \" +\n snapshot.captureId +\n \" owns the committed temporal state.\"\n ]\n };\n}\n\n/**\n * Builds the evidence and status from the child stages that actually ran. It\n * does not average uncertainty and never upgrades a declared approximation to\n * calibration. Requested blockers and executed lineage are part of the\n * assurance. A complete graph alone cannot show physical accuracy or validate\n * an external provider's numerical transport.\n */\nfunction composeProductionScientificAssurance(\n prepared:\n PreparedImageFormationContext,\n snapshot:\n ProductionCaptureSnapshot,\n physicalResult:\n SceneToSensorIrradianceResult | undefined,\n temporalResult:\n ProductionTemporalCaptureResult | undefined,\n processedResult?: ReturnType<typeof calculateProcessedSensorRaw>,\n environmentResult?: ReturnType<typeof simulateEnvironmentSensorRawFrame>\n): ComposedScientificAssurance | undefined {\n const components:\n ScientificAssuranceComponent[] =\n [];\n\n if (\n physicalResult !== undefined\n ) {\n components.push(\n ...physicalAssuranceComponents(\n prepared,\n snapshot,\n physicalResult\n )\n );\n }\n\n if (\n temporalResult !== undefined\n ) {\n components.push(\n temporalAssuranceComponent(\n snapshot\n )\n );\n }\n\n if (environmentResult !== undefined) {\n components.push({ componentId: \"environment-native-raw-producer\", role: \"bounded executed environment-to-ADC capture\", required: true,\n sourceIdentity: { kind: \"model\", id: \"environment-native-raw-producer\", version: \"0.1.0\" },\n basisKind: \"photivra-model-assumption\", scientificStatus: \"approximation\", evidenceRequirement: \"required\",\n evidence: environmentResult.value.sceneBinding.evidence,\n uncertainty: { kind: \"not-quantified\", limitation: \"Child source, optical, response and readout uncertainty is not propagated into a combined capture uncertainty.\" },\n limitations: [\"Provider code executes, but transport, visibility and calibrated source truth remain unverified.\",\n \"Destination-local PSF and explicitly bounded native sampling do not establish global energy conservation or high-resolution performance.\"] });\n }\n if (processedResult !== undefined) {\n components.push({componentId:\"processed-sensor-raw-sdr\",role:\"committed post-capture SDR development\",required:true,\n sourceIdentity:{kind:\"model\",id:\"processed-sensor-raw-sdr\",version:PROCESSED_SENSOR_RAW_MODEL_VERSION},basisKind:\"photivra-model-assumption\",\n scientificStatus:\"approximation\",evidenceRequirement:\"required\",evidence:processedResult.value.colorProfile.evidence,\n uncertainty:{kind:\"not-quantified\",limitation:\"Reconstruction, color interpretation and optional correction uncertainty are not propagated into a combined output uncertainty.\"},\n limitations:[...processedResult.value.colorProfile.limitations,\n environmentResult === undefined ? \"Attached RAW origin is declared; downstream execution does not verify missing upstream production stages.\" :\n \"RAW origin is executed by this bounded plan; provider transport and calibrated accuracy remain unverified.\",\n \"SDR rendering is a deterministic rendering choice; platform viewing adaptation is external.\"]});\n }\n if (components.length === 0) {\n return undefined;\n }\n\n return composeScientificAssurance({\n components\n });\n}\n\n/** Checks that the event is immutable and owned before any provider code or pixel work runs. */\nfunction validateProductionRawCapture(capture: SimulatedCapture, snapshot: ProductionCaptureSnapshot, label = \"Processed RAW\"): void {\n if (capture.captureId!==snapshot.captureId || capture.sceneStateId!==snapshot.sceneStateId ||\n capture.sceneTimeSeconds!==snapshot.sceneTimeSecondsFromExposureStart || capture.noise.seedUint32!==snapshot.stochasticSeedUint32 ||\n capture.exposure.aperture!==snapshot.exposure.aperture || capture.exposure.shutterSeconds!==snapshot.exposure.shutterSeconds || capture.exposure.iso!==snapshot.exposure.iso ||\n (capture.whiteBalanceIntent?.stateId !== snapshot.whiteBalanceState?.stateId) ||\n (capture.whiteBalanceIntent !== null && [\"red\",\"green\",\"blue\"].some((channel) =>\n capture.whiteBalanceIntent!.channelGains[channel as \"red\" | \"green\" | \"blue\"] !== snapshot.whiteBalanceState?.channelGains[channel as \"red\" | \"green\" | \"blue\"]))) {\n throw new InvalidConfigurationError(label + \" capture identity, scene clock, seed, exposure or WB differs from the immutable production snapshot.\");\n }\n const releaseFocus=snapshot.releaseFrameBinding?.focus;\n if (releaseFocus !== undefined && (releaseFocus.kind !== capture.focus.kind ||\n (releaseFocus.kind === \"finite\" && capture.focus.kind === \"finite\" && releaseFocus.distanceM !== capture.focus.distanceM))) {\n throw new InvalidConfigurationError(label + \" focus differs from the committed release frame.\");\n }\n if (snapshot.physicalSceneSample !== undefined && !releaseFocusMatchesOpticalFocus(capture.focus,snapshot.physicalSceneSample.focus)) {\n throw new InvalidConfigurationError(label + \" focus differs from the committed optical sample.\");\n }\n}\n\n/** Runs the committed post-capture step, without treating missing upstream stages as done. */\nfunction computeProcessedOutput(input: ProductionProcessedOutputInput | undefined, prepared: PreparedImageFormationContext,\n snapshot: ProductionCaptureSnapshot, required: ReadonlySet<ImageFormationStageId>, blockers: ProductionImageFormationBlocker[]): ReturnType<typeof calculateProcessedSensorRaw> | undefined {\n if (input === undefined) return undefined;\n try {\n const declaration=requireRecord(input,\"processedOutput\", null);\n if (Object.keys(declaration).some(key=>key!==\"outputStateId\" && key!==\"processing\")) throw new InvalidConfigurationError(\"Unknown processed output declaration fields.\");\n if (!required.has(\"display-processing\") || !prepared.renderer.sensorDomainProcessing) throw new InvalidConfigurationError(\"Processed RAW requires requested display processing and renderer sensor-domain support.\");\n if (input.outputStateId!==snapshot.outputStateId) throw new InvalidConfigurationError(\"Processed RAW output state differs from the immutable production snapshot.\");\n const result=calculateProcessedSensorRaw(input.processing), capture=result.value.source.value.rawFrame.capture;\n validateProductionRawCapture(capture, snapshot);\n return result;\n } catch (error) {\n if (!(error instanceof InvalidConfigurationError || error instanceof InvalidScientificInputError)) throw error;\n addBlocker(blockers,{code:\"processed-output-evaluation-blocked\",stageId:\"display-processing\",message:error.message});\n return undefined;\n }\n}\n\n/**\n * Fixes the execution limits before any supplied provider code runs. If the\n * preflight check fails, a structured blocker is returned and the code is never\n * called. The existing environment producer handles all node budgets, response\n * checks and the seeded RAW.\n */\n/**\n * Validates the shared capture and context, the renderer and the supported range\n * before any trusted provider callback runs. Takes a snapshot of the scientific\n * and output policy data first, then hands off to the single existing\n * environment RAW producer. A callback failure is passed on. A successful call\n * shows only that the code ran and the data was bound. It does not show physical\n * transport, visibility or calibration, and there is no fallback renderer.\n */\nfunction computeEnvironmentCapture(input: ProductionEnvironmentCaptureInput | undefined,\n externalOutput: ProductionProcessedOutputInput | undefined, prepared: PreparedImageFormationContext,\n snapshot: ProductionCaptureSnapshot, required: ReadonlySet<ImageFormationStageId>,\n blockers: ProductionImageFormationBlocker[]): { result: ReturnType<typeof simulateEnvironmentSensorRawFrame>; requestFingerprint: string } | undefined {\n if (input === undefined) return undefined;\n try {\n const declaration = requireRecord(input, \"environmentCapture\", null);\n if (Object.keys(declaration).some(key => key !== \"capture\" && key !== \"processing\")) {\n throw new InvalidConfigurationError(\"Unknown environment capture declaration fields.\");\n }\n if (externalOutput !== undefined || snapshot.physicalSceneSample !== undefined) {\n throw new InvalidConfigurationError(\"Executed environment capture cannot mix declared scene samples or external RAW output sources.\");\n }\n const { evaluateRadiance, evaluateApertureRadiance, ...data } = input.capture;\n if (evaluateApertureRadiance !== undefined || data.sites.some(site => site.environment.pupil !== undefined)) {\n throw new InvalidConfigurationError(\"Ideal pupil capture is standalone until production depth/visibility fidelity is explicitly composed.\");\n }\n const owned = structuredClone(data);\n const capture = parseSimulatedCapture(owned.frame.capture);\n validateProductionRawCapture(capture, snapshot, \"Production RAW\");\n if (!required.has(\"adc-quantization\") || !prepared.renderer.sensorDomainProcessing ||\n prepared.renderer.spectralCapability !== \"wavelength-resolved\" ||\n [...required].some(stage => !prepared.renderer.supportedStages.includes(stage))) {\n throw new InvalidConfigurationError(\"Executed environment capture requires the complete requested ADC graph and renderer stage/spectral/sensor support.\");\n }\n if (blockers.length !== 0) throw new InvalidConfigurationError(\"Environment execution is blocked by production renderer or temporal preflight.\");\n if (input.processing !== undefined) {\n validateProcessedSensorRawEnvelope({ rawFrame: { capture }, region: input.processing.reconstruction.region },\n input.processing.correction !== undefined);\n }\n const temporal = snapshot.temporalCapture;\n if (temporal === undefined) throw new InvalidConfigurationError(\"Environment execution requires committed temporal capture input.\");\n const { nativeRaster, samplePointsNative: _, activeCaptureRect, ...schedule } = temporal.exposureWindowInput;\n void _;\n if (canonicalStringify(schedule) !== canonicalStringify(owned.exposureWindow) ||\n canonicalStringify(nativeRaster) !== canonicalStringify(capture.geometry.nativeRaster) ||\n canonicalStringify(temporal.imagingArea) !== canonicalStringify(capture.geometry.imagingArea) ||\n temporal.orientation !== capture.geometry.orientation ||\n (activeCaptureRect !== undefined && canonicalStringify(activeCaptureRect) !== canonicalStringify({ x: 0, y: 0,\n width: capture.geometry.nativeRaster.pixelWidth, height: capture.geometry.nativeRaster.pixelHeight })) ||\n capture.exposure.focalLengthMm !== prepared.equipmentCapabilities.selectedFocalLengthMm ||\n owned.sceneBinding.providerSceneId !== prepared.sceneId) {\n throw new InvalidConfigurationError(\"Environment geometry, scene, focal length and shutter schedule differ from the committed production context.\");\n }\n const rendererTemporal = prepared.renderer.temporalSampling;\n // Frame-constant serializations are computed once, lazily at their first comparison, instead of once per site.\n let opticalBridgeCanonical: string | undefined, rotationVelocityCanonical: string | undefined;\n for (const site of owned.sites) {\n const e = site.environment;\n if (e.fieldThroughput.kind !== \"unity\" &&\n !prepared.fidelity.requiredEffects.some(effect => effect.effectId === \"illumination-vignetting\")) {\n throw new InvalidConfigurationError(\"Non-unity environment field throughput requires an explicitly requested illumination-vignetting effect.\");\n }\n if (e.lensFieldMapping !== undefined && !lensDistortionIsZero(e.lensFieldMapping) &&\n !prepared.fidelity.requiredEffects.some(effect => effect.effectId === \"geometric-distortion\")) {\n throw new InvalidConfigurationError(\"Active environment lens distortion requires an explicitly requested geometric-distortion effect.\");\n }\n if (e.sceneBindings.providerProfile.profileId !== prepared.sceneRadianceProviderProfileId ||\n canonicalStringify(e.optics.profile) !== (opticalBridgeCanonical ??= canonicalStringify(prepared.opticalBridgeProfile)) ||\n rendererTemporal.kind !== \"bounded\" || e.temporalSampleCount > rendererTemporal.maximumSamples ||\n (temporal.rotation === undefined && !angularVelocityIsZero(e.motion.angularVelocityRadPerSec)) ||\n (temporal.rotation !== undefined && (canonicalStringify(e.motion.angularVelocityRadPerSec) !==\n (rotationVelocityCanonical ??= canonicalStringify(temporal.rotation.angularVelocityRadPerSec)) ||\n e.temporalSampleCount !== temporal.rotation.temporalSampleCount ||\n (capture.focus.kind === \"finite\" ? capture.focus.distanceM : undefined) !== temporal.rotation.focusDistanceM))) {\n throw new InvalidConfigurationError(\"Environment provider, optics, motion or temporal sampling differs from the committed production context.\");\n }\n }\n const requestFingerprint = fingerprintValue(owned);\n return { result: simulateEnvironmentSensorRawFrame({ ...owned, evaluateRadiance }), requestFingerprint };\n } catch (error) {\n if (!(error instanceof InvalidConfigurationError || error instanceof InvalidScientificInputError)) throw error;\n addBlocker(blockers, { code: \"environment-capture-evaluation-blocked\", stageId: \"adc-quantization\", message: error.message });\n return undefined;\n }\n}\n\n/**\n * Builds the production plan. Adds dependencies to the requested stages using the stage graph,\n * checks the shared state and capability limits, then runs only supported, declared input routes.\n * Each requested effect is reported as active, zero, omitted or blocked, with child evidence. A\n * requested effect is never skipped silently.\n *\n * The planner decides the order of the scientific stages, fixes each capture's identity so it cannot\n * change, and makes results reproducible. A well-formed but unsupported combination returns\n * structured blockers. A malformed declaration throws. The bounded environment route runs the\n * supplied radiance through native RAW and, optionally, output processing. The sample-only and\n * attached-RAW routes keep blockers for the upstream stages they lack. FNV fingerprints are keys for\n * reproducibility, not cryptographic proof of integrity.\n * @param input - CreateProductionImageFormationPlanInput. See that type for coordinates, units and profile binding.\n * @returns ProductionImageFormationPlan. The result states its shape and scientific status; a successful call does not imply calibration.\n *\n * @see docs/API_REFERENCE.md for the root export and exact type graph.\n */\nexport function createProductionImageFormationPlan(\n input:\n CreateProductionImageFormationPlanInput\n): ProductionImageFormationPlan {\n requireInputKeys(input, \"createProductionImageFormationPlan\", [\"environmentCapture\", \"processedOutput\", \"preparedContext\", \"captureSnapshot\"]);\n const prepared =\n parsePreparedImageFormationContext(\n input.preparedContext\n );\n const snapshot =\n parseProductionCaptureSnapshot(\n input.captureSnapshot\n );\n\n validateSnapshotAgainstContext(\n prepared,\n snapshot\n );\n\n const requiredStages =\n expandRequiredStages(\n prepared.fidelity\n );\n const blockers:\n ProductionImageFormationBlocker[] =\n [];\n\n evaluateRendererRequirements(\n prepared,\n requiredStages,\n blockers\n );\n\n const physicalResult = input.environmentCapture !== undefined ? undefined :\n computePhysicalResult(\n prepared,\n snapshot,\n requiredStages,\n blockers\n );\n\n const temporalResult =\n computeTemporalResult(\n prepared,\n snapshot,\n requiredStages,\n blockers\n );\n\n let effectPlan =\n deriveEffectPlan(\n prepared,\n snapshot,\n temporalResult,\n blockers,\n input.environmentCapture\n );\n\n // Copy the post-capture policy before a provider can change the caller's objects.\n const environmentProcessing = input.environmentCapture?.processing === undefined ? undefined :\n structuredClone(input.environmentCapture.processing);\n const environmentExecution = computeEnvironmentCapture(input.environmentCapture, input.processedOutput,\n prepared, snapshot, requiredStages, blockers);\n const environmentCaptureResult = environmentExecution?.result;\n if (input.environmentCapture !== undefined && environmentCaptureResult === undefined) {\n effectPlan = effectPlan.map(effect => (effect.effectId === \"illumination-vignetting\" ||\n (effect.effectId === \"geometric-distortion\" && effect.state !== \"blocked\")) && effect.requiredByFidelity\n ? { ...effect, state: \"blocked\" as const, scientificStatus: \"not-applicable\" as const,\n blockerCodes: [\"environment-capture-evaluation-blocked\" as const] } : effect);\n }\n const executedOutput = environmentCaptureResult === undefined || environmentProcessing === undefined ? undefined : {\n outputStateId: snapshot.outputStateId,\n processing: { ...environmentProcessing, reconstruction: { ...environmentProcessing.reconstruction,\n rawFrame: environmentCaptureResult.value.raw.value.frame } }\n };\n const processedOutputResult = computeProcessedOutput(input.environmentCapture === undefined ? input.processedOutput : executedOutput,\n prepared, snapshot, requiredStages, blockers);\n const scientificAssurance =\n composeProductionScientificAssurance(\n prepared,\n snapshot,\n physicalResult,\n temporalResult,\n processedOutputResult,\n environmentCaptureResult\n );\n\n const stagePlan =\n deriveStagePlan(\n prepared,\n snapshot,\n requiredStages,\n physicalResult,\n temporalResult,\n blockers,\n processedOutputResult,\n environmentCaptureResult,\n input.environmentCapture !== undefined\n );\n\n const core = {\n version:\n PRODUCTION_IMAGE_FORMATION_PLAN_VERSION,\n status:\n blockers.length === 0\n ? \"ready\" as const\n : \"blocked\" as const,\n versions: {\n engineApi:\n ENGINE_API_VERSION,\n imageFormationContract:\n IMAGE_FORMATION_CONTRACT_VERSION,\n plan:\n PRODUCTION_IMAGE_FORMATION_PLAN_VERSION,\n preparedContext:\n PREPARED_IMAGE_FORMATION_CONTEXT_VERSION,\n captureSnapshot:\n PRODUCTION_CAPTURE_SNAPSHOT_VERSION,\n rendererCapability:\n RENDERER_CAPABILITY_SCHEMA_VERSION,\n fidelityProfile:\n IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION,\n scientificAssurance:\n SCIENTIFIC_ASSURANCE_CONTRACT_VERSION\n },\n contextIdentity: {\n contextId:\n prepared.contextId,\n preparedContextFingerprint:\n prepared\n .fingerprint.value\n },\n captureIdentity: {\n captureId:\n snapshot.captureId,\n releaseFrameId:\n snapshot.releaseFrameId,\n sceneStateId:\n snapshot.sceneStateId,\n ...(snapshot\n .releaseFrameBinding ===\n undefined\n ? {}\n : {\n releaseSequenceId:\n snapshot\n .releaseFrameBinding\n .sequenceId,\n releaseFrameIndex:\n snapshot\n .releaseFrameBinding\n .frameIndex\n }),\n ...(snapshot\n .whiteBalanceState ===\n undefined\n ? {}\n : {\n whiteBalanceStateId:\n snapshot\n .whiteBalanceState\n .stateId\n }),\n captureSnapshotFingerprint:\n snapshot\n .fingerprint.value\n },\n rendererIdentity: {\n rendererId:\n prepared.renderer\n .rendererId,\n rendererVersion:\n prepared.renderer\n .rendererVersion,\n consumerKind:\n prepared.renderer\n .consumerKind\n },\n fidelityIdentity: {\n profileId:\n prepared.fidelity\n .profileId,\n profileVersion:\n prepared.fidelity\n .profileVersion\n },\n stagePlan,\n ...(environmentExecution === undefined ? {} : { environmentCaptureResult: environmentExecution.result,\n environmentCaptureRequestFingerprint: environmentExecution.requestFingerprint }),\n ...(processedOutputResult === undefined ? {} : { processedOutputResult }),\n effectPlan,\n blockers,\n ...(physicalResult ===\n undefined\n ? {}\n : {\n physicalSceneToSensorResult:\n physicalResult\n }),\n ...(temporalResult ===\n undefined\n ? {}\n : {\n temporalCaptureResult:\n temporalResult\n }),\n ...(scientificAssurance ===\n undefined\n ? {}\n : {\n scientificAssurance\n }),\n stochastic: {\n captureSeedUint32:\n snapshot\n .stochasticSeedUint32,\n backendRandomnessMayRedefineScientificResult:\n false as const\n },\n immutableCaptureSnapshot:\n true as const,\n legacyPocModified:\n false as const\n };\n\n const plan:\n ProductionImageFormationPlan = {\n ...core,\n fingerprint: {\n algorithm:\n \"fnv1a-32-non-cryptographic\",\n value:\n fingerprintValue(core),\n purpose:\n \"deterministic-reproducibility-key-not-integrity-security\"\n }\n };\n\n return deepFreeze(\n cloneJson(plan)\n );\n}\n"]}
|