@syllst/th 0.1.3 → 0.2.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 (330) hide show
  1. package/dist/{index-of_athp-.js → index-4uNMctdq.js} +13 -13
  2. package/dist/{index-of_athp-.js.map → index-4uNMctdq.js.map} +1 -1
  3. package/dist/{index-Dy38Hmlm.js → index-BM-LWlCm.js} +10 -10
  4. package/dist/{index-Dy38Hmlm.js.map → index-BM-LWlCm.js.map} +1 -1
  5. package/dist/{index-CTQ45BVw.js → index-Bjym0crS.js} +8 -8
  6. package/dist/{index-CTQ45BVw.js.map → index-Bjym0crS.js.map} +1 -1
  7. package/dist/{index-B029m98V.js → index-BuKXw7-Z.js} +7 -7
  8. package/dist/{index-B029m98V.js.map → index-BuKXw7-Z.js.map} +1 -1
  9. package/dist/{index-CoqP9GZL.js → index-ByS0o5dz.js} +10 -10
  10. package/dist/{index-CoqP9GZL.js.map → index-ByS0o5dz.js.map} +1 -1
  11. package/dist/{index-BCA5Llwg.js → index-C9VnG7dT.js} +10 -10
  12. package/dist/{index-BCA5Llwg.js.map → index-C9VnG7dT.js.map} +1 -1
  13. package/dist/{index-vuRo2mLK.js → index-CPQkjFjV.js} +9 -9
  14. package/dist/{index-vuRo2mLK.js.map → index-CPQkjFjV.js.map} +1 -1
  15. package/dist/{index-BFcg5D_W.js → index-CkHd3Fal.js} +12 -12
  16. package/dist/{index-BFcg5D_W.js.map → index-CkHd3Fal.js.map} +1 -1
  17. package/dist/{index-CB8M6CK6.js → index-DBkPBXe2.js} +10 -10
  18. package/dist/{index-CB8M6CK6.js.map → index-DBkPBXe2.js.map} +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +18 -18
  21. package/dist/{lesson-01--9NOyHZ6.js → lesson-01-B0wtSaSl.js} +21 -9
  22. package/dist/lesson-01-B0wtSaSl.js.map +1 -0
  23. package/dist/{lesson-01-97FtYE6g.js → lesson-01-C9vbUlA4.js} +14 -6
  24. package/dist/lesson-01-C9vbUlA4.js.map +1 -0
  25. package/dist/{lesson-01-CF4tJfZ3.js → lesson-01-CPmBFTe0.js} +28 -16
  26. package/dist/lesson-01-CPmBFTe0.js.map +1 -0
  27. package/dist/{lesson-01-3hBted4A.js → lesson-01-Cc4Ws8eR.js} +25 -14
  28. package/dist/lesson-01-Cc4Ws8eR.js.map +1 -0
  29. package/dist/{lesson-01-BYKAZiua.js → lesson-01-Cm5k-m-9.js} +14 -8
  30. package/dist/lesson-01-Cm5k-m-9.js.map +1 -0
  31. package/dist/{lesson-01-WV3ic8Ok.js → lesson-01-DELblCNj.js} +11 -5
  32. package/dist/lesson-01-DELblCNj.js.map +1 -0
  33. package/dist/{lesson-01-CRx-yw4C.js → lesson-01-Djl_72e7.js} +14 -6
  34. package/dist/lesson-01-Djl_72e7.js.map +1 -0
  35. package/dist/{lesson-01-BhjY6ArF.js → lesson-01-LEHTeGQQ.js} +17 -9
  36. package/dist/lesson-01-LEHTeGQQ.js.map +1 -0
  37. package/dist/{lesson-01-BNdHXAGR.js → lesson-01-ih_-OO_O.js} +14 -6
  38. package/dist/lesson-01-ih_-OO_O.js.map +1 -0
  39. package/dist/{lesson-02-C8dfzXvq.js → lesson-02-B2aZrKUQ.js} +14 -6
  40. package/dist/lesson-02-B2aZrKUQ.js.map +1 -0
  41. package/dist/{lesson-02-C2ALLvoT.js → lesson-02-BI1Vnwiz.js} +17 -9
  42. package/dist/lesson-02-BI1Vnwiz.js.map +1 -0
  43. package/dist/{lesson-02-BGnp0Ik_.js → lesson-02-BXbwEMaL.js} +27 -15
  44. package/dist/lesson-02-BXbwEMaL.js.map +1 -0
  45. package/dist/{lesson-02-BAbq-QGP.js → lesson-02-CbJJ5Amt.js} +24 -14
  46. package/dist/lesson-02-CbJJ5Amt.js.map +1 -0
  47. package/dist/{lesson-02-Bm9EJuN8.js → lesson-02-DGrALAgG.js} +21 -9
  48. package/dist/lesson-02-DGrALAgG.js.map +1 -0
  49. package/dist/{lesson-02-C0ZL4z3c.js → lesson-02-DcMDDBDL.js} +11 -5
  50. package/dist/lesson-02-DcMDDBDL.js.map +1 -0
  51. package/dist/{lesson-02-B2Xg7RVU.js → lesson-02-Dk59HZWp.js} +17 -9
  52. package/dist/lesson-02-Dk59HZWp.js.map +1 -0
  53. package/dist/{lesson-02-BO3BXPMJ.js → lesson-02-L8oNhBej.js} +14 -8
  54. package/dist/lesson-02-L8oNhBej.js.map +1 -0
  55. package/dist/{lesson-02-CsejVbCo.js → lesson-02-VDOme3ES.js} +17 -9
  56. package/dist/lesson-02-VDOme3ES.js.map +1 -0
  57. package/dist/{lesson-03-DV2SUWVH.js → lesson-03-9WioSe19.js} +21 -9
  58. package/dist/lesson-03-9WioSe19.js.map +1 -0
  59. package/dist/{lesson-03-DiV17_Os.js → lesson-03-BZutWzMD.js} +14 -6
  60. package/dist/lesson-03-BZutWzMD.js.map +1 -0
  61. package/dist/{lesson-03-Xc8-2Yt3.js → lesson-03-CSIF5xRS.js} +14 -8
  62. package/dist/lesson-03-CSIF5xRS.js.map +1 -0
  63. package/dist/{lesson-03-DrJgbfDQ.js → lesson-03-CSKig363.js} +17 -9
  64. package/dist/lesson-03-CSKig363.js.map +1 -0
  65. package/dist/{lesson-03-XVahXvgf.js → lesson-03-CoDPKwa1.js} +21 -14
  66. package/dist/lesson-03-CoDPKwa1.js.map +1 -0
  67. package/dist/{lesson-03-8NtAeqFh.js → lesson-03-DPJOG2M_.js} +14 -8
  68. package/dist/lesson-03-DPJOG2M_.js.map +1 -0
  69. package/dist/{lesson-03-CKTNtgY1.js → lesson-03-DkjCuJ26.js} +17 -9
  70. package/dist/lesson-03-DkjCuJ26.js.map +1 -0
  71. package/dist/{lesson-03-BdZfKRhq.js → lesson-03-DucbRMOQ.js} +17 -9
  72. package/dist/lesson-03-DucbRMOQ.js.map +1 -0
  73. package/dist/{lesson-03-D8va_Q9B.js → lesson-03-MIne1PbH.js} +26 -14
  74. package/dist/lesson-03-MIne1PbH.js.map +1 -0
  75. package/dist/{lesson-04-Dfc7S4nT.js → lesson-04-0Pj_x1DU.js} +17 -9
  76. package/dist/lesson-04-0Pj_x1DU.js.map +1 -0
  77. package/dist/{lesson-04-ZrSBM0BX.js → lesson-04-B9h0p9kE.js} +14 -8
  78. package/dist/lesson-04-B9h0p9kE.js.map +1 -0
  79. package/dist/{lesson-04-DEEPJ_rd.js → lesson-04-BLuPI1-X.js} +22 -13
  80. package/dist/lesson-04-BLuPI1-X.js.map +1 -0
  81. package/dist/{lesson-04-rapx_3vA.js → lesson-04-CmDvofL4.js} +17 -9
  82. package/dist/lesson-04-CmDvofL4.js.map +1 -0
  83. package/dist/{lesson-04-DtXVhdGB.js → lesson-04-DGKHK4LW.js} +17 -9
  84. package/dist/lesson-04-DGKHK4LW.js.map +1 -0
  85. package/dist/{lesson-04-CtNr2B3E.js → lesson-04-DUcHZzsk.js} +21 -9
  86. package/dist/lesson-04-DUcHZzsk.js.map +1 -0
  87. package/dist/{lesson-04-BpRrNmzO.js → lesson-04-DnVIXXk-.js} +14 -8
  88. package/dist/lesson-04-DnVIXXk-.js.map +1 -0
  89. package/dist/{lesson-04-ioLXnB0j.js → lesson-04-FZnIE7tu.js} +27 -15
  90. package/dist/lesson-04-FZnIE7tu.js.map +1 -0
  91. package/dist/{lesson-04-D__vMCyA.js → lesson-04-ToX3nRz1.js} +17 -9
  92. package/dist/lesson-04-ToX3nRz1.js.map +1 -0
  93. package/dist/{lesson-05-D_GdROUn.js → lesson-05-2aTCGXMh.js} +14 -8
  94. package/dist/lesson-05-2aTCGXMh.js.map +1 -0
  95. package/dist/{lesson-05-ip400cxe.js → lesson-05-BvitRdE8.js} +28 -16
  96. package/dist/lesson-05-BvitRdE8.js.map +1 -0
  97. package/dist/{lesson-05-D1d3kc3M.js → lesson-05-CgXGkcjS.js} +14 -8
  98. package/dist/lesson-05-CgXGkcjS.js.map +1 -0
  99. package/dist/{lesson-05-D2SVU-I0.js → lesson-05-ClfrUrvX.js} +17 -9
  100. package/dist/lesson-05-ClfrUrvX.js.map +1 -0
  101. package/dist/{lesson-05-CKxXcooO.js → lesson-05-D2zf9n7k.js} +23 -13
  102. package/dist/lesson-05-D2zf9n7k.js.map +1 -0
  103. package/dist/{lesson-05-DusKUtbm.js → lesson-05-DWquBfdl.js} +21 -9
  104. package/dist/lesson-05-DWquBfdl.js.map +1 -0
  105. package/dist/{lesson-05-Bm6fg-DJ.js → lesson-05-DpIkwhJ8.js} +17 -9
  106. package/dist/lesson-05-DpIkwhJ8.js.map +1 -0
  107. package/dist/{lesson-05-DBsHyFlt.js → lesson-05-UYz39ORV.js} +17 -9
  108. package/dist/lesson-05-UYz39ORV.js.map +1 -0
  109. package/dist/{lesson-05-DXOLS7G0.js → lesson-05-t6XuANiZ.js} +17 -9
  110. package/dist/lesson-05-t6XuANiZ.js.map +1 -0
  111. package/dist/{lesson-06-1ZsbrE1a.js → lesson-06-B2y08mKv.js} +17 -9
  112. package/dist/lesson-06-B2y08mKv.js.map +1 -0
  113. package/dist/{lesson-06-1CE05TRX.js → lesson-06-CHqaVQix.js} +16 -10
  114. package/dist/lesson-06-CHqaVQix.js.map +1 -0
  115. package/dist/{lesson-06-Bliedg7n.js → lesson-06-CaCZBX1V.js} +17 -9
  116. package/dist/lesson-06-CaCZBX1V.js.map +1 -0
  117. package/dist/{lesson-06-Du9J8sYl.js → lesson-06-ClplsJBT.js} +30 -18
  118. package/dist/lesson-06-ClplsJBT.js.map +1 -0
  119. package/dist/{lesson-06-BG26PBTF.js → lesson-06-CzGnNKo5.js} +14 -8
  120. package/dist/lesson-06-CzGnNKo5.js.map +1 -0
  121. package/dist/{lesson-06-CnKkcUb-.js → lesson-06-Dg_bQLNC.js} +17 -9
  122. package/dist/lesson-06-Dg_bQLNC.js.map +1 -0
  123. package/dist/{lesson-06-Aw-X-HMV.js → lesson-06-OWFMgO0a.js} +23 -14
  124. package/dist/lesson-06-OWFMgO0a.js.map +1 -0
  125. package/dist/{lesson-06-CvN9pDsE.js → lesson-06-Q2aRAzws.js} +17 -9
  126. package/dist/lesson-06-Q2aRAzws.js.map +1 -0
  127. package/dist/{lesson-07-DjCMCYkK.js → lesson-07-BLDUA_Ff.js} +17 -9
  128. package/dist/lesson-07-BLDUA_Ff.js.map +1 -0
  129. package/dist/{lesson-07-DezS1ojS.js → lesson-07-BpyF1Ssq.js} +27 -15
  130. package/dist/lesson-07-BpyF1Ssq.js.map +1 -0
  131. package/dist/{lesson-07-rvSSQiVh.js → lesson-07-C4GrfDTW.js} +25 -13
  132. package/dist/lesson-07-C4GrfDTW.js.map +1 -0
  133. package/dist/{lesson-07-CTFSd9gF.js → lesson-07-CVCUt1Jn.js} +14 -8
  134. package/dist/lesson-07-CVCUt1Jn.js.map +1 -0
  135. package/dist/{lesson-07-8zdPFyjE.js → lesson-07-DQFXCZsZ.js} +17 -9
  136. package/dist/lesson-07-DQFXCZsZ.js.map +1 -0
  137. package/dist/{lesson-07-X6anzbAn.js → lesson-07-Dcry2Yjo.js} +17 -9
  138. package/dist/lesson-07-Dcry2Yjo.js.map +1 -0
  139. package/dist/{lesson-07-B9bkJ3gP.js → lesson-07-JS_cqdNr.js} +14 -8
  140. package/dist/lesson-07-JS_cqdNr.js.map +1 -0
  141. package/dist/{lesson-08-CeDWopKc.js → lesson-08-18gscaS0.js} +25 -13
  142. package/dist/lesson-08-18gscaS0.js.map +1 -0
  143. package/dist/{lesson-08-Cyzy_VeP.js → lesson-08-2kBUq_B2.js} +14 -8
  144. package/dist/lesson-08-2kBUq_B2.js.map +1 -0
  145. package/dist/{lesson-08-BYfkPBkH.js → lesson-08-BP5lpiGe.js} +17 -9
  146. package/dist/lesson-08-BP5lpiGe.js.map +1 -0
  147. package/dist/{lesson-08-Bb_v_gD-.js → lesson-08-BXm9GgdN.js} +14 -8
  148. package/dist/lesson-08-BXm9GgdN.js.map +1 -0
  149. package/dist/{lesson-08-BqW5C_OE.js → lesson-08-Bru0PdEK.js} +21 -9
  150. package/dist/lesson-08-Bru0PdEK.js.map +1 -0
  151. package/dist/{lesson-08-hJlci9W5.js → lesson-08-Dd-8cbGW.js} +17 -9
  152. package/dist/lesson-08-Dd-8cbGW.js.map +1 -0
  153. package/dist/{lesson-09-DHRHZIc1.js → lesson-09-B1qWE3Yl.js} +27 -15
  154. package/dist/lesson-09-B1qWE3Yl.js.map +1 -0
  155. package/dist/{lesson-09-BQ1CZCjT.js → lesson-09-B5Vb70xj.js} +14 -8
  156. package/dist/lesson-09-B5Vb70xj.js.map +1 -0
  157. package/dist/{lesson-10-BdfkVT7s.js → lesson-10-00qNLc7A.js} +25 -13
  158. package/dist/lesson-10-00qNLc7A.js.map +1 -0
  159. package/dist/{lesson-10-C7YEQ8et.js → lesson-10-Dw-Jtm3D.js} +14 -8
  160. package/dist/lesson-10-Dw-Jtm3D.js.map +1 -0
  161. package/dist/{lesson-11-oJQ8ZxJk.js → lesson-11-BM3R_S7I.js} +25 -13
  162. package/dist/lesson-11-BM3R_S7I.js.map +1 -0
  163. package/dist/{lesson-12-D69m5ETy.js → lesson-12-D1Wx7CyK.js} +33 -21
  164. package/dist/lesson-12-D1Wx7CyK.js.map +1 -0
  165. package/dist/skills-hcn-pGD0.js +244 -0
  166. package/dist/skills-hcn-pGD0.js.map +1 -0
  167. package/dist/syllabi/alphabet/index.js +1 -1
  168. package/dist/syllabi/dialogue/index.d.ts +1 -1
  169. package/dist/syllabi/dialogue/index.js +2 -2
  170. package/dist/syllabi/essentials/index.d.ts +1 -1
  171. package/dist/syllabi/essentials/index.js +2 -2
  172. package/dist/syllabi/food/index.d.ts +1 -1
  173. package/dist/syllabi/food/index.js +2 -2
  174. package/dist/syllabi/grammar/index.d.ts +1 -1
  175. package/dist/syllabi/grammar/index.js +2 -2
  176. package/dist/syllabi/numbers/index.d.ts +1 -1
  177. package/dist/syllabi/numbers/index.js +2 -2
  178. package/dist/syllabi/reading/index.d.ts +1 -1
  179. package/dist/syllabi/reading/index.js +2 -2
  180. package/dist/syllabi/travel/index.d.ts +1 -1
  181. package/dist/syllabi/travel/index.js +2 -2
  182. package/dist/syllabi/vowels-tones/index.d.ts +1 -1
  183. package/dist/syllabi/vowels-tones/index.js +2 -2
  184. package/package.json +5 -5
  185. package/src/syllabi/alphabet/lessons/lesson-01.mdx +24 -13
  186. package/src/syllabi/alphabet/lessons/lesson-02.mdx +23 -13
  187. package/src/syllabi/alphabet/lessons/lesson-03.mdx +20 -13
  188. package/src/syllabi/alphabet/lessons/lesson-04.mdx +21 -12
  189. package/src/syllabi/alphabet/lessons/lesson-05.mdx +22 -12
  190. package/src/syllabi/alphabet/lessons/lesson-06.mdx +22 -13
  191. package/src/syllabi/alphabet/lessons/lesson-07.mdx +26 -14
  192. package/src/syllabi/alphabet/lessons/lesson-08.mdx +24 -12
  193. package/src/syllabi/alphabet/lessons/lesson-09.mdx +26 -14
  194. package/src/syllabi/alphabet/lessons/lesson-10.mdx +24 -12
  195. package/src/syllabi/alphabet/lessons/lesson-11.mdx +24 -12
  196. package/src/syllabi/alphabet/lessons/lesson-12.mdx +32 -20
  197. package/src/syllabi/dialogue/lessons/lesson-01.mdx +13 -5
  198. package/src/syllabi/dialogue/lessons/lesson-02.mdx +13 -5
  199. package/src/syllabi/dialogue/lessons/lesson-03.mdx +13 -5
  200. package/src/syllabi/dialogue/lessons/lesson-04.mdx +16 -8
  201. package/src/syllabi/dialogue/lessons/lesson-05.mdx +16 -8
  202. package/src/syllabi/dialogue/lessons/lesson-06.mdx +16 -8
  203. package/src/syllabi/dialogue/lessons/lesson-07.mdx +16 -8
  204. package/src/syllabi/dialogue/lessons/lesson-08.mdx +16 -8
  205. package/src/syllabi/essentials/lessons/lesson-01.mdx +13 -5
  206. package/src/syllabi/essentials/lessons/lesson-02.mdx +16 -8
  207. package/src/syllabi/essentials/lessons/lesson-03.mdx +16 -8
  208. package/src/syllabi/essentials/lessons/lesson-04.mdx +16 -8
  209. package/src/syllabi/essentials/lessons/lesson-05.mdx +16 -8
  210. package/src/syllabi/essentials/lessons/lesson-06.mdx +16 -8
  211. package/src/syllabi/food/lessons/lesson-01.mdx +13 -5
  212. package/src/syllabi/food/lessons/lesson-02.mdx +16 -8
  213. package/src/syllabi/food/lessons/lesson-03.mdx +16 -8
  214. package/src/syllabi/food/lessons/lesson-04.mdx +16 -8
  215. package/src/syllabi/food/lessons/lesson-05.mdx +16 -8
  216. package/src/syllabi/food/lessons/lesson-06.mdx +16 -8
  217. package/src/syllabi/food/lessons/lesson-07.mdx +16 -8
  218. package/src/syllabi/food/lessons/lesson-08.mdx +16 -8
  219. package/src/syllabi/grammar/lessons/lesson-01.mdx +10 -4
  220. package/src/syllabi/grammar/lessons/lesson-02.mdx +10 -4
  221. package/src/syllabi/grammar/lessons/lesson-03.mdx +13 -7
  222. package/src/syllabi/grammar/lessons/lesson-04.mdx +13 -7
  223. package/src/syllabi/grammar/lessons/lesson-05.mdx +13 -7
  224. package/src/syllabi/grammar/lessons/lesson-06.mdx +13 -7
  225. package/src/syllabi/grammar/lessons/lesson-07.mdx +13 -7
  226. package/src/syllabi/grammar/lessons/lesson-08.mdx +13 -7
  227. package/src/syllabi/numbers/lessons/lesson-01.mdx +27 -15
  228. package/src/syllabi/numbers/lessons/lesson-02.mdx +20 -8
  229. package/src/syllabi/numbers/lessons/lesson-03.mdx +20 -8
  230. package/src/syllabi/numbers/lessons/lesson-04.mdx +20 -8
  231. package/src/syllabi/numbers/lessons/lesson-05.mdx +20 -8
  232. package/src/syllabi/reading/lessons/lesson-01.mdx +13 -7
  233. package/src/syllabi/reading/lessons/lesson-02.mdx +13 -7
  234. package/src/syllabi/reading/lessons/lesson-03.mdx +13 -7
  235. package/src/syllabi/reading/lessons/lesson-04.mdx +13 -7
  236. package/src/syllabi/reading/lessons/lesson-05.mdx +13 -7
  237. package/src/syllabi/reading/lessons/lesson-06.mdx +13 -7
  238. package/src/syllabi/reading/lessons/lesson-07.mdx +13 -7
  239. package/src/syllabi/reading/lessons/lesson-08.mdx +13 -7
  240. package/src/syllabi/reading/lessons/lesson-09.mdx +13 -7
  241. package/src/syllabi/reading/lessons/lesson-10.mdx +13 -7
  242. package/src/syllabi/travel/lessons/lesson-01.mdx +16 -8
  243. package/src/syllabi/travel/lessons/lesson-02.mdx +16 -8
  244. package/src/syllabi/travel/lessons/lesson-03.mdx +16 -8
  245. package/src/syllabi/travel/lessons/lesson-04.mdx +16 -8
  246. package/src/syllabi/travel/lessons/lesson-05.mdx +16 -8
  247. package/src/syllabi/travel/lessons/lesson-06.mdx +16 -8
  248. package/src/syllabi/travel/lessons/lesson-07.mdx +16 -8
  249. package/src/syllabi/vowels-tones/lessons/lesson-01.mdx +20 -8
  250. package/src/syllabi/vowels-tones/lessons/lesson-02.mdx +26 -14
  251. package/src/syllabi/vowels-tones/lessons/lesson-03.mdx +25 -13
  252. package/src/syllabi/vowels-tones/lessons/lesson-04.mdx +24 -12
  253. package/src/syllabi/vowels-tones/lessons/lesson-05.mdx +27 -15
  254. package/src/syllabi/vowels-tones/lessons/lesson-06.mdx +29 -17
  255. package/src/syllabi/vowels-tones/lessons/lesson-07.mdx +24 -12
  256. package/src/syllabi/vowels-tones/lessons/lesson-08.mdx +20 -8
  257. package/dist/index-DADMaTE7.js +0 -27
  258. package/dist/index-DADMaTE7.js.map +0 -1
  259. package/dist/lesson-01--9NOyHZ6.js.map +0 -1
  260. package/dist/lesson-01-3hBted4A.js.map +0 -1
  261. package/dist/lesson-01-97FtYE6g.js.map +0 -1
  262. package/dist/lesson-01-BNdHXAGR.js.map +0 -1
  263. package/dist/lesson-01-BYKAZiua.js.map +0 -1
  264. package/dist/lesson-01-BhjY6ArF.js.map +0 -1
  265. package/dist/lesson-01-CF4tJfZ3.js.map +0 -1
  266. package/dist/lesson-01-CRx-yw4C.js.map +0 -1
  267. package/dist/lesson-01-WV3ic8Ok.js.map +0 -1
  268. package/dist/lesson-02-B2Xg7RVU.js.map +0 -1
  269. package/dist/lesson-02-BAbq-QGP.js.map +0 -1
  270. package/dist/lesson-02-BGnp0Ik_.js.map +0 -1
  271. package/dist/lesson-02-BO3BXPMJ.js.map +0 -1
  272. package/dist/lesson-02-Bm9EJuN8.js.map +0 -1
  273. package/dist/lesson-02-C0ZL4z3c.js.map +0 -1
  274. package/dist/lesson-02-C2ALLvoT.js.map +0 -1
  275. package/dist/lesson-02-C8dfzXvq.js.map +0 -1
  276. package/dist/lesson-02-CsejVbCo.js.map +0 -1
  277. package/dist/lesson-03-8NtAeqFh.js.map +0 -1
  278. package/dist/lesson-03-BdZfKRhq.js.map +0 -1
  279. package/dist/lesson-03-CKTNtgY1.js.map +0 -1
  280. package/dist/lesson-03-D8va_Q9B.js.map +0 -1
  281. package/dist/lesson-03-DV2SUWVH.js.map +0 -1
  282. package/dist/lesson-03-DiV17_Os.js.map +0 -1
  283. package/dist/lesson-03-DrJgbfDQ.js.map +0 -1
  284. package/dist/lesson-03-XVahXvgf.js.map +0 -1
  285. package/dist/lesson-03-Xc8-2Yt3.js.map +0 -1
  286. package/dist/lesson-04-BpRrNmzO.js.map +0 -1
  287. package/dist/lesson-04-CtNr2B3E.js.map +0 -1
  288. package/dist/lesson-04-DEEPJ_rd.js.map +0 -1
  289. package/dist/lesson-04-D__vMCyA.js.map +0 -1
  290. package/dist/lesson-04-Dfc7S4nT.js.map +0 -1
  291. package/dist/lesson-04-DtXVhdGB.js.map +0 -1
  292. package/dist/lesson-04-ZrSBM0BX.js.map +0 -1
  293. package/dist/lesson-04-ioLXnB0j.js.map +0 -1
  294. package/dist/lesson-04-rapx_3vA.js.map +0 -1
  295. package/dist/lesson-05-Bm6fg-DJ.js.map +0 -1
  296. package/dist/lesson-05-CKxXcooO.js.map +0 -1
  297. package/dist/lesson-05-D1d3kc3M.js.map +0 -1
  298. package/dist/lesson-05-D2SVU-I0.js.map +0 -1
  299. package/dist/lesson-05-DBsHyFlt.js.map +0 -1
  300. package/dist/lesson-05-DXOLS7G0.js.map +0 -1
  301. package/dist/lesson-05-D_GdROUn.js.map +0 -1
  302. package/dist/lesson-05-DusKUtbm.js.map +0 -1
  303. package/dist/lesson-05-ip400cxe.js.map +0 -1
  304. package/dist/lesson-06-1CE05TRX.js.map +0 -1
  305. package/dist/lesson-06-1ZsbrE1a.js.map +0 -1
  306. package/dist/lesson-06-Aw-X-HMV.js.map +0 -1
  307. package/dist/lesson-06-BG26PBTF.js.map +0 -1
  308. package/dist/lesson-06-Bliedg7n.js.map +0 -1
  309. package/dist/lesson-06-CnKkcUb-.js.map +0 -1
  310. package/dist/lesson-06-CvN9pDsE.js.map +0 -1
  311. package/dist/lesson-06-Du9J8sYl.js.map +0 -1
  312. package/dist/lesson-07-8zdPFyjE.js.map +0 -1
  313. package/dist/lesson-07-B9bkJ3gP.js.map +0 -1
  314. package/dist/lesson-07-CTFSd9gF.js.map +0 -1
  315. package/dist/lesson-07-DezS1ojS.js.map +0 -1
  316. package/dist/lesson-07-DjCMCYkK.js.map +0 -1
  317. package/dist/lesson-07-X6anzbAn.js.map +0 -1
  318. package/dist/lesson-07-rvSSQiVh.js.map +0 -1
  319. package/dist/lesson-08-BYfkPBkH.js.map +0 -1
  320. package/dist/lesson-08-Bb_v_gD-.js.map +0 -1
  321. package/dist/lesson-08-BqW5C_OE.js.map +0 -1
  322. package/dist/lesson-08-CeDWopKc.js.map +0 -1
  323. package/dist/lesson-08-Cyzy_VeP.js.map +0 -1
  324. package/dist/lesson-08-hJlci9W5.js.map +0 -1
  325. package/dist/lesson-09-BQ1CZCjT.js.map +0 -1
  326. package/dist/lesson-09-DHRHZIc1.js.map +0 -1
  327. package/dist/lesson-10-BdfkVT7s.js.map +0 -1
  328. package/dist/lesson-10-C7YEQ8et.js.map +0 -1
  329. package/dist/lesson-11-oJQ8ZxJk.js.map +0 -1
  330. package/dist/lesson-12-D69m5ETy.js.map +0 -1
