@photivra/engine 0.6.0 → 1.0.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.
Files changed (749) hide show
  1. package/AGENTS.md +674 -0
  2. package/CHANGELOG.md +186 -0
  3. package/CITATION.cff +1 -1
  4. package/CONTRIBUTING.md +76 -0
  5. package/DCO +33 -0
  6. package/NODE_SUPPORT.md +37 -0
  7. package/NOTICE +2 -0
  8. package/README.md +138 -71
  9. package/SECURITY.md +55 -0
  10. package/THIRD_PARTY.md +63 -0
  11. package/dist/camera/equivalent-focal-length.d.ts +9 -0
  12. package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
  13. package/dist/camera/equivalent-focal-length.js +9 -0
  14. package/dist/camera/equivalent-focal-length.js.map +1 -1
  15. package/dist/camera/field-of-view.d.ts +13 -0
  16. package/dist/camera/field-of-view.d.ts.map +1 -1
  17. package/dist/camera/field-of-view.js +13 -0
  18. package/dist/camera/field-of-view.js.map +1 -1
  19. package/dist/camera/projected-object-size.d.ts +8 -0
  20. package/dist/camera/projected-object-size.d.ts.map +1 -1
  21. package/dist/camera/projected-object-size.js +8 -0
  22. package/dist/camera/projected-object-size.js.map +1 -1
  23. package/dist/capture/capture-export-metadata.d.ts +60 -0
  24. package/dist/capture/capture-export-metadata.d.ts.map +1 -0
  25. package/dist/capture/capture-export-metadata.js +62 -0
  26. package/dist/capture/capture-export-metadata.js.map +1 -0
  27. package/dist/capture/environment-raw-producer.d.ts +55 -0
  28. package/dist/capture/environment-raw-producer.d.ts.map +1 -0
  29. package/dist/capture/environment-raw-producer.js +88 -0
  30. package/dist/capture/environment-raw-producer.js.map +1 -0
  31. package/dist/capture/export-jpeg.d.ts +12 -0
  32. package/dist/capture/export-jpeg.d.ts.map +1 -0
  33. package/dist/capture/export-jpeg.js +126 -0
  34. package/dist/capture/export-jpeg.js.map +1 -0
  35. package/dist/capture/export-tiff.d.ts +45 -0
  36. package/dist/capture/export-tiff.d.ts.map +1 -0
  37. package/dist/capture/export-tiff.js +129 -0
  38. package/dist/capture/export-tiff.js.map +1 -0
  39. package/dist/capture/focus-control.d.ts +210 -0
  40. package/dist/capture/focus-control.d.ts.map +1 -0
  41. package/dist/capture/focus-control.js +664 -0
  42. package/dist/capture/focus-control.js.map +1 -0
  43. package/dist/capture/linear-encoding.d.ts +59 -0
  44. package/dist/capture/linear-encoding.d.ts.map +1 -0
  45. package/dist/capture/linear-encoding.js +98 -0
  46. package/dist/capture/linear-encoding.js.map +1 -0
  47. package/dist/capture/photographic-export.d.ts +135 -0
  48. package/dist/capture/photographic-export.d.ts.map +1 -0
  49. package/dist/capture/photographic-export.js +273 -0
  50. package/dist/capture/photographic-export.js.map +1 -0
  51. package/dist/capture/raw-frame-limits.d.ts +12 -0
  52. package/dist/capture/raw-frame-limits.d.ts.map +1 -0
  53. package/dist/capture/raw-frame-limits.js +13 -0
  54. package/dist/capture/raw-frame-limits.js.map +1 -0
  55. package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
  56. package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
  57. package/dist/capture/raw-frame-reconstruction.js +146 -0
  58. package/dist/capture/raw-frame-reconstruction.js.map +1 -0
  59. package/dist/capture/release-sequence.d.ts +120 -0
  60. package/dist/capture/release-sequence.d.ts.map +1 -0
  61. package/dist/capture/release-sequence.js +446 -0
  62. package/dist/capture/release-sequence.js.map +1 -0
  63. package/dist/capture/sensor-raw-frame.d.ts +34 -0
  64. package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
  65. package/dist/capture/sensor-raw-frame.js +106 -0
  66. package/dist/capture/sensor-raw-frame.js.map +1 -0
  67. package/dist/capture/sensor-raw-producer.d.ts +51 -0
  68. package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
  69. package/dist/capture/sensor-raw-producer.js +235 -0
  70. package/dist/capture/sensor-raw-producer.js.map +1 -0
  71. package/dist/capture/simulated-capture.d.ts +125 -0
  72. package/dist/capture/simulated-capture.d.ts.map +1 -0
  73. package/dist/capture/simulated-capture.js +248 -0
  74. package/dist/capture/simulated-capture.js.map +1 -0
  75. package/dist/color/capture-color.d.ts +73 -0
  76. package/dist/color/capture-color.d.ts.map +1 -0
  77. package/dist/color/capture-color.js +145 -0
  78. package/dist/color/capture-color.js.map +1 -0
  79. package/dist/color/sensor-color-development.d.ts +23 -0
  80. package/dist/color/sensor-color-development.d.ts.map +1 -0
  81. package/dist/color/sensor-color-development.js +56 -0
  82. package/dist/color/sensor-color-development.js.map +1 -0
  83. package/dist/color/white-balance.d.ts +175 -0
  84. package/dist/color/white-balance.d.ts.map +1 -0
  85. package/dist/color/white-balance.js +606 -0
  86. package/dist/color/white-balance.js.map +1 -0
  87. package/dist/composition/image-formation-plan.d.ts +481 -0
  88. package/dist/composition/image-formation-plan.d.ts.map +1 -0
  89. package/dist/composition/image-formation-plan.js +2499 -0
  90. package/dist/composition/image-formation-plan.js.map +1 -0
  91. package/dist/composition/plan-consumer.d.ts +53 -0
  92. package/dist/composition/plan-consumer.d.ts.map +1 -0
  93. package/dist/composition/plan-consumer.js +119 -0
  94. package/dist/composition/plan-consumer.js.map +1 -0
  95. package/dist/core/calculation-result.d.ts.map +1 -1
  96. package/dist/core/calculation-result.js +6 -0
  97. package/dist/core/calculation-result.js.map +1 -1
  98. package/dist/core/canonical-json.d.ts +18 -0
  99. package/dist/core/canonical-json.d.ts.map +1 -0
  100. package/dist/core/canonical-json.js +44 -0
  101. package/dist/core/canonical-json.js.map +1 -0
  102. package/dist/core/configuration-error.d.ts +6 -0
  103. package/dist/core/configuration-error.d.ts.map +1 -1
  104. package/dist/core/configuration-error.js +6 -0
  105. package/dist/core/configuration-error.js.map +1 -1
  106. package/dist/core/evidence-provenance.d.ts +6 -0
  107. package/dist/core/evidence-provenance.d.ts.map +1 -1
  108. package/dist/core/evidence-provenance.js +7 -0
  109. package/dist/core/evidence-provenance.js.map +1 -1
  110. package/dist/core/image-formation.d.ts +9 -3
  111. package/dist/core/image-formation.d.ts.map +1 -1
  112. package/dist/core/image-formation.js +29 -5
  113. package/dist/core/image-formation.js.map +1 -1
  114. package/dist/core/owned-data.d.ts +25 -0
  115. package/dist/core/owned-data.d.ts.map +1 -0
  116. package/dist/core/owned-data.js +34 -0
  117. package/dist/core/owned-data.js.map +1 -0
  118. package/dist/core/record-validation.d.ts +17 -0
  119. package/dist/core/record-validation.d.ts.map +1 -0
  120. package/dist/core/record-validation.js +44 -0
  121. package/dist/core/record-validation.js.map +1 -0
  122. package/dist/core/scientific-assurance.d.ts +101 -0
  123. package/dist/core/scientific-assurance.d.ts.map +1 -0
  124. package/dist/core/scientific-assurance.js +301 -0
  125. package/dist/core/scientific-assurance.js.map +1 -0
  126. package/dist/core/spectral-composition.d.ts +106 -0
  127. package/dist/core/spectral-composition.d.ts.map +1 -0
  128. package/dist/core/spectral-composition.js +334 -0
  129. package/dist/core/spectral-composition.js.map +1 -0
  130. package/dist/core/spectral.d.ts +34 -0
  131. package/dist/core/spectral.d.ts.map +1 -0
  132. package/dist/core/spectral.js +57 -0
  133. package/dist/core/spectral.js.map +1 -0
  134. package/dist/core/validation.d.ts +6 -0
  135. package/dist/core/validation.d.ts.map +1 -1
  136. package/dist/core/validation.js +6 -0
  137. package/dist/core/validation.js.map +1 -1
  138. package/dist/core/version.d.ts +14 -0
  139. package/dist/core/version.d.ts.map +1 -0
  140. package/dist/core/version.js +15 -0
  141. package/dist/core/version.js.map +1 -0
  142. package/dist/equipment/exposure-capabilities.d.ts +125 -0
  143. package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
  144. package/dist/equipment/exposure-capabilities.js +391 -0
  145. package/dist/equipment/exposure-capabilities.js.map +1 -0
  146. package/dist/equipment/generic-tier-assets.d.ts +82 -0
  147. package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
  148. package/dist/equipment/generic-tier-assets.js +119 -0
  149. package/dist/equipment/generic-tier-assets.js.map +1 -0
  150. package/dist/equipment/generic-tier-presets.d.ts +57 -0
  151. package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
  152. package/dist/equipment/generic-tier-presets.js +122 -0
  153. package/dist/equipment/generic-tier-presets.js.map +1 -0
  154. package/dist/equipment/iso-capabilities.d.ts +143 -0
  155. package/dist/equipment/iso-capabilities.d.ts.map +1 -0
  156. package/dist/equipment/iso-capabilities.js +578 -0
  157. package/dist/equipment/iso-capabilities.js.map +1 -0
  158. package/dist/equipment/metering-capabilities.d.ts +58 -0
  159. package/dist/equipment/metering-capabilities.d.ts.map +1 -0
  160. package/dist/equipment/metering-capabilities.js +151 -0
  161. package/dist/equipment/metering-capabilities.js.map +1 -0
  162. package/dist/equipment/release-capabilities.d.ts +33 -0
  163. package/dist/equipment/release-capabilities.d.ts.map +1 -0
  164. package/dist/equipment/release-capabilities.js +176 -0
  165. package/dist/equipment/release-capabilities.js.map +1 -0
  166. package/dist/exposure/exposure-duration-control.d.ts +72 -0
  167. package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
  168. package/dist/exposure/exposure-duration-control.js +161 -0
  169. package/dist/exposure/exposure-duration-control.js.map +1 -0
  170. package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
  171. package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
  172. package/dist/exposure/exposure-mode-resolver.js +1905 -0
  173. package/dist/exposure/exposure-mode-resolver.js.map +1 -0
  174. package/dist/exposure/exposure.d.ts +8 -0
  175. package/dist/exposure/exposure.d.ts.map +1 -1
  176. package/dist/exposure/exposure.js +8 -0
  177. package/dist/exposure/exposure.js.map +1 -1
  178. package/dist/exposure/flash.d.ts +179 -0
  179. package/dist/exposure/flash.d.ts.map +1 -0
  180. package/dist/exposure/flash.js +644 -0
  181. package/dist/exposure/flash.js.map +1 -0
  182. package/dist/exposure/metering-scene-radiance.d.ts +72 -0
  183. package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
  184. package/dist/exposure/metering-scene-radiance.js +222 -0
  185. package/dist/exposure/metering-scene-radiance.js.map +1 -0
  186. package/dist/exposure/metering-target.d.ts +67 -0
  187. package/dist/exposure/metering-target.d.ts.map +1 -0
  188. package/dist/exposure/metering-target.js +265 -0
  189. package/dist/exposure/metering-target.js.map +1 -0
  190. package/dist/exposure/metering-temporal.d.ts +76 -0
  191. package/dist/exposure/metering-temporal.d.ts.map +1 -0
  192. package/dist/exposure/metering-temporal.js +210 -0
  193. package/dist/exposure/metering-temporal.js.map +1 -0
  194. package/dist/exposure/metering.d.ts +124 -0
  195. package/dist/exposure/metering.d.ts.map +1 -0
  196. package/dist/exposure/metering.js +422 -0
  197. package/dist/exposure/metering.js.map +1 -0
  198. package/dist/exposure/program-line.d.ts +29 -0
  199. package/dist/exposure/program-line.d.ts.map +1 -0
  200. package/dist/exposure/program-line.js +126 -0
  201. package/dist/exposure/program-line.js.map +1 -0
  202. package/dist/index.d.ts +87 -6
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +85 -6
  205. package/dist/index.js.map +1 -1
  206. package/dist/motion/camera-rotation.d.ts +16 -0
  207. package/dist/motion/camera-rotation.d.ts.map +1 -1
  208. package/dist/motion/camera-rotation.js +16 -0
  209. package/dist/motion/camera-rotation.js.map +1 -1
  210. package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
  211. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
  212. package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
  213. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
  214. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
  215. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
  216. package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
  217. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
  218. package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
  219. package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
  220. package/dist/motion/capture-rotation-trajectory.js +15 -0
  221. package/dist/motion/capture-rotation-trajectory.js.map +1 -1
  222. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
  223. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
  224. package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
  225. package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
  226. package/dist/motion/extended-object-projection.d.ts +175 -0
  227. package/dist/motion/extended-object-projection.d.ts.map +1 -0
  228. package/dist/motion/extended-object-projection.js +402 -0
  229. package/dist/motion/extended-object-projection.js.map +1 -0
  230. package/dist/motion/projected-motion.d.ts +11 -0
  231. package/dist/motion/projected-motion.d.ts.map +1 -1
  232. package/dist/motion/projected-motion.js +11 -0
  233. package/dist/motion/projected-motion.js.map +1 -1
  234. package/dist/optics/aperture.d.ts +9 -0
  235. package/dist/optics/aperture.d.ts.map +1 -1
  236. package/dist/optics/aperture.js +9 -0
  237. package/dist/optics/aperture.js.map +1 -1
  238. package/dist/optics/circle-of-confusion.d.ts +8 -0
  239. package/dist/optics/circle-of-confusion.d.ts.map +1 -1
  240. package/dist/optics/circle-of-confusion.js +8 -0
  241. package/dist/optics/circle-of-confusion.js.map +1 -1
  242. package/dist/optics/complex-pupil-psf.d.ts +128 -0
  243. package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
  244. package/dist/optics/complex-pupil-psf.js +462 -0
  245. package/dist/optics/complex-pupil-psf.js.map +1 -0
  246. package/dist/optics/depth-of-field.d.ts +18 -0
  247. package/dist/optics/depth-of-field.d.ts.map +1 -1
  248. package/dist/optics/depth-of-field.js +29 -4
  249. package/dist/optics/depth-of-field.js.map +1 -1
  250. package/dist/optics/diffraction.d.ts +8 -0
  251. package/dist/optics/diffraction.d.ts.map +1 -1
  252. package/dist/optics/diffraction.js +8 -0
  253. package/dist/optics/diffraction.js.map +1 -1
  254. package/dist/optics/focus-breathing.d.ts +13 -0
  255. package/dist/optics/focus-breathing.d.ts.map +1 -1
  256. package/dist/optics/focus-breathing.js +13 -0
  257. package/dist/optics/focus-breathing.js.map +1 -1
  258. package/dist/optics/focus-state.d.ts +47 -0
  259. package/dist/optics/focus-state.d.ts.map +1 -0
  260. package/dist/optics/focus-state.js +78 -0
  261. package/dist/optics/focus-state.js.map +1 -0
  262. package/dist/optics/front-of-lens-filter.d.ts +114 -0
  263. package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
  264. package/dist/optics/front-of-lens-filter.js +468 -0
  265. package/dist/optics/front-of-lens-filter.js.map +1 -0
  266. package/dist/optics/illumination-vignetting.d.ts +9 -0
  267. package/dist/optics/illumination-vignetting.d.ts.map +1 -1
  268. package/dist/optics/illumination-vignetting.js +9 -0
  269. package/dist/optics/illumination-vignetting.js.map +1 -1
  270. package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
  271. package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
  272. package/dist/optics/lateral-chromatic-aberration.js +11 -0
  273. package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
  274. package/dist/optics/lens-psf-profile.d.ts +217 -0
  275. package/dist/optics/lens-psf-profile.d.ts.map +1 -0
  276. package/dist/optics/lens-psf-profile.js +823 -0
  277. package/dist/optics/lens-psf-profile.js.map +1 -0
  278. package/dist/optics/polygon-diffraction.d.ts +67 -0
  279. package/dist/optics/polygon-diffraction.d.ts.map +1 -0
  280. package/dist/optics/polygon-diffraction.js +145 -0
  281. package/dist/optics/polygon-diffraction.js.map +1 -0
  282. package/dist/optics/profile-contract.d.ts +42 -0
  283. package/dist/optics/profile-contract.d.ts.map +1 -0
  284. package/dist/optics/profile-contract.js +92 -0
  285. package/dist/optics/profile-contract.js.map +1 -0
  286. package/dist/optics/psf-foundation.d.ts +16 -3
  287. package/dist/optics/psf-foundation.d.ts.map +1 -1
  288. package/dist/optics/psf-foundation.js +28 -15
  289. package/dist/optics/psf-foundation.js.map +1 -1
  290. package/dist/optics/radial-distortion.d.ts +18 -0
  291. package/dist/optics/radial-distortion.d.ts.map +1 -1
  292. package/dist/optics/radial-distortion.js +18 -0
  293. package/dist/optics/radial-distortion.js.map +1 -1
  294. package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
  295. package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
  296. package/dist/optics/scene-to-sensor-irradiance.js +662 -0
  297. package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
  298. package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
  299. package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
  300. package/dist/optics/scene-to-sensor-quadrature.js +82 -0
  301. package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
  302. package/dist/optics/sensor-environment-query.d.ts +60 -0
  303. package/dist/optics/sensor-environment-query.d.ts.map +1 -0
  304. package/dist/optics/sensor-environment-query.js +50 -0
  305. package/dist/optics/sensor-environment-query.js.map +1 -0
  306. package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
  307. package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
  308. package/dist/optics/sensor-psf-quadrature.js +101 -0
  309. package/dist/optics/sensor-psf-quadrature.js.map +1 -0
  310. package/dist/optics/sensor-psf-support.d.ts +20 -0
  311. package/dist/optics/sensor-psf-support.d.ts.map +1 -0
  312. package/dist/optics/sensor-psf-support.js +13 -0
  313. package/dist/optics/sensor-psf-support.js.map +1 -0
  314. package/dist/optics/stray-light.d.ts +91 -0
  315. package/dist/optics/stray-light.d.ts.map +1 -0
  316. package/dist/optics/stray-light.js +110 -0
  317. package/dist/optics/stray-light.js.map +1 -0
  318. package/dist/optics/thin-lens.d.ts +8 -0
  319. package/dist/optics/thin-lens.d.ts.map +1 -1
  320. package/dist/optics/thin-lens.js +8 -0
  321. package/dist/optics/thin-lens.js.map +1 -1
  322. package/dist/output/capture-corrected-sdr.d.ts +49 -0
  323. package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
  324. package/dist/output/capture-corrected-sdr.js +149 -0
  325. package/dist/output/capture-corrected-sdr.js.map +1 -0
  326. package/dist/output/capture-geometry.d.ts.map +1 -1
  327. package/dist/output/capture-geometry.js +8 -0
  328. package/dist/output/capture-geometry.js.map +1 -1
  329. package/dist/output/capture-sdr.d.ts +49 -0
  330. package/dist/output/capture-sdr.d.ts.map +1 -0
  331. package/dist/output/capture-sdr.js +90 -0
  332. package/dist/output/capture-sdr.js.map +1 -0
  333. package/dist/output/crop.d.ts +6 -0
  334. package/dist/output/crop.d.ts.map +1 -1
  335. package/dist/output/crop.js +6 -0
  336. package/dist/output/crop.js.map +1 -1
  337. package/dist/output/geometric-transforms.d.ts +137 -0
  338. package/dist/output/geometric-transforms.d.ts.map +1 -0
  339. package/dist/output/geometric-transforms.js +225 -0
  340. package/dist/output/geometric-transforms.js.map +1 -0
  341. package/dist/output/lens-corrections.d.ts +121 -0
  342. package/dist/output/lens-corrections.d.ts.map +1 -0
  343. package/dist/output/lens-corrections.js +210 -0
  344. package/dist/output/lens-corrections.js.map +1 -0
  345. package/dist/output/sdr-rendering.d.ts +81 -0
  346. package/dist/output/sdr-rendering.d.ts.map +1 -0
  347. package/dist/output/sdr-rendering.js +106 -0
  348. package/dist/output/sdr-rendering.js.map +1 -0
  349. package/dist/output/subject-framing-crop.d.ts +8 -0
  350. package/dist/output/subject-framing-crop.d.ts.map +1 -1
  351. package/dist/output/subject-framing-crop.js +8 -0
  352. package/dist/output/subject-framing-crop.js.map +1 -1
  353. package/dist/schema/camera.d.ts +6 -0
  354. package/dist/schema/camera.d.ts.map +1 -1
  355. package/dist/schema/illumination-spectral.d.ts +51 -0
  356. package/dist/schema/illumination-spectral.d.ts.map +1 -0
  357. package/dist/schema/illumination-spectral.js +132 -0
  358. package/dist/schema/illumination-spectral.js.map +1 -0
  359. package/dist/schema/illumination-temporal.d.ts +156 -0
  360. package/dist/schema/illumination-temporal.d.ts.map +1 -0
  361. package/dist/schema/illumination-temporal.js +554 -0
  362. package/dist/schema/illumination-temporal.js.map +1 -0
  363. package/dist/schema/illumination.d.ts +138 -0
  364. package/dist/schema/illumination.d.ts.map +1 -0
  365. package/dist/schema/illumination.js +483 -0
  366. package/dist/schema/illumination.js.map +1 -0
  367. package/dist/schema/scene-radiance-temporal.d.ts +107 -0
  368. package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
  369. package/dist/schema/scene-radiance-temporal.js +259 -0
  370. package/dist/schema/scene-radiance-temporal.js.map +1 -0
  371. package/dist/schema/scene-radiance.d.ts +185 -0
  372. package/dist/schema/scene-radiance.d.ts.map +1 -0
  373. package/dist/schema/scene-radiance.js +535 -0
  374. package/dist/schema/scene-radiance.js.map +1 -0
  375. package/dist/schema/scene.d.ts +7 -0
  376. package/dist/schema/scene.d.ts.map +1 -1
  377. package/dist/schema/validation.d.ts.map +1 -1
  378. package/dist/schema/validation.js +7 -0
  379. package/dist/schema/validation.js.map +1 -1
  380. package/dist/sensor/accumulated-charge.d.ts +199 -0
  381. package/dist/sensor/accumulated-charge.d.ts.map +1 -0
  382. package/dist/sensor/accumulated-charge.js +450 -0
  383. package/dist/sensor/accumulated-charge.js.map +1 -0
  384. package/dist/sensor/architecture.d.ts +48 -13
  385. package/dist/sensor/architecture.d.ts.map +1 -1
  386. package/dist/sensor/architecture.js +58 -16
  387. package/dist/sensor/architecture.js.map +1 -1
  388. package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
  389. package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
  390. package/dist/sensor/camera-saturation-capacity.js +356 -0
  391. package/dist/sensor/camera-saturation-capacity.js.map +1 -0
  392. package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
  393. package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
  394. package/dist/sensor/capture-color-sampling-binding.js +14 -0
  395. package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
  396. package/dist/sensor/capture-mode-timing.d.ts +63 -0
  397. package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
  398. package/dist/sensor/capture-mode-timing.js +270 -0
  399. package/dist/sensor/capture-mode-timing.js.map +1 -0
  400. package/dist/sensor/capture-mode.d.ts.map +1 -1
  401. package/dist/sensor/capture-mode.js +13 -0
  402. package/dist/sensor/capture-mode.js.map +1 -1
  403. package/dist/sensor/color-sampling.d.ts.map +1 -1
  404. package/dist/sensor/color-sampling.js +19 -0
  405. package/dist/sensor/color-sampling.js.map +1 -1
  406. package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
  407. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
  408. package/dist/sensor/constant-rate-temporal-integration.js +382 -0
  409. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
  410. package/dist/sensor/dark-current.d.ts +169 -0
  411. package/dist/sensor/dark-current.d.ts.map +1 -0
  412. package/dist/sensor/dark-current.js +427 -0
  413. package/dist/sensor/dark-current.js.map +1 -0
  414. package/dist/sensor/environment-photo-signal.d.ts +123 -0
  415. package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
  416. package/dist/sensor/environment-photo-signal.js +186 -0
  417. package/dist/sensor/environment-photo-signal.js.map +1 -0
  418. package/dist/sensor/eqe-electron-rate.d.ts +107 -0
  419. package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
  420. package/dist/sensor/eqe-electron-rate.js +561 -0
  421. package/dist/sensor/eqe-electron-rate.js.map +1 -0
  422. package/dist/sensor/eqe-local-exposure.d.ts +65 -0
  423. package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
  424. package/dist/sensor/eqe-local-exposure.js +84 -0
  425. package/dist/sensor/eqe-local-exposure.js.map +1 -0
  426. package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
  427. package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
  428. package/dist/sensor/eqe-temporal-exposure.js +62 -0
  429. package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
  430. package/dist/sensor/exposure-window.d.ts +14 -0
  431. package/dist/sensor/exposure-window.d.ts.map +1 -1
  432. package/dist/sensor/exposure-window.js +14 -0
  433. package/dist/sensor/exposure-window.js.map +1 -1
  434. package/dist/sensor/iso-signal-chain.d.ts +148 -0
  435. package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
  436. package/dist/sensor/iso-signal-chain.js +411 -0
  437. package/dist/sensor/iso-signal-chain.js.map +1 -0
  438. package/dist/sensor/local-exposure-binding.d.ts +87 -0
  439. package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
  440. package/dist/sensor/local-exposure-binding.js +214 -0
  441. package/dist/sensor/local-exposure-binding.js.map +1 -0
  442. package/dist/sensor/optical-stack.d.ts.map +1 -1
  443. package/dist/sensor/optical-stack.js +17 -0
  444. package/dist/sensor/optical-stack.js.map +1 -1
  445. package/dist/sensor/photon-energy.d.ts +97 -0
  446. package/dist/sensor/photon-energy.d.ts.map +1 -0
  447. package/dist/sensor/photon-energy.js +390 -0
  448. package/dist/sensor/photon-energy.js.map +1 -0
  449. package/dist/sensor/physical-charge-capacity.d.ts +130 -0
  450. package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
  451. package/dist/sensor/physical-charge-capacity.js +345 -0
  452. package/dist/sensor/physical-charge-capacity.js.map +1 -0
  453. package/dist/sensor/pixel-pitch.d.ts +6 -0
  454. package/dist/sensor/pixel-pitch.d.ts.map +1 -1
  455. package/dist/sensor/pixel-pitch.js +6 -0
  456. package/dist/sensor/pixel-pitch.js.map +1 -1
  457. package/dist/sensor/radiometry-readiness.d.ts +10 -0
  458. package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
  459. package/dist/sensor/radiometry-readiness.js +10 -0
  460. package/dist/sensor/radiometry-readiness.js.map +1 -1
  461. package/dist/sensor/raw-readout.d.ts +314 -0
  462. package/dist/sensor/raw-readout.d.ts.map +1 -0
  463. package/dist/sensor/raw-readout.js +914 -0
  464. package/dist/sensor/raw-readout.js.map +1 -0
  465. package/dist/sensor/raw-reconstruction.d.ts +170 -0
  466. package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
  467. package/dist/sensor/raw-reconstruction.js +424 -0
  468. package/dist/sensor/raw-reconstruction.js.map +1 -0
  469. package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
  470. package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
  471. package/dist/sensor/readout-exposure-linkage.js +12 -0
  472. package/dist/sensor/readout-exposure-linkage.js.map +1 -1
  473. package/dist/sensor/readout-timing.d.ts +13 -0
  474. package/dist/sensor/readout-timing.d.ts.map +1 -1
  475. package/dist/sensor/readout-timing.js +13 -0
  476. package/dist/sensor/readout-timing.js.map +1 -1
  477. package/dist/sensor/response-application-compatibility.d.ts +136 -0
  478. package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
  479. package/dist/sensor/response-application-compatibility.js +408 -0
  480. package/dist/sensor/response-application-compatibility.js.map +1 -0
  481. package/dist/sensor/response-operating-range.d.ts +173 -0
  482. package/dist/sensor/response-operating-range.d.ts.map +1 -0
  483. package/dist/sensor/response-operating-range.js +672 -0
  484. package/dist/sensor/response-operating-range.js.map +1 -0
  485. package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
  486. package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
  487. package/dist/sensor/responsivity-photocurrent.js +644 -0
  488. package/dist/sensor/responsivity-photocurrent.js.map +1 -0
  489. package/dist/sensor/sampling-aperture.d.ts.map +1 -1
  490. package/dist/sensor/sampling-aperture.js +14 -0
  491. package/dist/sensor/sampling-aperture.js.map +1 -1
  492. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
  493. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
  494. package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
  495. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
  496. package/dist/sensor/sensor-geometry.d.ts +12 -0
  497. package/dist/sensor/sensor-geometry.d.ts.map +1 -1
  498. package/dist/sensor/sensor-geometry.js +12 -0
  499. package/dist/sensor/sensor-geometry.js.map +1 -1
  500. package/dist/sensor/signal-noise.d.ts +10 -0
  501. package/dist/sensor/signal-noise.d.ts.map +1 -1
  502. package/dist/sensor/signal-noise.js +10 -0
  503. package/dist/sensor/signal-noise.js.map +1 -1
  504. package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
  505. package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
  506. package/dist/sensor/spatial-sample-reduction.js +51 -5
  507. package/dist/sensor/spatial-sample-reduction.js.map +1 -1
  508. package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
  509. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
  510. package/dist/sensor/spatial-sampling-quadrature.js +27 -0
  511. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
  512. package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
  513. package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
  514. package/dist/sensor/spatio-spectral-reduction.js +373 -0
  515. package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
  516. package/dist/sensor/spectral-coverage.d.ts +24 -0
  517. package/dist/sensor/spectral-coverage.d.ts.map +1 -0
  518. package/dist/sensor/spectral-coverage.js +86 -0
  519. package/dist/sensor/spectral-coverage.js.map +1 -0
  520. package/dist/sensor/spectral-quadrature.d.ts +169 -0
  521. package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
  522. package/dist/sensor/spectral-quadrature.js +542 -0
  523. package/dist/sensor/spectral-quadrature.js.map +1 -0
  524. package/dist/sensor/spectral-response.d.ts +192 -0
  525. package/dist/sensor/spectral-response.d.ts.map +1 -0
  526. package/dist/sensor/spectral-response.js +664 -0
  527. package/dist/sensor/spectral-response.js.map +1 -0
  528. package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
  529. package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
  530. package/dist/sensor/temporal-eqe-sum.js +30 -0
  531. package/dist/sensor/temporal-eqe-sum.js.map +1 -0
  532. package/dist/sensor/temporal-photo-signal.d.ts +38 -0
  533. package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
  534. package/dist/sensor/temporal-photo-signal.js +110 -0
  535. package/dist/sensor/temporal-photo-signal.js.map +1 -0
  536. package/dist/sensor/temporal-sample-binding.d.ts +6 -0
  537. package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
  538. package/dist/sensor/temporal-sample-binding.js +32 -0
  539. package/dist/sensor/temporal-sample-binding.js.map +1 -0
  540. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  541. package/dist/simulation/poc-simulation.js +34 -11
  542. package/dist/simulation/poc-simulation.js.map +1 -1
  543. package/dist/stabilization/camera-shake.d.ts +11 -0
  544. package/dist/stabilization/camera-shake.d.ts.map +1 -1
  545. package/dist/stabilization/camera-shake.js +11 -0
  546. package/dist/stabilization/camera-shake.js.map +1 -1
  547. package/dist/stabilization/system.d.ts +218 -0
  548. package/dist/stabilization/system.d.ts.map +1 -0
  549. package/dist/stabilization/system.js +695 -0
  550. package/dist/stabilization/system.js.map +1 -0
  551. package/docs/API_REFERENCE.md +2017 -0
  552. package/docs/API_STYLE.md +132 -0
  553. package/docs/ARCHITECTURE.md +134 -24
  554. package/docs/AUTOMATION_COORDINATION.md +2 -0
  555. package/docs/CAPTURE_COLOR.md +25 -0
  556. package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
  557. package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
  558. package/docs/CAPTURE_SDR.md +20 -0
  559. package/docs/DEVELOPERS.md +60 -0
  560. package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
  561. package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
  562. package/docs/EXPORT_ACCEPTANCE.md +133 -0
  563. package/docs/GENERIC_TIER_PRESETS.md +269 -0
  564. package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
  565. package/docs/IMAGE_FORMATION.md +80 -10
  566. package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
  567. package/docs/MOTION_AND_SIGNAL.md +5 -3
  568. package/docs/NUMERICAL_CORRECTNESS.md +191 -0
  569. package/docs/PERFORMANCE_BASELINE.md +56 -0
  570. package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
  571. package/docs/PHYSICS_FOUNDATION.md +152 -5
  572. package/docs/POC_API.md +2 -0
  573. package/docs/POC_PROJECTION_REUSE.md +124 -0
  574. package/docs/PROCESSED_OUTPUT.md +157 -0
  575. package/docs/PRODUCTION_COMPOSITION.md +373 -0
  576. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
  577. package/docs/PROVENANCE.md +4 -0
  578. package/docs/PSF_FOUNDATION.md +110 -88
  579. package/docs/RAW_FRAME_ENVELOPE.md +56 -0
  580. package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
  581. package/docs/RELEASE_1_0.md +65 -0
  582. package/docs/RELEASE_AUDIT.md +38 -0
  583. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
  584. package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
  585. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
  586. package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
  587. package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
  588. package/docs/SDR_RENDERING.md +33 -0
  589. package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
  590. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
  591. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
  592. package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
  593. package/docs/SENSOR_RAW_FRAME.md +20 -0
  594. package/docs/SENSOR_RAW_PRODUCER.md +77 -0
  595. package/docs/SIGNAL_CONFORMANCE.md +23 -0
  596. package/docs/SIMULATED_CAPTURE.md +65 -0
  597. package/docs/STABILIZATION.md +160 -17
  598. package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
  599. package/docs/TIER_ACCEPTANCE.md +129 -0
  600. package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
  601. package/docs/USAGE.md +5050 -1047
  602. package/docs/V1_COMPOSITION_MAP.md +123 -0
  603. package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
  604. package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
  605. package/docs/api/camera-equivalent-focal-length.md +53 -0
  606. package/docs/api/camera-field-of-view.md +119 -0
  607. package/docs/api/camera-projected-object-size.md +54 -0
  608. package/docs/api/capture-capture-export-metadata.md +107 -0
  609. package/docs/api/capture-environment-raw-producer.md +56 -0
  610. package/docs/api/capture-focus-control.md +419 -0
  611. package/docs/api/capture-linear-encoding.md +99 -0
  612. package/docs/api/capture-photographic-export.md +172 -0
  613. package/docs/api/capture-raw-frame-reconstruction.md +87 -0
  614. package/docs/api/capture-release-sequence.md +252 -0
  615. package/docs/api/capture-sensor-raw-frame.md +66 -0
  616. package/docs/api/capture-sensor-raw-producer.md +98 -0
  617. package/docs/api/capture-simulated-capture.md +179 -0
  618. package/docs/api/color-capture-color.md +122 -0
  619. package/docs/api/color-white-balance.md +386 -0
  620. package/docs/api/composition-image-formation-plan.md +825 -0
  621. package/docs/api/composition-plan-consumer.md +98 -0
  622. package/docs/api/core-calculation-result.md +220 -0
  623. package/docs/api/core-configuration-error.md +19 -0
  624. package/docs/api/core-image-formation.md +204 -0
  625. package/docs/api/core-scientific-assurance.md +214 -0
  626. package/docs/api/core-spectral-composition.md +268 -0
  627. package/docs/api/core-spectral.md +78 -0
  628. package/docs/api/core-validation.md +34 -0
  629. package/docs/api/core-version.md +14 -0
  630. package/docs/api/equipment-exposure-capabilities.md +270 -0
  631. package/docs/api/equipment-generic-tier-assets.md +82 -0
  632. package/docs/api/equipment-generic-tier-presets.md +103 -0
  633. package/docs/api/equipment-iso-capabilities.md +295 -0
  634. package/docs/api/equipment-metering-capabilities.md +126 -0
  635. package/docs/api/equipment-release-capabilities.md +91 -0
  636. package/docs/api/exports.json +5656 -0
  637. package/docs/api/exposure-exposure-duration-control.md +115 -0
  638. package/docs/api/exposure-exposure-mode-resolver.md +966 -0
  639. package/docs/api/exposure-exposure.md +150 -0
  640. package/docs/api/exposure-flash.md +327 -0
  641. package/docs/api/exposure-metering-scene-radiance.md +154 -0
  642. package/docs/api/exposure-metering-target.md +134 -0
  643. package/docs/api/exposure-metering-temporal.md +77 -0
  644. package/docs/api/exposure-metering.md +172 -0
  645. package/docs/api/exposure-program-line.md +64 -0
  646. package/docs/api/motion-camera-rotation.md +215 -0
  647. package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
  648. package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
  649. package/docs/api/motion-capture-rotation-trajectory.md +132 -0
  650. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
  651. package/docs/api/motion-extended-object-projection.md +312 -0
  652. package/docs/api/motion-projected-motion.md +60 -0
  653. package/docs/api/optics-aperture.md +69 -0
  654. package/docs/api/optics-circle-of-confusion.md +46 -0
  655. package/docs/api/optics-complex-pupil-psf.md +193 -0
  656. package/docs/api/optics-depth-of-field.md +92 -0
  657. package/docs/api/optics-diffraction.md +46 -0
  658. package/docs/api/optics-focus-breathing.md +119 -0
  659. package/docs/api/optics-focus-state.md +64 -0
  660. package/docs/api/optics-front-of-lens-filter.md +263 -0
  661. package/docs/api/optics-illumination-vignetting.md +95 -0
  662. package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
  663. package/docs/api/optics-lens-psf-profile.md +380 -0
  664. package/docs/api/optics-polygon-diffraction.md +68 -0
  665. package/docs/api/optics-profile-contract.md +47 -0
  666. package/docs/api/optics-psf-foundation.md +181 -0
  667. package/docs/api/optics-radial-distortion.md +194 -0
  668. package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
  669. package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
  670. package/docs/api/optics-sensor-environment-query.md +58 -0
  671. package/docs/api/optics-sensor-psf-quadrature.md +81 -0
  672. package/docs/api/optics-stray-light.md +109 -0
  673. package/docs/api/optics-thin-lens.md +53 -0
  674. package/docs/api/output-capture-corrected-sdr.md +71 -0
  675. package/docs/api/output-capture-geometry.md +500 -0
  676. package/docs/api/output-capture-sdr.md +69 -0
  677. package/docs/api/output-crop.md +47 -0
  678. package/docs/api/output-geometric-transforms.md +199 -0
  679. package/docs/api/output-lens-corrections.md +162 -0
  680. package/docs/api/output-sdr-rendering.md +122 -0
  681. package/docs/api/output-subject-framing-crop.md +59 -0
  682. package/docs/api/schema-camera.md +84 -0
  683. package/docs/api/schema-illumination-spectral.md +77 -0
  684. package/docs/api/schema-illumination-temporal.md +289 -0
  685. package/docs/api/schema-illumination.md +246 -0
  686. package/docs/api/schema-scene-radiance-temporal.md +215 -0
  687. package/docs/api/schema-scene-radiance.md +415 -0
  688. package/docs/api/schema-scene.md +105 -0
  689. package/docs/api/schema-validation.md +25 -0
  690. package/docs/api/sensor-accumulated-charge.md +273 -0
  691. package/docs/api/sensor-architecture.md +155 -0
  692. package/docs/api/sensor-camera-saturation-capacity.md +215 -0
  693. package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
  694. package/docs/api/sensor-capture-mode-timing.md +123 -0
  695. package/docs/api/sensor-capture-mode.md +321 -0
  696. package/docs/api/sensor-color-sampling.md +228 -0
  697. package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
  698. package/docs/api/sensor-dark-current.md +227 -0
  699. package/docs/api/sensor-environment-photo-signal.md +77 -0
  700. package/docs/api/sensor-eqe-electron-rate.md +166 -0
  701. package/docs/api/sensor-eqe-local-exposure.md +68 -0
  702. package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
  703. package/docs/api/sensor-exposure-window.md +183 -0
  704. package/docs/api/sensor-iso-signal-chain.md +264 -0
  705. package/docs/api/sensor-local-exposure-binding.md +126 -0
  706. package/docs/api/sensor-optical-stack.md +211 -0
  707. package/docs/api/sensor-photon-energy.md +149 -0
  708. package/docs/api/sensor-physical-charge-capacity.md +196 -0
  709. package/docs/api/sensor-pixel-pitch.md +41 -0
  710. package/docs/api/sensor-radiometry-readiness.md +240 -0
  711. package/docs/api/sensor-raw-readout.md +499 -0
  712. package/docs/api/sensor-raw-reconstruction.md +260 -0
  713. package/docs/api/sensor-readout-exposure-linkage.md +172 -0
  714. package/docs/api/sensor-readout-timing.md +209 -0
  715. package/docs/api/sensor-response-application-compatibility.md +256 -0
  716. package/docs/api/sensor-response-operating-range.md +293 -0
  717. package/docs/api/sensor-responsivity-photocurrent.md +245 -0
  718. package/docs/api/sensor-sampling-aperture.md +221 -0
  719. package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
  720. package/docs/api/sensor-sensor-geometry.md +143 -0
  721. package/docs/api/sensor-signal-noise.md +75 -0
  722. package/docs/api/sensor-spatial-sample-reduction.md +186 -0
  723. package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
  724. package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
  725. package/docs/api/sensor-spectral-coverage.md +33 -0
  726. package/docs/api/sensor-spectral-quadrature.md +183 -0
  727. package/docs/api/sensor-spectral-response.md +291 -0
  728. package/docs/api/sensor-temporal-photo-signal.md +62 -0
  729. package/docs/api/simulation-poc-simulation.md +364 -0
  730. package/docs/api/stabilization-camera-shake.md +71 -0
  731. package/docs/api/stabilization-system.md +442 -0
  732. package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
  733. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
  734. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
  735. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
  736. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
  737. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
  738. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
  739. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
  740. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
  741. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
  742. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
  743. package/docs/examples/production-capture.mjs +34 -0
  744. package/docs/examples/production-request.json +4613 -0
  745. package/docs/examples/quick-start.mjs +12 -0
  746. package/docs/validation/documentation-fragments.json +212 -0
  747. package/docs/validation/release-audit-inventory.json +1306 -0
  748. package/docs/validation/tier-acceptance-report-v1.json +2538 -0
  749. package/package.json +15 -3
