=== SAVED CAST: moonless_12_s71 ===
Normalized points: 63
Raw points: N/A

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.7853, 1.0000)
  [ 1]  (0.7483, 0.8477)
  [ 2]  (0.7108, 0.6955)
  [ 3]  (0.6771, 0.5478)
  [ 4]  (0.8302, 0.5814)
  [ 5]  (0.8517, 0.4613)
  [ 6]  (0.8209, 0.3080)
  [ 7]  (0.7846, 0.1556)
  [ 8]  (0.7652, 0.0000)
  [ 9]  (0.7853, 0.5429)
  [10]  (0.6953, 0.5583)
  [11]  (0.6054, 0.5738)
  [12]  (0.5154, 0.5892)
  [13]  (0.4254, 0.6046)
  [14]  (0.3354, 0.6200)
  [15]  (0.2451, 0.6333)
  [16]  (0.1542, 0.6409)
  [17]  (0.0632, 0.6485)
  [18]  (0.7853, 0.3755)
  [19]  (0.7879, 0.4295)
  [20]  (0.7610, 0.4526)
  [21]  (0.7071, 0.4475)
  [22]  (0.6533, 0.4424)
  [23]  (0.5995, 0.4373)
  [24]  (0.5792, 0.4073)
  [25]  (0.5901, 0.3545)
  [26]  (0.6418, 0.3389)
  [27]  (0.7853, 0.3552)
  [28]  (0.8160, 0.3716)
  [29]  (0.8467, 0.3880)
  [30]  (0.8414, 0.4164)
  [31]  (0.8268, 0.4480)
  [32]  (0.7951, 0.4433)
  [33]  (0.7615, 0.4345)
  [34]  (0.7590, 0.4109)
  [35]  (0.7735, 0.3793)
  [36]  (0.7853, 0.3995)
  [37]  (0.8430, 0.4045)
  [38]  (0.8927, 0.4344)
  [39]  (0.8556, 0.4550)
  [40]  (0.7975, 0.4533)
  [41]  (0.7394, 0.4515)
  [42]  (0.7521, 0.4160)
  [43]  (0.8060, 0.3942)
  [44]  (0.8092, 0.3995)
  [45]  (0.7853, 0.9430)
  [46]  (0.7289, 0.8955)
  [47]  (0.6724, 0.8481)
  [48]  (0.6227, 0.7936)
  [49]  (0.5740, 0.7383)
  [50]  (0.5253, 0.6829)
  [51]  (0.4874, 0.6219)
  [52]  (0.4700, 0.5502)
  [53]  (0.5295, 0.5109)
  [54]  (0.7853, 0.5631)
  [55]  (0.8851, 0.5922)
  [56]  (0.8875, 0.6605)
  [57]  (0.7992, 0.6756)
  [58]  (0.7618, 0.6415)
  [59]  (0.8401, 0.5731)
  [60]  (0.9368, 0.5627)
  [61]  (0.9145, 0.5804)
  [62]  (0.8130, 0.6025)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.6771, 0.5478)  angle=115.2 deg
  V1  (0.8302, 0.5814)  angle=92.2 deg
  V2  (0.7652, 0.0000)  angle=175.0 deg
  V3  (0.7853, 0.5429)  angle=82.4 deg
  V4  (0.0632, 0.6485)  angle=164.1 deg
  V5  (0.7853, 0.3755)  angle=108.0 deg
  V6  (0.7879, 0.4295)  angle=52.0 deg
  V7  (0.7610, 0.4526)  angle=46.1 deg
  V8  (0.5995, 0.4373)  angle=50.5 deg
  V9  (0.5792, 0.4073)  angle=45.7 deg
  V10  (0.5901, 0.3545)  angle=61.6 deg
  V11  (0.8467, 0.3880)  angle=72.4 deg
  V12  (0.8268, 0.4480)  angle=73.6 deg
  V13  (0.7615, 0.4345)  angle=69.2 deg
  V14  (0.7590, 0.4109)  angle=30.7 deg
  V15  (0.7735, 0.3793)  angle=125.0 deg
  V16  (0.7853, 0.3995)  angle=54.8 deg
  V17  (0.8927, 0.4344)  angle=120.1 deg
  V18  (0.8556, 0.4550)  angle=30.6 deg
  V19  (0.7394, 0.4515)  angle=108.0 deg
  V20  (0.7521, 0.4160)  angle=48.4 deg
  V21  (0.8060, 0.3942)  angle=80.8 deg
  V22  (0.8092, 0.3995)  angle=33.7 deg
  V23  (0.7853, 0.9430)  angle=127.5 deg
  V24  (0.4700, 0.5502)  angle=70.1 deg
  V25  (0.5295, 0.5109)  angle=45.0 deg
  V26  (0.8851, 0.5922)  angle=71.7 deg
  V27  (0.8875, 0.6605)  angle=82.4 deg
  V28  (0.7992, 0.6756)  angle=52.0 deg
  V29  (0.7618, 0.6415)  angle=96.5 deg
  V30  (0.8401, 0.5731)  angle=35.0 deg
  V31  (0.9368, 0.5627)  angle=147.7 deg

--- SUGGESTED DOT TEMPLATE FORMAT ---
// Paste into SpellGestureTracker.java getDotTemplates():
new DotTemplate(DetectedPattern.SPELL_NAME, "description",
    new double[][] {
        // pick key dots from vertices above
    },
    new int[][] {
        // define connections between dots
    }
),