@@ -17,11 +17,21 @@ metadata:
17
17
  estimatedTime: 25
18
18
  prerequisites:
19
19
  - thai-script-lesson-01
20
- objectives:
21
- - "Complete your knowledge of middle-class consonants"
22
- - "Understand nasals and approximants"
23
- - "Learn the special role of อ as a silent consonant"
24
- - "Practice reading simple syllables"
20
+ learningObjectives:
21
+ - id: obj-complete-mid
22
+ description: "Complete your knowledge of middle-class consonants"
23
+ skill: character-recognition
24
+ references: [horse, ogre, boat, monkey, bowl]
25
+ - id: obj-nasal-approx
26
+ description: "Understand nasals and approximants"
27
+ skill: character-sound-mapping
28
+ - id: obj-silent-consonant
29
+ description: "Learn the special role of อ as a silent consonant"
30
+ skill: character-sound-mapping
31
+ references: [bowl]
32
+ - id: obj-syllable-reading
33
+ description: "Practice reading simple syllables"
34
+ skill: character-sound-mapping
25
35
  ---
26
36
 
27
37
  # บทที่ 2 (Lesson 2) — Middle-Class Consonants II
@@ -44,15 +54,15 @@ This affects their behavior in final position — they don't become unreleased s
44
54
 
45
55
  :::character-set{id="thai-middle-consonants-2" title="Middle-Class Consonants II"}
