@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,215 @@
1
+ # sensor/camera-saturation-capacity.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
+ ## assessSensorCameraSaturationCapacity
6
+
7
+ Compare dark-corrected expected photo signal with the declared camera response-chain capacity
8
+ without adding dark charge or identifying a hardware clamp.
9
+
10
+ Camera saturation capacity is a dark-corrected photo-signal electron-equivalent limit. It is not
11
+ physical total-charge storage capacity, ADC maximum or evidence of the limiting hardware stage. This
12
+ assessment compares expectations and does not synthesize post-saturation codes.
13
+
14
+ ```ts
15
+ export function assessSensorCameraSaturationCapacity(
16
+ input:
17
+ AssessSensorCameraSaturationCapacityInput
18
+ ): CalculationResult<SensorCameraSaturationCapacityAssessment>;
19
+ ```
20
+
21
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
22
+
23
+ ## AssessSensorCameraSaturationCapacityInput
24
+
25
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
26
+
27
+ ```ts
28
+ export interface AssessSensorCameraSaturationCapacityInput {
29
+ accumulatedCharge:
30
+ SensorAccumulatedChargeComposition;
31
+ saturationProfile:
32
+ SensorCameraSaturationCapacityProfile;
33
+ operatingStateId: string;
34
+ operatingTemperatureC: number;
35
+ }
36
+ ```
37
+
38
+ ## parseSensorCameraSaturationCapacityProfile
39
+
40
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
41
+ missing required fields and incompatible scientific data fail at this boundary.
42
+
43
+ Camera saturation capacity is a dark-corrected photo-signal electron-equivalent limit. It is not
44
+ physical total-charge storage capacity, ADC maximum or evidence of the limiting hardware stage. This
45
+ assessment compares expectations and does not synthesize post-saturation codes.
46
+
47
+ ```ts
48
+ export function parseSensorCameraSaturationCapacityProfile(
49
+ value: unknown
50
+ ): SensorCameraSaturationCapacityProfile;
51
+ ```
52
+
53
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
54
+
55
+ ## SensorCameraSaturationCapacityAssessment
56
+
57
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
58
+
59
+ ```ts
60
+ export interface SensorCameraSaturationCapacityAssessment {
61
+ saturationProfileId: string;
62
+ completenessProfileId: string;
63
+ colorSamplingProfileId: string;
64
+ channelId: string;
65
+ site: {
66
+ x: number;
67
+ y: number;
68
+ };
69
+ bindingId: string;
70
+ operatingStateId: string;
71
+ operatingTemperatureC: number;
72
+ capacityMeaning:
73
+ "camera-signal-saturation-capacity-electrons";
74
+ signalDomain:
75
+ "dark-corrected-photo-generated-electron-equivalent";
76
+ cameraSignalSaturationCapacityElectrons:
77
+ number;
78
+ expectedPhotoSignalElectronCount:
79
+ number;
80
+ totalExpectedStoredElectronCountDiagnostic:
81
+ number;
82
+ totalStoredChargeUsedForCameraSaturationComparison:
83
+ false;
84
+ expectedSignalToCameraSaturationRatio:
85
+ number;
86
+ expectedSignalHeadroomElectrons:
87
+ number;
88
+ expectedCameraSignalCapacityStatus:
89
+ | "below-capacity"
90
+ | "at-capacity"
91
+ | "above-capacity";
92
+ expectedPhotoSignalExceedsCameraCapacity:
93
+ boolean;
94
+ cameraSaturationCapacityAssessmentPerformed:
95
+ true;
96
+ assessmentMeaning:
97
+ "expected-dark-corrected-photo-signal-vs-camera-saturation-capacity";
98
+ physicalChargeCapacityUsed:
99
+ false;
100
+ limitingSaturationMechanismResolved:
101
+ false;
102
+ analogClippingThresholdModeled:
103
+ false;
104
+ digitalClippingThresholdModeled:
105
+ false;
106
+ adcMaximumCodeUsed:
107
+ false;
108
+ actualStochasticSaturationStateKnown:
109
+ false;
110
+ stochasticSaturationProbabilityAssessed:
111
+ false;
112
+ outputSignalAfterSaturationCalculated:
113
+ false;
114
+ clampApplied: false;
115
+ physicalStoredChargeModified:
116
+ false;
117
+ adcQuantizationApplied: false;
118
+ rawCodeValueProduced: false;
119
+ saturationCapacityUncertaintyPropagated:
120
+ false;
121
+ photoSignalUncertaintyPropagated:
122
+ false;
123
+ componentEvidence: {
124
+ saturationCapacity:
125
+ readonly EvidenceProvenance[];
126
+ measurementMethod:
127
+ readonly EvidenceProvenance[];
128
+ operatingState:
129
+ readonly EvidenceProvenance[];
130
+ siteApproximation:
131
+ readonly EvidenceProvenance[];
132
+ temperatureApproximation:
133
+ readonly EvidenceProvenance[];
134
+ chargeCompleteness:
135
+ SensorAccumulatedChargeComposition["componentEvidence"]["completeness"];
136
+ };
137
+ }
138
+ ```
139
+
140
+ ## SensorCameraSaturationCapacityProfile
141
+
142
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
143
+
144
+ ```ts
145
+ export interface SensorCameraSaturationCapacityProfile {
146
+ schemaVersion: "0.1.0";
147
+ profileId: string;
148
+ colorSamplingProfileId: string;
149
+ channelId: string;
150
+ capacityMeaning:
151
+ "camera-signal-saturation-capacity-electrons";
152
+ signalDomain:
153
+ "dark-corrected-photo-generated-electron-equivalent";
154
+ saturationCapacityElectrons: number;
155
+ scientificStatus:
156
+ SensorSpectralResponseScientificStatus;
157
+ uncertainty:
158
+ SensorSpectralResponseUncertainty;
159
+ evidence:
160
+ readonly EvidenceProvenance[];
161
+ measurementMethodId: string;
162
+ measurementMethodEvidence:
163
+ readonly EvidenceProvenance[];
164
+ siteApplicability:
165
+ SensorCameraSaturationSiteApplicability;
166
+ operatingState: {
167
+ stateId: string;
168
+ evidence:
169
+ readonly EvidenceProvenance[];
170
+ };
171
+ temperatureApplicability:
172
+ SensorCameraSaturationTemperatureApplicability;
173
+ }
174
+ ```
175
+
176
+ ## SensorCameraSaturationSiteApplicability
177
+
178
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
179
+
180
+ ```ts
181
+ export type SensorCameraSaturationSiteApplicability =
182
+ | {
183
+ kind: "exact-site";
184
+ site: {
185
+ x: number;
186
+ y: number;
187
+ };
188
+ }
189
+ | {
190
+ kind:
191
+ "channel-population-mean-approximation";
192
+ limitation: string;
193
+ evidence:
194
+ readonly EvidenceProvenance[];
195
+ };
196
+ ```
197
+
198
+ ## SensorCameraSaturationTemperatureApplicability
199
+
200
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
201
+
202
+ ```ts
203
+ export type SensorCameraSaturationTemperatureApplicability =
204
+ | {
205
+ kind:
206
+ "exact-reference-temperature";
207
+ temperatureC: number;
208
+ }
209
+ | {
210
+ kind: "not-modeled";
211
+ limitation: string;
212
+ evidence:
213
+ readonly EvidenceProvenance[];
214
+ };
215
+ ```
@@ -0,0 +1,323 @@
1
+ # sensor/capture-color-sampling-binding.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
+ ## CaptureModeFullFrameSampleIndex
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ export interface CaptureModeFullFrameSampleIndex {
11
+ /**
12
+ * Zero-based index in the selected mode's full-frame per-frame effective
13
+ * sampling raster. Crop-local coordinates must be translated to absolute
14
+ * full-frame mode indices before calling this API.
15
+ */
16
+ x: number;
17
+ y: number;
18
+ }
19
+ ```
20
+
21
+ ## ColorSamplingChannelComposition
22
+
23
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
24
+
25
+ ```ts
26
+ export type ColorSamplingChannelComposition =
27
+ | {
28
+ kind: "single-channel";
29
+ channelId: string;
30
+ }
31
+ | {
32
+ kind: "mixed-channels";
33
+ channelIds: readonly string[];
34
+ };
35
+ ```
36
+
37
+ ## ColorSamplingChannelSiteCount
38
+
39
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
40
+
41
+ ```ts
42
+ export interface ColorSamplingChannelSiteCount {
43
+ channelId: string;
44
+ siteCount: number;
45
+ }
46
+ ```
47
+
48
+ ## ColorSamplingSiteGridDimensions
49
+
50
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
51
+
52
+ ```ts
53
+ export interface ColorSamplingSiteGridDimensions {
54
+ widthSites: number;
55
+ heightSites: number;
56
+ }
57
+ ```
58
+
59
+ ## ColorSamplingSiteRect
60
+
61
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
62
+
63
+ ```ts
64
+ export interface ColorSamplingSiteRect {
65
+ x: number;
66
+ y: number;
67
+ width: number;
68
+ height: number;
69
+ }
70
+ ```
71
+
72
+ ## GroupedCaptureModeSamplingAnchorDeclaration
73
+
74
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
75
+
76
+ ```ts
77
+ export interface GroupedCaptureModeSamplingAnchorDeclaration {
78
+ anchor: "native-effective-raster-top-left";
79
+ evidence: readonly EvidenceProvenance[];
80
+ }
81
+ ```
82
+
83
+ ## NativeEffectiveRasterColorSamplingBindingProfile
84
+
85
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
86
+
87
+ ```ts
88
+ export interface NativeEffectiveRasterColorSamplingBindingProfile {
89
+ schemaVersion: "0.1.0";
90
+ bindingId: string;
91
+ colorSamplingProfileId: string;
92
+ /**
93
+ * Exact canonical native effective raster this binding was evidenced for.
94
+ * The binding must not be reused against a different raster merely because
95
+ * another sensor/mode has similar dimensions or a matching aspect ratio.
96
+ */
97
+ nativeRaster: NativeImageRaster;
98
+ /**
99
+ * Evidence supporting the native-effective-grid ↔ color-site-grid
100
+ * relationship itself.
101
+ *
102
+ * Capture-mode and color-topology facts retain separate provenance.
103
+ */
104
+ evidence: readonly EvidenceProvenance[];
105
+ relationship: {
106
+ kind: "regular-native-effective-sample-blocks";
107
+ /**
108
+ * Number of abstract color-sampling sites spanned horizontally by one
109
+ * native effective image sample.
110
+ */
111
+ sitesPerNativeSampleX: number;
112
+ /**
113
+ * Number of abstract color-sampling sites spanned vertically by one
114
+ * native effective image sample.
115
+ */
116
+ sitesPerNativeSampleY: number;
117
+ /**
118
+ * Both grids are anchored to the same native sensor top-left.
119
+ *
120
+ * This keeps phase absolute across later active crops/orientation.
121
+ */
122
+ anchor: "shared-native-top-left";
123
+ };
124
+ }
125
+ ```
126
+
127
+ ## NativeEffectiveSampleRect
128
+
129
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
130
+
131
+ ```ts
132
+ export interface NativeEffectiveSampleRect {
133
+ x: number;
134
+ y: number;
135
+ width: number;
136
+ height: number;
137
+ }
138
+ ```
139
+
140
+ ## parseNativeEffectiveRasterColorSamplingBindingProfile
141
+
142
+ Parses the explicit relationship between the canonical native effective image
143
+ raster and the separate native sensor color-sampling-site lattice.
144
+
145
+ This first binding supports only regular rectangular site blocks with a
146
+ shared native top-left anchor. Irregular mappings, sparse exceptions and
147
+ mode-specific declared-effective rasters require later explicit contracts.
148
+
149
+ ```ts
150
+ export function parseNativeEffectiveRasterColorSamplingBindingProfile(
151
+ value: unknown
152
+ ): NativeEffectiveRasterColorSamplingBindingProfile;
153
+ ```
154
+
155
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
156
+
157
+ ## resolveCaptureModeColorSamplingContributors
158
+
159
+ Resolves which color-sampling sites form the pre-reconstruction structural source region for one selected
160
+ capture-mode effective sample.
161
+
162
+ The mode sample index is always absolute in the selected mode's full-frame
163
+ per-frame raster. The API intentionally does not accept crop-local indices,
164
+ preventing active-crop origins from silently resetting CFA phase.
165
+
166
+ For grouped-native-sample modes, the returned site rectangle covers all
167
+ native effective samples in the declared regular group. This is a structural
168
+ pre-reconstruction association only: the engine reports channel-site counts
169
+ but never claims complete downstream digital-pixel dependency or invents
170
+ signal-combination weights, sum/average semantics, spectral response, or
171
+ photon/electron values.
172
+
173
+ Declared-effective-raster modes fail closed because #68 explicitly says
174
+ their relationship to the native effective grid is not safely expressible as
175
+ simple integer grouping.
176
+
177
+ Inter-frame sensor shifts are preserved as capture-mode metadata only. The
178
+ sensor and CFA move together, so those offsets do not change site channel
179
+ assignment; their optical-registration effect belongs to a later spatial
180
+ sampling/image-formation contract.
181
+
182
+ ```ts
183
+ export function resolveCaptureModeColorSamplingContributors(
184
+ input: ResolveCaptureModeColorSamplingContributorsInput
185
+ ): ResolvedCaptureModeColorSamplingContributors;
186
+ ```
187
+
188
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
189
+
190
+ ## ResolveCaptureModeColorSamplingContributorsInput
191
+
192
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
193
+
194
+ ```ts
195
+ export interface ResolveCaptureModeColorSamplingContributorsInput {
196
+ nativeRaster: NativeImageRaster;
197
+ captureModeProfile: CaptureModeProfile;
198
+ modeId: string;
199
+ colorSamplingProfile: SensorColorSamplingProfile;
200
+ bindingProfile: NativeEffectiveRasterColorSamplingBindingProfile;
201
+ modeSampleIndexFullFrame: CaptureModeFullFrameSampleIndex;
202
+ /**
203
+ * Required for grouped-native-samples modes because #68 declares grouping
204
+ * factors but does not itself prove the grouping phase/origin.
205
+ */
206
+ groupedSamplingAnchor?: GroupedCaptureModeSamplingAnchorDeclaration;
207
+ }
208
+ ```
209
+
210
+ ## ResolvedCaptureModeColorSamplingContributors
211
+
212
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
213
+
214
+ ```ts
215
+ export interface ResolvedCaptureModeColorSamplingContributors {
216
+ modeId: string;
217
+ colorSamplingProfileId: string;
218
+ modeSampleCoordinateSystem:
219
+ "capture-mode-full-frame-effective-sample-index";
220
+ modeSampleIndexFullFrame: CaptureModeFullFrameSampleIndex;
221
+ modeSampleRaster: {
222
+ pixelWidth: number;
223
+ pixelHeight: number;
224
+ };
225
+ modeSamplingKind:
226
+ | "native-effective-raster"
227
+ | "grouped-native-samples";
228
+ nativeEffectiveSampleRect: NativeEffectiveSampleRect;
229
+ colorSamplingSiteRect: ColorSamplingSiteRect;
230
+ colorSamplingSiteGrid: ColorSamplingSiteGridDimensions;
231
+ totalContributorSites: number;
232
+ channelSiteCounts: readonly ColorSamplingChannelSiteCount[];
233
+ channelComposition: ColorSamplingChannelComposition;
234
+ /**
235
+ * Present only when the selected capture mode groups native effective
236
+ * samples before producing one per-frame effective sample.
237
+ */
238
+ grouping:
239
+ | {
240
+ groupWidthSamples: SourcedCaptureModeFact<number>;
241
+ groupHeightSamples: SourcedCaptureModeFact<number>;
242
+ combinationDomain?: SourcedCaptureModeFact<CaptureModeSampleCombinationDomain>;
243
+ anchor: "native-effective-raster-top-left";
244
+ anchorEvidence: readonly EvidenceProvenance[];
245
+ }
246
+ | null;
247
+ /**
248
+ * Sensor-shift sequence remains attached to the sensor/capture mode.
249
+ *
250
+ * The sensor and its CFA move together, so these offsets must not be applied
251
+ * as changes to color-site channel assignment.
252
+ */
253
+ interFrameSensorOffsetsNativeSamples?: SourcedCaptureModeFact<
254
+ readonly CaptureModeSensorOffsetNativeSamples[]
255
+ >;
256
+ sensorShiftChangesColorSiteAssignment: false;
257
+ sensorShiftOpticalRegistration:
258
+ "outside-this-contract";
259
+ structuralSourceStage: "pre-reconstruction";
260
+ completeDownstreamPixelDependencyEstablished: false;
261
+ signalCombinationWeightingEstablished: false;
262
+ spectralResponseEstablished: false;
263
+ physicalPhotodiodeBindingEstablished: false;
264
+ physicalPhotodiodeCountInference: "not-permitted";
265
+ componentEvidence: {
266
+ binding: readonly EvidenceProvenance[];
267
+ colorSamplingProfile: readonly EvidenceProvenance[];
268
+ captureMode: readonly EvidenceProvenance[];
269
+ };
270
+ }
271
+ ```
272
+
273
+ ## ResolvedNativeEffectiveRasterColorSamplingBinding
274
+
275
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
276
+
277
+ ```ts
278
+ export interface ResolvedNativeEffectiveRasterColorSamplingBinding {
279
+ bindingId: string;
280
+ colorSamplingProfileId: string;
281
+ nativeRaster: NativeImageRaster;
282
+ relationshipMeaning:
283
+ | "one-native-effective-sample-to-one-color-site"
284
+ | "one-native-effective-sample-to-rectangular-color-site-block";
285
+ relationship: {
286
+ kind: "regular-native-effective-sample-blocks";
287
+ sitesPerNativeSampleX: number;
288
+ sitesPerNativeSampleY: number;
289
+ anchor: "shared-native-top-left";
290
+ };
291
+ colorSamplingSiteGrid: ColorSamplingSiteGridDimensions;
292
+ totalColorSamplingSites: number;
293
+ nativeImageRasterBindingEstablished: true;
294
+ physicalPhotodiodeBindingEstablished: false;
295
+ physicalPhotodiodeCountInference: "not-permitted";
296
+ spectralResponseEstablished: false;
297
+ componentEvidence: {
298
+ binding: readonly EvidenceProvenance[];
299
+ colorSamplingProfile: readonly EvidenceProvenance[];
300
+ };
301
+ }
302
+ ```
303
+
304
+ ## resolveNativeEffectiveRasterColorSamplingBinding
305
+
306
+ Validates and resolves the sensor-level binding between NativeImageRaster and
307
+ an exact monochrome/periodic color-sampling topology.
308
+
309
+ Matching dimensions are never treated as proof of a 1:1 relationship. The
310
+ relationship exists only because the caller supplied this evidence-backed
311
+ binding profile.
312
+
313
+ ```ts
314
+ export function resolveNativeEffectiveRasterColorSamplingBinding(
315
+ input: {
316
+ nativeRaster: NativeImageRaster;
317
+ colorSamplingProfile: SensorColorSamplingProfile;
318
+ bindingProfile: NativeEffectiveRasterColorSamplingBindingProfile;
319
+ }
320
+ ): ResolvedNativeEffectiveRasterColorSamplingBinding;
321
+ ```
322
+
323
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
@@ -0,0 +1,123 @@
1
+ # sensor/capture-mode-timing.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
+ ## CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION =
11
+ "0.1.0" as const
12
+ ```
13
+
14
+ ## CaptureModeTimingProfile
15
+
16
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
17
+
18
+ ```ts
19
+ export interface CaptureModeTimingProfile {
20
+ schemaVersion:
21
+ typeof CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION;
22
+ profileId: string;
23
+ profileVersion: string;
24
+ captureModeId: string;
25
+ scientificStatus: "approximation";
26
+ scheduleFamily:
27
+ "global-or-uniform-linear-native-scan";
28
+ shutterMechanism:
29
+ CaptureShutterMechanism;
30
+ opening:
31
+ ExposureBoundarySchedule;
32
+ closing:
33
+ ExposureBoundarySchedule;
34
+ readout:
35
+ SensorReadoutTimingDeclaration;
36
+ nonUniformScheduleModeled: false;
37
+ evidence: readonly EvidenceProvenance[];
38
+ limitations: readonly string[];
39
+ }
40
+ ```
41
+
42
+ ## parseCaptureModeTimingProfile
43
+
44
+ Parses timing facts that are explicitly bound to one exact capture mode.
45
+
46
+ Schema 0.1.0 intentionally admits only the timing schedule families already
47
+ owned by #12: simultaneous/global or uniform-linear native scans. Unsupported
48
+ non-uniform/segmented schedules fail closed instead of being approximated.
49
+
50
+ ```ts
51
+ export function parseCaptureModeTimingProfile(
52
+ value: unknown
53
+ ): CaptureModeTimingProfile;
54
+ ```
55
+
56
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
57
+
58
+ ## resolveCaptureModeTiming
59
+
60
+ Resolves the authoritative exposure/readout timing for one exact capture
61
+ mode and timing-profile identity.
62
+
63
+ Readout timing remains distinct from exposure-boundary timing. No absolute
64
+ readout/exposure synchronization is inferred.
65
+
66
+ ```ts
67
+ export function resolveCaptureModeTiming(
68
+ input:
69
+ ResolveCaptureModeTimingInput
70
+ ): ResolvedCaptureModeTiming;
71
+ ```
72
+
73
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
74
+
75
+ ## ResolveCaptureModeTimingInput
76
+
77
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
78
+
79
+ ```ts
80
+ export interface ResolveCaptureModeTimingInput {
81
+ captureMode:
82
+ ResolvedCaptureMode;
83
+ timingProfile:
84
+ CaptureModeTimingProfile;
85
+ nominalExposureDurationSeconds:
86
+ SourcedCaptureTimingSeconds;
87
+ activeCaptureRect?: RasterRect;
88
+ samplePointsNative?:
89
+ readonly RasterPoint[];
90
+ }
91
+ ```
92
+
93
+ ## ResolvedCaptureModeTiming
94
+
95
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
96
+
97
+ ```ts
98
+ export interface ResolvedCaptureModeTiming {
99
+ schemaVersion:
100
+ typeof CAPTURE_MODE_TIMING_PROFILE_SCHEMA_VERSION;
101
+ timingProfileId: string;
102
+ timingProfileVersion: string;
103
+ captureModeId: string;
104
+ captureModeTimingIdentity:
105
+ "exact-mode-and-profile";
106
+ nativeRaster: NativeImageRaster;
107
+ modeDeclaresTimingDependency:
108
+ boolean;
109
+ scheduleFamily:
110
+ "global-or-uniform-linear-native-scan";
111
+ exposureWindows:
112
+ CaptureExposureWindows;
113
+ readoutTiming:
114
+ SensorReadoutTiming;
115
+ timeReference:
116
+ "first-opening-boundary-phase";
117
+ readoutExposureSynchronization:
118
+ "not-assumed";
119
+ nonUniformScheduleModeled: false;
120
+ evidence: readonly EvidenceProvenance[];
121
+ limitations: readonly string[];
122
+ }
123
+ ```