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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.6928, 1.0000)
  [ 1]  (0.6136, 0.8342)
  [ 2]  (0.5835, 0.6562)
  [ 3]  (0.6087, 0.5014)
  [ 4]  (0.7813, 0.5477)
  [ 5]  (0.8999, 0.5362)
  [ 6]  (0.8721, 0.3548)
  [ 7]  (0.8362, 0.1751)
  [ 8]  (0.7806, 0.0000)
  [ 9]  (0.6928, 0.5659)
  [10]  (0.6153, 0.5644)
  [11]  (0.5379, 0.5629)
  [12]  (0.4605, 0.5614)
  [13]  (0.3831, 0.5605)
  [14]  (0.3057, 0.5603)
  [15]  (0.2282, 0.5602)
  [16]  (0.1508, 0.5600)
  [17]  (0.1001, 0.5368)
  [18]  (0.6928, 0.3203)
  [19]  (0.6808, 0.3784)
  [20]  (0.6488, 0.4103)
  [21]  (0.5896, 0.4065)
  [22]  (0.5543, 0.3774)
  [23]  (0.5471, 0.3185)
  [24]  (0.5873, 0.2931)
  [25]  (0.6452, 0.2800)
  [26]  (0.6426, 0.3202)
  [27]  (0.6928, 0.3203)
  [28]  (0.7451, 0.3465)
  [29]  (0.7653, 0.3816)
  [30]  (0.7338, 0.4309)
  [31]  (0.6830, 0.4270)
  [32]  (0.6272, 0.4092)
  [33]  (0.6350, 0.3651)
  [34]  (0.6662, 0.3214)
  [35]  (0.7241, 0.3301)
  [36]  (0.6928, 0.3401)
  [37]  (0.7473, 0.3505)
  [38]  (0.7953, 0.3676)
  [39]  (0.8084, 0.4216)
  [40]  (0.7729, 0.4375)
  [41]  (0.7174, 0.4377)
  [42]  (0.6896, 0.4102)
  [43]  (0.6896, 0.3547)
  [44]  (0.7431, 0.3464)
  [45]  (0.6928, 0.9242)
  [46]  (0.6218, 0.8621)
  [47]  (0.5438, 0.8079)
  [48]  (0.4716, 0.7473)
  [49]  (0.4093, 0.6756)
  [50]  (0.3470, 0.6040)
  [51]  (0.3462, 0.5100)
  [52]  (0.3478, 0.4150)
  [53]  (0.3607, 0.3210)
  [54]  (0.6928, 0.5691)
  [55]  (0.7408, 0.6216)
  [56]  (0.7336, 0.6648)
  [57]  (0.6720, 0.6907)
  [58]  (0.6200, 0.6420)
  [59]  (0.6063, 0.5900)
  [60]  (0.6488, 0.5329)
  [61]  (0.7156, 0.5213)
  [62]  (0.7868, 0.5177)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.6087, 0.5014)  angle=95.8 deg
  V1  (0.8999, 0.5362)  angle=93.2 deg
  V2  (0.7806, 0.0000)  angle=153.6 deg
  V3  (0.6928, 0.5659)  angle=82.3 deg
  V4  (0.1001, 0.5368)  angle=135.3 deg
  V5  (0.6928, 0.3203)  angle=121.7 deg
  V6  (0.6808, 0.3784)  angle=33.5 deg
  V7  (0.6488, 0.4103)  angle=48.5 deg
  V8  (0.5896, 0.4065)  angle=35.9 deg
  V9  (0.5543, 0.3774)  angle=43.5 deg
  V10  (0.5471, 0.3185)  angle=64.7 deg
  V11  (0.6452, 0.2800)  angle=106.3 deg
  V12  (0.6426, 0.3202)  angle=93.4 deg
  V13  (0.7451, 0.3465)  angle=33.4 deg
  V14  (0.7653, 0.3816)  angle=62.6 deg
  V15  (0.7338, 0.4309)  angle=61.8 deg
  V16  (0.6272, 0.4092)  angle=82.3 deg
  V17  (0.6662, 0.3214)  angle=63.0 deg
  V18  (0.7241, 0.3301)  angle=153.7 deg
  V19  (0.6928, 0.3401)  angle=151.4 deg
  V20  (0.7953, 0.3676)  angle=56.8 deg
  V21  (0.8084, 0.4216)  angle=79.5 deg
  V22  (0.7174, 0.4377)  angle=45.0 deg
  V23  (0.6896, 0.4102)  angle=45.3 deg
  V24  (0.6896, 0.3547)  angle=81.2 deg
  V25  (0.7431, 0.3464)  angle=103.8 deg
  V26  (0.6928, 0.9242)  angle=126.2 deg
  V27  (0.3470, 0.6040)  angle=40.5 deg
  V28  (0.3607, 0.3210)  angle=119.0 deg
  V29  (0.7408, 0.6216)  angle=51.9 deg
  V30  (0.7336, 0.6648)  angle=57.7 deg
  V31  (0.6720, 0.6907)  angle=65.9 deg
  V32  (0.6200, 0.6420)  angle=32.1 deg
  V33  (0.6063, 0.5900)  angle=51.5 deg
  V34  (0.6488, 0.5329)  angle=43.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
    }
),