46
56
 
47
- ::character{id="th-horse" char="ม" name="ม ม้า (mɔɔ máa)" nativeName="ม ม้า" transliteration="m" charType="consonant"}
57
+ ::character{id="horse" canonicalRef="horse" data:class="low" char="ม" name="ม ม้า (mɔɔ máa)" nativeName="ม ม้า" transliteration="m" charType="consonant"}
48
58
 
49
- ::character{id="th-ogre" char="ย" name="ย ยักษ์ (yɔɔ yák)" nativeName="ย ยักษ์" transliteration="y" charType="consonant"}
59
+ ::character{id="ogre" canonicalRef="ogre" data:class="low" char="ย" name="ย ยักษ์ (yɔɔ yák)" nativeName="ย ยักษ์" transliteration="y" charType="consonant"}
50
60
 
51
- ::character{id="th-boat" char="ร" name="ร เรือ (rɔɔ rʉa)" nativeName="ร เรือ" transliteration="r/n" charType="consonant"}
61
+ ::character{id="boat" canonicalRef="boat" data:class="low" char="ร" name="ร เรือ (rɔɔ rʉa)" nativeName="ร เรือ" transliteration="r/n" charType="consonant"}
52
62
 
53
- ::character{id="th-monkey" char="ล" name="ล ลิง (lɔɔ ling)" nativeName="ล ลิง" transliteration="l/n" charType="consonant"}
63
+ ::character{id="monkey" canonicalRef="monkey" data:class="low" char="ล" name="ล ลิง (lɔɔ ling)" nativeName="ล ลิง" transliteration="l/n" charType="consonant"}
54
64
 
