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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.7243, 0.9202)
  [ 1]  (0.6952, 0.7677)
  [ 2]  (0.6739, 0.6142)
  [ 3]  (0.7720, 0.5793)
  [ 4]  (0.9215, 0.6193)
  [ 5]  (0.9970, 0.5427)
  [ 6]  (1.0000, 0.3881)
  [ 7]  (0.9841, 0.2337)
  [ 8]  (0.9641, 0.0798)
  [ 9]  (0.7243, 0.5845)
  [10]  (0.6391, 0.6041)
  [11]  (0.5479, 0.6065)
  [12]  (0.4566, 0.6069)
  [13]  (0.3652, 0.6065)
  [14]  (0.2739, 0.6054)
  [15]  (0.1826, 0.6046)
  [16]  (0.0913, 0.6038)
  [17]  (0.0000, 0.6046)
  [18]  (0.7243, 0.3782)
  [19]  (0.7650, 0.4062)
  [20]  (0.7892, 0.4473)
  [21]  (0.7530, 0.4682)
  [22]  (0.7068, 0.4669)
  [23]  (0.6680, 0.4425)
  [24]  (0.6571, 0.3943)
  [25]  (0.6917, 0.3610)
  [26]  (0.7379, 0.3592)
  [27]  (0.7243, 0.3810)
  [28]  (0.7720, 0.3942)
  [29]  (0.8152, 0.4150)
  [30]  (0.8388, 0.4537)
  [31]  (0.8065, 0.4785)
  [32]  (0.7618, 0.4738)
  [33]  (0.7360, 0.4379)
  [34]  (0.7555, 0.3924)
  [35]  (0.7757, 0.4001)
  [36]  (0.7243, 0.4057)
  [37]  (0.7596, 0.4171)
  [38]  (0.7893, 0.4406)
  [39]  (0.7870, 0.4794)
  [40]  (0.7548, 0.4959)
  [41]  (0.7240, 0.4770)
  [42]  (0.7152, 0.4430)
  [43]  (0.7370, 0.4169)
  [44]  (0.7541, 0.4436)
  [45]  (0.7243, 0.8668)
  [46]  (0.6696, 0.8195)
  [47]  (0.6254, 0.7629)
  [48]  (0.5885, 0.7010)
  [49]  (0.5626, 0.6334)
  [50]  (0.5405, 0.5645)
  [51]  (0.5268, 0.4936)
  [52]  (0.5176, 0.4219)
  [53]  (0.5176, 0.3495)
  [54]  (0.7243, 0.5629)
  [55]  (0.7552, 0.5806)
  [56]  (0.7760, 0.6096)
  [57]  (0.7572, 0.6282)
  [58]  (0.7246, 0.6239)
  [59]  (0.6918, 0.6097)
  [60]  (0.6944, 0.5814)
  [61]  (0.7213, 0.5662)
  [62]  (0.7569, 0.5629)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.6739, 0.6142)  angle=78.3 deg
  V1  (0.7720, 0.5793)  angle=34.6 deg
  V2  (0.9215, 0.6193)  angle=60.5 deg
  V3  (0.9970, 0.5427)  angle=43.4 deg
  V4  (0.9641, 0.0798)  angle=147.2 deg
  V5  (0.7243, 0.5845)  angle=51.6 deg
  V6  (0.0000, 0.6046)  angle=163.1 deg
  V7  (0.7243, 0.3782)  angle=51.9 deg
  V8  (0.7892, 0.4473)  angle=90.5 deg
  V9  (0.7530, 0.4682)  angle=31.7 deg
  V10  (0.7068, 0.4669)  angle=30.5 deg
  V11  (0.6680, 0.4425)  angle=45.2 deg
  V12  (0.6571, 0.3943)  angle=58.7 deg
  V13  (0.6917, 0.3610)  angle=41.8 deg
  V14  (0.7379, 0.3592)  angle=124.0 deg
  V15  (0.7243, 0.3810)  angle=106.3 deg
  V16  (0.8152, 0.4150)  angle=32.9 deg
  V17  (0.8388, 0.4537)  angle=83.7 deg
  V18  (0.8065, 0.4785)  angle=43.6 deg
  V19  (0.7618, 0.4738)  angle=48.4 deg
  V20  (0.7360, 0.4379)  angle=58.8 deg
  V21  (0.7555, 0.3924)  angle=87.6 deg
  V22  (0.7757, 0.4001)  angle=153.1 deg
  V23  (0.7243, 0.4057)  angle=155.7 deg
  V24  (0.7893, 0.4406)  angle=55.1 deg
  V25  (0.7870, 0.4794)  angle=59.5 deg
  V26  (0.7548, 0.4959)  angle=58.6 deg
  V27  (0.7240, 0.4770)  angle=44.1 deg
  V28  (0.7152, 0.4430)  angle=54.2 deg
  V29  (0.7370, 0.4169)  angle=107.5 deg
  V30  (0.7541, 0.4436)  angle=36.7 deg
  V31  (0.7243, 0.8668)  angle=126.8 deg
  V32  (0.5176, 0.3495)  angle=135.9 deg
  V33  (0.7760, 0.6096)  angle=81.1 deg
  V34  (0.7572, 0.6282)  angle=52.0 deg
  V35  (0.6918, 0.6097)  angle=71.8 deg
  V36  (0.6944, 0.5814)  angle=55.3 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
    }
),
