@openpresentation/opf 0.1.0 → 0.2.1

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 (499) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +146 -103
  3. package/dist/catalogs.d.ts +11 -1531
  4. package/dist/catalogs.js +5 -613
  5. package/dist/catalogs.js.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.js +3831 -649
  8. package/dist/index.js.map +1 -1
  9. package/dist/previews.d.ts +40 -0
  10. package/dist/previews.js +447 -0
  11. package/dist/previews.js.map +1 -0
  12. package/dist/schemas.d.ts +105 -105
  13. package/dist/schemas.js +35 -35
  14. package/dist/schemas.js.map +1 -1
  15. package/dist/spec/catalogs/audiences/all-hands.json +23 -23
  16. package/dist/spec/catalogs/audiences/board.json +22 -22
  17. package/dist/spec/catalogs/audiences/candidates.json +23 -23
  18. package/dist/spec/catalogs/audiences/customers.json +23 -23
  19. package/dist/spec/catalogs/audiences/engineering-team.json +23 -23
  20. package/dist/spec/catalogs/audiences/executives.json +23 -23
  21. package/dist/spec/catalogs/audiences/index.json +67 -67
  22. package/dist/spec/catalogs/audiences/investors.json +23 -23
  23. package/dist/spec/catalogs/audiences/marketing-team.json +23 -23
  24. package/dist/spec/catalogs/audiences/regulators.json +23 -23
  25. package/dist/spec/catalogs/audiences/sales-team.json +23 -23
  26. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +86 -90
  27. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +98 -102
  28. package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +74 -78
  29. package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +86 -90
  30. package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +98 -102
  31. package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +74 -78
  32. package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +95 -99
  33. package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +96 -100
  34. package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +118 -122
  35. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +79 -83
  36. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +95 -99
  37. package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +85 -89
  38. package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +103 -107
  39. package/dist/spec/catalogs/chart-types/area.json +73 -77
  40. package/dist/spec/catalogs/chart-types/australia.json +66 -70
  41. package/dist/spec/catalogs/chart-types/bar.json +63 -67
  42. package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +126 -130
  43. package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +158 -162
  44. package/dist/spec/catalogs/chart-types/box-and-whisker.json +94 -98
  45. package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +84 -88
  46. package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +96 -100
  47. package/dist/spec/catalogs/chart-types/bullet-bar.json +72 -76
  48. package/dist/spec/catalogs/chart-types/bullet-column-2x.json +84 -88
  49. package/dist/spec/catalogs/chart-types/bullet-column-3x.json +96 -100
  50. package/dist/spec/catalogs/chart-types/bullet-column.json +72 -76
  51. package/dist/spec/catalogs/chart-types/canada.json +76 -80
  52. package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +79 -83
  53. package/dist/spec/catalogs/chart-types/clustered-column.json +85 -89
  54. package/dist/spec/catalogs/chart-types/column.json +67 -71
  55. package/dist/spec/catalogs/chart-types/dot-plot-2x.json +94 -98
  56. package/dist/spec/catalogs/chart-types/dot-plot-3x.json +119 -123
  57. package/dist/spec/catalogs/chart-types/dot-plot-4x.json +144 -148
  58. package/dist/spec/catalogs/chart-types/dot-plot-5x.json +169 -173
  59. package/dist/spec/catalogs/chart-types/dot-plot-6x.json +194 -198
  60. package/dist/spec/catalogs/chart-types/dot-plot.json +69 -73
  61. package/dist/spec/catalogs/chart-types/doughnut.json +53 -57
  62. package/dist/spec/catalogs/chart-types/dumbbell.json +115 -119
  63. package/dist/spec/catalogs/chart-types/filled-radar.json +66 -70
  64. package/dist/spec/catalogs/chart-types/funnel.json +60 -64
  65. package/dist/spec/catalogs/chart-types/histogram.json +141 -145
  66. package/dist/spec/catalogs/chart-types/index.json +539 -843
  67. package/dist/spec/catalogs/chart-types/line-2x.json +95 -99
  68. package/dist/spec/catalogs/chart-types/line-3x.json +117 -121
  69. package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +139 -143
  70. package/dist/spec/catalogs/chart-types/line-with-high-low.json +139 -143
  71. package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +96 -100
  72. package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +118 -122
  73. package/dist/spec/catalogs/chart-types/line-with-markers.json +74 -78
  74. package/dist/spec/catalogs/chart-types/line.json +73 -77
  75. package/dist/spec/catalogs/chart-types/pareto.json +159 -163
  76. package/dist/spec/catalogs/chart-types/pie.json +53 -57
  77. package/dist/spec/catalogs/chart-types/radar-with-markers.json +66 -70
  78. package/dist/spec/catalogs/chart-types/radar.json +66 -70
  79. package/dist/spec/catalogs/chart-types/scatter.json +87 -91
  80. package/dist/spec/catalogs/chart-types/sparkline-2x.json +133 -137
  81. package/dist/spec/catalogs/chart-types/sparkline-3x.json +169 -173
  82. package/dist/spec/catalogs/chart-types/sparkline-4x.json +205 -209
  83. package/dist/spec/catalogs/chart-types/sparkline-5x.json +241 -245
  84. package/dist/spec/catalogs/chart-types/sparkline-6x.json +277 -281
  85. package/dist/spec/catalogs/chart-types/sparkline.json +97 -101
  86. package/dist/spec/catalogs/chart-types/stacked-area-2x.json +96 -100
  87. package/dist/spec/catalogs/chart-types/stacked-area-3x.json +118 -122
  88. package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +79 -83
  89. package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +95 -99
  90. package/dist/spec/catalogs/chart-types/stacked-column-2x.json +85 -89
  91. package/dist/spec/catalogs/chart-types/stacked-column-3x.json +103 -107
  92. package/dist/spec/catalogs/chart-types/stacked-line-2x.json +96 -100
  93. package/dist/spec/catalogs/chart-types/stacked-line-3x.json +118 -122
  94. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +97 -101
  95. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +119 -123
  96. package/dist/spec/catalogs/chart-types/treemap-2x.json +91 -95
  97. package/dist/spec/catalogs/chart-types/treemap-3x.json +112 -116
  98. package/dist/spec/catalogs/chart-types/treemap.json +62 -66
  99. package/dist/spec/catalogs/chart-types/{united-kindom.json → united-kingdom.json} +58 -62
  100. package/dist/spec/catalogs/chart-types/united-states.json +72 -76
  101. package/dist/spec/catalogs/chart-types/waterfall.json +66 -70
  102. package/dist/spec/catalogs/chart-types/world.json +78 -82
  103. package/dist/spec/catalogs/color-schemes/black-and-white.json +17 -17
  104. package/dist/spec/catalogs/color-schemes/bold-red.json +17 -17
  105. package/dist/spec/catalogs/color-schemes/boost.json +17 -17
  106. package/dist/spec/catalogs/color-schemes/burnt-orange.json +17 -17
  107. package/dist/spec/catalogs/color-schemes/cool-horizon.json +17 -17
  108. package/dist/spec/catalogs/color-schemes/corporate-blue.json +17 -17
  109. package/dist/spec/catalogs/color-schemes/deep-purple.json +17 -17
  110. package/dist/spec/catalogs/color-schemes/forest-green.json +17 -17
  111. package/dist/spec/catalogs/color-schemes/golden-yellow.json +17 -17
  112. package/dist/spec/catalogs/color-schemes/index.json +77 -77
  113. package/dist/spec/catalogs/color-schemes/luxury.json +17 -17
  114. package/dist/spec/catalogs/color-schemes/pastel-red.json +17 -17
  115. package/dist/spec/catalogs/color-schemes/slate-gray.json +17 -17
  116. package/dist/spec/catalogs/color-schemes/steel-blue.json +17 -17
  117. package/dist/spec/catalogs/color-schemes/vibes.json +17 -17
  118. package/dist/spec/catalogs/font-schemes/angsana-new.json +14 -14
  119. package/dist/spec/catalogs/font-schemes/aparajita.json +15 -15
  120. package/dist/spec/catalogs/font-schemes/aptos.json +12 -12
  121. package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +14 -14
  122. package/dist/spec/catalogs/font-schemes/arial.json +12 -12
  123. package/dist/spec/catalogs/font-schemes/batang.json +14 -14
  124. package/dist/spec/catalogs/font-schemes/bookman.json +12 -12
  125. package/dist/spec/catalogs/font-schemes/calibri.json +12 -12
  126. package/dist/spec/catalogs/font-schemes/century-schoolbook.json +12 -12
  127. package/dist/spec/catalogs/font-schemes/consolas.json +12 -12
  128. package/dist/spec/catalogs/font-schemes/constantia.json +12 -12
  129. package/dist/spec/catalogs/font-schemes/courier-new.json +12 -12
  130. package/dist/spec/catalogs/font-schemes/daunpenh.json +14 -14
  131. package/dist/spec/catalogs/font-schemes/david.json +14 -14
  132. package/dist/spec/catalogs/font-schemes/dilleniaupc.json +14 -14
  133. package/dist/spec/catalogs/font-schemes/fangsong.json +14 -14
  134. package/dist/spec/catalogs/font-schemes/garamond.json +12 -12
  135. package/dist/spec/catalogs/font-schemes/gautami.json +14 -14
  136. package/dist/spec/catalogs/font-schemes/georgia.json +12 -12
  137. package/dist/spec/catalogs/font-schemes/gisha.json +15 -15
  138. package/dist/spec/catalogs/font-schemes/grandview.json +12 -12
  139. package/dist/spec/catalogs/font-schemes/gungsuh.json +14 -14
  140. package/dist/spec/catalogs/font-schemes/impact.json +12 -12
  141. package/dist/spec/catalogs/font-schemes/index.json +452 -452
  142. package/dist/spec/catalogs/font-schemes/kalinga.json +14 -14
  143. package/dist/spec/catalogs/font-schemes/kartika.json +14 -14
  144. package/dist/spec/catalogs/font-schemes/khmer-ui.json +14 -14
  145. package/dist/spec/catalogs/font-schemes/latha.json +14 -14
  146. package/dist/spec/catalogs/font-schemes/lucida-sans.json +12 -12
  147. package/dist/spec/catalogs/font-schemes/malgun-gothic.json +14 -14
  148. package/dist/spec/catalogs/font-schemes/mangal.json +17 -17
  149. package/dist/spec/catalogs/font-schemes/meiryo.json +14 -14
  150. package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +14 -14
  151. package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +17 -17
  152. package/dist/spec/catalogs/font-schemes/mingliu.json +14 -14
  153. package/dist/spec/catalogs/font-schemes/miriam.json +14 -14
  154. package/dist/spec/catalogs/font-schemes/montserrat.json +12 -12
  155. package/dist/spec/catalogs/font-schemes/ms-mincho.json +14 -14
  156. package/dist/spec/catalogs/font-schemes/nirmala-ui.json +14 -14
  157. package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +14 -14
  158. package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +15 -15
  159. package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +16 -16
  160. package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +14 -14
  161. package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +15 -15
  162. package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +15 -15
  163. package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +14 -14
  164. package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +14 -14
  165. package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +14 -14
  166. package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +14 -14
  167. package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +14 -14
  168. package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +14 -14
  169. package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +14 -14
  170. package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +14 -14
  171. package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +14 -14
  172. package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +14 -14
  173. package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +14 -14
  174. package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +14 -14
  175. package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +17 -17
  176. package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +14 -14
  177. package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +14 -14
  178. package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +14 -14
  179. package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +14 -14
  180. package/dist/spec/catalogs/font-schemes/noto-sans.json +17 -17
  181. package/dist/spec/catalogs/font-schemes/nyala.json +14 -14
  182. package/dist/spec/catalogs/font-schemes/open-sans.json +12 -12
  183. package/dist/spec/catalogs/font-schemes/pmingliu.json +14 -14
  184. package/dist/spec/catalogs/font-schemes/poppins.json +12 -12
  185. package/dist/spec/catalogs/font-schemes/pt-serif.json +12 -12
  186. package/dist/spec/catalogs/font-schemes/raavi.json +14 -14
  187. package/dist/spec/catalogs/font-schemes/raleway.json +12 -12
  188. package/dist/spec/catalogs/font-schemes/roboto.json +12 -12
  189. package/dist/spec/catalogs/font-schemes/rockwell.json +12 -12
  190. package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +16 -16
  191. package/dist/spec/catalogs/font-schemes/seaford.json +12 -12
  192. package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +12 -12
  193. package/dist/spec/catalogs/font-schemes/segoe-ui.json +12 -12
  194. package/dist/spec/catalogs/font-schemes/shonar-bangla.json +15 -15
  195. package/dist/spec/catalogs/font-schemes/shruti.json +14 -14
  196. package/dist/spec/catalogs/font-schemes/simsun.json +14 -14
  197. package/dist/spec/catalogs/font-schemes/skeena.json +12 -12
  198. package/dist/spec/catalogs/font-schemes/sylfaen.json +15 -15
  199. package/dist/spec/catalogs/font-schemes/tahoma.json +12 -12
  200. package/dist/spec/catalogs/font-schemes/tenorite.json +12 -12
  201. package/dist/spec/catalogs/font-schemes/times-new-roman.json +12 -12
  202. package/dist/spec/catalogs/font-schemes/traditional-arabic.json +16 -16
  203. package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +12 -12
  204. package/dist/spec/catalogs/font-schemes/tunga.json +14 -14
  205. package/dist/spec/catalogs/font-schemes/verdana.json +12 -12
  206. package/dist/spec/catalogs/font-schemes/vrinda.json +14 -14
  207. package/dist/spec/catalogs/font-schemes/yu-gothic.json +14 -14
  208. package/dist/spec/catalogs/languages/afrikaans.json +9 -9
  209. package/dist/spec/catalogs/languages/albanian.json +9 -9
  210. package/dist/spec/catalogs/languages/amharic.json +9 -9
  211. package/dist/spec/catalogs/languages/arabic.json +9 -9
  212. package/dist/spec/catalogs/languages/armenian.json +9 -9
  213. package/dist/spec/catalogs/languages/aymara.json +9 -9
  214. package/dist/spec/catalogs/languages/azerbaijani.json +9 -9
  215. package/dist/spec/catalogs/languages/bengali.json +9 -9
  216. package/dist/spec/catalogs/languages/berber-latin.json +9 -9
  217. package/dist/spec/catalogs/languages/bosnian-latin.json +9 -9
  218. package/dist/spec/catalogs/languages/bulgarian.json +9 -9
  219. package/dist/spec/catalogs/languages/catalan.json +9 -9
  220. package/dist/spec/catalogs/languages/cebuano.json +9 -9
  221. package/dist/spec/catalogs/languages/chinese-simplified.json +9 -9
  222. package/dist/spec/catalogs/languages/chinese-traditional.json +9 -9
  223. package/dist/spec/catalogs/languages/chittagonian.json +9 -9
  224. package/dist/spec/catalogs/languages/croatian.json +9 -9
  225. package/dist/spec/catalogs/languages/czech.json +9 -9
  226. package/dist/spec/catalogs/languages/danish.json +9 -9
  227. package/dist/spec/catalogs/languages/dutch.json +9 -9
  228. package/dist/spec/catalogs/languages/english-au.json +9 -9
  229. package/dist/spec/catalogs/languages/english-ca.json +9 -9
  230. package/dist/spec/catalogs/languages/english-gb.json +9 -9
  231. package/dist/spec/catalogs/languages/english-in.json +9 -9
  232. package/dist/spec/catalogs/languages/english-us.json +9 -9
  233. package/dist/spec/catalogs/languages/english.json +9 -9
  234. package/dist/spec/catalogs/languages/estonian.json +9 -9
  235. package/dist/spec/catalogs/languages/filipino.json +9 -9
  236. package/dist/spec/catalogs/languages/finnish.json +9 -9
  237. package/dist/spec/catalogs/languages/french.json +9 -9
  238. package/dist/spec/catalogs/languages/fulfulde.json +9 -9
  239. package/dist/spec/catalogs/languages/galician.json +9 -9
  240. package/dist/spec/catalogs/languages/georgian.json +9 -9
  241. package/dist/spec/catalogs/languages/german.json +9 -9
  242. package/dist/spec/catalogs/languages/greek.json +9 -9
  243. package/dist/spec/catalogs/languages/gujarati.json +9 -9
  244. package/dist/spec/catalogs/languages/hausa.json +9 -9
  245. package/dist/spec/catalogs/languages/hebrew.json +9 -9
  246. package/dist/spec/catalogs/languages/hindi.json +9 -9
  247. package/dist/spec/catalogs/languages/hungarian.json +9 -9
  248. package/dist/spec/catalogs/languages/igbo.json +9 -9
  249. package/dist/spec/catalogs/languages/index.json +565 -565
  250. package/dist/spec/catalogs/languages/indonesian.json +9 -9
  251. package/dist/spec/catalogs/languages/italian.json +9 -9
  252. package/dist/spec/catalogs/languages/japanese.json +9 -9
  253. package/dist/spec/catalogs/languages/kannada.json +9 -9
  254. package/dist/spec/catalogs/languages/kazakh.json +9 -9
  255. package/dist/spec/catalogs/languages/khmer.json +9 -9
  256. package/dist/spec/catalogs/languages/kinyarwanda.json +9 -9
  257. package/dist/spec/catalogs/languages/korean.json +9 -9
  258. package/dist/spec/catalogs/languages/kurmanji.json +9 -9
  259. package/dist/spec/catalogs/languages/latvian.json +9 -9
  260. package/dist/spec/catalogs/languages/lithuanian.json +9 -9
  261. package/dist/spec/catalogs/languages/macedonian.json +9 -9
  262. package/dist/spec/catalogs/languages/malagasy.json +9 -9
  263. package/dist/spec/catalogs/languages/malay.json +9 -9
  264. package/dist/spec/catalogs/languages/malayalam.json +9 -9
  265. package/dist/spec/catalogs/languages/maori.json +9 -9
  266. package/dist/spec/catalogs/languages/marathi.json +9 -9
  267. package/dist/spec/catalogs/languages/mongolian.json +9 -9
  268. package/dist/spec/catalogs/languages/nepali.json +9 -9
  269. package/dist/spec/catalogs/languages/norwegian.json +9 -9
  270. package/dist/spec/catalogs/languages/odia.json +9 -9
  271. package/dist/spec/catalogs/languages/oromo.json +9 -9
  272. package/dist/spec/catalogs/languages/pashto.json +9 -9
  273. package/dist/spec/catalogs/languages/persian.json +9 -9
  274. package/dist/spec/catalogs/languages/polish.json +9 -9
  275. package/dist/spec/catalogs/languages/portuguese.json +9 -9
  276. package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +9 -9
  277. package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +9 -9
  278. package/dist/spec/catalogs/languages/romanian.json +9 -9
  279. package/dist/spec/catalogs/languages/russian.json +9 -9
  280. package/dist/spec/catalogs/languages/serbian-cyrillic.json +9 -9
  281. package/dist/spec/catalogs/languages/serbian-latin.json +9 -9
  282. package/dist/spec/catalogs/languages/shona.json +9 -9
  283. package/dist/spec/catalogs/languages/slovak.json +9 -9
  284. package/dist/spec/catalogs/languages/slovenian.json +9 -9
  285. package/dist/spec/catalogs/languages/somali.json +9 -9
  286. package/dist/spec/catalogs/languages/spanish.json +9 -9
  287. package/dist/spec/catalogs/languages/swahili.json +9 -9
  288. package/dist/spec/catalogs/languages/swedish.json +9 -9
  289. package/dist/spec/catalogs/languages/tagalog.json +9 -9
  290. package/dist/spec/catalogs/languages/tajik.json +9 -9
  291. package/dist/spec/catalogs/languages/tamil.json +9 -9
  292. package/dist/spec/catalogs/languages/telugu.json +9 -9
  293. package/dist/spec/catalogs/languages/thai.json +9 -9
  294. package/dist/spec/catalogs/languages/turkish.json +9 -9
  295. package/dist/spec/catalogs/languages/ukrainian.json +9 -9
  296. package/dist/spec/catalogs/languages/urdu.json +9 -9
  297. package/dist/spec/catalogs/languages/uzbek-latin.json +9 -9
  298. package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +9 -9
  299. package/dist/spec/catalogs/languages/xhosa.json +9 -9
  300. package/dist/spec/catalogs/languages/yoruba.json +9 -9
  301. package/dist/spec/catalogs/languages/zulu.json +9 -9
  302. package/dist/spec/catalogs/layouts/blank.json +6 -6
  303. package/dist/spec/catalogs/layouts/chart-1x.json +16 -16
  304. package/dist/spec/catalogs/layouts/chart-2x.json +22 -22
  305. package/dist/spec/catalogs/layouts/chart-3x.json +28 -28
  306. package/dist/spec/catalogs/layouts/code-1x.json +16 -16
  307. package/dist/spec/catalogs/layouts/extract/canonical.json +487 -487
  308. package/dist/spec/catalogs/layouts/image-1x.json +16 -16
  309. package/dist/spec/catalogs/layouts/image-2x.json +22 -22
  310. package/dist/spec/catalogs/layouts/image-3x.json +28 -28
  311. package/dist/spec/catalogs/layouts/image-bleed.json +10 -10
  312. package/dist/spec/catalogs/layouts/index.json +147 -147
  313. package/dist/spec/catalogs/layouts/list-1x.json +13 -13
  314. package/dist/spec/catalogs/layouts/list-2x.json +16 -16
  315. package/dist/spec/catalogs/layouts/list-3x.json +19 -19
  316. package/dist/spec/catalogs/layouts/list-4x.json +22 -22
  317. package/dist/spec/catalogs/layouts/list-5x.json +25 -25
  318. package/dist/spec/catalogs/layouts/list-6x.json +28 -28
  319. package/dist/spec/catalogs/layouts/media-1x.json +16 -16
  320. package/dist/spec/catalogs/layouts/number-1x.json +13 -13
  321. package/dist/spec/catalogs/layouts/number-2x.json +16 -16
  322. package/dist/spec/catalogs/layouts/number-3x.json +19 -19
  323. package/dist/spec/catalogs/layouts/number-4x.json +22 -22
  324. package/dist/spec/catalogs/layouts/number-5x.json +25 -25
  325. package/dist/spec/catalogs/layouts/number-6x.json +28 -28
  326. package/dist/spec/catalogs/layouts/table-1x.json +16 -16
  327. package/dist/spec/catalogs/layouts/text-1x.json +13 -13
  328. package/dist/spec/catalogs/layouts/text-2x.json +16 -16
  329. package/dist/spec/catalogs/layouts/text-3x.json +19 -19
  330. package/dist/spec/catalogs/layouts/title-subtitle.json +13 -13
  331. package/dist/spec/catalogs/layouts/title.json +10 -10
  332. package/dist/spec/catalogs/narratives/board-meeting.json +192 -192
  333. package/dist/spec/catalogs/narratives/business-narrative.json +87 -87
  334. package/dist/spec/catalogs/narratives/business-review.json +119 -119
  335. package/dist/spec/catalogs/narratives/capacity-planning.json +88 -88
  336. package/dist/spec/catalogs/narratives/challenge-resolution.json +80 -80
  337. package/dist/spec/catalogs/narratives/classic-story.json +78 -78
  338. package/dist/spec/catalogs/narratives/company-intro.json +96 -96
  339. package/dist/spec/catalogs/narratives/conference-talk.json +54 -54
  340. package/dist/spec/catalogs/narratives/early-startup-pitch.json +119 -119
  341. package/dist/spec/catalogs/narratives/educate.json +95 -95
  342. package/dist/spec/catalogs/narratives/employee-review.json +87 -87
  343. package/dist/spec/catalogs/narratives/failure-analysis.json +104 -104
  344. package/dist/spec/catalogs/narratives/focus.json +120 -120
  345. package/dist/spec/catalogs/narratives/golden-circle.json +50 -50
  346. package/dist/spec/catalogs/narratives/index.json +358 -358
  347. package/dist/spec/catalogs/narratives/innovation.json +96 -96
  348. package/dist/spec/catalogs/narratives/justice.json +112 -112
  349. package/dist/spec/catalogs/narratives/marketing-strategy.json +111 -111
  350. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +87 -87
  351. package/dist/spec/catalogs/narratives/performance-review.json +111 -111
  352. package/dist/spec/catalogs/narratives/persuade.json +94 -94
  353. package/dist/spec/catalogs/narratives/persuasive-sales.json +87 -87
  354. package/dist/spec/catalogs/narratives/pitch-deck.json +107 -107
  355. package/dist/spec/catalogs/narratives/problem-solution.json +61 -61
  356. package/dist/spec/catalogs/narratives/product-launch.json +104 -104
  357. package/dist/spec/catalogs/narratives/project-proposal.json +104 -104
  358. package/dist/spec/catalogs/narratives/qbr.json +85 -85
  359. package/dist/spec/catalogs/narratives/rags-to-riches.json +80 -80
  360. package/dist/spec/catalogs/narratives/reveal.json +87 -87
  361. package/dist/spec/catalogs/narratives/scqa.json +55 -55
  362. package/dist/spec/catalogs/narratives/status-update.json +72 -72
  363. package/dist/spec/catalogs/narratives/strategic-advisory.json +85 -85
  364. package/dist/spec/catalogs/narratives/strategic-narrative.json +61 -61
  365. package/dist/spec/catalogs/narratives/survey-analysis.json +104 -104
  366. package/dist/spec/catalogs/narratives/survival-story.json +103 -103
  367. package/dist/spec/catalogs/narratives/transformation-arc.json +50 -50
  368. package/dist/spec/catalogs/narratives/trend-analysis.json +79 -79
  369. package/dist/spec/catalogs/narratives/underdog-victory.json +87 -87
  370. package/dist/spec/catalogs/narratives/venture-pitch.json +109 -109
  371. package/dist/spec/catalogs/narratives/weekly-progress.json +103 -103
  372. package/dist/spec/catalogs/purposes/align.json +16 -16
  373. package/dist/spec/catalogs/purposes/decide.json +16 -16
  374. package/dist/spec/catalogs/purposes/educate.json +16 -16
  375. package/dist/spec/catalogs/purposes/index.json +61 -61
  376. package/dist/spec/catalogs/purposes/inform.json +16 -16
  377. package/dist/spec/catalogs/purposes/persuade.json +16 -16
  378. package/dist/spec/catalogs/purposes/pitch.json +16 -16
  379. package/dist/spec/catalogs/purposes/plan.json +16 -16
  380. package/dist/spec/catalogs/purposes/report.json +16 -16
  381. package/dist/spec/catalogs/purposes/sell.json +16 -16
  382. package/dist/spec/catalogs/social-platforms/bluesky.json +14 -14
  383. package/dist/spec/catalogs/social-platforms/facebook.json +14 -14
  384. package/dist/spec/catalogs/social-platforms/github.json +15 -15
  385. package/dist/spec/catalogs/social-platforms/index.json +68 -68
  386. package/dist/spec/catalogs/social-platforms/instagram.json +13 -13
  387. package/dist/spec/catalogs/social-platforms/linkedin.json +15 -15
  388. package/dist/spec/catalogs/social-platforms/mastodon.json +14 -14
  389. package/dist/spec/catalogs/social-platforms/threads.json +13 -13
  390. package/dist/spec/catalogs/social-platforms/tiktok.json +14 -14
  391. package/dist/spec/catalogs/social-platforms/x.json +14 -14
  392. package/dist/spec/catalogs/social-platforms/youtube.json +14 -14
  393. package/dist/spec/catalogs/themes/bold.json +13 -13
  394. package/dist/spec/catalogs/themes/classic.json +13 -13
  395. package/dist/spec/catalogs/themes/dark.json +13 -13
  396. package/dist/spec/catalogs/themes/index.json +31 -31
  397. package/dist/spec/catalogs/themes/minimal.json +13 -13
  398. package/dist/spec/catalogs/tones/authoritative.json +31 -31
  399. package/dist/spec/catalogs/tones/casual.json +31 -31
  400. package/dist/spec/catalogs/tones/conversational.json +31 -31
  401. package/dist/spec/catalogs/tones/formal.json +31 -31
  402. package/dist/spec/catalogs/tones/index.json +49 -49
  403. package/dist/spec/catalogs/tones/inspirational.json +31 -31
  404. package/dist/spec/catalogs/tones/persuasive.json +32 -32
  405. package/dist/spec/catalogs/tones/technical.json +31 -31
  406. package/dist/spec/openapi.yaml +776 -776
  407. package/dist/spec/previews/layouts/action-plan.html +1 -0
  408. package/dist/spec/previews/layouts/agenda.html +1 -0
  409. package/dist/spec/previews/layouts/appendix-index.html +1 -0
  410. package/dist/spec/previews/layouts/architecture-stack.html +1 -0
  411. package/dist/spec/previews/layouts/assumptions-dependencies.html +1 -0
  412. package/dist/spec/previews/layouts/before-after.html +1 -0
  413. package/dist/spec/previews/layouts/benchmark-target-table.html +1 -0
  414. package/dist/spec/previews/layouts/bullet-list.html +1 -0
  415. package/dist/spec/previews/layouts/business-model-canvas.html +1 -0
  416. package/dist/spec/previews/layouts/capability-map.html +1 -0
  417. package/dist/spec/previews/layouts/case-study.html +1 -0
  418. package/dist/spec/previews/layouts/chapter-recap.html +1 -0
  419. package/dist/spec/previews/layouts/circular-lifecycle.html +1 -0
  420. package/dist/spec/previews/layouts/comparison.html +1 -0
  421. package/dist/spec/previews/layouts/competitive-landscape.html +1 -0
  422. package/dist/spec/previews/layouts/customer-journey.html +1 -0
  423. package/dist/spec/previews/layouts/customer-logos.html +1 -0
  424. package/dist/spec/previews/layouts/dashboard.html +1 -0
  425. package/dist/spec/previews/layouts/data-visualization.html +1 -0
  426. package/dist/spec/previews/layouts/decision-tree.html +1 -0
  427. package/dist/spec/previews/layouts/detailed-data-table.html +1 -0
  428. package/dist/spec/previews/layouts/ecosystem-map.html +1 -0
  429. package/dist/spec/previews/layouts/executive-decision.html +1 -0
  430. package/dist/spec/previews/layouts/executive-summary.html +1 -0
  431. package/dist/spec/previews/layouts/faq.html +1 -0
  432. package/dist/spec/previews/layouts/feature-comparison-matrix.html +1 -0
  433. package/dist/spec/previews/layouts/forecast-scenario.html +1 -0
  434. package/dist/spec/previews/layouts/funnel-pyramid.html +1 -0
  435. package/dist/spec/previews/layouts/gantt-project-plan.html +1 -0
  436. package/dist/spec/previews/layouts/geographic-map.html +1 -0
  437. package/dist/spec/previews/layouts/heatmap-cohort.html +1 -0
  438. package/dist/spec/previews/layouts/hub-and-spoke.html +1 -0
  439. package/dist/spec/previews/layouts/icon-grid.html +1 -0
  440. package/dist/spec/previews/layouts/image-focus.html +1 -0
  441. package/dist/spec/previews/layouts/index.json +357 -0
  442. package/dist/spec/previews/layouts/key-takeaway.html +1 -0
  443. package/dist/spec/previews/layouts/kpi-scorecard.html +1 -0
  444. package/dist/spec/previews/layouts/logic-tree.html +1 -0
  445. package/dist/spec/previews/layouts/market-size.html +1 -0
  446. package/dist/spec/previews/layouts/matrix-quadrant.html +1 -0
  447. package/dist/spec/previews/layouts/network-dependency-map.html +1 -0
  448. package/dist/spec/previews/layouts/one-column-explainer.html +1 -0
  449. package/dist/spec/previews/layouts/org-chart.html +1 -0
  450. package/dist/spec/previews/layouts/persona-grid.html +1 -0
  451. package/dist/spec/previews/layouts/photo-grid.html +1 -0
  452. package/dist/spec/previews/layouts/pricing-table.html +1 -0
  453. package/dist/spec/previews/layouts/process-flow.html +1 -0
  454. package/dist/spec/previews/layouts/product-feature.html +1 -0
  455. package/dist/spec/previews/layouts/pros-cons.html +1 -0
  456. package/dist/spec/previews/layouts/qa-discussion.html +1 -0
  457. package/dist/spec/previews/layouts/quote-highlight.html +1 -0
  458. package/dist/spec/previews/layouts/raci-matrix.html +1 -0
  459. package/dist/spec/previews/layouts/risk-heatmap.html +1 -0
  460. package/dist/spec/previews/layouts/roadmap.html +1 -0
  461. package/dist/spec/previews/layouts/screenshot-walkthrough.html +1 -0
  462. package/dist/spec/previews/layouts/section-divider.html +1 -0
  463. package/dist/spec/previews/layouts/single-message-statement.html +1 -0
  464. package/dist/spec/previews/layouts/stats-metrics.html +1 -0
  465. package/dist/spec/previews/layouts/status-rag.html +1 -0
  466. package/dist/spec/previews/layouts/swimlane-process.html +1 -0
  467. package/dist/spec/previews/layouts/swot-analysis.html +1 -0
  468. package/dist/spec/previews/layouts/team-bio.html +1 -0
  469. package/dist/spec/previews/layouts/testimonial-grid.html +1 -0
  470. package/dist/spec/previews/layouts/thank-you-cta.html +1 -0
  471. package/dist/spec/previews/layouts/three-column.html +1 -0
  472. package/dist/spec/previews/layouts/timeline.html +1 -0
  473. package/dist/spec/previews/layouts/title-slide.html +1 -0
  474. package/dist/spec/previews/layouts/two-column.html +1 -0
  475. package/dist/spec/previews/layouts/venn-overlap.html +1 -0
  476. package/dist/spec/previews/layouts/waterfall-bridge.html +1 -0
  477. package/dist/spec/previews/layouts/wheel-radial.html +1 -0
  478. package/dist/spec/reference/engine-defaults.json +35 -35
  479. package/dist/spec/schemas/audience.schema.json +156 -156
  480. package/dist/spec/schemas/chart-type.schema.json +537 -537
  481. package/dist/spec/schemas/color-scheme.schema.json +200 -200
  482. package/dist/spec/schemas/font-scheme.schema.json +174 -174
  483. package/dist/spec/schemas/language.schema.json +158 -158
  484. package/dist/spec/schemas/layout.schema.json +280 -280
  485. package/dist/spec/schemas/narrative.schema.json +207 -207
  486. package/dist/spec/schemas/opf.schema.json +2536 -2537
  487. package/dist/spec/schemas/purpose.schema.json +92 -92
  488. package/dist/spec/schemas/social-platform.schema.json +183 -184
  489. package/dist/spec/schemas/theme.schema.json +168 -168
  490. package/dist/spec/schemas/tone.schema.json +146 -146
  491. package/dist/spec-files.d.ts +2388 -0
  492. package/dist/spec-files.js +3349 -0
  493. package/dist/spec-files.js.map +1 -0
  494. package/dist/types.d.ts +5 -5
  495. package/dist/{validator-Be5EzqAt.d.ts → validator-D7WwzKyx.d.ts} +16 -16
  496. package/dist/validator.d.ts +1 -1
  497. package/dist/validator.js +35 -35
  498. package/dist/validator.js.map +1 -1
  499. package/package.json +91 -80