55
- ::character{id="th-bowl" char="อ" name="อ อ่าง (ɔɔ àang)" nativeName="อ อ่าง" transliteration="-/vowel" charType="consonant"}
65
+ ::character{id="bowl" canonicalRef="bowl" data:class="middle" char="อ" name="อ อ่าง (ɔɔ àang)" nativeName="อ อ่าง" transliteration="-/vowel" charType="consonant"}
56
66
 
57
67
  :::
58
68
 
@@ -131,7 +141,7 @@ This will make more sense after you learn vowels and tone marks!
131
141
 
132
142
  ## Practice Exercises
133
143
 
134
- :::exercise{id="middle-2-final-sounds" type="matching" title="Final Position Sounds"}
144
+ :::exercise{id="middle-2-final-sounds" type="matching" title="Final Position Sounds" skill="character-sound-mapping" tests="boat,monkey,ogre,horse" objectiveId="obj-nasal-approx"}
135
145
 
136
146
  **Question:** Match each consonant to its final position sound
137
147
 
@@ -151,7 +161,7 @@ This will make more sense after you learn vowels and tone marks!
151
161
 
152
162
  :::
153
163
 
154
- :::exercise{id="middle-2-special-case" type="multiple-choice" title="The Special อ Consonant"}
164
+ :::exercise{id="middle-2-special-case" type="multiple-choice" title="The Special อ Consonant" skill="character-sound-mapping" tests="bowl" objectiveId="obj-silent-consonant"}
155
165
 
156
166
  **Question:** What makes อ (bowl) special?
157
167
 
@@ -167,7 +177,7 @@ This will make more sense after you learn vowels and tone marks!
167
177
 
168
178
  :::
169
179
 
170
- :::exercise{id="middle-2-complete-set" type="fill-in-blank" title="Complete Middle-Class Set"}
180
+ :::exercise{id="middle-2-complete-set" type="fill-in-blank" title="Complete Middle-Class Set" skill="character-recognition" objectiveId="obj-complete-mid"}
171
181
 
172
182
  **Question:** How many middle-class consonants are there, and what are they?
173
183
 
@@ -16,10 +16,17 @@ metadata:
16
16
  estimatedTime: 20
17
17
  prerequisites:
18
18
  - thai-script-lesson-02
19
- objectives:
20
- - "Learn 3 common high-class consonants"
21
- - "Understand aspiration (puff of air)"
22
- - "Recognize the rising tone pattern"
19
+ learningObjectives:
20
+ - id: obj-high-consonants-1
21
+ description: "Learn 3 common high-class consonants"
22
+ skill: character-recognition
23
+ references: [egg, tiger, box]
24
+ - id: obj-aspiration
25
+ description: "Understand aspiration (puff of air)"
26
+ skill: character-sound-mapping
27
+ - id: obj-rising-tone
28
+ description: "Recognize the rising tone pattern"
29
+ skill: character-class-identification
23
30
  ---
24
31
 
25
32
  # บทที่ 3 (Lesson 3) — High-Class Consonants I
@@ -33,7 +40,7 @@ Put your hand in front of your mouth and say these English words:
33
40
 
34
41
  That puff of air is called **aspiration**.
35
42
 
36
- :::exercise{id="aspiration-check" exerciseType="multiple-choice" title="Quick Check"}
43
+ :::exercise{id="aspiration-check" exerciseType="multiple-choice" title="Quick Check" skill="character-sound-mapping" objectiveId="obj-aspiration"}
37
44
  Which word has MORE air on the 'k' sound?
