@nakafa/aksara-contracts 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/LICENSE +185 -0
  2. package/README.md +73 -0
  3. package/dist/artifact/integrity.d.ts +29 -0
  4. package/dist/artifact/integrity.js +54 -0
  5. package/dist/artifact/limits.d.ts +26 -0
  6. package/dist/artifact/limits.js +46 -0
  7. package/dist/artifact/source.d.ts +21 -0
  8. package/dist/artifact/source.js +24 -0
  9. package/dist/artifact/spec.d.ts +148 -0
  10. package/dist/artifact/spec.js +92 -0
  11. package/dist/artifact/verify.d.ts +26 -0
  12. package/dist/artifact/verify.js +18 -0
  13. package/dist/cache/content.d.ts +52 -0
  14. package/dist/cache/content.js +80 -0
  15. package/dist/content.d.ts +168 -0
  16. package/dist/content.js +107 -0
  17. package/dist/country.d.ts +4 -0
  18. package/dist/country.js +8 -0
  19. package/dist/date.d.ts +24 -0
  20. package/dist/date.js +44 -0
  21. package/dist/decode.d.ts +4 -0
  22. package/dist/decode.js +8 -0
  23. package/dist/delivery.d.ts +4 -0
  24. package/dist/delivery.js +7 -0
  25. package/dist/errors.d.ts +10 -0
  26. package/dist/errors.js +8 -0
  27. package/dist/graph/family.d.ts +45 -0
  28. package/dist/graph/family.js +85 -0
  29. package/dist/graph/identity.d.ts +19 -0
  30. package/dist/graph/identity.js +39 -0
  31. package/dist/graph/spec.d.ts +20 -0
  32. package/dist/graph/spec.js +26 -0
  33. package/dist/hash/text.d.ts +10 -0
  34. package/dist/hash/text.js +20 -0
  35. package/dist/ids.d.ts +27 -0
  36. package/dist/ids.js +63 -0
  37. package/dist/limits.d.ts +10 -0
  38. package/dist/limits.js +10 -0
  39. package/dist/locale.d.ts +37 -0
  40. package/dist/locale.js +53 -0
  41. package/dist/material/domain.d.ts +4 -0
  42. package/dist/material/domain.js +8 -0
  43. package/dist/preview/artifact.d.ts +198 -0
  44. package/dist/preview/artifact.js +20 -0
  45. package/dist/preview/auth.d.ts +71 -0
  46. package/dist/preview/auth.js +49 -0
  47. package/dist/preview/document.d.ts +692 -0
  48. package/dist/preview/document.js +90 -0
  49. package/dist/preview/spec.d.ts +2517 -0
  50. package/dist/preview/spec.js +142 -0
  51. package/dist/preview/target.d.ts +172 -0
  52. package/dist/preview/target.js +70 -0
  53. package/dist/program/curriculum.d.ts +69 -0
  54. package/dist/program/curriculum.js +181 -0
  55. package/dist/program/snapshot/digest.d.ts +26 -0
  56. package/dist/program/snapshot/digest.js +220 -0
  57. package/dist/program/snapshot/hash.d.ts +31 -0
  58. package/dist/program/snapshot/hash.js +40 -0
  59. package/dist/program/snapshot/row-hash.d.ts +155 -0
  60. package/dist/program/snapshot/row-hash.js +34 -0
  61. package/dist/program/snapshot/row.d.ts +139 -0
  62. package/dist/program/snapshot/row.js +28 -0
  63. package/dist/program/snapshot/spec.d.ts +36 -0
  64. package/dist/program/snapshot/spec.js +39 -0
  65. package/dist/program/spec.d.ts +85 -0
  66. package/dist/program/spec.js +197 -0
  67. package/dist/projection/article.d.ts +145 -0
  68. package/dist/projection/article.js +150 -0
  69. package/dist/projection/digest.d.ts +261 -0
  70. package/dist/projection/digest.js +59 -0
  71. package/dist/projection/hash.d.ts +3 -0
  72. package/dist/projection/hash.js +10 -0
  73. package/dist/projection/material.d.ts +109 -0
  74. package/dist/projection/material.js +160 -0
  75. package/dist/projection/page.d.ts +112 -0
  76. package/dist/projection/page.js +106 -0
  77. package/dist/projection/question.d.ts +520 -0
  78. package/dist/projection/question.js +109 -0
  79. package/dist/projection/spec.d.ts +503 -0
  80. package/dist/projection/spec.js +56 -0
  81. package/dist/projection/verify.d.ts +281 -0
  82. package/dist/projection/verify.js +86 -0
  83. package/dist/question/identity.d.ts +175 -0
  84. package/dist/question/identity.js +205 -0
  85. package/dist/question/item.d.ts +453 -0
  86. package/dist/question/item.js +146 -0
  87. package/dist/question/response.d.ts +175 -0
  88. package/dist/question/response.js +150 -0
  89. package/dist/quran/attribution.d.ts +48 -0
  90. package/dist/quran/attribution.js +44 -0
  91. package/dist/quran/identity.d.ts +105 -0
  92. package/dist/quran/identity.js +100 -0
  93. package/dist/quran/notes.d.ts +56 -0
  94. package/dist/quran/notes.js +142 -0
  95. package/dist/quran/provenance.d.ts +257 -0
  96. package/dist/quran/provenance.js +144 -0
  97. package/dist/quran/snapshot/digest.d.ts +33 -0
  98. package/dist/quran/snapshot/digest.js +232 -0
  99. package/dist/quran/snapshot/hash.d.ts +51 -0
  100. package/dist/quran/snapshot/hash.js +50 -0
  101. package/dist/quran/snapshot/row/hash.d.ts +748 -0
  102. package/dist/quran/snapshot/row/hash.js +115 -0
  103. package/dist/quran/snapshot/row.d.ts +354 -0
  104. package/dist/quran/snapshot/row.js +91 -0
  105. package/dist/quran/snapshot/spec.d.ts +50 -0
  106. package/dist/quran/snapshot/spec.js +66 -0
  107. package/dist/quran/source.d.ts +206 -0
  108. package/dist/quran/source.js +153 -0
  109. package/dist/quran/spec.d.ts +47 -0
  110. package/dist/quran/spec.js +41 -0
  111. package/dist/quran/text.d.ts +7 -0
  112. package/dist/quran/text.js +11 -0
  113. package/dist/release/canonical.d.ts +23 -0
  114. package/dist/release/canonical.js +29 -0
  115. package/dist/release/current/evidence.d.ts +424 -0
  116. package/dist/release/current/evidence.js +41 -0
  117. package/dist/release/current/runtime.d.ts +4 -0
  118. package/dist/release/current/runtime.js +15 -0
  119. package/dist/release/current/state.d.ts +567 -0
  120. package/dist/release/current/state.js +91 -0
  121. package/dist/release/digest.d.ts +54 -0
  122. package/dist/release/digest.js +71 -0
  123. package/dist/release/hash.d.ts +72 -0
  124. package/dist/release/hash.js +14 -0
  125. package/dist/release/head.d.ts +206 -0
  126. package/dist/release/head.js +131 -0
  127. package/dist/release/items.d.ts +98 -0
  128. package/dist/release/items.js +114 -0
  129. package/dist/release/lifecycle.d.ts +297 -0
  130. package/dist/release/lifecycle.js +97 -0
  131. package/dist/release/origin.d.ts +30 -0
  132. package/dist/release/origin.js +24 -0
  133. package/dist/release/policy.d.ts +45 -0
  134. package/dist/release/policy.js +124 -0
  135. package/dist/release/result/digest.d.ts +127 -0
  136. package/dist/release/result/digest.js +140 -0
  137. package/dist/release/result/spec.d.ts +4 -0
  138. package/dist/release/result/spec.js +5 -0
  139. package/dist/release/rollback/digest.d.ts +126 -0
  140. package/dist/release/rollback/digest.js +92 -0
  141. package/dist/release/rollback/spec.d.ts +1729 -0
  142. package/dist/release/rollback/spec.js +156 -0
  143. package/dist/release/route/digest.d.ts +45 -0
  144. package/dist/release/route/digest.js +59 -0
  145. package/dist/release/route/page.d.ts +56 -0
  146. package/dist/release/route/page.js +46 -0
  147. package/dist/release/route/spec.d.ts +49 -0
  148. package/dist/release/route/spec.js +40 -0
  149. package/dist/release/route/verify.d.ts +66 -0
  150. package/dist/release/route/verify.js +67 -0
  151. package/dist/release/signing.d.ts +6 -0
  152. package/dist/release/signing.js +38 -0
  153. package/dist/release/snapshot/data.d.ts +475 -0
  154. package/dist/release/snapshot/data.js +74 -0
  155. package/dist/release/snapshot/evidence-requirement.d.ts +22 -0
  156. package/dist/release/snapshot/evidence-requirement.js +21 -0
  157. package/dist/release/snapshot/evidence.d.ts +58 -0
  158. package/dist/release/snapshot/evidence.js +14 -0
  159. package/dist/release/snapshot/program-evidence.d.ts +17 -0
  160. package/dist/release/snapshot/program-evidence.js +39 -0
  161. package/dist/release/snapshot/quran-evidence.d.ts +27 -0
  162. package/dist/release/snapshot/quran-evidence.js +43 -0
  163. package/dist/release/snapshot/scope.d.ts +60 -0
  164. package/dist/release/snapshot/scope.js +102 -0
  165. package/dist/release/snapshot/spec.d.ts +193 -0
  166. package/dist/release/snapshot/spec.js +139 -0
  167. package/dist/release/snapshot/tryout-evidence.d.ts +22 -0
  168. package/dist/release/snapshot/tryout-evidence.js +86 -0
  169. package/dist/release/snapshot/verify.d.ts +710 -0
  170. package/dist/release/snapshot/verify.js +147 -0
  171. package/dist/release/spec.d.ts +491 -0
  172. package/dist/release/spec.js +200 -0
  173. package/dist/release/verify.d.ts +98 -0
  174. package/dist/release/verify.js +70 -0
  175. package/dist/renderer/compatibility.d.ts +35 -0
  176. package/dist/renderer/compatibility.js +48 -0
  177. package/dist/renderer/component.d.ts +99 -0
  178. package/dist/renderer/component.js +102 -0
  179. package/dist/renderer/contract.d.ts +144 -0
  180. package/dist/renderer/contract.js +122 -0
  181. package/dist/renderer/domain.d.ts +6 -0
  182. package/dist/renderer/domain.js +18 -0
  183. package/dist/renderer/manifest.d.ts +86 -0
  184. package/dist/renderer/manifest.js +49 -0
  185. package/dist/renderer/selection.d.ts +39 -0
  186. package/dist/renderer/selection.js +87 -0
  187. package/dist/runtime/error.d.ts +8 -0
  188. package/dist/runtime/error.js +20 -0
  189. package/dist/runtime/protected/limits.d.ts +10 -0
  190. package/dist/runtime/protected/limits.js +15 -0
  191. package/dist/runtime/protected/spec.d.ts +328 -0
  192. package/dist/runtime/protected/spec.js +79 -0
  193. package/dist/runtime/protected/verify.d.ts +97 -0
  194. package/dist/runtime/protected/verify.js +72 -0
  195. package/dist/runtime/result.d.ts +12 -0
  196. package/dist/runtime/result.js +17 -0
  197. package/dist/runtime/spec.d.ts +705 -0
  198. package/dist/runtime/spec.js +61 -0
  199. package/dist/runtime/verify.d.ts +479 -0
  200. package/dist/runtime/verify.js +123 -0
  201. package/dist/signature/spec.d.ts +53 -0
  202. package/dist/signature/spec.js +29 -0
  203. package/dist/signature/trusted.d.ts +19 -0
  204. package/dist/signature/trusted.js +32 -0
  205. package/dist/signature/verify.d.ts +10 -0
  206. package/dist/signature/verify.js +82 -0
  207. package/dist/text/order.d.ts +2 -0
  208. package/dist/text/order.js +10 -0
  209. package/dist/text/syntax.d.ts +6 -0
  210. package/dist/text/syntax.js +15 -0
  211. package/dist/transport/batch.d.ts +971 -0
  212. package/dist/transport/batch.js +101 -0
  213. package/dist/transport/failure.d.ts +168 -0
  214. package/dist/transport/failure.js +194 -0
  215. package/dist/transport/group.d.ts +2946 -0
  216. package/dist/transport/group.js +47 -0
  217. package/dist/transport/limits.d.ts +30 -0
  218. package/dist/transport/limits.js +30 -0
  219. package/dist/transport/request.d.ts +9333 -0
  220. package/dist/transport/request.js +121 -0
  221. package/dist/transport/response.d.ts +6247 -0
  222. package/dist/transport/response.js +181 -0
  223. package/dist/transport/runtime.d.ts +77 -0
  224. package/dist/transport/runtime.js +33 -0
  225. package/dist/transport/snapshot.d.ts +978 -0
  226. package/dist/transport/snapshot.js +70 -0
  227. package/dist/tryout/canonical.d.ts +2 -0
  228. package/dist/tryout/canonical.js +11 -0
  229. package/dist/tryout/catalog-hash.d.ts +134 -0
  230. package/dist/tryout/catalog-hash.js +203 -0
  231. package/dist/tryout/catalog.d.ts +376 -0
  232. package/dist/tryout/catalog.js +147 -0
  233. package/dist/tryout/content-hash.d.ts +89 -0
  234. package/dist/tryout/content-hash.js +72 -0
  235. package/dist/tryout/identity.d.ts +12 -0
  236. package/dist/tryout/identity.js +46 -0
  237. package/dist/tryout/key.d.ts +4 -0
  238. package/dist/tryout/key.js +8 -0
  239. package/dist/tryout/language.d.ts +24 -0
  240. package/dist/tryout/language.js +32 -0
  241. package/dist/tryout/locale-closure.d.ts +20 -0
  242. package/dist/tryout/locale-closure.js +164 -0
  243. package/dist/tryout/placement-closure.d.ts +5 -0
  244. package/dist/tryout/placement-closure.js +30 -0
  245. package/dist/tryout/placement-hash.d.ts +11 -0
  246. package/dist/tryout/placement-hash.js +55 -0
  247. package/dist/tryout/placement.d.ts +280 -0
  248. package/dist/tryout/placement.js +82 -0
  249. package/dist/tryout/row-hash.d.ts +28 -0
  250. package/dist/tryout/row-hash.js +50 -0
  251. package/dist/tryout/runtime/canonical.d.ts +8 -0
  252. package/dist/tryout/runtime/canonical.js +33 -0
  253. package/dist/tryout/runtime/hash.d.ts +32 -0
  254. package/dist/tryout/runtime/hash.js +11 -0
  255. package/dist/tryout/runtime/source.d.ts +42 -0
  256. package/dist/tryout/runtime/source.js +47 -0
  257. package/dist/tryout/runtime/spec.d.ts +58 -0
  258. package/dist/tryout/runtime/spec.js +21 -0
  259. package/dist/tryout/runtime/verify.d.ts +61 -0
  260. package/dist/tryout/runtime/verify.js +69 -0
  261. package/dist/tryout/snapshot/canonical.d.ts +7 -0
  262. package/dist/tryout/snapshot/canonical.js +17 -0
  263. package/dist/tryout/snapshot/hash.d.ts +8 -0
  264. package/dist/tryout/snapshot/hash.js +19 -0
  265. package/dist/tryout/snapshot/spec.d.ts +46 -0
  266. package/dist/tryout/snapshot/spec.js +30 -0
  267. package/dist/tryout/spec.d.ts +13 -0
  268. package/dist/tryout/spec.js +15 -0
  269. package/package.json +506 -0