@@ -0,0 +1,825 @@
1
+ # composition/image-formation-plan.ts public contracts
2
+
3
+ Package **1.0.0**, root API **0.116.0**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## createProductionCaptureSnapshot
6
+
7
+ Commit resolved capture settings, scene time/identity, stochastic seed and optional
8
+ temporal/focus/WB state by value. Later application mutations cannot alter this scientific event.
9
+
10
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
11
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
12
+ bounded environment route executes supplied radiance through native RAW and optional output, while
13
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
14
+ reproducibility keys, not cryptographic integrity proofs.
15
+
16
+ ```ts
17
+ export function createProductionCaptureSnapshot(
18
+ input:
19
+ CreateProductionCaptureSnapshotInput
20
+ ): ProductionCaptureSnapshot;
21
+ ```
22
+
23
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
24
+
25
+ ## createProductionCaptureSnapshotFromReleaseFrame
26
+
27
+ Creates one immutable production snapshot directly from a committed #105
28
+ release frame. The release frame owns exposure/focus/automation/seed
29
+ identity; callers provide only the scene/output-local state that is not
30
+ owned by the release sequence.
31
+
32
+ ```ts
33
+ export function createProductionCaptureSnapshotFromReleaseFrame(
34
+ input:
35
+ CreateProductionCaptureSnapshotFromReleaseFrameInput
36
+ ): ProductionCaptureSnapshot;
37
+ ```
38
+
39
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
40
+
41
+ ## CreateProductionCaptureSnapshotFromReleaseFrameInput
42
+
43
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
44
+
45
+ ```ts
46
+ export interface CreateProductionCaptureSnapshotFromReleaseFrameInput {
47
+ captureId: string;
48
+ sceneStateId: string;
49
+ sceneTimeSecondsFromExposureStart:
50
+ number;
51
+ outputStateId: string;
52
+ releaseFrame:
53
+ ResolvedReleaseFrame;
54
+ whiteBalanceState?:
55
+ ResolvedWhiteBalanceState;
56
+ physicalSceneSample?:
57
+ ProductionPhysicalSceneSample;
58
+ temporalCapture?:
59
+ ProductionTemporalCaptureInput;
60
+ }
61
+ ```
62
+
63
+ ## CreateProductionCaptureSnapshotInput
64
+
65
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
66
+
67
+ ```ts
68
+ export interface CreateProductionCaptureSnapshotInput {
69
+ captureId: string;
70
+ releaseFrameId: string;
71
+ sceneStateId: string;
72
+ sceneTimeSecondsFromExposureStart:
73
+ number;
74
+ outputStateId: string;
75
+ exposure: {
76
+ aperture: number;
77
+ shutterSeconds: number;
78
+ iso: number;
79
+ };
80
+ stochasticSeedUint32: number;
81
+ releaseFrameBinding?:
82
+ ProductionReleaseFrameBinding;
83
+ whiteBalanceState?:
84
+ ResolvedWhiteBalanceState;
85
+ physicalSceneSample?:
86
+ ProductionPhysicalSceneSample;
87
+ temporalCapture?:
88
+ ProductionTemporalCaptureInput;
89
+ }
90
+ ```
91
+
92
+ ## createProductionImageFormationPlan
93
+
94
+ Expand requested stages through the authoritative graph, validate shared commitments and capability
95
+ limits, then execute only supported declared input routes. Return explicit
96
+ active/zero/omitted/blocked dispositions and child evidence rather than silently skipping a
97
+ requested effect.
98
+
99
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
100
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
101
+ bounded environment route executes supplied radiance through native RAW and optional output, while
102
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
103
+ reproducibility keys, not cryptographic integrity proofs.
104
+
105
+ ```ts
106
+ export function createProductionImageFormationPlan(
107
+ input:
108
+ CreateProductionImageFormationPlanInput
109
+ ): ProductionImageFormationPlan;
110
+ ```
111
+
112
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
113
+
114
+ ## CreateProductionImageFormationPlanInput
115
+
116
+ Join one validated prepared context and immutable capture snapshot with exactly
117
+ one supported physical input route: supplied sample, attached RAW processing or
118
+ executed environment capture. The environment route owns its synchronous
119
+ provider callback and may supply a processing policy with RAW omitted; execution
120
+ provides the exact realized frame. Incompatible route combinations fail closed.
121
+ A complete record does not authorize effects outside the supported envelope.
122
+
123
+ ```ts
124
+ export interface CreateProductionImageFormationPlanInput {
125
+ environmentCapture?: ProductionEnvironmentCaptureInput;
126
+ /** Explicit authoritative post-ADC RAW input; output processing cannot synthesize upstream scene truth. */
127
+ processedOutput?: ProductionProcessedOutputInput;
128
+ preparedContext:
129
+ PreparedImageFormationContext;
130
+ captureSnapshot:
131
+ ProductionCaptureSnapshot;
132
+ }
133
+ ```
134
+
135
+ ## IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION
136
+
137
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
138
+
139
+ ```ts
140
+ IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION =
141
+ "0.1.0" as const
142
+ ```
143
+
144
+ ## ImageFormationFidelityProfile
145
+
146
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
147
+
148
+ ```ts
149
+ export interface ImageFormationFidelityProfile {
150
+ schemaVersion:
151
+ typeof IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION;
152
+ profileId: string;
153
+ profileVersion: string;
154
+ requiredStages:
155
+ readonly ImageFormationStageId[];
156
+ requiredEffects:
157
+ readonly RequiredImageFormationEffect[];
158
+ rendererRequirements: {
159
+ spectral:
160
+ | "wavelength-resolved"
161
+ | "wavelength-independent-approximation";
162
+ sensorDomainProcessing: boolean;
163
+ depth:
164
+ | "none"
165
+ | "per-layer";
166
+ };
167
+ }
168
+ ```
169
+
170
+ ## parseImageFormationFidelityProfile
171
+
172
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
173
+ missing required fields and incompatible scientific data fail at this boundary.
174
+
175
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
176
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
177
+ bounded environment route executes supplied radiance through native RAW and optional output, while
178
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
179
+ reproducibility keys, not cryptographic integrity proofs.
180
+
181
+ ```ts
182
+ export function parseImageFormationFidelityProfile(
183
+ value: unknown
184
+ ): ImageFormationFidelityProfile;
185
+ ```
186
+
187
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
188
+
189
+ ## parsePreparedImageFormationContext
190
+
191
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
192
+ missing required fields and incompatible scientific data fail at this boundary.
193
+
194
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
195
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
196
+ bounded environment route executes supplied radiance through native RAW and optional output, while
197
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
198
+ reproducibility keys, not cryptographic integrity proofs.
199
+
200
+ ```ts
201
+ export function parsePreparedImageFormationContext(
202
+ value: unknown
203
+ ): PreparedImageFormationContext;
204
+ ```
205
+
206
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
207
+
208
+ ## parseProductionCaptureSnapshot
209
+
210
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
211
+ missing required fields and incompatible scientific data fail at this boundary.
212
+
213
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
214
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
215
+ bounded environment route executes supplied radiance through native RAW and optional output, while
216
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
217
+ reproducibility keys, not cryptographic integrity proofs.
218
+
219
+ ```ts
220
+ export function parseProductionCaptureSnapshot(
221
+ value: unknown
222
+ ): ProductionCaptureSnapshot;
223
+ ```
224
+
225
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
226
+
227
+ ## parseRendererCapabilityDeclaration
228
+
229
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
230
+ missing required fields and incompatible scientific data fail at this boundary.
231
+
232
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
233
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
234
+ bounded environment route executes supplied radiance through native RAW and optional output, while
235
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
236
+ reproducibility keys, not cryptographic integrity proofs.
237
+
238
+ ```ts
239
+ export function parseRendererCapabilityDeclaration(
240
+ value: unknown
241
+ ): RendererCapabilityDeclaration;
242
+ ```
243
+
244
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
245
+
246
+ ## PlannedImageFormationEffect
247
+
248
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
249
+
250
+ ```ts
251
+ export interface PlannedImageFormationEffect {
252
+ effectId: ImageFormationEffectId;
253
+ primaryStage: ImageFormationStageId;
254
+ coupledStages:
255
+ readonly ImageFormationStageId[];
256
+ state:
257
+ PlannedImageFormationEffectState;
258
+ scientificStatus:
259
+ PlannedScientificStatus;
260
+ requiredByFidelity: boolean;
261
+ modelId?: string;
262
+ modelVersion?: string;
263
+ blockerCodes:
264
+ readonly ProductionImageFormationBlockerCode[];
265
+ }
266
+ ```
267
+
268
+ ## PlannedImageFormationEffectState
269
+
270
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
271
+
272
+ ```ts
273
+ export type PlannedImageFormationEffectState =
274
+ | "active"
275
+ | "modeled-zero"
276
+ | "omitted-by-fidelity"
277
+ | "unsupported"
278
+ | "blocked";
279
+ ```
280
+
281
+ ## PlannedImageFormationStage
282
+
283
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
284
+
285
+ ```ts
286
+ export interface PlannedImageFormationStage {
287
+ stageId: ImageFormationStageId;
288
+ contractStatus:
289
+ ReturnType<
290
+ typeof getImageFormationContract
291
+ >["stages"][number]["status"];
292
+ state:
293
+ PlannedImageFormationStageState;
294
+ scientificStatus:
295
+ PlannedScientificStatus;
296
+ requiredByFidelity: boolean;
297
+ requiredUpstreamStages:
298
+ readonly ImageFormationStageId[];
299
+ coupledStages:
300
+ readonly ImageFormationStageId[];
301
+ modelId?: string;
302
+ modelVersion?: string;
303
+ resultIdentity?: string;
304
+ blockerCodes:
305
+ readonly ProductionImageFormationBlockerCode[];
306
+ }
307
+ ```
308
+
309
+ ## PlannedImageFormationStageState
310
+
311
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
312
+
313
+ ```ts
314
+ export type PlannedImageFormationStageState =
315
+ | "active"
316
+ | "modeled-zero"
317
+ | "omitted-by-fidelity"
318
+ | "unsupported"
319
+ | "blocked";
320
+ ```
321
+
322
+ ## PlannedScientificStatus
323
+
324
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
325
+
326
+ ```ts
327
+ export type PlannedScientificStatus =
328
+ | "calibrated"
329
+ | "approximation"
330
+ | "not-applicable";
331
+ ```
332
+
333
+ ## PREPARED_IMAGE_FORMATION_CONTEXT_VERSION
334
+
335
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
336
+
337
+ ```ts
338
+ PREPARED_IMAGE_FORMATION_CONTEXT_VERSION =
339
+ "0.1.0" as const
340
+ ```
341
+
342
+ ## PreparedImageFormationContext
343
+
344
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
345
+
346
+ ```ts
347
+ export interface PreparedImageFormationContext {
348
+ version:
349
+ typeof PREPARED_IMAGE_FORMATION_CONTEXT_VERSION;
350
+ contextId: string;
351
+ sceneId: string;
352
+ sceneRadianceProviderProfileId:
353
+ string;
354
+ outputGeometryProfileId: string;
355
+ equipmentCapabilities:
356
+ ResolvedGenericEquipmentExposureCapabilities;
357
+ opticalBridgeProfile?:
358
+ SceneToSensorIrradianceProfile;
359
+ renderer:
360
+ RendererCapabilityDeclaration;
361
+ fidelity:
362
+ ImageFormationFidelityProfile;
363
+ fingerprint: {
364
+ algorithm:
365
+ "fnv1a-32-non-cryptographic";
366
+ value: string;
367
+ };
368
+ }
369
+ ```
370
+
371
+ ## prepareImageFormationContext
372
+
373
+ Parse, own and freeze relatively static equipment, scene, renderer and fidelity declarations for
374
+ reuse by later immutable captures. This prepares semantic state and does not render a frame.
375
+
376
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
377
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
378
+ bounded environment route executes supplied radiance through native RAW and optional output, while
379
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
380
+ reproducibility keys, not cryptographic integrity proofs.
381
+
382
+ ```ts
383
+ export function prepareImageFormationContext(
384
+ input:
385
+ PrepareImageFormationContextInput
386
+ ): PreparedImageFormationContext;
387
+ ```
388
+
389
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
390
+
391
+ ## PrepareImageFormationContextInput
392
+
393
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
394
+
395
+ ```ts
396
+ export interface PrepareImageFormationContextInput {
397
+ contextId: string;
398
+ sceneId: string;
399
+ sceneRadianceProviderProfileId:
400
+ string;
401
+ outputGeometryProfileId: string;
402
+ equipmentCapabilities:
403
+ ResolvedGenericEquipmentExposureCapabilities;
404
+ opticalBridgeProfile?:
405
+ SceneToSensorIrradianceProfile;
406
+ renderer:
407
+ RendererCapabilityDeclaration;
408
+ fidelity:
409
+ ImageFormationFidelityProfile;
410
+ }
411
+ ```
412
+
413
+ ## PRODUCTION_CAPTURE_SNAPSHOT_VERSION
414
+
415
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
416
+
417
+ ```ts
418
+ PRODUCTION_CAPTURE_SNAPSHOT_VERSION =
419
+ "0.3.0" as const
420
+ ```
421
+
422
+ ## PRODUCTION_IMAGE_FORMATION_PLAN_VERSION
423
+
424
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
425
+
426
+ ```ts
427
+ PRODUCTION_IMAGE_FORMATION_PLAN_VERSION =
428
+ "0.7.0" as const
429
+ ```
430
+
431
+ ## ProductionCaptureSnapshot
432
+
433
+ Owned frozen per-event state linking capture/release/scene/output IDs, physical
434
+ aperture/shutter/ISO, seconds-valued scene time and an explicit uint32 seed.
435
+ Optional focus/WB/temporal bindings commit their exact resolved state. This is a
436
+ semantic snapshot, not the generated image; changing a later UI value requires a
437
+ new snapshot rather than mutating a previously planned capture.
438
+
439
+ ```ts
440
+ export interface ProductionCaptureSnapshot {
441
+ version:
442
+ typeof PRODUCTION_CAPTURE_SNAPSHOT_VERSION;
443
+ captureId: string;
444
+ releaseFrameId: string;
445
+ sceneStateId: string;
446
+ sceneTimeSecondsFromExposureStart:
447
+ number;
448
+ outputStateId: string;
449
+ exposure: {
450
+ aperture: number;
451
+ shutterSeconds: number;
452
+ iso: number;
453
+ };
454
+ stochasticSeedUint32: number;
455
+ releaseFrameBinding?:
456
+ ProductionReleaseFrameBinding;
457
+ whiteBalanceState?:
458
+ ResolvedWhiteBalanceState;
459
+ physicalSceneSample?:
460
+ ProductionPhysicalSceneSample;
461
+ temporalCapture?:
462
+ ProductionTemporalCaptureInput;
463
+ fingerprint: {
464
+ algorithm:
465
+ "fnv1a-32-non-cryptographic";
466
+ value: string;
467
+ };
468
+ }
469
+ ```
470
+
471
+ ## ProductionEnvironmentCaptureInput
472
+
473
+ Executes the existing bounded environment capture inside the authoritative plan.
474
+ The callback is synchronous local provider code; it is never serialized. Returned
475
+ provider samples and realized RAW, rather than function identity, bind replay.
476
+
477
+ ```ts
478
+ export interface ProductionEnvironmentCaptureInput {
479
+ capture: SimulateEnvironmentSensorRawFrameInput;
480
+ /** Optional post-capture policy. The RAW source is supplied only by execution. */
481
+ processing?: Omit<ProcessedSensorRawInput, "reconstruction"> & {
482
+ reconstruction: Omit<ProcessedSensorRawInput["reconstruction"], "rawFrame">;
483
+ };
484
+ }
485
+ ```
486
+
487
+ ## ProductionImageFormationBlocker
488
+
489
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
490
+
491
+ ```ts
492
+ export interface ProductionImageFormationBlocker {
493
+ code:
494
+ ProductionImageFormationBlockerCode;
495
+ message: string;
496
+ stageId?: ImageFormationStageId;
497
+ effectId?: ImageFormationEffectId;
498
+ }
499
+ ```
500
+
501
+ ## ProductionImageFormationBlockerCode
502
+
503
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
504
+
505
+ ```ts
506
+ export type ProductionImageFormationBlockerCode =
507
+ | "environment-capture-evaluation-blocked"
508
+ | "processed-output-evaluation-blocked"
509
+ | "engine-stage-not-composed"
510
+ | "engine-effect-not-composed"
511
+ | "renderer-stage-unsupported"
512
+ | "renderer-effect-unsupported"
513
+ | "renderer-spectral-capability-insufficient"
514
+ | "renderer-sensor-domain-processing-unavailable"
515
+ | "renderer-depth-capability-insufficient"
516
+ | "renderer-inverse-field-mapping-required"
517
+ | "renderer-premultiplied-alpha-required"
518
+ | "renderer-depth-order-preservation-required"
519
+ | "missing-optical-bridge-profile"
520
+ | "missing-physical-scene-sample"
521
+ | "undeclared-field-throughput-effect"
522
+ | "physical-radiometry-evaluation-blocked"
523
+ | "missing-temporal-capture-input"
524
+ | "temporal-evaluation-blocked"
525
+ | "missing-camera-rotation-model"
526
+ | "missing-sensor-readout-timing"
527
+ | "renderer-temporal-sampling-insufficient";
528
+ ```
529
+
530
+ ## ProductionImageFormationPlan
531
+
532
+ Immutable engine-owned scientific execution record. Inspect status and blockers
533
+ before treating requested stages as usable; each stage distinguishes execution,
534
+ modeled-zero, fidelity omission and unsupported inputs. Optional environment and
535
+ processed results carry exact child lineage, while sample-only routes retain
536
+ upstream blockers. Versions identify independent contracts. The fingerprint is
537
+ canonical FNV reproducibility identity, not adversarial integrity. Replay also
538
+ requires identical provider responses; no renderer callback is serialized.
539
+
540
+ ```ts
541
+ export interface ProductionImageFormationPlan {
542
+ version:
543
+ typeof PRODUCTION_IMAGE_FORMATION_PLAN_VERSION;
544
+ status: "ready" | "blocked";
545
+ versions: {
546
+ engineApi: typeof ENGINE_API_VERSION;
547
+ imageFormationContract:
548
+ typeof IMAGE_FORMATION_CONTRACT_VERSION;
549
+ plan:
550
+ typeof PRODUCTION_IMAGE_FORMATION_PLAN_VERSION;
551
+ preparedContext:
552
+ typeof PREPARED_IMAGE_FORMATION_CONTEXT_VERSION;
553
+ captureSnapshot:
554
+ typeof PRODUCTION_CAPTURE_SNAPSHOT_VERSION;
555
+ rendererCapability:
556
+ typeof RENDERER_CAPABILITY_SCHEMA_VERSION;
557
+ fidelityProfile:
558
+ typeof IMAGE_FORMATION_FIDELITY_PROFILE_SCHEMA_VERSION;
559
+ scientificAssurance:
560
+ typeof SCIENTIFIC_ASSURANCE_CONTRACT_VERSION;
561
+ };
562
+ contextIdentity: {
563
+ contextId: string;
564
+ preparedContextFingerprint:
565
+ string;
566
+ };
567
+ captureIdentity: {
568
+ captureId: string;
569
+ releaseFrameId: string;
570
+ sceneStateId: string;
571
+ releaseSequenceId?: string;
572
+ releaseFrameIndex?: number;
573
+ whiteBalanceStateId?: string;
574
+ captureSnapshotFingerprint:
575
+ string;
576
+ };
577
+ rendererIdentity: {
578
+ rendererId: string;
579
+ rendererVersion: string;
580
+ consumerKind:
581
+ RendererConsumerKind;
582
+ };
583
+ fidelityIdentity: {
584
+ profileId: string;
585
+ profileVersion: string;
586
+ };
587
+ stagePlan:
588
+ readonly PlannedImageFormationStage[];
589
+ effectPlan:
590
+ readonly PlannedImageFormationEffect[];
591
+ blockers:
592
+ readonly ProductionImageFormationBlocker[];
593
+ /** Noncryptographic commitment of execution data, excluding executable callback identity. */
594
+ environmentCaptureRequestFingerprint?: string;
595
+ /** Executed bounded source-to-ADC lineage; provider transport remains unverified. */
596
+ environmentCaptureResult?: ReturnType<typeof simulateEnvironmentSensorRawFrame>;
597
+ processedOutputResult?: ReturnType<typeof calculateProcessedSensorRaw>;
598
+ physicalSceneToSensorResult?:
599
+ SceneToSensorIrradianceResult;
600
+ temporalCaptureResult?:
601
+ ProductionTemporalCaptureResult;
602
+ scientificAssurance?:
603
+ ComposedScientificAssurance;
604
+ stochastic: {
605
+ captureSeedUint32: number;
606
+ backendRandomnessMayRedefineScientificResult:
607
+ false;
608
+ };
609
+ immutableCaptureSnapshot: true;
610
+ legacyPocModified: false;
611
+ fingerprint: {
612
+ algorithm:
613
+ "fnv1a-32-non-cryptographic";
614
+ value: string;
615
+ purpose:
616
+ "deterministic-reproducibility-key-not-integrity-security";
617
+ };
618
+ }
619
+ ```
620
+
621
+ ## ProductionPhysicalSceneSample
622
+
623
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
624
+
625
+ ```ts
626
+ export interface ProductionPhysicalSceneSample {
627
+ sceneRadianceRequest:
628
+ SceneRadianceEvaluationRequest;
629
+ sceneRadianceResult:
630
+ SceneRadianceEvaluationResult;
631
+ focus:
632
+ OpticalBridgeFocusContext;
633
+ imagePointMm: {
634
+ x: number;
635
+ y: number;
636
+ };
637
+ fieldThroughput:
638
+ OpticalBridgeFieldThroughput;
639
+ frontOfLensFilters?:
640
+ readonly FrontOfLensFilterProfile[];
641
+ }
642
+ ```
643
+
644
+ ## ProductionProcessedOutputInput
645
+
646
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
647
+
648
+ ```ts
649
+ export interface ProductionProcessedOutputInput {
650
+ /** Explicit binding of numeric raster/crop policy to the committed output state. */
651
+ outputStateId: string;
652
+ processing: ProcessedSensorRawInput;
653
+ }
654
+ ```
655
+
656
+ ## ProductionReleaseFrameBinding
657
+
658
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
659
+
660
+ ```ts
661
+ export interface ProductionReleaseFrameBinding {
662
+ releaseSequenceVersion:
663
+ typeof RELEASE_SEQUENCE_VERSION;
664
+ sequenceId: string;
665
+ releaseFrameId: string;
666
+ frameIndex: number;
667
+ exposure: {
668
+ aperture: number;
669
+ shutterSeconds: number;
670
+ iso: number;
671
+ };
672
+ stochasticSeedUint32: number;
673
+ exposureStartTimeSeconds: number;
674
+ exposureEndTimeSeconds: number;
675
+ sceneTimeSecondsFromSequenceStart:
676
+ number;
677
+ startIntervalFromPreviousSeconds:
678
+ number | null;
679
+ timingConstraints:
680
+ readonly ReleaseTimingConstraint[];
681
+ focus:
682
+ ResolvedReleaseFrame["focus"];
683
+ automation:
684
+ ResolvedReleaseFrame["automation"];
685
+ whiteBalanceStateId?: string;
686
+ }
687
+ ```
688
+
689
+ ## ProductionTemporalCaptureInput
690
+
691
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
692
+
693
+ ```ts
694
+ export interface ProductionTemporalCaptureInput {
695
+ exposureWindowInput:
696
+ CalculateCaptureExposureWindowsInput;
697
+ imagingArea: SensorImagingArea;
698
+ orientation: CaptureOrientation;
699
+ readout?:
700
+ SensorReadoutTimingDeclaration;
701
+ rotation?: {
702
+ angularVelocityRadPerSec:
703
+ CameraAngularVelocityRadPerSec;
704
+ focusDistanceM?: number;
705
+ temporalSampleCount: number;
706
+ };
707
+ }
708
+ ```
709
+
710
+ ## ProductionTemporalCaptureResult
711
+
712
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
713
+
714
+ ```ts
715
+ export interface ProductionTemporalCaptureResult {
716
+ exposureWindows:
717
+ CaptureExposureWindows;
718
+ sensorReadoutTiming?:
719
+ SensorReadoutTiming;
720
+ rotationQuadrature?:
721
+ CaptureRotationTemporalQuadrature;
722
+ exposureTimeReference:
723
+ "first-opening-boundary-phase";
724
+ readoutExposureSynchronization:
725
+ "not-assumed";
726
+ sensorReadoutTimingRemainsSeparate:
727
+ true;
728
+ temporalRadianceIntegrated:
729
+ false;
730
+ }
731
+ ```
732
+
733
+ ## RENDERER_CAPABILITY_SCHEMA_VERSION
734
+
735
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
736
+
737
+ ```ts
738
+ RENDERER_CAPABILITY_SCHEMA_VERSION =
739
+ "0.1.0" as const
740
+ ```
741
+
742
+ ## RendererCapabilityDeclaration
743
+
744
+ Plain-data declaration of one consumer backend's supported scientific domains,
745
+ stages/effects and temporal budget. It is validated metadata, not executable
746
+ renderer code or proof of physical correctness. Unknown/insufficient capability
747
+ must block requested fidelity before trusted provider execution. Interactive and
748
+ reference roles keep the same committed science even when backend fidelity differs.
749
+
750
+ ```ts
751
+ export interface RendererCapabilityDeclaration {
752
+ schemaVersion:
753
+ typeof RENDERER_CAPABILITY_SCHEMA_VERSION;
754
+ rendererId: string;
755
+ rendererVersion: string;
756
+ consumerKind: RendererConsumerKind;
757
+ supportedStages:
758
+ readonly ImageFormationStageId[];
759
+ supportedEffects:
760
+ readonly ImageFormationEffectId[];
761
+ spectralCapability:
762
+ | "wavelength-resolved"
763
+ | "wavelength-independent-approximation";
764
+ temporalSampling:
765
+ | {
766
+ kind: "none";
767
+ }
768
+ | {
769
+ kind: "bounded";
770
+ maximumSamples: number;
771
+ };
772
+ depthCapability:
773
+ | "none"
774
+ | "per-layer";
775
+ inverseFieldMapping: boolean;
776
+ alphaRepresentation:
777
+ | "premultiplied"
778
+ | "straight";
779
+ preservesDepthOrderAcrossWarps:
780
+ boolean;
781
+ sensorDomainProcessing: boolean;
782
+ }
783
+ ```
784
+
785
+ ## RendererConsumerKind
786
+
787
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
788
+
789
+ ```ts
790
+ export type RendererConsumerKind =
791
+ | "interactive-optimized"
792
+ | "reference";
793
+ ```
794
+
795
+ ## RequiredImageFormationEffect
796
+
797
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
798
+
799
+ ```ts
800
+ export interface RequiredImageFormationEffect {
801
+ effectId: ImageFormationEffectId;
802
+ modelId: string;
803
+ modelVersion: string;
804
+ }
805
+ ```
806
+
807
+ ## serializeProductionImageFormationPlan
808
+
809
+ Return deterministic canonical JSON of a validated production plan. Sorted object keys preserve
810
+ array order; the representation contains data and excludes executable provider callbacks.
811
+
812
+ The planner owns scientific stage ordering, immutable capture identity and reproducibility.
813
+ Well-formed unsupported combinations produce structured blockers; malformed declarations throw. The
814
+ bounded environment route executes supplied radiance through native RAW and optional output, while
815
+ sample-only and attached-RAW routes retain missing upstream blockers. FNV fingerprints are
816
+ reproducibility keys, not cryptographic integrity proofs.
817
+
818
+ ```ts
819
+ export function serializeProductionImageFormationPlan(
820
+ plan:
821
+ ProductionImageFormationPlan
822
+ ): string;
823
+ ```
824
+
825
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.