38
45
  ?options: kite, sky
39
46
  ?answer: 1
@@ -54,11 +61,11 @@ You already know **ก** (from Lesson 1). Now meet its aspirated partner:
54
61
 
55
62
  :::character-set{id="thai-high-consonants-1" title="High-Class Consonants I"}
56
63
 
57
- ::character{id="th-egg" char="ข" name="ข ไข่ (khɔ̌ɔ khài)" nativeName="ข ไข่" transliteration="kh/k" charType="consonant"}
64
+ ::character{id="egg" canonicalRef="egg" data:class="high" char="ข" name="ข ไข่ (khɔ̌ɔ khài)" nativeName="ข ไข่" transliteration="kh/k" charType="consonant"}
58
65
 
59
- ::character{id="th-tiger" char="ส" name="ส เสือ (sɔ̌ɔ sʉ̌a)" nativeName="ส เสือ" transliteration="s/t" charType="consonant"}
66
+ ::character{id="tiger" canonicalRef="tiger" data:class="high" char="ส" name="ส เสือ (sɔ̌ɔ sʉ̌a)" nativeName="ส เสือ" transliteration="s/t" charType="consonant"}
60
67
 
61
- ::character{id="th-box" char="ห" name="ห หีบ (hɔ̌ɔ hìip)" nativeName="ห หีบ" transliteration="h/-" charType="consonant"}
68
+ ::character{id="box" canonicalRef="box" data:class="high" char="ห" name="ห หีบ (hɔ̌ɔ hìip)" nativeName="ห หีบ" transliteration="h/-" charType="consonant"}
62
69
 
63
70
  :::
64
71
 
@@ -72,13 +79,13 @@ Each character has a memorable shape:
72
79
 
73
80
  **ห** (box) — Looks like a box. หีบ means "chest/box" — the shape matches!
74
81
 
75
- :::exercise{id="shape-match" exerciseType="multiple-choice" title="Match the Shape"}
82
+ :::exercise{id="shape-match" exerciseType="multiple-choice" title="Match the Shape" skill="character-recognition" tests="egg" objectiveId="obj-high-consonants-1"}
76
83
  Which letter looks like ก with an extra loop on top?
77
84
  ?options: ส, ข, ห
78
85
  ?answer: 2
79
86
  :::
80
87
 
81
- :::exercise{id="shape-match-2" exerciseType="multiple-choice" title="Match the Shape"}
88
+ :::exercise{id="shape-match-2" exerciseType="multiple-choice" title="Match the Shape" skill="character-recognition" tests="tiger" objectiveId="obj-high-consonants-1"}
82
89
  Which letter has an S-curve shape (like tiger stripes)?
83
90
  ?options: ข, ห, ส
84
91
  ?answer: 3
@@ -94,7 +101,7 @@ Thai consonants sound different depending on position:
94
101
  | ส tiger | **s** | **t** (no release) |
95
102
  | ห box | **h** | (not used) |
96
103
 
97
- :::exercise{id="position-sound" exerciseType="multiple-choice" title="Position Check"}
104
+ :::exercise{id="position-sound" exerciseType="multiple-choice" title="Position Check" skill="character-sound-mapping" tests="egg" objectiveId="obj-aspiration"}
98
105
  At the START of a syllable, how is ข pronounced?
99
106
  ?options: k (no air), kh (with air puff), s
100
107
  ?answer: 2
@@ -115,7 +122,7 @@ Compare to middle-class ก (flat mid tone):
115
122
 
116
123
  Same vowel, different consonant class = **different tone!**
117
124
 
118
- :::exercise{id="tone-pattern" exerciseType="multiple-choice" title="Tone Check"}
125
+ :::exercise{id="tone-pattern" exerciseType="multiple-choice" title="Tone Check" skill="character-class-identification" objectiveId="obj-rising-tone"}
119
126
  What tone do high-class consonants produce in simple syllables?
120
127
  ?options: falling tone ↘, mid tone →, rising tone ↗
121
128
  ?answer: 3
@@ -133,7 +140,7 @@ You learned 3 high-class consonants:
133
140
 
134
141
  **Key insight:** High-class = aspirated (puff of air) + rising tone ↗
135
142
 
136
- :::exercise{id="final-recognition" exerciseType="multiple-choice" title="Final Check"}
143
+ :::exercise{id="final-recognition" exerciseType="multiple-choice" title="Final Check" skill="character-class-identification" objectiveId="obj-rising-tone"}
137
144
  Which consonant class produces a rising tone?
138
145
  ?options: low-class, middle-class, high-class
139
146
  ?answer: 3
@@ -16,11 +16,20 @@ metadata:
16
16
  estimatedTime: 25
17
17
  prerequisites:
18
18
  - thai-script-lesson-03
19
- objectives:
20
- - "Learn 4 more high-class consonants"
21
- - "Understand TH and PH/F sound pairs"
22
- - "Complete your high-class consonant inventory"
23
- - "Practice distinguishing aspirated sounds"
19
+ learningObjectives:
20
+ - id: obj-high-consonants-2
21
+ description: "Learn 4 more high-class consonants"
22
+ skill: character-recognition
23
+ references: [bag, cymbals, bee, lid]
24
+ - id: obj-th-ph-sounds
25
+ description: "Understand TH and PH/F sound pairs"
26
+ skill: character-sound-mapping
27
+ - id: obj-complete-high
28
+ description: "Complete your high-class consonant inventory"
29
+ skill: character-recognition
30
+ - id: obj-aspirated-distinction
31
+ description: "Practice distinguishing aspirated sounds"
32
+ skill: character-sound-mapping
24
33
  ---
25
34
 
26
35
  # บทที่ 4 (Lesson 4) — High-Class Consonants II
@@ -46,13 +55,13 @@ The TH consonants all sound identical! The class determines tone, not sound qual
46
55
 
47
56
  :::character-set{id="thai-high-consonants-2" title="High-Class Consonants II"}
48
57
 
49
- ::character{id="th-bag" char="ถ" name="ถ ถุง (thɔ̌ɔ thǔng)" nativeName="ถ ถุง" transliteration="th/t" charType="consonant"}
58
+ ::character{id="bag" canonicalRef="bag" data:class="high" char="ถ" name="ถ ถุง (thɔ̌ɔ thǔng)" nativeName="ถ ถุง" transliteration="th/t" charType="consonant"}
50
59
 
51
- ::character{id="th-cymbals" char="ฉ" name="ฉ ฉิ่ง (chɔ̌ɔ chìng)" nativeName="ฉ ฉิ่ง" transliteration="ch/-" charType="consonant"}
60
+ ::character{id="cymbals" canonicalRef="cymbals" data:class="high" char="ฉ" name="ฉ ฉิ่ง (chɔ̌ɔ chìng)" nativeName="ฉ ฉิ่ง" transliteration="ch/-" charType="consonant"}
52
61
 
53
- ::character{id="th-bee" char="ผ" name="ผ ผึ้ง (phɔ̌ɔ phʉ̂ng)" nativeName="ผ ผึ้ง" transliteration="ph/-" charType="consonant"}
62
+ ::character{id="bee" canonicalRef="bee" data:class="high" char="ผ" name="ผ ผึ้ง (phɔ̌ɔ phʉ̂ng)" nativeName="ผ ผึ้ง" transliteration="ph/-" charType="consonant"}
54
63
 
55
- ::character{id="th-lid" char="ฝ" name="ฝ ฝา (fɔ̌ɔ fǎa)" nativeName="ฝ ฝา" transliteration="f/-" charType="consonant"}
64
+ ::character{id="lid" canonicalRef="lid" data:class="high" char="ฝ" name="ฝ ฝา (fɔ̌ɔ fǎa)" nativeName="ฝ ฝา" transliteration="f/-" charType="consonant"}
56
65
 
57
66
  :::
58
67
 
@@ -141,7 +150,7 @@ The remaining 4 (ฐ ศ ษ ฑ) are rare and will be covered in advanced lesso
141
150
 
142
151
  ## Practice Exercises
143
152
 
144
- :::exercise{id="high-2-matching" type="matching" title="Match Consonants to Mnemonics"}
153
+ :::exercise{id="high-2-matching" type="matching" title="Match Consonants to Mnemonics" skill="character-name-recall" tests="bag,cymbals,bee,lid" objectiveId="obj-high-consonants-2"}
145
154
 
146
155
  **Question:** Match each high-class consonant to its mnemonic word
147
156
 
@@ -161,7 +170,7 @@ The remaining 4 (ฐ ศ ษ ฑ) are rare and will be covered in advanced lesso
161
170
 
162
171
  :::
163
172
 
164
- :::exercise{id="high-2-sound-recognition" type="fill-in-blank" title="Sound Recognition"}
173
+ :::exercise{id="high-2-sound-recognition" type="fill-in-blank" title="Sound Recognition" skill="character-sound-mapping" tests="bag,cymbals,bee,lid" objectiveId="obj-th-ph-sounds"}
165
174
 
