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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.7760, 0.9547)
  [ 1]  (0.7410, 0.7977)
  [ 2]  (0.7350, 0.6371)
  [ 3]  (0.7830, 0.4900)
  [ 4]  (0.9198, 0.5474)
  [ 5]  (0.9979, 0.5191)
  [ 6]  (1.0000, 0.3582)
  [ 7]  (0.9978, 0.1979)
  [ 8]  (0.9469, 0.0453)
  [ 9]  (0.7760, 0.4752)
  [10]  (0.6679, 0.4814)
  [11]  (0.5595, 0.4823)
  [12]  (0.4512, 0.4832)
  [13]  (0.3428, 0.4838)
  [14]  (0.2346, 0.4782)
  [15]  (0.1263, 0.4726)
  [16]  (0.0181, 0.4670)
  [17]  (0.0000, 0.4188)
  [18]  (0.7760, 0.2068)
  [19]  (0.8180, 0.2312)
  [20]  (0.8600, 0.2557)
  [21]  (0.8626, 0.2887)
  [22]  (0.8245, 0.2882)
  [23]  (0.7811, 0.2663)
  [24]  (0.7602, 0.2314)
  [25]  (0.7795, 0.1990)
  [26]  (0.7676, 0.2127)
  [27]  (0.7760, 0.2370)
  [28]  (0.7760, 0.2907)
  [29]  (0.7436, 0.3075)
  [30]  (0.6903, 0.3003)
  [31]  (0.6371, 0.2932)
  [32]  (0.6134, 0.2655)
  [33]  (0.6262, 0.2143)
  [34]  (0.6798, 0.2181)
  [35]  (0.6367, 0.2418)
  [36]  (0.7760, 0.2401)
  [37]  (0.8077, 0.2581)
  [38]  (0.8394, 0.2761)
  [39]  (0.8272, 0.3046)
  [40]  (0.8038, 0.3216)
  [41]  (0.7717, 0.3042)
  [42]  (0.7397, 0.2868)
  [43]  (0.7522, 0.2567)
  [44]  (0.7703, 0.2250)
  [45]  (0.7760, 0.7943)
  [46]  (0.6833, 0.7482)
  [47]  (0.5907, 0.7021)
  [48]  (0.5136, 0.6341)
  [49]  (0.4392, 0.5620)
  [50]  (0.3913, 0.4809)
  [51]  (0.4052, 0.3783)
  [52]  (0.4191, 0.2758)
  [53]  (0.4636, 0.1843)
  [54]  (0.7760, 0.4810)
  [55]  (0.7663, 0.5149)
  [56]  (0.7380, 0.5102)
  [57]  (0.7054, 0.4967)
  [58]  (0.6729, 0.4833)
  [59]  (0.6614, 0.4572)
  [60]  (0.6647, 0.4221)
  [61]  (0.6966, 0.4283)
  [62]  (0.7306, 0.4375)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.7830, 0.4900)  angle=94.7 deg
  V1  (0.9198, 0.5474)  angle=42.7 deg
  V2  (0.9979, 0.5191)  angle=69.3 deg
  V3  (0.9469, 0.0453)  angle=139.9 deg
  V4  (0.7760, 0.4752)  angle=65.0 deg
  V5  (0.0181, 0.4670)  angle=66.4 deg
  V6  (0.0000, 0.4188)  angle=95.3 deg
  V7  (0.7760, 0.2068)  angle=45.5 deg
  V8  (0.8600, 0.2557)  angle=55.3 deg
  V9  (0.8626, 0.2887)  angle=95.2 deg
  V10  (0.7811, 0.2663)  angle=32.2 deg
  V11  (0.7602, 0.2314)  angle=61.9 deg
  V12  (0.7795, 0.1990)  angle=169.7 deg
  V13  (0.7676, 0.2127)  angle=60.3 deg
  V14  (0.7760, 0.2907)  angle=62.7 deg
  V15  (0.7436, 0.3075)  angle=34.9 deg
  V16  (0.6371, 0.2932)  angle=41.8 deg
  V17  (0.6134, 0.2655)  angle=54.6 deg
  V18  (0.6262, 0.2143)  angle=80.0 deg
  V19  (0.6798, 0.2181)  angle=147.1 deg
  V20  (0.6367, 0.2418)  angle=151.9 deg
  V21  (0.7760, 0.2401)  angle=30.3 deg
  V22  (0.8394, 0.2761)  angle=83.5 deg
  V23  (0.8272, 0.3046)  angle=31.0 deg
  V24  (0.8038, 0.3216)  angle=64.4 deg
  V25  (0.7397, 0.2868)  angle=84.0 deg
  V26  (0.7703, 0.2250)  angle=149.8 deg
  V27  (0.7760, 0.7943)  angle=117.0 deg
  V28  (0.3913, 0.4809)  angle=38.3 deg
  V29  (0.4636, 0.1843)  angle=107.6 deg
  V30  (0.7760, 0.4810)  angle=62.4 deg
  V31  (0.7663, 0.5149)  angle=83.5 deg
  V32  (0.6729, 0.4833)  angle=43.7 deg
  V33  (0.6647, 0.4221)  angle=95.5 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
    }
),