package/dist/schemas.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  declare const presentation: {
2
2
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3
3
  readonly $id: "https://openpresentation.org/schema/opf/v1";
4
- readonly title: "OPF — Open Presentation Format";
5
- readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
4
+ readonly title: "Presentation";
5
+ readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
6
6
  readonly type: "object";
7
7
  readonly required: ["slides"];
8
8
  readonly additionalProperties: false;
@@ -15,11 +15,11 @@ declare const presentation: {
15
15
  readonly name: {
16
16
  readonly type: "string";
17
17
  readonly description: "Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides.";
18
- readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
18
+ readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
19
19
  };
20
20
  readonly description: {
21
21
  readonly type: "string";
22
- readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
22
+ readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
23
23
  readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
24
24
  };
25
25
  readonly filename: {
@@ -74,7 +74,7 @@ declare const presentation: {
74
74
  }];
75
75
  };
76
76
  readonly minItems: 1;
77
- readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
77
+ readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
78
78
  readonly examples: [["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
79
79
  readonly id: "executives";
80
80
  readonly attentionBudgetMinutes: 20;
@@ -91,7 +91,7 @@ declare const presentation: {
91
91
  }, {
92
92
  readonly $ref: "#/$defs/Purpose";
93
93
  }];
94
- readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
94
+ readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
95
95
  readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
96
96
  readonly id: "decide";
97
97
  readonly outcome: "Approve the Q4 hiring plan";
@@ -106,7 +106,7 @@ declare const presentation: {
106
106
  }, {
107
107
  readonly $ref: "#/$defs/Language";
108
108
  }];
109
- readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
109
+ readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
110
110
  readonly examples: ["en-US", "en-GB", "es-MX", "ja-JP", "fr", "english", "japanese", "https://acme.com/decks/languages/en-acme.json", "pkg:@acme/decks/languages/en-acme", {
111
111
  readonly id: "english";
112
112
  readonly bcp47: "en-US";
@@ -125,7 +125,7 @@ declare const presentation: {
125
125
  }, {
126
126
  readonly $ref: "#/$defs/Tone";
127
127
  }];
128
- readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
128
+ readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
129
129
  readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
130
130
  readonly id: "formal";
131
131
  readonly voiceCues: ["Use precise, concise language."];
@@ -170,7 +170,7 @@ declare const presentation: {
170
170
  }, {
171
171
  readonly $ref: "#/$defs/Narrative";
172
172
  }];
173
- readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
173
+ readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
174
174
  readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
175
175
  readonly id: "custom-pitch";
176
176
  readonly name: "Custom Pitch";
@@ -528,7 +528,7 @@ declare const presentation: {
528
528
  };
529
529
  readonly Organization: {
530
530
  readonly type: "object";
531
- readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
531
+ readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
532
532
  readonly required: ["id", "name"];
533
533
  readonly properties: {
534
534
  readonly id: {
@@ -639,7 +639,7 @@ declare const presentation: {
639
639
  };
640
640
  readonly Socials: {
641
641
  readonly type: "object";
642
- readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
642
+ readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
643
643
  readonly additionalProperties: {
644
644
  readonly type: "string";
645
645
  readonly description: "Handle or URL for the platform identified by the property key.";
@@ -660,7 +660,7 @@ declare const presentation: {
660
660
  };
661
661
  readonly Narrative: {
662
662
  readonly type: "object";
663
- readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
663
+ readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
664
664
  readonly properties: {
665
665
  readonly id: {
666
666
  readonly type: "string";
@@ -671,7 +671,7 @@ declare const presentation: {
671
671
  readonly name: {
672
672
  readonly type: "string";
673
673
  readonly description: "Human-readable narrative name.";
674
- readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
674
+ readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
675
675
  };
676
676
  readonly summary: {
677
677
  readonly type: "string";
@@ -744,7 +744,7 @@ declare const presentation: {
744
744
  };
745
745
  readonly NarrativeBeat: {
746
746
  readonly type: "object";
747
- readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
747
+ readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
748
748
  readonly required: ["id", "name"];
749
749
  readonly properties: {
750
750
  readonly id: {
@@ -765,7 +765,7 @@ declare const presentation: {
765
765
  };
766
766
  readonly instructions: {
767
767
  readonly type: "string";
768
- readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
768
+ readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
769
769
  readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
770
770
  };
771
771
  readonly slideCount: {
@@ -780,7 +780,7 @@ declare const presentation: {
780
780
  };
781
781
  readonly layoutHint: {
782
782
  readonly type: "string";
783
- readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
783
+ readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
784
784
  readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
785
785
  };
786
786
  readonly thoughtCues: {
@@ -1192,12 +1192,12 @@ declare const presentation: {
1192
1192
  };
1193
1193
  readonly major: {
1194
1194
  readonly type: "string";
1195
- readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
1195
+ readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
1196
1196
  readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
1197
1197
  };
1198
1198
  readonly minor: {
1199
1199
  readonly type: "string";
1200
- readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
1200
+ readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
1201
1201
  readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
1202
1202
  };
1203
1203
  readonly type: {
@@ -1634,7 +1634,7 @@ declare const presentation: {
1634
1634
  };
1635
1635
  readonly layout: {
1636
1636
  readonly type: "string";
1637
- readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
1637
+ readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
1638
1638
  readonly examples: ["title", "title-subtitle", "text-2x", "chart-3x", "image-bleed", "blank", "https://acme.com/decks/layouts/cover.json", "pkg:@acme/decks/layouts/cover"];
1639
1639
  };
1640
1640
  readonly title: {
@@ -2568,7 +2568,7 @@ declare const presentation: {
2568
2568
  };
2569
2569
  readonly Catalogs: {
2570
2570
  readonly type: "object";
2571
- readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
2571
+ readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
2572
2572
  readonly properties: {
2573
2573
  readonly narratives: {
2574
2574
  readonly $ref: "#/$defs/CatalogEntry";
@@ -2652,7 +2652,7 @@ declare const presentation: {
2652
2652
  declare const audience: {
2653
2653
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
2654
2654
  readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
2655
- readonly title: "OPF Audience";
2655
+ readonly title: "Audience";
2656
2656
  readonly description: "Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.";
2657
2657
  readonly type: "object";
2658
2658
  readonly required: ["$schema", "id", "name"];
@@ -2753,7 +2753,7 @@ declare const audience: {
2753
2753
  declare const purpose: {
2754
2754
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
2755
2755
  readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
2756
- readonly title: "OPF Purpose";
2756
+ readonly title: "Purpose";
2757
2757
  readonly description: "Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.";
2758
2758
  readonly type: "object";
2759
2759
  readonly required: ["$schema", "id", "name"];
@@ -2841,7 +2841,7 @@ declare const purpose: {
2841
2841
  declare const tone: {
2842
2842
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
2843
2843
  readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
2844
- readonly title: "OPF Tone";
2844
+ readonly title: "Tone";
2845
2845
  readonly description: "Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.";
2846
2846
  readonly type: "object";
2847
2847
  readonly required: ["$schema", "id", "name"];
@@ -2938,7 +2938,7 @@ declare const tone: {
2938
2938
  declare const theme: {
2939
2939
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
2940
2940
  readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
2941
- readonly title: "OPF Theme";
2941
+ readonly title: "Theme";
2942
2942
  readonly description: "Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.";
2943
2943
  readonly type: "object";
2944
2944
  readonly required: ["$schema", "id", "name"];
@@ -3047,7 +3047,7 @@ declare const theme: {
3047
3047
  declare const layout: {
3048
3048
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3049
3049
  readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
3050
- readonly title: "OPF Slide Layout";
3050
+ readonly title: "Slide Layout";
3051
3051
  readonly description: "Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.";
3052
3052
  readonly type: "object";
3053
3053
  readonly required: ["$schema", "id", "name"];
@@ -3211,7 +3211,7 @@ declare const layout: {
3211
3211
  declare const chartType: {
3212
3212
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3213
3213
  readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
3214
- readonly title: "OPF Chart Type";
3214
+ readonly title: "Chart Type";
3215
3215
  readonly description: "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.";
3216
3216
  readonly type: "object";
3217
3217
  readonly additionalProperties: false;
@@ -3517,7 +3517,7 @@ declare const chartType: {
3517
3517
  declare const narrative: {
3518
3518
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3519
3519
  readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
3520
- readonly title: "OPF Narrative Template";
3520
+ readonly title: "Narrative Template";
3521
3521
  readonly description: "Schema for narrative template files in the openpresentation.org catalog. Each template describes a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats. Templates are referenced from OPF documents via narrative — either as a bare id string (e.g. 'classic-story') or as an inline object whose shape matches this schema (sans '$schema').";
3522
3522
  readonly type: "object";
3523
3523
  readonly required: ["$schema", "id", "name", "beats"];
@@ -3663,8 +3663,8 @@ declare const narrative: {
3663
3663
  declare const socialPlatform: {
3664
3664
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3665
3665
  readonly $id: "https://openpresentation.org/schema/opf-social-platform/v1";
3666
- readonly title: "OPF Social Platform";
3667
- readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
3666
+ readonly title: "Social Platform";
3667
+ readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
3668
3668
  readonly type: "object";
3669
3669
  readonly required: ["$schema", "id", "name"];
3670
3670
  readonly properties: {
@@ -3676,7 +3676,7 @@ declare const socialPlatform: {
3676
3676
  readonly id: {
3677
3677
  readonly type: "string";
3678
3678
  readonly pattern: "^[a-z][a-z0-9-]*$";
3679
- readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
3679
+ readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
3680
3680
  readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
3681
3681
  };
3682
3682
  readonly name: {
@@ -3686,7 +3686,7 @@ declare const socialPlatform: {
3686
3686
  };
3687
3687
  readonly summary: {
3688
3688
  readonly type: "string";
3689
- readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
3689
+ readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
3690
3690
  readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
3691
3691
  };
3692
3692
  readonly description: {
@@ -3697,7 +3697,7 @@ declare const socialPlatform: {
3697
3697
  readonly baseUrl: {
3698
3698
  readonly type: "string";
3699
3699
  readonly format: "uri";
3700
- readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
3700
+ readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
3701
3701
  readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
3702
3702
  };
3703
3703
  readonly profileUrlPattern: {
@@ -3774,7 +3774,7 @@ declare const socialPlatform: {
3774
3774
  declare const language: {
3775
3775
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3776
3776
  readonly $id: "https://openpresentation.org/schema/opf-language/v1";
3777
- readonly title: "OPF Language";
3777
+ readonly title: "Language";
3778
3778
  readonly description: "Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.";
3779
3779
  readonly type: "object";
3780
3780
  readonly required: ["$schema", "id", "name", "bcp47"];
@@ -3873,7 +3873,7 @@ declare const language: {
3873
3873
  declare const colorScheme: {
3874
3874
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
3875
3875
  readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
3876
- readonly title: "OPF Color Scheme";
3876
+ readonly title: "Color Scheme";
3877
3877
  readonly description: "Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.\n\nThe slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.";
3878
3878
  readonly type: "object";
3879
3879
  readonly required: ["$schema", "id", "name"];
@@ -4001,7 +4001,7 @@ declare const colorScheme: {
4001
4001
  declare const fontScheme: {
4002
4002
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
4003
4003
  readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
4004
- readonly title: "OPF Font Scheme";
4004
+ readonly title: "Font Scheme";
4005
4005
  readonly description: "Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google Slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code) take precedence over the resolved scheme.";
4006
4006
  readonly type: "object";
4007
4007
  readonly required: ["$schema", "id", "name", "major", "minor"];
@@ -4108,8 +4108,8 @@ declare const schemas: {
4108
4108
  readonly presentation: {
4109
4109
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
4110
4110
  readonly $id: "https://openpresentation.org/schema/opf/v1";
4111
- readonly title: "OPF — Open Presentation Format";
4112
- readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
4111
+ readonly title: "Presentation";
4112
+ readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
4113
4113
  readonly type: "object";
4114
4114
  readonly required: ["slides"];
4115
4115
  readonly additionalProperties: false;
@@ -4122,11 +4122,11 @@ declare const schemas: {
4122
4122
  readonly name: {
4123
4123
  readonly type: "string";
4124
4124
  readonly description: "Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides.";
4125
- readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
4125
+ readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
4126
4126
  };
4127
4127
  readonly description: {
4128
4128
  readonly type: "string";
4129
- readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
4129
+ readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
4130
4130
  readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
4131
4131
  };
4132
4132
  readonly filename: {
@@ -4181,7 +4181,7 @@ declare const schemas: {
4181
4181
  }];
4182
4182
  };
4183
4183
  readonly minItems: 1;
4184
- readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
4184
+ readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
4185
4185
  readonly examples: [["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
4186
4186
  readonly id: "executives";
4187
4187
  readonly attentionBudgetMinutes: 20;
@@ -4198,7 +4198,7 @@ declare const schemas: {
4198
4198
  }, {
4199
4199
  readonly $ref: "#/$defs/Purpose";
4200
4200
  }];
4201
- readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
4201
+ readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
4202
4202
  readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
4203
4203
  readonly id: "decide";
4204
4204
  readonly outcome: "Approve the Q4 hiring plan";
@@ -4213,7 +4213,7 @@ declare const schemas: {
4213
4213
  }, {
4214
4214
  readonly $ref: "#/$defs/Language";
4215
4215
  }];
4216
- readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
4216
+ readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
4217
4217
  readonly examples: ["en-US", "en-GB", "es-MX", "ja-JP", "fr", "english", "japanese", "https://acme.com/decks/languages/en-acme.json", "pkg:@acme/decks/languages/en-acme", {
4218
4218
  readonly id: "english";
4219
4219
  readonly bcp47: "en-US";
@@ -4232,7 +4232,7 @@ declare const schemas: {
4232
4232
  }, {
4233
4233
  readonly $ref: "#/$defs/Tone";
4234
4234
  }];
4235
- readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
4235
+ readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
4236
4236
  readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
4237
4237
  readonly id: "formal";
4238
4238
  readonly voiceCues: ["Use precise, concise language."];
@@ -4277,7 +4277,7 @@ declare const schemas: {
4277
4277
  }, {
4278
4278
  readonly $ref: "#/$defs/Narrative";
4279
4279
  }];
4280
- readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
4280
+ readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
4281
4281
  readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
4282
4282
  readonly id: "custom-pitch";
4283
4283
  readonly name: "Custom Pitch";
@@ -4635,7 +4635,7 @@ declare const schemas: {
4635
4635
  };
4636
4636
  readonly Organization: {
4637
4637
  readonly type: "object";
4638
- readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
4638
+ readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
4639
4639
  readonly required: ["id", "name"];
4640
4640
  readonly properties: {
4641
4641
  readonly id: {
@@ -4746,7 +4746,7 @@ declare const schemas: {
4746
4746
  };
4747
4747
  readonly Socials: {
4748
4748
  readonly type: "object";
4749
- readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
4749
+ readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
4750
4750
  readonly additionalProperties: {
4751
4751
  readonly type: "string";
4752
4752
  readonly description: "Handle or URL for the platform identified by the property key.";
@@ -4767,7 +4767,7 @@ declare const schemas: {
4767
4767
  };
4768
4768
  readonly Narrative: {
4769
4769
  readonly type: "object";
4770
- readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
4770
+ readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
4771
4771
  readonly properties: {
4772
4772
  readonly id: {
4773
4773
  readonly type: "string";
@@ -4778,7 +4778,7 @@ declare const schemas: {
4778
4778
  readonly name: {
4779
4779
  readonly type: "string";
4780
4780
  readonly description: "Human-readable narrative name.";
4781
- readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
4781
+ readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
4782
4782
  };
4783
4783
  readonly summary: {
4784
4784
  readonly type: "string";
@@ -4851,7 +4851,7 @@ declare const schemas: {
4851
4851
  };
4852
4852
  readonly NarrativeBeat: {
4853
4853
  readonly type: "object";
4854
- readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
4854
+ readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
4855
4855
  readonly required: ["id", "name"];
4856
4856
  readonly properties: {
4857
4857
  readonly id: {
@@ -4872,7 +4872,7 @@ declare const schemas: {
4872
4872
  };
4873
4873
  readonly instructions: {
4874
4874
  readonly type: "string";
4875
- readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
4875
+ readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
4876
4876
  readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
4877
4877
  };
4878
4878
  readonly slideCount: {
@@ -4887,7 +4887,7 @@ declare const schemas: {
4887
4887
  };
4888
4888
  readonly layoutHint: {
4889
4889
  readonly type: "string";
4890
- readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
4890
+ readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
4891
4891
  readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
4892
4892
  };
4893
4893
  readonly thoughtCues: {
@@ -5299,12 +5299,12 @@ declare const schemas: {
5299
5299
  };
5300
5300
  readonly major: {
5301
5301
  readonly type: "string";
5302
- readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
5302
+ readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
5303
5303
  readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
5304
5304
  };
5305
5305
  readonly minor: {
5306
5306
  readonly type: "string";
5307
- readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
5307
+ readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
5308
5308
  readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
5309
5309
  };
5310
5310
  readonly type: {
@@ -5741,7 +5741,7 @@ declare const schemas: {
5741
5741
  };
5742
5742
  readonly layout: {
5743
5743
  readonly type: "string";
5744
- readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
5744
+ readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
5745
5745
  readonly examples: ["title", "title-subtitle", "text-2x", "chart-3x", "image-bleed", "blank", "https://acme.com/decks/layouts/cover.json", "pkg:@acme/decks/layouts/cover"];
5746
5746
  };
5747
5747
  readonly title: {
@@ -6675,7 +6675,7 @@ declare const schemas: {
6675
6675
  };
6676
6676
  readonly Catalogs: {
6677
6677
  readonly type: "object";
6678
- readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
6678
+ readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
6679
6679
  readonly properties: {
6680
6680
  readonly narratives: {
6681
6681
  readonly $ref: "#/$defs/CatalogEntry";
@@ -6759,7 +6759,7 @@ declare const schemas: {
6759
6759
  readonly audience: {
6760
6760
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
6761
6761
  readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
6762
- readonly title: "OPF Audience";
6762
+ readonly title: "Audience";
6763
6763
  readonly description: "Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.";
6764
6764
  readonly type: "object";
6765
6765
  readonly required: ["$schema", "id", "name"];
@@ -6860,7 +6860,7 @@ declare const schemas: {
6860
6860
  readonly purpose: {
6861
6861
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
6862
6862
  readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
6863
- readonly title: "OPF Purpose";
6863
+ readonly title: "Purpose";
6864
6864
  readonly description: "Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.";
6865
6865
  readonly type: "object";
6866
6866
  readonly required: ["$schema", "id", "name"];
@@ -6948,7 +6948,7 @@ declare const schemas: {
6948
6948
  readonly tone: {
6949
6949
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
6950
6950
  readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
6951
- readonly title: "OPF Tone";
6951
+ readonly title: "Tone";
6952
6952
  readonly description: "Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.";
6953
6953
  readonly type: "object";
6954
6954
  readonly required: ["$schema", "id", "name"];
@@ -7045,7 +7045,7 @@ declare const schemas: {
7045
7045
  readonly theme: {
7046
7046
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7047
7047
  readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
7048
- readonly title: "OPF Theme";
7048
+ readonly title: "Theme";
7049
7049
  readonly description: "Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.";
7050
7050
  readonly type: "object";
7051
7051
  readonly required: ["$schema", "id", "name"];
@@ -7154,7 +7154,7 @@ declare const schemas: {
7154
7154
  readonly layout: {
7155
7155
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7156
7156
  readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
7157
- readonly title: "OPF Slide Layout";
7157
+ readonly title: "Slide Layout";
7158
7158
  readonly description: "Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.";
7159
7159
  readonly type: "object";
7160
7160
  readonly required: ["$schema", "id", "name"];
@@ -7318,7 +7318,7 @@ declare const schemas: {
7318
7318
  readonly chartType: {
7319
7319
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7320
7320
  readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
7321
- readonly title: "OPF Chart Type";
7321
+ readonly title: "Chart Type";
7322
7322
  readonly description: "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.";
7323
7323
  readonly type: "object";
7324
7324
  readonly additionalProperties: false;
@@ -7624,7 +7624,7 @@ declare const schemas: {
7624
7624
  readonly narrative: {
7625
7625
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7626
7626
  readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
7627
- readonly title: "OPF Narrative Template";
7627
+ readonly title: "Narrative Template";
7628
7628
  readonly description: "Schema for narrative template files in the openpresentation.org catalog. Each template describes a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats. Templates are referenced from OPF documents via narrative — either as a bare id string (e.g. 'classic-story') or as an inline object whose shape matches this schema (sans '$schema').";
7629
7629
  readonly type: "object";
7630
7630
  readonly required: ["$schema", "id", "name", "beats"];
@@ -7770,8 +7770,8 @@ declare const schemas: {
7770
7770
  readonly socialPlatform: {
7771
7771
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7772
7772
  readonly $id: "https://openpresentation.org/schema/opf-social-platform/v1";
7773
- readonly title: "OPF Social Platform";
7774
- readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
7773
+ readonly title: "Social Platform";
7774
+ readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
7775
7775
  readonly type: "object";
7776
7776
  readonly required: ["$schema", "id", "name"];
7777
7777
  readonly properties: {
@@ -7783,7 +7783,7 @@ declare const schemas: {
7783
7783
  readonly id: {
7784
7784
  readonly type: "string";
7785
7785
  readonly pattern: "^[a-z][a-z0-9-]*$";
7786
- readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
7786
+ readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
7787
7787
  readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
7788
7788
  };
7789
7789
  readonly name: {
@@ -7793,7 +7793,7 @@ declare const schemas: {
7793
7793
  };
7794
7794
  readonly summary: {
7795
7795
  readonly type: "string";
7796
- readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
7796
+ readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
7797
7797
  readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
7798
7798
  };
7799
7799
  readonly description: {
@@ -7804,7 +7804,7 @@ declare const schemas: {
7804
7804
  readonly baseUrl: {
7805
7805
  readonly type: "string";
7806
7806
  readonly format: "uri";
7807
- readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
7807
+ readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
7808
7808
  readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
7809
7809
  };
7810
7810
  readonly profileUrlPattern: {
@@ -7881,7 +7881,7 @@ declare const schemas: {
7881
7881
  readonly language: {
7882
7882
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7883
7883
  readonly $id: "https://openpresentation.org/schema/opf-language/v1";
7884
- readonly title: "OPF Language";
7884
+ readonly title: "Language";
7885
7885
  readonly description: "Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.";
7886
7886
  readonly type: "object";
7887
7887
  readonly required: ["$schema", "id", "name", "bcp47"];
@@ -7980,7 +7980,7 @@ declare const schemas: {
7980
7980
  readonly colorScheme: {
7981
7981
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
7982
7982
  readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
7983
- readonly title: "OPF Color Scheme";
7983
+ readonly title: "Color Scheme";
7984
7984
  readonly description: "Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.\n\nThe slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.";
7985
7985
  readonly type: "object";
7986
7986
  readonly required: ["$schema", "id", "name"];
@@ -8108,7 +8108,7 @@ declare const schemas: {
8108
8108
  readonly fontScheme: {
8109
8109
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
8110
8110
  readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
8111
- readonly title: "OPF Font Scheme";
8111
+ readonly title: "Font Scheme";
8112
8112
  readonly description: "Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google Slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code) take precedence over the resolved scheme.";
8113
8113
  readonly type: "object";
8114
8114
  readonly required: ["$schema", "id", "name", "major", "minor"];
@@ -8219,8 +8219,8 @@ declare const schemaEntries: readonly [{
8219
8219
  readonly schema: {
8220
8220
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
8221
8221
  readonly $id: "https://openpresentation.org/schema/opf/v1";
8222
- readonly title: "OPF — Open Presentation Format";
8223
- readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
8222
+ readonly title: "Presentation";
8223
+ readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
8224
8224
  readonly type: "object";
8225
8225
  readonly required: ["slides"];
8226
8226
  readonly additionalProperties: false;
@@ -8233,11 +8233,11 @@ declare const schemaEntries: readonly [{
8233
8233
  readonly name: {
8234
8234
  readonly type: "string";
8235
8235
  readonly description: "Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides.";
8236
- readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
8236
+ readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
8237
8237
  };
8238
8238
  readonly description: {
8239
8239
  readonly type: "string";
8240
- readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
8240
+ readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
8241
8241
  readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
8242
8242
  };
8243
8243
  readonly filename: {
@@ -8292,7 +8292,7 @@ declare const schemaEntries: readonly [{
8292
8292
  }];
8293
8293
  };
8294
8294
  readonly minItems: 1;
8295
- readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
8295
+ readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
8296
8296
  readonly examples: [["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
8297
8297
  readonly id: "executives";
8298
8298
  readonly attentionBudgetMinutes: 20;
@@ -8309,7 +8309,7 @@ declare const schemaEntries: readonly [{
8309
8309
  }, {
8310
8310
  readonly $ref: "#/$defs/Purpose";
8311
8311
  }];
8312
- readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
8312
+ readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
8313
8313
  readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
8314
8314
  readonly id: "decide";
8315
8315
  readonly outcome: "Approve the Q4 hiring plan";
@@ -8324,7 +8324,7 @@ declare const schemaEntries: readonly [{
8324
8324
  }, {
8325
8325
  readonly $ref: "#/$defs/Language";
8326
8326
  }];
8327
- readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
8327
+ readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
8328
8328
  readonly examples: ["en-US", "en-GB", "es-MX", "ja-JP", "fr", "english", "japanese", "https://acme.com/decks/languages/en-acme.json", "pkg:@acme/decks/languages/en-acme", {
8329
8329
  readonly id: "english";
8330
8330
  readonly bcp47: "en-US";
@@ -8343,7 +8343,7 @@ declare const schemaEntries: readonly [{
8343
8343
  }, {
8344
8344
  readonly $ref: "#/$defs/Tone";
8345
8345
  }];
8346
- readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
8346
+ readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
8347
8347
  readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
8348
8348
  readonly id: "formal";
8349
8349
  readonly voiceCues: ["Use precise, concise language."];
@@ -8388,7 +8388,7 @@ declare const schemaEntries: readonly [{
8388
8388
  }, {
8389
8389
  readonly $ref: "#/$defs/Narrative";
8390
8390
  }];
8391
- readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
8391
+ readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
8392
8392
  readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
8393
8393
  readonly id: "custom-pitch";
8394
8394
  readonly name: "Custom Pitch";
@@ -8746,7 +8746,7 @@ declare const schemaEntries: readonly [{
8746
8746
  };
8747
8747
  readonly Organization: {
8748
8748
  readonly type: "object";
8749
- readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
8749
+ readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
8750
8750
  readonly required: ["id", "name"];
8751
8751
  readonly properties: {
8752
8752
  readonly id: {
@@ -8857,7 +8857,7 @@ declare const schemaEntries: readonly [{
8857
8857
  };
8858
8858
  readonly Socials: {
8859
8859
  readonly type: "object";
8860
- readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
8860
+ readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
8861
8861
  readonly additionalProperties: {
8862
8862
  readonly type: "string";
8863
8863
  readonly description: "Handle or URL for the platform identified by the property key.";
@@ -8878,7 +8878,7 @@ declare const schemaEntries: readonly [{
8878
8878
  };
8879
8879
  readonly Narrative: {
8880
8880
  readonly type: "object";
8881
- readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
8881
+ readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
8882
8882
  readonly properties: {
8883
8883
  readonly id: {
8884
8884
  readonly type: "string";
@@ -8889,7 +8889,7 @@ declare const schemaEntries: readonly [{
8889
8889
  readonly name: {
8890
8890
  readonly type: "string";
8891
8891
  readonly description: "Human-readable narrative name.";
8892
- readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
8892
+ readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
8893
8893
  };
8894
8894
  readonly summary: {
8895
8895
  readonly type: "string";
@@ -8962,7 +8962,7 @@ declare const schemaEntries: readonly [{
8962
8962
  };
8963
8963
  readonly NarrativeBeat: {
8964
8964
  readonly type: "object";
8965
- readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
8965
+ readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
8966
8966
  readonly required: ["id", "name"];
8967
8967
  readonly properties: {
8968
8968
  readonly id: {
@@ -8983,7 +8983,7 @@ declare const schemaEntries: readonly [{
8983
8983
  };
8984
8984
  readonly instructions: {
8985
8985
  readonly type: "string";
8986
- readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
8986
+ readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
8987
8987
  readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
8988
8988
  };
8989
8989
  readonly slideCount: {
@@ -8998,7 +8998,7 @@ declare const schemaEntries: readonly [{
8998
8998
  };
8999
8999
  readonly layoutHint: {
9000
9000
  readonly type: "string";
9001
- readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
9001
+ readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
9002
9002
  readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
9003
9003
  };
9004
9004
  readonly thoughtCues: {
@@ -9410,12 +9410,12 @@ declare const schemaEntries: readonly [{
9410
9410
  };
9411
9411
  readonly major: {
9412
9412
  readonly type: "string";
9413
- readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
9413
+ readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
9414
9414
  readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
9415
9415
  };
9416
9416
  readonly minor: {
9417
9417
  readonly type: "string";
9418
- readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
9418
+ readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
9419
9419
  readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
9420
9420
  };
9421
9421
  readonly type: {
@@ -9852,7 +9852,7 @@ declare const schemaEntries: readonly [{
9852
9852
  };
9853
9853
  readonly layout: {
9854
9854
  readonly type: "string";
9855
- readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
9855
+ readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
9856
9856
  readonly examples: ["title", "title-subtitle", "text-2x", "chart-3x", "image-bleed", "blank", "https://acme.com/decks/layouts/cover.json", "pkg:@acme/decks/layouts/cover"];
9857
9857
  };
9858
9858
  readonly title: {
@@ -10786,7 +10786,7 @@ declare const schemaEntries: readonly [{
10786
10786
  };
10787
10787
  readonly Catalogs: {
10788
10788
  readonly type: "object";
10789
- readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
10789
+ readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
10790
10790
  readonly properties: {
10791
10791
  readonly narratives: {
10792
10792
  readonly $ref: "#/$defs/CatalogEntry";
@@ -10873,7 +10873,7 @@ declare const schemaEntries: readonly [{
10873
10873
  readonly schema: {
10874
10874
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
10875
10875
  readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
10876
- readonly title: "OPF Audience";
10876
+ readonly title: "Audience";
10877
10877
  readonly description: "Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.";
10878
10878
  readonly type: "object";
10879
10879
  readonly required: ["$schema", "id", "name"];
@@ -10977,7 +10977,7 @@ declare const schemaEntries: readonly [{
10977
10977
  readonly schema: {
10978
10978
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
10979
10979
  readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
10980
- readonly title: "OPF Purpose";
10980
+ readonly title: "Purpose";
10981
10981
  readonly description: "Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.";
10982
10982
  readonly type: "object";
10983
10983
  readonly required: ["$schema", "id", "name"];
@@ -11068,7 +11068,7 @@ declare const schemaEntries: readonly [{
11068
11068
  readonly schema: {
11069
11069
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
11070
11070
  readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
11071
- readonly title: "OPF Tone";
11071
+ readonly title: "Tone";
11072
11072
  readonly description: "Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.";
11073
11073
  readonly type: "object";
11074
11074
  readonly required: ["$schema", "id", "name"];
@@ -11168,7 +11168,7 @@ declare const schemaEntries: readonly [{
11168
11168
  readonly schema: {
11169
11169
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
11170
11170
  readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
11171
- readonly title: "OPF Theme";
11171
+ readonly title: "Theme";
11172
11172
  readonly description: "Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.";
11173
11173
  readonly type: "object";
11174
11174
  readonly required: ["$schema", "id", "name"];
@@ -11280,7 +11280,7 @@ declare const schemaEntries: readonly [{
11280
11280
  readonly schema: {
11281
11281
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
11282
11282
  readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
11283
- readonly title: "OPF Slide Layout";
11283
+ readonly title: "Slide Layout";
11284
11284
  readonly description: "Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.";
11285
11285
  readonly type: "object";
11286
11286
  readonly required: ["$schema", "id", "name"];
@@ -11447,7 +11447,7 @@ declare const schemaEntries: readonly [{
11447
11447
  readonly schema: {
11448
11448
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
11449
11449
  readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
11450
- readonly title: "OPF Chart Type";
11450
+ readonly title: "Chart Type";
11451
11451
  readonly description: "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.";
11452
11452
  readonly type: "object";
11453
11453
  readonly additionalProperties: false;
@@ -11756,7 +11756,7 @@ declare const schemaEntries: readonly [{
11756
11756
  readonly schema: {
11757
11757
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
11758
11758
  readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
11759
- readonly title: "OPF Narrative Template";
11759
+ readonly title: "Narrative Template";
11760
11760
  readonly description: "Schema for narrative template files in the openpresentation.org catalog. Each template describes a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats. Templates are referenced from OPF documents via narrative — either as a bare id string (e.g. 'classic-story') or as an inline object whose shape matches this schema (sans '$schema').";
11761
11761
  readonly type: "object";
11762
11762
  readonly required: ["$schema", "id", "name", "beats"];
@@ -11905,8 +11905,8 @@ declare const schemaEntries: readonly [{
11905
11905
  readonly schema: {
11906
11906
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
11907
11907
  readonly $id: "https://openpresentation.org/schema/opf-social-platform/v1";
11908
- readonly title: "OPF Social Platform";
11909
- readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
11908
+ readonly title: "Social Platform";
11909
+ readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
11910
11910
  readonly type: "object";
11911
11911
  readonly required: ["$schema", "id", "name"];
11912
11912
  readonly properties: {
@@ -11918,7 +11918,7 @@ declare const schemaEntries: readonly [{
11918
11918
  readonly id: {
11919
11919
  readonly type: "string";
11920
11920
  readonly pattern: "^[a-z][a-z0-9-]*$";
11921
- readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
11921
+ readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
11922
11922
  readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
11923
11923
  };
11924
11924
  readonly name: {
@@ -11928,7 +11928,7 @@ declare const schemaEntries: readonly [{
11928
11928
  };
11929
11929
  readonly summary: {
11930
11930
  readonly type: "string";
11931
- readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
11931
+ readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
11932
11932
  readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
11933
11933
  };
11934
11934
  readonly description: {
@@ -11939,7 +11939,7 @@ declare const schemaEntries: readonly [{
11939
11939
  readonly baseUrl: {
11940
11940
  readonly type: "string";
11941
11941
  readonly format: "uri";
11942
- readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
11942
+ readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
11943
11943
  readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
11944
11944
  };
11945
11945
  readonly profileUrlPattern: {
@@ -12019,7 +12019,7 @@ declare const schemaEntries: readonly [{
12019
12019
  readonly schema: {
12020
12020
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
12021
12021
  readonly $id: "https://openpresentation.org/schema/opf-language/v1";
12022
- readonly title: "OPF Language";
12022
+ readonly title: "Language";
12023
12023
  readonly description: "Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.";
12024
12024
  readonly type: "object";
12025
12025
  readonly required: ["$schema", "id", "name", "bcp47"];
@@ -12121,7 +12121,7 @@ declare const schemaEntries: readonly [{
12121
12121
  readonly schema: {
12122
12122
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
12123
12123
  readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
12124
- readonly title: "OPF Color Scheme";
12124
+ readonly title: "Color Scheme";
12125
12125
  readonly description: "Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.\n\nThe slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.";
12126
12126
  readonly type: "object";
12127
12127
  readonly required: ["$schema", "id", "name"];
@@ -12252,7 +12252,7 @@ declare const schemaEntries: readonly [{
12252
12252
  readonly schema: {
12253
12253
  readonly $schema: "https://json-schema.org/draft/2020-12/schema";
12254
12254
  readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
12255
- readonly title: "OPF Font Scheme";
12255
+ readonly title: "Font Scheme";
12256
12256
  readonly description: "Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google Slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code) take precedence over the resolved scheme.";
12257
12257
  readonly type: "object";
12258
12258
  readonly required: ["$schema", "id", "name", "major", "minor"];