166
175
  **Question:** Which consonant makes each sound?
167
176
 
@@ -181,7 +190,7 @@ The remaining 4 (ฐ ศ ษ ฑ) are rare and will be covered in advanced lesso
181
190
 
182
191
  :::
183
192
 
184
- :::exercise{id="high-2-class-comparison" type="multiple-choice" title="Class Comparison"}
193
+ :::exercise{id="high-2-class-comparison" type="multiple-choice" title="Class Comparison" skill="character-class-identification" objectiveId="obj-aspirated-distinction"}
185
194
 
186
195
  **Question:** Which pair of consonants makes the same sound but belongs to different classes?
187
196
 
@@ -16,11 +16,21 @@ metadata:
16
16
  estimatedTime: 25
17
17
  prerequisites:
18
18
  - thai-script-lesson-04
19
- objectives:
20
- - "Learn 4 common low-class consonants"
21
- - "Understand low-class tone behavior"
22
- - "Compare paired consonants across classes"
23
- - "Practice the NG sound"
19
+ learningObjectives:
20
+ - id: obj-low-consonants-1
21
+ description: "Learn 4 common low-class consonants"
22
+ skill: character-recognition
23
+ references: [mouse, snake, ring, buffalo]
24
+ - id: obj-low-tone
25
+ description: "Understand low-class tone behavior"
26
+ skill: character-class-identification
27
+ - id: obj-paired-consonants
28
+ description: "Compare paired consonants across classes"
29
+ skill: character-class-identification
30
+ - id: obj-ng-sound
31
+ description: "Practice the NG sound"
32
+ skill: character-sound-mapping
33
+ references: [snake]
24
34
  ---
25
35
 
26
36
  # บทที่ 5 (Lesson 5) — Low-Class Consonants I
@@ -41,13 +51,13 @@ This makes low-class tone rules slightly more complex — but still predictable
41
51
 
42
52
  :::character-set{id="thai-low-consonants-1" title="Low-Class Consonants I"}
43
53
 
44
- ::character{id="th-mouse" char="น" name="น หนู (nɔɔ nǔu)" nativeName="น หนู" transliteration="n" charType="consonant"}
54
+ ::character{id="mouse" canonicalRef="mouse" data:class="low" char="น" name="น หนู (nɔɔ nǔu)" nativeName="น หนู" transliteration="n" charType="consonant"}
45
55
 
46
- ::character{id="th-snake" char="ง" name="ง งู (ngɔɔ nguu)" nativeName="ง งู" transliteration="ng" charType="consonant"}
56
+ ::character{id="snake" canonicalRef="snake" data:class="low" char="ง" name="ง งู (ngɔɔ nguu)" nativeName="ง งู" transliteration="ng" charType="consonant"}
47
57
 
48
- ::character{id="th-ring" char="ว" name="ว แหวน (wɔɔ wǎaen)" nativeName="ว แหวน" transliteration="w" charType="consonant"}
58
+ ::character{id="ring" canonicalRef="ring" data:class="low" char="ว" name="ว แหวน (wɔɔ wǎaen)" nativeName="ว แหวน" transliteration="w" charType="consonant"}
49
59
 
50
- ::character{id="th-buffalo" char="ค" name="ค ควาย (khɔɔ khwaai)" nativeName="ค ควาย" transliteration="kh/k" charType="consonant"}
60
+ ::character{id="buffalo" canonicalRef="buffalo" data:class="low" char="ค" name="ค ควาย (khɔɔ khwaai)" nativeName="ค ควาย" transliteration="kh/k" charType="consonant"}
51
61
 
52
62
  :::
53
63
 
@@ -132,7 +142,7 @@ All nasals are low-class. To get high-class tones with nasals, use ห:
132
142
 
133
143
  ## Practice Exercises
134
144
 
135
- :::exercise{id="low-1-ng-practice" type="fill-in-blank" title="NG Sound Practice"}
145
+ :::exercise{id="low-1-ng-practice" type="fill-in-blank" title="NG Sound Practice" skill="character-sound-mapping" tests="snake" objectiveId="obj-ng-sound"}
136
146
 
137
147
  **Question:** Practice the NG initial sound. Which word starts with NG?
138
148
 
@@ -146,7 +156,7 @@ All nasals are low-class. To get high-class tones with nasals, use ห:
146
156
 
147
157
  :::
148
158
 
149
- :::exercise{id="low-1-pairing" type="matching" title="Consonant Pairing"}
159
+ :::exercise{id="low-1-pairing" type="matching" title="Consonant Pairing" skill="character-class-identification" tests="buffalo,mouse,snake,ring" objectiveId="obj-paired-consonants"}
150
160
 
151
161
  **Question:** Match each low-class consonant with its high-class pair (if it has one)
152
162
 
@@ -166,7 +176,7 @@ All nasals are low-class. To get high-class tones with nasals, use ห:
166
176
 
167
177
  :::
168
178
 
169
- :::exercise{id="low-1-tone-comparison" type="multiple-choice" title="Tone Comparison"}
179
+ :::exercise{id="low-1-tone-comparison" type="multiple-choice" title="Tone Comparison" skill="character-class-identification" objectiveId="obj-low-tone"}
170
180
 
171
181
  **Question:** Which syllable has a mid tone in a live syllable (open ending)?
172
182
 
@@ -16,11 +16,20 @@ metadata:
16
16
  estimatedTime: 30
17
17
  prerequisites:
18
18
  - thai-script-lesson-05
19
- objectives:
20
- - "Learn 5 low-class consonants with high-class pairs"
21
- - "Master the paired consonant system"
22
- - "Understand why pairs matter for reading and spelling"
23
- - "Practice distinguishing by context"
19
+ learningObjectives:
20
+ - id: obj-low-consonants-2
21
+ description: "Learn 5 low-class consonants with high-class pairs"
22
+ skill: character-recognition
23
+ references: [elephant, chain, owl, tray, soldier]
24
+ - id: obj-paired-system
25
+ description: "Master the paired consonant system"
26
+ skill: character-class-identification
27
+ - id: obj-pairs-reading
28
+ description: "Understand why pairs matter for reading and spelling"
29
+ skill: character-class-identification
30
+ - id: obj-context-distinction
31
+ description: "Practice distinguishing by context"
32
+ skill: character-sound-mapping
24
33
  ---
25
34
 
26
35
  # บทที่ 6 (Lesson 6) — Low-Class Consonants II
@@ -52,15 +61,15 @@ This system seems complex, but it follows patterns!
52
61
 
53
62
  :::character-set{id="thai-low-consonants-2" title="Low-Class Consonants II"}
54
63
 
55
- ::character{id="th-elephant" char="ช" name="ช ช้าง (chɔɔ cháang)" nativeName="ช ช้าง" transliteration="ch/t" charType="consonant"}
64
+ ::character{id="elephant" canonicalRef="elephant" data:class="low" char="ช" name="ช ช้าง (chɔɔ cháang)" nativeName="ช ช้าง" transliteration="ch/t" charType="consonant"}
56
65
 
57
- ::character{id="th-chain" char="ซ" name="ซ โซ่ (sɔɔ sôo)" nativeName="ซ โซ่" transliteration="s/t" charType="consonant"}
66
+ ::character{id="chain" canonicalRef="chain" data:class="low" char="ซ" name="ซ โซ่ (sɔɔ sôo)" nativeName="ซ โซ่" transliteration="s/t" charType="consonant"}
58
67
 
59
- ::character{id="th-owl" char="ฮ" name="ฮ นกฮูก (hɔɔ nók-hûuk)" nativeName="ฮ นกฮูก" transliteration="h/-" charType="consonant"}
68
+ ::character{id="owl" canonicalRef="owl" data:class="low" char="ฮ" name="ฮ นกฮูก (hɔɔ nók-hûuk)" nativeName="ฮ นกฮูก" transliteration="h/-" charType="consonant"}
60
69
 
61
- ::character{id="th-tray" char="พ" name="พ พาน (phɔɔ phaan)" nativeName="พ พาน" transliteration="ph/p" charType="consonant"}
70
+ ::character{id="tray" canonicalRef="tray" data:class="low" char="พ" name="พ พาน (phɔɔ phaan)" nativeName="พ พาน" transliteration="ph/p" charType="consonant"}
62
71
 
63
- ::character{id="th-soldier" char="ท" name="ท ทหาร (thɔɔ thá-hǎan)" nativeName="ท ทหาร" transliteration="th/t" charType="consonant"}
72
+ ::character{id="soldier" canonicalRef="soldier" data:class="low" char="ท" name="ท ทหาร (thɔɔ thá-hǎan)" nativeName="ท ทหาร" transliteration="th/t" charType="consonant"}
64
73
 
65
74
  :::
66
75
 
@@ -156,7 +165,7 @@ For writing, you must memorize which variant to use. Some patterns help:
156
165
 
157
166
  ## Practice Exercises
158
167
 
159
- :::exercise{id="low-2-pair-recognition" type="matching" title="Recognize Consonant Pairs"}
168
+ :::exercise{id="low-2-pair-recognition" type="matching" title="Recognize Consonant Pairs" skill="character-class-identification" tests="elephant,chain,owl,tray,soldier" objectiveId="obj-paired-system"}
160
169
 