@@ -0,0 +1,978 @@
1
+ import { Schema } from "effect";
2
+ /** Canonical input for staging one immutable structured-family manifest. */
3
+ export declare const StageSnapshotInputSchema: Schema.Struct<{
4
+ releaseId: Schema.brand<Schema.String, "@NakafaAI/AksaraReleaseId">;
5
+ snapshot: Schema.Union<readonly [Schema.Struct<{
6
+ readonly family: Schema.Literal<"program">;
7
+ readonly manifest: Schema.Struct<{
8
+ readonly curriculumRowCount: Schema.Int;
9
+ readonly programRowCount: Schema.Int;
10
+ readonly rowCount: Schema.Int;
11
+ readonly sitemapCount: Schema.Int;
12
+ readonly slugCount: Schema.Int;
13
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
14
+ readonly rowDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
15
+ readonly format: Schema.Literal<"localized-program-snapshot">;
16
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
17
+ }>;
18
+ }>, Schema.Struct<{
19
+ readonly family: Schema.Literal<"quran">;
20
+ readonly manifest: Schema.Struct<{
21
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
22
+ readonly attributionCount: Schema.Int;
23
+ readonly chunkCount: Schema.Int;
24
+ readonly projectionCount: Schema.Int;
25
+ readonly projectionDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
26
+ readonly provenanceDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
27
+ readonly provenanceStatus: Schema.Literals<readonly ["approved", "blocked"]>;
28
+ readonly runtimeCount: Schema.Int;
29
+ readonly runtimeDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
30
+ readonly searchCount: Schema.Int;
31
+ readonly searchDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
32
+ readonly sourceBytes: Schema.Int;
33
+ readonly sourceDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
34
+ readonly sourceFileCount: Schema.Int;
35
+ readonly surahCount: Schema.Int;
36
+ readonly tafsirLocales: Schema.$Array<Schema.Literal<"id">>;
37
+ readonly verseCount: Schema.Int;
38
+ readonly format: Schema.Literal<"localized-quran-snapshot">;
39
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
40
+ }>;
41
+ }>, Schema.Struct<{
42
+ readonly family: Schema.Literal<"tryout">;
43
+ readonly manifest: Schema.Struct<{
44
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
45
+ readonly catalogDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
46
+ readonly counts: Schema.Struct<{
47
+ readonly country: Schema.Int;
48
+ readonly exam: Schema.Int;
49
+ readonly section: Schema.Int;
50
+ readonly set: Schema.Int;
51
+ readonly track: Schema.Int;
52
+ }>;
53
+ readonly placementCount: Schema.Int;
54
+ readonly placementDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
55
+ readonly routeCount: Schema.Int;
56
+ readonly format: Schema.Literal<"localized-tryout-snapshot">;
57
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
58
+ }>;
59
+ }>]>;
60
+ }>;
61
+ export type StageSnapshotInput = typeof StageSnapshotInputSchema.Type;
62
+ /** Stages one immutable structured-family manifest before any of its rows. */
63
+ export declare const StageSnapshotRequestSchema: Schema.Struct<{
64
+ readonly releaseId: Schema.brand<Schema.String, "@NakafaAI/AksaraReleaseId">;
65
+ readonly snapshot: Schema.Union<readonly [Schema.Struct<{
66
+ readonly family: Schema.Literal<"program">;
67
+ readonly manifest: Schema.Struct<{
68
+ readonly curriculumRowCount: Schema.Int;
69
+ readonly programRowCount: Schema.Int;
70
+ readonly rowCount: Schema.Int;
71
+ readonly sitemapCount: Schema.Int;
72
+ readonly slugCount: Schema.Int;
73
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
74
+ readonly rowDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
75
+ readonly format: Schema.Literal<"localized-program-snapshot">;
76
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
77
+ }>;
78
+ }>, Schema.Struct<{
79
+ readonly family: Schema.Literal<"quran">;
80
+ readonly manifest: Schema.Struct<{
81
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
82
+ readonly attributionCount: Schema.Int;
83
+ readonly chunkCount: Schema.Int;
84
+ readonly projectionCount: Schema.Int;
85
+ readonly projectionDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
86
+ readonly provenanceDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
87
+ readonly provenanceStatus: Schema.Literals<readonly ["approved", "blocked"]>;
88
+ readonly runtimeCount: Schema.Int;
89
+ readonly runtimeDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
90
+ readonly searchCount: Schema.Int;
91
+ readonly searchDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
92
+ readonly sourceBytes: Schema.Int;
93
+ readonly sourceDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
94
+ readonly sourceFileCount: Schema.Int;
95
+ readonly surahCount: Schema.Int;
96
+ readonly tafsirLocales: Schema.$Array<Schema.Literal<"id">>;
97
+ readonly verseCount: Schema.Int;
98
+ readonly format: Schema.Literal<"localized-quran-snapshot">;
99
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
100
+ }>;
101
+ }>, Schema.Struct<{
102
+ readonly family: Schema.Literal<"tryout">;
103
+ readonly manifest: Schema.Struct<{
104
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
105
+ readonly catalogDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
106
+ readonly counts: Schema.Struct<{
107
+ readonly country: Schema.Int;
108
+ readonly exam: Schema.Int;
109
+ readonly section: Schema.Int;
110
+ readonly set: Schema.Int;
111
+ readonly track: Schema.Int;
112
+ }>;
113
+ readonly placementCount: Schema.Int;
114
+ readonly placementDigest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
115
+ readonly routeCount: Schema.Int;
116
+ readonly format: Schema.Literal<"localized-tryout-snapshot">;
117
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
118
+ }>;
119
+ }>]>;
120
+ readonly operation: Schema.Literal<"stageSnapshot">;
121
+ }>;
122
+ export type StageSnapshotRequest = typeof StageSnapshotRequestSchema.Type;
123
+ /** Canonical input for one bounded structured-snapshot row batch. */
124
+ export declare const StageSnapshotBatchInputSchema: Schema.Struct<{
125
+ batchIndex: Schema.Int;
126
+ family: Schema.Literals<readonly ["program", "quran", "tryout"]>;
127
+ releaseId: Schema.brand<Schema.String, "@NakafaAI/AksaraReleaseId">;
128
+ rows: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
129
+ readonly family: Schema.Literal<"program">;
130
+ readonly record: Schema.Union<readonly [Schema.Struct<{
131
+ readonly kind: Schema.Literal<"program">;
132
+ readonly row: Schema.Struct<{
133
+ readonly defaultCoverageStatus: Schema.Literals<readonly ["archived", "available", "hidden", "partial", "planned"]>;
134
+ readonly displayOrder: Schema.Int;
135
+ readonly iconKey: Schema.Literals<readonly ["advanced", "assessment", "certificate", "course", "diploma", "early-years", "global-education", "grade-1", "grade-10", "grade-11", "grade-12", "grade-2", "grade-3", "grade-4", "grade-5", "grade-6", "grade-7", "grade-8", "grade-9", "high-school", "mathematics", "middle-school", "primary-school", "science", "school", "standards", "state"]>;
136
+ readonly key: Schema.brand<Schema.String, "@NakafaAI/AksaraLearningProgramKey">;
137
+ readonly kind: Schema.Literals<readonly ["admission-exam", "assessment", "custom-program", "institution-program", "school-curriculum"]>;
138
+ readonly navigation: Schema.Struct<{
139
+ readonly levels: Schema.NonEmptyArray<Schema.Literals<readonly ["class", "course", "domain", "lesson", "phase", "section", "set", "stage", "subject", "topic", "track", "unit"]>>;
140
+ readonly model: Schema.Literals<readonly ["course-unit-lesson", "curriculum-tree", "exam-domain-set", "track-topic"]>;
141
+ }>;
142
+ readonly provider: Schema.Struct<{
143
+ readonly homeCountry: Schema.optional<Schema.String>;
144
+ readonly kind: Schema.Literals<readonly ["institution", "learner", "nakafa", "official"]>;
145
+ readonly name: Schema.Trimmed;
146
+ }>;
147
+ readonly recommendedCountry: Schema.optional<Schema.String>;
148
+ readonly sources: Schema.NonEmptyArray<Schema.Struct<{
149
+ readonly label: Schema.Trimmed;
150
+ readonly retrievedAt: Schema.String;
151
+ readonly reviewAfter: Schema.optional<Schema.String>;
152
+ readonly type: Schema.Literals<readonly ["institution-document", "nakafa-editorial", "official-blueprint", "official-policy", "official-portal"]>;
153
+ readonly url: Schema.String;
154
+ }>>;
155
+ readonly translations: Schema.NonEmptyArray<Schema.Struct<{
156
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
157
+ readonly publicSlug: Schema.String;
158
+ readonly title: Schema.Trimmed;
159
+ }>>;
160
+ readonly version: Schema.Struct<{
161
+ readonly endsAt: Schema.optional<Schema.String>;
162
+ readonly label: Schema.Trimmed;
163
+ readonly startsAt: Schema.optional<Schema.String>;
164
+ }>;
165
+ }>;
166
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
167
+ }>, Schema.Struct<{
168
+ readonly kind: Schema.Literal<"curriculum">;
169
+ readonly row: Schema.Struct<{
170
+ appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
171
+ canonicalPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
172
+ displayGroupIconKey: Schema.optional<Schema.Literals<readonly ["advanced", "assessment", "certificate", "course", "diploma", "early-years", "global-education", "grade-1", "grade-10", "grade-11", "grade-12", "grade-2", "grade-3", "grade-4", "grade-5", "grade-6", "grade-7", "grade-8", "grade-9", "high-school", "mathematics", "middle-school", "primary-school", "science", "school", "standards", "state"]>>;
173
+ displayGroupTitle: Schema.optional<Schema.String>;
174
+ iconKey: Schema.Literals<readonly ["advanced", "assessment", "certificate", "course", "diploma", "early-years", "global-education", "grade-1", "grade-10", "grade-11", "grade-12", "grade-2", "grade-3", "grade-4", "grade-5", "grade-6", "grade-7", "grade-8", "grade-9", "high-school", "mathematics", "middle-school", "primary-school", "science", "school", "standards", "state"]>;
175
+ kind: Schema.Literal<"curriculum-context">;
176
+ level: Schema.Literals<readonly ["class", "course", "domain", "lesson", "phase", "section", "set", "stage", "subject", "topic", "track", "unit"]>;
177
+ materialCardDescription: Schema.optional<Schema.String>;
178
+ materialCardTitle: Schema.optional<Schema.String>;
179
+ materialContextNodeKey: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraCurriculumNodeKey">>;
180
+ materialContextParentPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
181
+ materialContextPublicPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
182
+ materialDomain: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialDomain">>;
183
+ materialKey: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialKey">>;
184
+ nodeKey: Schema.String;
185
+ order: Schema.Int;
186
+ parentPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
187
+ programKey: Schema.brand<Schema.String, "@NakafaAI/AksaraLearningProgramKey">;
188
+ publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
189
+ sitemap: Schema.Boolean;
190
+ sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
191
+ title: Schema.String;
192
+ }>;
193
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
194
+ }>]>;
195
+ }>, Schema.Struct<{
196
+ readonly family: Schema.Literal<"quran">;
197
+ readonly record: Schema.Struct<{
198
+ readonly payload: Schema.Union<readonly [Schema.Struct<{
199
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
200
+ readonly kind: Schema.Literal<"quran-attribution">;
201
+ readonly sources: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
202
+ readonly copy: Schema.NonEmptyArray<Schema.Struct<{
203
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
204
+ readonly notice: Schema.Trimmed;
205
+ readonly title: Schema.Trimmed;
206
+ }>>;
207
+ readonly publisher: Schema.Trimmed;
208
+ readonly retrievedAt: Schema.String;
209
+ readonly sourceUrl: Schema.String;
210
+ readonly updateUrl: Schema.String;
211
+ readonly version: Schema.Trimmed;
212
+ readonly artifact: Schema.Struct<{
213
+ readonly byteCount: Schema.Int;
214
+ readonly digest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
215
+ readonly fileCount: Schema.Int;
216
+ }>;
217
+ readonly id: Schema.Literals<readonly ["tanzil-text", "tanzil-metadata", "kemenag-names", "bubenheim-names", "quranenc-english", "quranenc-indonesian", "quranenc-german", "quranenc-tafsir"]>;
218
+ readonly kind: Schema.Literal<"embedded">;
219
+ readonly terms: Schema.Struct<{
220
+ readonly artifact: Schema.Struct<{
221
+ readonly byteCount: Schema.Int;
222
+ readonly digest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
223
+ readonly fileCount: Schema.Int;
224
+ }>;
225
+ readonly url: Schema.String;
226
+ }>;
227
+ }>, Schema.Struct<{
228
+ readonly copy: Schema.NonEmptyArray<Schema.Struct<{
229
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
230
+ readonly notice: Schema.Trimmed;
231
+ readonly title: Schema.Trimmed;
232
+ }>>;
233
+ readonly publisher: Schema.Trimmed;
234
+ readonly retrievedAt: Schema.String;
235
+ readonly sourceUrl: Schema.String;
236
+ readonly updateUrl: Schema.String;
237
+ readonly version: Schema.Trimmed;
238
+ readonly id: Schema.Literals<readonly ["mokhtasar-english", "mokhtasar-german"]>;
239
+ readonly kind: Schema.Literal<"external">;
240
+ readonly terms: Schema.Struct<{
241
+ readonly access: Schema.Literal<"link-only">;
242
+ readonly url: Schema.String;
243
+ }>;
244
+ }>]>>;
245
+ readonly tafsirAccess: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
246
+ readonly appLocale: Schema.brand<Schema.Literal<"en">, "@NakafaAI/AksaraAppLocale">;
247
+ readonly kind: Schema.Literal<"external">;
248
+ readonly notice: Schema.Trimmed;
249
+ readonly sourceId: Schema.Literal<"mokhtasar-english">;
250
+ }>, Schema.Struct<{
251
+ readonly appLocale: Schema.brand<Schema.Literal<"id">, "@NakafaAI/AksaraAppLocale">;
252
+ readonly kind: Schema.Literal<"embedded">;
253
+ readonly notice: Schema.Trimmed;
254
+ readonly sourceId: Schema.Literal<"quranenc-tafsir">;
255
+ }>, Schema.Struct<{
256
+ readonly appLocale: Schema.brand<Schema.Literal<"de">, "@NakafaAI/AksaraAppLocale">;
257
+ readonly kind: Schema.Literal<"external">;
258
+ readonly notice: Schema.Trimmed;
259
+ readonly sourceId: Schema.Literal<"mokhtasar-german">;
260
+ }>]>>;
261
+ }>, Schema.Struct<{
262
+ readonly name: Schema.Struct<{
263
+ readonly arabic: Schema.String;
264
+ readonly meaning: Schema.$Record<Schema.Literals<readonly ["en", "id", "de"]>, Schema.String>;
265
+ readonly transliteration: Schema.String;
266
+ }>;
267
+ readonly number: Schema.Int;
268
+ readonly numberOfVerses: Schema.Int;
269
+ readonly revelation: Schema.Struct<{
270
+ readonly order: Schema.Int;
271
+ readonly place: Schema.Literals<readonly ["Meccan", "Medinan"]>;
272
+ }>;
273
+ readonly kind: Schema.Literal<"quran-surah">;
274
+ }>, Schema.Struct<{
275
+ readonly firstQuranNumber: Schema.Int;
276
+ readonly firstVerse: Schema.Int;
277
+ readonly kind: Schema.Literal<"quran-chunk">;
278
+ readonly lastVerse: Schema.Int;
279
+ readonly surahNumber: Schema.Int;
280
+ readonly verses: Schema.NonEmptyArray<Schema.Struct<{
281
+ readonly meta: Schema.Struct<{
282
+ readonly hizbQuarter: Schema.Int;
283
+ readonly juz: Schema.Int;
284
+ readonly manzil: Schema.Int;
285
+ readonly page: Schema.Int;
286
+ readonly ruku: Schema.Int;
287
+ readonly sajda: Schema.NullOr<Schema.Literals<readonly ["obligatory", "recommended"]>>;
288
+ }>;
289
+ readonly number: Schema.Struct<{
290
+ readonly inQuran: Schema.Int;
291
+ readonly inSurah: Schema.Int;
292
+ }>;
293
+ readonly tafsir: Schema.$Array<Schema.Struct<{
294
+ readonly appLocale: Schema.Literal<"id">;
295
+ readonly footnotes: Schema.NullOr<Schema.String>;
296
+ readonly text: Schema.String;
297
+ }>>;
298
+ readonly text: Schema.Struct<{
299
+ readonly arabic: Schema.String;
300
+ }>;
301
+ readonly translations: Schema.NonEmptyArray<Schema.Struct<{
302
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
303
+ readonly value: Schema.Struct<{
304
+ readonly footnotes: Schema.String;
305
+ readonly text: Schema.String;
306
+ }>;
307
+ }>>;
308
+ }>>;
309
+ }>, Schema.Struct<{
310
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
311
+ readonly graph: Schema.Struct<{
312
+ readonly alignmentId: Schema.String;
313
+ readonly assetId: Schema.String;
314
+ readonly conceptId: Schema.String;
315
+ readonly learningObjectId: Schema.String;
316
+ readonly lensId: Schema.String;
317
+ }>;
318
+ readonly kind: Schema.Literal<"quran-search">;
319
+ readonly route: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
320
+ readonly surahNumber: Schema.Int;
321
+ readonly text: Schema.String;
322
+ readonly title: Schema.String;
323
+ }>]>;
324
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
325
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
326
+ }>;
327
+ }>, Schema.Struct<{
328
+ readonly family: Schema.Literal<"tryout">;
329
+ readonly record: Schema.Struct<{
330
+ readonly row: Schema.Union<readonly [Schema.Struct<{
331
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
332
+ readonly description: Schema.optional<Schema.String>;
333
+ readonly graph: Schema.Struct<{
334
+ readonly alignmentId: Schema.String;
335
+ readonly assetId: Schema.String;
336
+ readonly conceptId: Schema.String;
337
+ readonly learningObjectId: Schema.String;
338
+ readonly lensId: Schema.String;
339
+ }>;
340
+ readonly sourceRevision: Schema.Trimmed;
341
+ readonly title: Schema.String;
342
+ readonly countryCode: Schema.String;
343
+ readonly countryKey: Schema.String;
344
+ readonly kind: Schema.Literal<"country">;
345
+ readonly order: Schema.Finite;
346
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
347
+ }>, Schema.Struct<{
348
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
349
+ readonly description: Schema.optional<Schema.String>;
350
+ readonly graph: Schema.Struct<{
351
+ readonly alignmentId: Schema.String;
352
+ readonly assetId: Schema.String;
353
+ readonly conceptId: Schema.String;
354
+ readonly learningObjectId: Schema.String;
355
+ readonly lensId: Schema.String;
356
+ }>;
357
+ readonly sourceRevision: Schema.Trimmed;
358
+ readonly title: Schema.String;
359
+ readonly countryKey: Schema.String;
360
+ readonly examKey: Schema.String;
361
+ readonly kind: Schema.Literal<"exam">;
362
+ readonly order: Schema.Finite;
363
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
364
+ readonly scoringStrategy: Schema.Literals<readonly ["irt", "raw"]>;
365
+ }>, Schema.Struct<{
366
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
367
+ readonly description: Schema.optional<Schema.String>;
368
+ readonly graph: Schema.Struct<{
369
+ readonly alignmentId: Schema.String;
370
+ readonly assetId: Schema.String;
371
+ readonly conceptId: Schema.String;
372
+ readonly learningObjectId: Schema.String;
373
+ readonly lensId: Schema.String;
374
+ }>;
375
+ readonly sourceRevision: Schema.Trimmed;
376
+ readonly title: Schema.String;
377
+ readonly countryKey: Schema.String;
378
+ readonly examKey: Schema.String;
379
+ readonly kind: Schema.Literal<"track">;
380
+ readonly order: Schema.Finite;
381
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
382
+ readonly questionCount: Schema.Finite;
383
+ readonly sectionCount: Schema.Finite;
384
+ readonly setCount: Schema.Finite;
385
+ readonly trackKey: Schema.String;
386
+ readonly trackKind: Schema.Literals<readonly ["subject", "year"]>;
387
+ readonly visibleSectionCount: Schema.Finite;
388
+ }>, Schema.Struct<{
389
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
390
+ readonly description: Schema.optional<Schema.String>;
391
+ readonly graph: Schema.Struct<{
392
+ readonly alignmentId: Schema.String;
393
+ readonly assetId: Schema.String;
394
+ readonly conceptId: Schema.String;
395
+ readonly learningObjectId: Schema.String;
396
+ readonly lensId: Schema.String;
397
+ }>;
398
+ readonly sourceRevision: Schema.Trimmed;
399
+ readonly title: Schema.String;
400
+ readonly countryKey: Schema.String;
401
+ readonly examKey: Schema.String;
402
+ readonly internalEntrySectionKey: Schema.optional<Schema.String>;
403
+ readonly kind: Schema.Literal<"set">;
404
+ readonly order: Schema.Finite;
405
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
406
+ readonly questionCount: Schema.Finite;
407
+ readonly scoringStrategy: Schema.Literals<readonly ["irt", "raw"]>;
408
+ readonly sectionCount: Schema.Finite;
409
+ readonly setKey: Schema.String;
410
+ readonly trackKey: Schema.String;
411
+ readonly visibleSectionCount: Schema.Finite;
412
+ }>, Schema.Struct<{
413
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
414
+ readonly description: Schema.optional<Schema.String>;
415
+ readonly graph: Schema.Struct<{
416
+ readonly alignmentId: Schema.String;
417
+ readonly assetId: Schema.String;
418
+ readonly conceptId: Schema.String;
419
+ readonly learningObjectId: Schema.String;
420
+ readonly lensId: Schema.String;
421
+ }>;
422
+ readonly sourceRevision: Schema.Trimmed;
423
+ readonly title: Schema.String;
424
+ readonly countryKey: Schema.String;
425
+ readonly examKey: Schema.String;
426
+ readonly kind: Schema.Literal<"section">;
427
+ readonly order: Schema.Finite;
428
+ readonly publicPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
429
+ readonly questionCount: Schema.Finite;
430
+ readonly questionSourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
431
+ readonly sectionKey: Schema.String;
432
+ readonly setKey: Schema.String;
433
+ readonly timeLimitSeconds: Schema.Finite;
434
+ readonly trackKey: Schema.String;
435
+ readonly visibility: Schema.Literals<readonly ["internal-entry", "visible"]>;
436
+ }>]>;
437
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
438
+ }>;
439
+ readonly rowKind: Schema.Literal<"catalog">;
440
+ }>, Schema.Struct<{
441
+ readonly family: Schema.Literal<"tryout">;
442
+ readonly record: Schema.Struct<{
443
+ readonly row: Schema.Struct<{
444
+ readonly answerArtifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
445
+ readonly answerContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
446
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
447
+ readonly blueprint: Schema.optionalKey<Schema.Struct<{
448
+ readonly cognitiveLevel: Schema.String;
449
+ readonly contentDomain: Schema.String;
450
+ readonly topic: Schema.String;
451
+ }>>;
452
+ readonly countryKey: Schema.String;
453
+ readonly deliveryLanguage: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraDeliveryLanguage">;
454
+ readonly examKey: Schema.String;
455
+ readonly languagePolicy: Schema.Union<readonly [Schema.Struct<{
456
+ readonly kind: Schema.Literal<"app-locale">;
457
+ }>, Schema.Struct<{
458
+ readonly kind: Schema.Literal<"fixed">;
459
+ readonly language: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraDeliveryLanguage">;
460
+ }>]>;
461
+ readonly questionArtifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
462
+ readonly questionContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
463
+ readonly questionOrder: Schema.Finite;
464
+ readonly questionSourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
465
+ readonly rendererDomain: Schema.Literals<readonly ["ai-ds", "biology", "chemistry", "mathematics", "physics", "politics", "site", "snbt-general", "snbt-math", "snbt-plain", "snbt-quant", "tka-math"]>;
466
+ readonly response: Schema.Union<readonly [Schema.Struct<{
467
+ readonly categories: Schema.$Array<Schema.Struct<{
468
+ readonly categoryKey: Schema.String;
469
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
470
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
471
+ readonly kind: Schema.Literal<"math">;
472
+ readonly math: Schema.String;
473
+ }>, Schema.Struct<{
474
+ readonly kind: Schema.Literal<"text">;
475
+ readonly text: Schema.String;
476
+ }>]>>;
477
+ readonly order: Schema.Int;
478
+ }>>;
479
+ readonly kind: Schema.Literal<"category">;
480
+ readonly statements: Schema.$Array<Schema.Struct<{
481
+ readonly correctCategoryKey: Schema.String;
482
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
483
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
484
+ readonly kind: Schema.Literal<"math">;
485
+ readonly math: Schema.String;
486
+ }>, Schema.Struct<{
487
+ readonly kind: Schema.Literal<"text">;
488
+ readonly text: Schema.String;
489
+ }>]>>;
490
+ readonly order: Schema.Int;
491
+ readonly statementKey: Schema.String;
492
+ }>>;
493
+ }>, Schema.Struct<{
494
+ readonly kind: Schema.Literal<"multiple-choice">;
495
+ readonly options: Schema.$Array<Schema.Struct<{
496
+ readonly isCorrect: Schema.Boolean;
497
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
498
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
499
+ readonly kind: Schema.Literal<"math">;
500
+ readonly math: Schema.String;
501
+ }>, Schema.Struct<{
502
+ readonly kind: Schema.Literal<"text">;
503
+ readonly text: Schema.String;
504
+ }>]>>;
505
+ readonly optionKey: Schema.String;
506
+ readonly order: Schema.Int;
507
+ }>>;
508
+ }>, Schema.Struct<{
509
+ readonly kind: Schema.Literal<"single-choice">;
510
+ readonly options: Schema.$Array<Schema.Struct<{
511
+ readonly isCorrect: Schema.Boolean;
512
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
513
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
514
+ readonly kind: Schema.Literal<"math">;
515
+ readonly math: Schema.String;
516
+ }>, Schema.Struct<{
517
+ readonly kind: Schema.Literal<"text">;
518
+ readonly text: Schema.String;
519
+ }>]>>;
520
+ readonly optionKey: Schema.String;
521
+ readonly order: Schema.Int;
522
+ }>>;
523
+ }>]>;
524
+ readonly scope: Schema.Literal<"server">;
525
+ readonly sectionKey: Schema.String;
526
+ readonly setKey: Schema.String;
527
+ readonly sourceRevision: Schema.Trimmed;
528
+ readonly stimulusKey: Schema.optionalKey<Schema.String>;
529
+ readonly trackKey: Schema.String;
530
+ readonly answerArtifactHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
531
+ readonly contentHash: Schema.brand<Schema.String, "@NakafaAI/AksaraTryoutContentHash">;
532
+ readonly questionArtifactHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
533
+ }>;
534
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
535
+ }>;
536
+ readonly rowKind: Schema.Literal<"placement">;
537
+ }>]>>;
538
+ snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
539
+ }>;
540
+ export type StageSnapshotBatchInput = typeof StageSnapshotBatchInputSchema.Type;
541
+ /** Stages one non-empty bounded structured-snapshot row batch. */
542
+ export declare const StageSnapshotBatchRequestSchema: Schema.Struct<{
543
+ readonly batchIndex: Schema.Int;
544
+ readonly family: Schema.Literals<readonly ["program", "quran", "tryout"]>;
545
+ readonly releaseId: Schema.brand<Schema.String, "@NakafaAI/AksaraReleaseId">;
546
+ readonly rows: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
547
+ readonly family: Schema.Literal<"program">;
548
+ readonly record: Schema.Union<readonly [Schema.Struct<{
549
+ readonly kind: Schema.Literal<"program">;
550
+ readonly row: Schema.Struct<{
551
+ readonly defaultCoverageStatus: Schema.Literals<readonly ["archived", "available", "hidden", "partial", "planned"]>;
552
+ readonly displayOrder: Schema.Int;
553
+ readonly iconKey: Schema.Literals<readonly ["advanced", "assessment", "certificate", "course", "diploma", "early-years", "global-education", "grade-1", "grade-10", "grade-11", "grade-12", "grade-2", "grade-3", "grade-4", "grade-5", "grade-6", "grade-7", "grade-8", "grade-9", "high-school", "mathematics", "middle-school", "primary-school", "science", "school", "standards", "state"]>;
554
+ readonly key: Schema.brand<Schema.String, "@NakafaAI/AksaraLearningProgramKey">;
555
+ readonly kind: Schema.Literals<readonly ["admission-exam", "assessment", "custom-program", "institution-program", "school-curriculum"]>;
556
+ readonly navigation: Schema.Struct<{
557
+ readonly levels: Schema.NonEmptyArray<Schema.Literals<readonly ["class", "course", "domain", "lesson", "phase", "section", "set", "stage", "subject", "topic", "track", "unit"]>>;
558
+ readonly model: Schema.Literals<readonly ["course-unit-lesson", "curriculum-tree", "exam-domain-set", "track-topic"]>;
559
+ }>;
560
+ readonly provider: Schema.Struct<{
561
+ readonly homeCountry: Schema.optional<Schema.String>;
562
+ readonly kind: Schema.Literals<readonly ["institution", "learner", "nakafa", "official"]>;
563
+ readonly name: Schema.Trimmed;
564
+ }>;
565
+ readonly recommendedCountry: Schema.optional<Schema.String>;
566
+ readonly sources: Schema.NonEmptyArray<Schema.Struct<{
567
+ readonly label: Schema.Trimmed;
568
+ readonly retrievedAt: Schema.String;
569
+ readonly reviewAfter: Schema.optional<Schema.String>;
570
+ readonly type: Schema.Literals<readonly ["institution-document", "nakafa-editorial", "official-blueprint", "official-policy", "official-portal"]>;
571
+ readonly url: Schema.String;
572
+ }>>;
573
+ readonly translations: Schema.NonEmptyArray<Schema.Struct<{
574
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
575
+ readonly publicSlug: Schema.String;
576
+ readonly title: Schema.Trimmed;
577
+ }>>;
578
+ readonly version: Schema.Struct<{
579
+ readonly endsAt: Schema.optional<Schema.String>;
580
+ readonly label: Schema.Trimmed;
581
+ readonly startsAt: Schema.optional<Schema.String>;
582
+ }>;
583
+ }>;
584
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
585
+ }>, Schema.Struct<{
586
+ readonly kind: Schema.Literal<"curriculum">;
587
+ readonly row: Schema.Struct<{
588
+ appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
589
+ canonicalPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
590
+ displayGroupIconKey: Schema.optional<Schema.Literals<readonly ["advanced", "assessment", "certificate", "course", "diploma", "early-years", "global-education", "grade-1", "grade-10", "grade-11", "grade-12", "grade-2", "grade-3", "grade-4", "grade-5", "grade-6", "grade-7", "grade-8", "grade-9", "high-school", "mathematics", "middle-school", "primary-school", "science", "school", "standards", "state"]>>;
591
+ displayGroupTitle: Schema.optional<Schema.String>;
592
+ iconKey: Schema.Literals<readonly ["advanced", "assessment", "certificate", "course", "diploma", "early-years", "global-education", "grade-1", "grade-10", "grade-11", "grade-12", "grade-2", "grade-3", "grade-4", "grade-5", "grade-6", "grade-7", "grade-8", "grade-9", "high-school", "mathematics", "middle-school", "primary-school", "science", "school", "standards", "state"]>;
593
+ kind: Schema.Literal<"curriculum-context">;
594
+ level: Schema.Literals<readonly ["class", "course", "domain", "lesson", "phase", "section", "set", "stage", "subject", "topic", "track", "unit"]>;
595
+ materialCardDescription: Schema.optional<Schema.String>;
596
+ materialCardTitle: Schema.optional<Schema.String>;
597
+ materialContextNodeKey: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraCurriculumNodeKey">>;
598
+ materialContextParentPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
599
+ materialContextPublicPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
600
+ materialDomain: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialDomain">>;
601
+ materialKey: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraMaterialKey">>;
602
+ nodeKey: Schema.String;
603
+ order: Schema.Int;
604
+ parentPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
605
+ programKey: Schema.brand<Schema.String, "@NakafaAI/AksaraLearningProgramKey">;
606
+ publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
607
+ sitemap: Schema.Boolean;
608
+ sourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
609
+ title: Schema.String;
610
+ }>;
611
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
612
+ }>]>;
613
+ }>, Schema.Struct<{
614
+ readonly family: Schema.Literal<"quran">;
615
+ readonly record: Schema.Struct<{
616
+ readonly payload: Schema.Union<readonly [Schema.Struct<{
617
+ readonly activeAppLocales: Schema.NonEmptyArray<Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">>;
618
+ readonly kind: Schema.Literal<"quran-attribution">;
619
+ readonly sources: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
620
+ readonly copy: Schema.NonEmptyArray<Schema.Struct<{
621
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
622
+ readonly notice: Schema.Trimmed;
623
+ readonly title: Schema.Trimmed;
624
+ }>>;
625
+ readonly publisher: Schema.Trimmed;
626
+ readonly retrievedAt: Schema.String;
627
+ readonly sourceUrl: Schema.String;
628
+ readonly updateUrl: Schema.String;
629
+ readonly version: Schema.Trimmed;
630
+ readonly artifact: Schema.Struct<{
631
+ readonly byteCount: Schema.Int;
632
+ readonly digest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
633
+ readonly fileCount: Schema.Int;
634
+ }>;
635
+ readonly id: Schema.Literals<readonly ["tanzil-text", "tanzil-metadata", "kemenag-names", "bubenheim-names", "quranenc-english", "quranenc-indonesian", "quranenc-german", "quranenc-tafsir"]>;
636
+ readonly kind: Schema.Literal<"embedded">;
637
+ readonly terms: Schema.Struct<{
638
+ readonly artifact: Schema.Struct<{
639
+ readonly byteCount: Schema.Int;
640
+ readonly digest: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
641
+ readonly fileCount: Schema.Int;
642
+ }>;
643
+ readonly url: Schema.String;
644
+ }>;
645
+ }>, Schema.Struct<{
646
+ readonly copy: Schema.NonEmptyArray<Schema.Struct<{
647
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
648
+ readonly notice: Schema.Trimmed;
649
+ readonly title: Schema.Trimmed;
650
+ }>>;
651
+ readonly publisher: Schema.Trimmed;
652
+ readonly retrievedAt: Schema.String;
653
+ readonly sourceUrl: Schema.String;
654
+ readonly updateUrl: Schema.String;
655
+ readonly version: Schema.Trimmed;
656
+ readonly id: Schema.Literals<readonly ["mokhtasar-english", "mokhtasar-german"]>;
657
+ readonly kind: Schema.Literal<"external">;
658
+ readonly terms: Schema.Struct<{
659
+ readonly access: Schema.Literal<"link-only">;
660
+ readonly url: Schema.String;
661
+ }>;
662
+ }>]>>;
663
+ readonly tafsirAccess: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
664
+ readonly appLocale: Schema.brand<Schema.Literal<"en">, "@NakafaAI/AksaraAppLocale">;
665
+ readonly kind: Schema.Literal<"external">;
666
+ readonly notice: Schema.Trimmed;
667
+ readonly sourceId: Schema.Literal<"mokhtasar-english">;
668
+ }>, Schema.Struct<{
669
+ readonly appLocale: Schema.brand<Schema.Literal<"id">, "@NakafaAI/AksaraAppLocale">;
670
+ readonly kind: Schema.Literal<"embedded">;
671
+ readonly notice: Schema.Trimmed;
672
+ readonly sourceId: Schema.Literal<"quranenc-tafsir">;
673
+ }>, Schema.Struct<{
674
+ readonly appLocale: Schema.brand<Schema.Literal<"de">, "@NakafaAI/AksaraAppLocale">;
675
+ readonly kind: Schema.Literal<"external">;
676
+ readonly notice: Schema.Trimmed;
677
+ readonly sourceId: Schema.Literal<"mokhtasar-german">;
678
+ }>]>>;
679
+ }>, Schema.Struct<{
680
+ readonly name: Schema.Struct<{
681
+ readonly arabic: Schema.String;
682
+ readonly meaning: Schema.$Record<Schema.Literals<readonly ["en", "id", "de"]>, Schema.String>;
683
+ readonly transliteration: Schema.String;
684
+ }>;
685
+ readonly number: Schema.Int;
686
+ readonly numberOfVerses: Schema.Int;
687
+ readonly revelation: Schema.Struct<{
688
+ readonly order: Schema.Int;
689
+ readonly place: Schema.Literals<readonly ["Meccan", "Medinan"]>;
690
+ }>;
691
+ readonly kind: Schema.Literal<"quran-surah">;
692
+ }>, Schema.Struct<{
693
+ readonly firstQuranNumber: Schema.Int;
694
+ readonly firstVerse: Schema.Int;
695
+ readonly kind: Schema.Literal<"quran-chunk">;
696
+ readonly lastVerse: Schema.Int;
697
+ readonly surahNumber: Schema.Int;
698
+ readonly verses: Schema.NonEmptyArray<Schema.Struct<{
699
+ readonly meta: Schema.Struct<{
700
+ readonly hizbQuarter: Schema.Int;
701
+ readonly juz: Schema.Int;
702
+ readonly manzil: Schema.Int;
703
+ readonly page: Schema.Int;
704
+ readonly ruku: Schema.Int;
705
+ readonly sajda: Schema.NullOr<Schema.Literals<readonly ["obligatory", "recommended"]>>;
706
+ }>;
707
+ readonly number: Schema.Struct<{
708
+ readonly inQuran: Schema.Int;
709
+ readonly inSurah: Schema.Int;
710
+ }>;
711
+ readonly tafsir: Schema.$Array<Schema.Struct<{
712
+ readonly appLocale: Schema.Literal<"id">;
713
+ readonly footnotes: Schema.NullOr<Schema.String>;
714
+ readonly text: Schema.String;
715
+ }>>;
716
+ readonly text: Schema.Struct<{
717
+ readonly arabic: Schema.String;
718
+ }>;
719
+ readonly translations: Schema.NonEmptyArray<Schema.Struct<{
720
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
721
+ readonly value: Schema.Struct<{
722
+ readonly footnotes: Schema.String;
723
+ readonly text: Schema.String;
724
+ }>;
725
+ }>>;
726
+ }>>;
727
+ }>, Schema.Struct<{
728
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
729
+ readonly graph: Schema.Struct<{
730
+ readonly alignmentId: Schema.String;
731
+ readonly assetId: Schema.String;
732
+ readonly conceptId: Schema.String;
733
+ readonly learningObjectId: Schema.String;
734
+ readonly lensId: Schema.String;
735
+ }>;
736
+ readonly kind: Schema.Literal<"quran-search">;
737
+ readonly route: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
738
+ readonly surahNumber: Schema.Int;
739
+ readonly text: Schema.String;
740
+ readonly title: Schema.String;
741
+ }>]>;
742
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
743
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
744
+ }>;
745
+ }>, Schema.Struct<{
746
+ readonly family: Schema.Literal<"tryout">;
747
+ readonly record: Schema.Struct<{
748
+ readonly row: Schema.Union<readonly [Schema.Struct<{
749
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
750
+ readonly description: Schema.optional<Schema.String>;
751
+ readonly graph: Schema.Struct<{
752
+ readonly alignmentId: Schema.String;
753
+ readonly assetId: Schema.String;
754
+ readonly conceptId: Schema.String;
755
+ readonly learningObjectId: Schema.String;
756
+ readonly lensId: Schema.String;
757
+ }>;
758
+ readonly sourceRevision: Schema.Trimmed;
759
+ readonly title: Schema.String;
760
+ readonly countryCode: Schema.String;
761
+ readonly countryKey: Schema.String;
762
+ readonly kind: Schema.Literal<"country">;
763
+ readonly order: Schema.Finite;
764
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
765
+ }>, Schema.Struct<{
766
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
767
+ readonly description: Schema.optional<Schema.String>;
768
+ readonly graph: Schema.Struct<{
769
+ readonly alignmentId: Schema.String;
770
+ readonly assetId: Schema.String;
771
+ readonly conceptId: Schema.String;
772
+ readonly learningObjectId: Schema.String;
773
+ readonly lensId: Schema.String;
774
+ }>;
775
+ readonly sourceRevision: Schema.Trimmed;
776
+ readonly title: Schema.String;
777
+ readonly countryKey: Schema.String;
778
+ readonly examKey: Schema.String;
779
+ readonly kind: Schema.Literal<"exam">;
780
+ readonly order: Schema.Finite;
781
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
782
+ readonly scoringStrategy: Schema.Literals<readonly ["irt", "raw"]>;
783
+ }>, Schema.Struct<{
784
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
785
+ readonly description: Schema.optional<Schema.String>;
786
+ readonly graph: Schema.Struct<{
787
+ readonly alignmentId: Schema.String;
788
+ readonly assetId: Schema.String;
789
+ readonly conceptId: Schema.String;
790
+ readonly learningObjectId: Schema.String;
791
+ readonly lensId: Schema.String;
792
+ }>;
793
+ readonly sourceRevision: Schema.Trimmed;
794
+ readonly title: Schema.String;
795
+ readonly countryKey: Schema.String;
796
+ readonly examKey: Schema.String;
797
+ readonly kind: Schema.Literal<"track">;
798
+ readonly order: Schema.Finite;
799
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
800
+ readonly questionCount: Schema.Finite;
801
+ readonly sectionCount: Schema.Finite;
802
+ readonly setCount: Schema.Finite;
803
+ readonly trackKey: Schema.String;
804
+ readonly trackKind: Schema.Literals<readonly ["subject", "year"]>;
805
+ readonly visibleSectionCount: Schema.Finite;
806
+ }>, Schema.Struct<{
807
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
808
+ readonly description: Schema.optional<Schema.String>;
809
+ readonly graph: Schema.Struct<{
810
+ readonly alignmentId: Schema.String;
811
+ readonly assetId: Schema.String;
812
+ readonly conceptId: Schema.String;
813
+ readonly learningObjectId: Schema.String;
814
+ readonly lensId: Schema.String;
815
+ }>;
816
+ readonly sourceRevision: Schema.Trimmed;
817
+ readonly title: Schema.String;
818
+ readonly countryKey: Schema.String;
819
+ readonly examKey: Schema.String;
820
+ readonly internalEntrySectionKey: Schema.optional<Schema.String>;
821
+ readonly kind: Schema.Literal<"set">;
822
+ readonly order: Schema.Finite;
823
+ readonly publicPath: Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">;
824
+ readonly questionCount: Schema.Finite;
825
+ readonly scoringStrategy: Schema.Literals<readonly ["irt", "raw"]>;
826
+ readonly sectionCount: Schema.Finite;
827
+ readonly setKey: Schema.String;
828
+ readonly trackKey: Schema.String;
829
+ readonly visibleSectionCount: Schema.Finite;
830
+ }>, Schema.Struct<{
831
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
832
+ readonly description: Schema.optional<Schema.String>;
833
+ readonly graph: Schema.Struct<{
834
+ readonly alignmentId: Schema.String;
835
+ readonly assetId: Schema.String;
836
+ readonly conceptId: Schema.String;
837
+ readonly learningObjectId: Schema.String;
838
+ readonly lensId: Schema.String;
839
+ }>;
840
+ readonly sourceRevision: Schema.Trimmed;
841
+ readonly title: Schema.String;
842
+ readonly countryKey: Schema.String;
843
+ readonly examKey: Schema.String;
844
+ readonly kind: Schema.Literal<"section">;
845
+ readonly order: Schema.Finite;
846
+ readonly publicPath: Schema.optional<Schema.brand<Schema.String, "@NakafaAI/AksaraPublicPath">>;
847
+ readonly questionCount: Schema.Finite;
848
+ readonly questionSourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
849
+ readonly sectionKey: Schema.String;
850
+ readonly setKey: Schema.String;
851
+ readonly timeLimitSeconds: Schema.Finite;
852
+ readonly trackKey: Schema.String;
853
+ readonly visibility: Schema.Literals<readonly ["internal-entry", "visible"]>;
854
+ }>]>;
855
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
856
+ }>;
857
+ readonly rowKind: Schema.Literal<"catalog">;
858
+ }>, Schema.Struct<{
859
+ readonly family: Schema.Literal<"tryout">;
860
+ readonly record: Schema.Struct<{
861
+ readonly row: Schema.Struct<{
862
+ readonly answerArtifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
863
+ readonly answerContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
864
+ readonly appLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraAppLocale">;
865
+ readonly blueprint: Schema.optionalKey<Schema.Struct<{
866
+ readonly cognitiveLevel: Schema.String;
867
+ readonly contentDomain: Schema.String;
868
+ readonly topic: Schema.String;
869
+ }>>;
870
+ readonly countryKey: Schema.String;
871
+ readonly deliveryLanguage: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraDeliveryLanguage">;
872
+ readonly examKey: Schema.String;
873
+ readonly languagePolicy: Schema.Union<readonly [Schema.Struct<{
874
+ readonly kind: Schema.Literal<"app-locale">;
875
+ }>, Schema.Struct<{
876
+ readonly kind: Schema.Literal<"fixed">;
877
+ readonly language: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraDeliveryLanguage">;
878
+ }>]>;
879
+ readonly questionArtifactLocale: Schema.brand<Schema.Literals<readonly ["en", "id", "de"]>, "@NakafaAI/AksaraArtifactLocale">;
880
+ readonly questionContentKey: Schema.brand<Schema.String, "@NakafaAI/AksaraContentKey">;
881
+ readonly questionOrder: Schema.Finite;
882
+ readonly questionSourcePath: Schema.brand<Schema.String, "@NakafaAI/AksaraCorpusSourcePath">;
883
+ readonly rendererDomain: Schema.Literals<readonly ["ai-ds", "biology", "chemistry", "mathematics", "physics", "politics", "site", "snbt-general", "snbt-math", "snbt-plain", "snbt-quant", "tka-math"]>;
884
+ readonly response: Schema.Union<readonly [Schema.Struct<{
885
+ readonly categories: Schema.$Array<Schema.Struct<{
886
+ readonly categoryKey: Schema.String;
887
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
888
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
889
+ readonly kind: Schema.Literal<"math">;
890
+ readonly math: Schema.String;
891
+ }>, Schema.Struct<{
892
+ readonly kind: Schema.Literal<"text">;
893
+ readonly text: Schema.String;
894
+ }>]>>;
895
+ readonly order: Schema.Int;
896
+ }>>;
897
+ readonly kind: Schema.Literal<"category">;
898
+ readonly statements: Schema.$Array<Schema.Struct<{
899
+ readonly correctCategoryKey: Schema.String;
900
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
901
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
902
+ readonly kind: Schema.Literal<"math">;
903
+ readonly math: Schema.String;
904
+ }>, Schema.Struct<{
905
+ readonly kind: Schema.Literal<"text">;
906
+ readonly text: Schema.String;
907
+ }>]>>;
908
+ readonly order: Schema.Int;
909
+ readonly statementKey: Schema.String;
910
+ }>>;
911
+ }>, Schema.Struct<{
912
+ readonly kind: Schema.Literal<"multiple-choice">;
913
+ readonly options: Schema.$Array<Schema.Struct<{
914
+ readonly isCorrect: Schema.Boolean;
915
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
916
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
917
+ readonly kind: Schema.Literal<"math">;
918
+ readonly math: Schema.String;
919
+ }>, Schema.Struct<{
920
+ readonly kind: Schema.Literal<"text">;
921
+ readonly text: Schema.String;
922
+ }>]>>;
923
+ readonly optionKey: Schema.String;
924
+ readonly order: Schema.Int;
925
+ }>>;
926
+ }>, Schema.Struct<{
927
+ readonly kind: Schema.Literal<"single-choice">;
928
+ readonly options: Schema.$Array<Schema.Struct<{
929
+ readonly isCorrect: Schema.Boolean;
930
+ readonly label: Schema.NonEmptyArray<Schema.Union<readonly [Schema.Struct<{
931
+ readonly display: Schema.Literals<readonly ["block", "inline"]>;
932
+ readonly kind: Schema.Literal<"math">;
933
+ readonly math: Schema.String;
934
+ }>, Schema.Struct<{
935
+ readonly kind: Schema.Literal<"text">;
936
+ readonly text: Schema.String;
937
+ }>]>>;
938
+ readonly optionKey: Schema.String;
939
+ readonly order: Schema.Int;
940
+ }>>;
941
+ }>]>;
942
+ readonly scope: Schema.Literal<"server">;
943
+ readonly sectionKey: Schema.String;
944
+ readonly setKey: Schema.String;
945
+ readonly sourceRevision: Schema.Trimmed;
946
+ readonly stimulusKey: Schema.optionalKey<Schema.String>;
947
+ readonly trackKey: Schema.String;
948
+ readonly answerArtifactHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
949
+ readonly contentHash: Schema.brand<Schema.String, "@NakafaAI/AksaraTryoutContentHash">;
950
+ readonly questionArtifactHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
951
+ }>;
952
+ readonly rowHash: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
953
+ }>;
954
+ readonly rowKind: Schema.Literal<"placement">;
955
+ }>]>>;
956
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
957
+ readonly operation: Schema.Literal<"stageSnapshotBatch">;
958
+ }>;
959
+ export type StageSnapshotBatchRequest = typeof StageSnapshotBatchRequestSchema.Type;
960
+ /** Idempotent outcome bound to one exact structured-snapshot row batch. */
961
+ export declare const StageSnapshotBatchReceiptSchema: Schema.Struct<{
962
+ readonly batchIndex: Schema.Int;
963
+ readonly created: Schema.Int;
964
+ readonly family: Schema.Literals<readonly ["program", "quran", "tryout"]>;
965
+ readonly releaseId: Schema.brand<Schema.String, "@NakafaAI/AksaraReleaseId">;
966
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
967
+ readonly unchanged: Schema.Int;
968
+ }>;
969
+ export type StageSnapshotBatchReceipt = typeof StageSnapshotBatchReceiptSchema.Type;
970
+ /** Idempotent outcome for staging exactly one family manifest. */
971
+ export declare const StageSnapshotReceiptSchema: Schema.Struct<{
972
+ readonly created: Schema.Literals<readonly [0, 1]>;
973
+ readonly family: Schema.Literals<readonly ["program", "quran", "tryout"]>;
974
+ readonly releaseId: Schema.brand<Schema.String, "@NakafaAI/AksaraReleaseId">;
975
+ readonly snapshotId: Schema.brand<Schema.String, "@NakafaAI/AksaraSha256Hash">;
976
+ readonly unchanged: Schema.Literals<readonly [0, 1]>;
977
+ }>;
978
+ export type StageSnapshotReceipt = typeof StageSnapshotReceiptSchema.Type;