161
170
  **Question:** Match each low-class consonant with its high-class pair that makes the same sound
162
171
 
@@ -178,7 +187,7 @@ For writing, you must memorize which variant to use. Some patterns help:
178
187
 
179
188
  :::
180
189
 
181
- :::exercise{id="low-2-spelling-challenge" type="fill-in-blank" title="Spelling Challenge"}
190
+ :::exercise{id="low-2-spelling-challenge" type="fill-in-blank" title="Spelling Challenge" skill="character-sound-mapping" tests="elephant,chain,owl" objectiveId="obj-context-distinction"}
182
191
 
183
192
  **Question:** Which consonant would you use to spell these words? (Hint: memorize common words)
184
193
 
@@ -196,7 +205,7 @@ For writing, you must memorize which variant to use. Some patterns help:
196
205
 
197
206
  :::
198
207
 
199
- :::exercise{id="low-2-tone-prediction" type="multiple-choice" title="Tone Prediction"}
208
+ :::exercise{id="low-2-tone-prediction" type="multiple-choice" title="Tone Prediction" skill="character-class-identification" objectiveId="obj-pairs-reading"}
200
209
 
201
210
  **Question:** The word ซื้อ (to buy) has a high tone. Why?
202
211
 
@@ -17,11 +17,23 @@ metadata:
17
17
  estimatedTime: 30
18
18
  prerequisites:
19
19
  - thai-script-lesson-06
20
- objectives:
21
- - "Learn 6 more low-class consonants"
22
- - "Complete the PH/F and TH paired sets"
23
- - "Understand sonorant consonants in low-class"
24
- - "Practice reading with mixed consonant classes"
20
+ learningObjectives:
21
+ - id: obj-low3-recognition
22
+ description: "Learn 6 more low-class consonants"
23
+ skill: character-recognition
24
+ references: [flag, ship, tooth, horse, boat, monkey]
25
+ - id: obj-paired-sets
26
+ description: "Complete the PH/F and TH paired sets"
27
+ skill: character-class-identification
28
+ references: [flag, ship, tooth]
29
+ - id: obj-sonorant-class
30
+ description: "Understand sonorant consonants in low-class"
31
+ skill: character-class-identification
32
+ references: [horse, boat, monkey]
33
+ - id: obj-mixed-reading
34
+ description: "Practice reading with mixed consonant classes"
35
+ skill: character-sound-mapping
36
+ references: [flag, ship, tooth, horse, boat, monkey]
25
37
  ---
26
38
 
27
39
  # บทที่ 7 (Lesson 7) — Low-Class Consonants III
@@ -34,17 +46,17 @@ In this lesson, you'll complete the major paired consonants (TH, PH, F) and lear
34
46
 
35
47
  :::character-set{id="thai-low-consonants-3" title="Low-Class Consonants III"}
36
48
 
37
- ::character{id="th-flag" char="ธ" name="ธ ธง (thɔɔ thǒng)" nativeName="ธ ธง" transliteration="th/t" charType="consonant"}
49
+ ::character{id="flag" canonicalRef="flag" data:class="low" char="ธ" name="ธ ธง (thɔɔ thǒng)" nativeName="ธ ธง" transliteration="th/t" charType="consonant"}
38
50
 
39
- ::character{id="th-ship" char="ภ" name="ภ สำเภา (phɔɔ sǎm-phao)" nativeName="ภ สำเภา" transliteration="ph/p" charType="consonant"}
51
+ ::character{id="ship" canonicalRef="ship" data:class="low" char="ภ" name="ภ สำเภา (phɔɔ sǎm-phao)" nativeName="ภ สำเภา" transliteration="ph/p" charType="consonant"}
40
52
 
41
- ::character{id="th-tooth" char="ฟ" name="ฟ ฟัน (fɔɔ fan)" nativeName="ฟ ฟัน" transliteration="f/p" charType="consonant"}
53
+ ::character{id="tooth" canonicalRef="tooth" data:class="low" char="ฟ" name="ฟ ฟัน (fɔɔ fan)" nativeName="ฟ ฟัน" transliteration="f/p" charType="consonant"}
42
54
 
43
- ::character{id="th-horse" char="ม" name="ม ม้า (mɔɔ máa)" nativeName="ม ม้า" transliteration="m" charType="consonant"}
55
+ ::character{id="horse" canonicalRef="horse" data:class="low" char="ม" name="ม ม้า (mɔɔ máa)" nativeName="ม ม้า" transliteration="m" charType="consonant"}
44
56
 
45
- ::character{id="th-boat" char="ร" name="ร เรือ (rɔɔ rʉa)" nativeName="ร เรือ" transliteration="r/n" charType="consonant"}
57
+ ::character{id="boat" canonicalRef="boat" data:class="low" char="ร" name="ร เรือ (rɔɔ rʉa)" nativeName="ร เรือ" transliteration="r/n" charType="consonant"}
46
58
 
47
- ::character{id="th-monkey" char="ล" name="ล ลิง (lɔɔ ling)" nativeName="ล ลิง" transliteration="l/n" charType="consonant"}
59
+ ::character{id="monkey" canonicalRef="monkey" data:class="low" char="ล" name="ล ลิง (lɔɔ ling)" nativeName="ล ลิง" transliteration="l/n" charType="consonant"}
48
60
 
49
61
  :::
50
62
 
@@ -164,7 +176,7 @@ Example: ธุรกิจ (thú-rá-gìt) "business"
164
176
 
165
177
  ## Practice Exercises
166
178
 
167
- :::exercise{id="low-3-sonorant-recognition" type="fill-in-blank" title="Sonorant Recognition"}
179
+ :::exercise{id="low-3-sonorant-recognition" type="fill-in-blank" title="Sonorant Recognition" skill="character-class-identification" tests="horse,boat,monkey" objectiveId="obj-sonorant-class"}
168
180
 
169
181
  **Question:** Which consonants are sonorants (continuous airflow, never become stops)?
170
182
 
@@ -178,7 +190,7 @@ Example: ธุรกิจ (thú-rá-gìt) "business"
178
190
 
179
191
  :::
180
192
 
181
- :::exercise{id="low-3-final-sounds" type="matching" title="Final Position Sounds"}
193
+ :::exercise{id="low-3-final-sounds" type="matching" title="Final Position Sounds" skill="character-sound-mapping" tests="boat,monkey,tooth,flag" objectiveId="obj-mixed-reading"}
182
194
 
183
195
  **Question:** Match each consonant to its final position sound
184
196
 
@@ -198,7 +210,7 @@ Example: ธุรกิจ (thú-rá-gìt) "business"
198
210
 
199
211
  :::
200
212
 
201
- :::exercise{id="low-3-pair-completion" type="multiple-choice" title="Complete the Pair"}
213
+ :::exercise{id="low-3-pair-completion" type="multiple-choice" title="Complete the Pair" skill="character-class-identification" tests="tooth" objectiveId="obj-paired-sets"}
202
214
 
203
215
  **Question:** Which consonant pairs with ฝ (lid) to make the same F sound but different class?
204
216
 
@@ -16,11 +16,23 @@ metadata:
16
16
  estimatedTime: 25
17
17
  prerequisites:
18
18
  - thai-script-lesson-07
19
- objectives:
20
- - "Learn 4 Sanskrit-derived consonants"
21
- - "Understand when these rare consonants appear"
22
- - "Practice reading formal and loanwords"
23
- - "Distinguish multiple S consonants"
19
+ learningObjectives:
20
+ - id: obj-rare1-recognition
21
+ description: "Learn 4 Sanskrit-derived consonants"
22
+ skill: character-recognition
23
+ references: [woman, monk, pavilion, hermit]
24
+ - id: obj-rare-usage
25
+ description: "Understand when these rare consonants appear"
26
+ skill: character-class-identification
27
+ references: [woman, monk, pavilion, hermit]
28
+ - id: obj-formal-reading
29
+ description: "Practice reading formal and loanwords"
30
+ skill: character-sound-mapping
31
+ references: [woman, monk, pavilion, hermit]
32
+ - id: obj-s-consonants
33
+ description: "Distinguish multiple S consonants"
34
+ skill: character-recognition
35
+ references: [pavilion, hermit]
24
36
  ---
25
37
 
26
38
  # บทที่ 8 (Lesson 8) — Rare Consonants I
@@ -38,13 +50,13 @@ While less frequent, you'll encounter them in everyday Thai through common borro
38
50
 
39
51
  :::character-set{id="thai-rare-consonants-1" title="Rare Consonants I"}
40
52
 
41
- ::character{id="th-woman" char="ญ" name="ญ หญิง (yɔɔ yǐng)" nativeName="ญ หญิง" transliteration="y/n" charType="consonant"}
53
+ ::character{id="woman" canonicalRef="woman" data:class="low" char="ญ" name="ญ หญิง (yɔɔ yǐng)" nativeName="ญ หญิง" transliteration="y/n" charType="consonant"}
42
54
 
43
- ::character{id="th-monk" char="ณ" name="ณ เณร (nɔɔ neen)" nativeName="ณ เณร" transliteration="n" charType="consonant"}
55
+ ::character{id="monk" canonicalRef="monk" data:class="low" char="ณ" name="ณ เณร (nɔɔ neen)" nativeName="ณ เณร" transliteration="n" charType="consonant"}
44
56
 
45
- ::character{id="th-pavilion" char="ศ" name="ศ ศาลา (sɔ̌ɔ sǎa-laa)" nativeName="ศ ศาลา" transliteration="s/t" charType="consonant"}
57
+ ::character{id="pavilion" canonicalRef="pavilion" data:class="high" char="ศ" name="ศ ศาลา (sɔ̌ɔ sǎa-laa)" nativeName="ศ ศาลา" transliteration="s/t" charType="consonant"}
46
58
 
47
- ::character{id="th-hermit" char="ษ" name="ษ ฤๅษี (sɔ̌ɔ rʉʉ-sǐi)" nativeName="ษ ฤๅษี" transliteration="s/t" charType="consonant"}
59
+ ::character{id="hermit" canonicalRef="hermit" data:class="high" char="ษ" name="ษ ฤๅษี (sɔ̌ɔ rʉʉ-sǐi)" nativeName="ษ ฤๅษี" transliteration="s/t" charType="consonant"}
48
60
 
49
61
  :::
50
62
 
@@ -155,7 +167,7 @@ While you may not use royal language actively, you'll encounter it in formal con
155
167
 
156
168
  ## Practice Exercises
157
169
 
158
- :::exercise{id="rare-1-s-consonants" type="fill-in-blank" title="The Three S Consonants"}
170
+ :::exercise{id="rare-1-s-consonants" type="fill-in-blank" title="The Three S Consonants" skill="character-recognition" tests="pavilion,hermit" objectiveId="obj-s-consonants"}
159
171
 
160
172
  **Question:** Thai has three consonants all pronounced /s/ and all high-class. Which are they?
161
173
 
@@ -169,7 +181,7 @@ While you may not use royal language actively, you'll encounter it in formal con
169
181
 
170
182
  :::
171
183
 
172
- :::exercise{id="rare-1-yn-shift" type="multiple-choice" title="The ญ Sound Change"}
184
+ :::exercise{id="rare-1-yn-shift" type="multiple-choice" title="The ญ Sound Change" skill="character-sound-mapping" tests="woman" objectiveId="obj-formal-reading"}
173
185
 
174
186
  **Question:** The consonant ญ makes which sound(s)?
175
187
 
@@ -185,7 +197,7 @@ While you may not use royal language actively, you'll encounter it in formal con
185
197
 
186
198
  :::
187
199
 
188
- :::exercise{id="rare-1-formal-recognition" type="matching" title="Formal vs Everyday"}
200
+ :::exercise{id="rare-1-formal-recognition" type="matching" title="Formal vs Everyday" skill="character-recognition" tests="pavilion,woman" objectiveId="obj-rare-usage"}
189
201
 
190
202
  **Question:** Match each word to whether it uses rare consonants (formal) or common consonants (everyday)
191
203
 
@@ -16,11 +16,23 @@ metadata:
16
16
  estimatedTime: 20
17
17
  prerequisites:
18
18
  - thai-script-lesson-08
19
- objectives:
20
- - "Recognize obsolete Thai consonants"
21
- - "Understand why these characters exist"
22
- - "Know when you might encounter them"
23
- - "Complete your consonant recognition"
19
+ learningObjectives:
20
+ - id: obj-obsolete-recognition
21
+ description: "Recognize obsolete Thai consonants"
22
+ skill: character-recognition
23
+ references: [bottle, person]
24
+ - id: obj-archaic-existence
25
+ description: "Understand why these characters exist"
26
+ skill: character-class-identification
27
+ references: [bottle, person, bell, tree, headdress, goad]
28
+ - id: obj-archaic-encounter
29
+ description: "Know when you might encounter them"
30
+ skill: character-recognition
31
+ references: [bottle, person, bell, tree, headdress, goad]
32
+ - id: obj-complete-recognition
33
+ description: "Complete your consonant recognition"
34
+ skill: character-recognition
35
+ references: [bottle, person, bell, tree, headdress, goad]
24
36
  ---
25
37
 
26
38
  # บทที่ 9 (Lesson 9) — Archaic Consonants
@@ -39,17 +51,17 @@ Thai has **44 consonants** in its official alphabet, but not all are used equall
39
51
 
40
52
  :::character-set{id="thai-archaic-consonants" title="Archaic Consonants"}
41
53
 
42
- ::character{id="th-bottle" char="ฃ" name="ฃ ขวด (khɔ̌ɔ khùat)" nativeName="ฃ ขวด" transliteration="kh/k" charType="consonant"}
54
+ ::character{id="bottle" canonicalRef="bottle" data:class="high" char="ฃ" name="ฃ ขวด (khɔ̌ɔ khùat)" nativeName="ฃ ขวด" transliteration="kh/k" charType="consonant"}
43
55
 
44
- ::character{id="th-person" char="ฅ" name="ฅ คน (khɔɔ khon)" nativeName="ฅ คน" transliteration="kh/k" charType="consonant"}
56
+ ::character{id="person" canonicalRef="person" data:class="low" char="ฅ" name="ฅ คน (khɔɔ khon)" nativeName="ฅ คน" transliteration="kh/k" charType="consonant"}
45
57
 
46
- ::character{id="th-bell" char="ฆ" name="ฆ ระฆัง (khɔɔ rá-khang)" nativeName="ฆ ระฆัง" transliteration="kh/k" charType="consonant"}
58
+ ::character{id="bell" canonicalRef="bell" data:class="low" char="ฆ" name="ฆ ระฆัง (khɔɔ rá-khang)" nativeName="ฆ ระฆัง" transliteration="kh/k" charType="consonant"}
47
59
 
48
- ::character{id="th-tree" char="ฌ" name="ฌ เฌอ (chɔɔ chəə)" nativeName="ฌ เฌอ" transliteration="ch/t" charType="consonant"}
60
+ ::character{id="tree" canonicalRef="tree" data:class="low" char="ฌ" name="ฌ เฌอ (chɔɔ chəə)" nativeName="ฌ เฌอ" transliteration="ch/t" charType="consonant"}
49
61
 
50
- ::character{id="th-headdress" char="ฎ" name="ฎ ชฎา (dɔɔ chá-daa)" nativeName="ฎ ชฎา" transliteration="d/t" charType="consonant"}
62
+ ::character{id="headdress" canonicalRef="headdress" data:class="middle" char="ฎ" name="ฎ ชฎา (dɔɔ chá-daa)" nativeName="ฎ ชฎา" transliteration="d/t" charType="consonant"}
51
63
 
52
- ::character{id="th-goad" char="ฏ" name="ฏ ปฏัก (dtɔɔ bpà-dtàk)" nativeName="ฏ ปฏัก" transliteration="dt/t" charType="consonant"}
64
+ ::character{id="goad" canonicalRef="goad" data:class="middle" char="ฏ" name="ฏ ปฏัก (dtɔɔ bpà-dtàk)" nativeName="ฏ ปฏัก" transliteration="dt/t" charType="consonant"}
53
65
 
54
66
  :::
55
67
 
@@ -153,7 +165,7 @@ The meaning is identical; it's a spelling choice.
153
165
 
154
166
  ## Practice Exercises
155
167
 
156
- :::exercise{id="archaic-1-obsolete-recognition" type="matching" title="Obsolete Consonants"}
168
+ :::exercise{id="archaic-1-obsolete-recognition" type="matching" title="Obsolete Consonants" skill="character-recognition" tests="bottle,person" objectiveId="obj-obsolete-recognition"}
157
169
 
158
170
  **Question:** Match each obsolete consonant to its modern replacement
159
171
 
@@ -169,7 +181,7 @@ The meaning is identical; it's a spelling choice.
169
181
 
170
182
  :::
171
183
 
172
- :::exercise{id="archaic-1-class-identification" type="multiple-choice" title="Consonant Class Identification"}
184
+ :::exercise{id="archaic-1-class-identification" type="multiple-choice" title="Consonant Class Identification" skill="character-class-identification" tests="headdress,goad" objectiveId="obj-archaic-existence"}
173
185
 
174
186
  **Question:** Which of these archaic consonants is middle-class (important for tone rules)?
175
187
 
@@ -185,7 +197,7 @@ The meaning is identical; it's a spelling choice.
185
197
 
186
198
  :::
187
199
 
188
- :::exercise{id="archaic-1-reading-strategy" type="fill-in-blank" title="Reading Strategy"}
200
+ :::exercise{id="archaic-1-reading-strategy" type="fill-in-blank" title="Reading Strategy" skill="character-recognition" tests="bottle,person,bell,tree,headdress,goad" objectiveId="obj-complete-recognition"}
189
201
 
190
202
  **Question:** When you encounter archaic consonants while reading, what should you do?
191
203