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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.9525, 0.7530)
  [ 1]  (0.7748, 0.8388)
  [ 2]  (0.5671, 0.8806)
  [ 3]  (0.3571, 0.9067)
  [ 4]  (0.1718, 0.8875)
  [ 5]  (0.0837, 0.6963)
  [ 6]  (0.0391, 0.4892)
  [ 7]  (0.0129, 0.2796)
  [ 8]  (0.0000, 0.0682)
  [ 9]  (0.9525, 0.3357)
  [10]  (0.9888, 0.3964)
  [11]  (1.0000, 0.4551)
  [12]  (0.9536, 0.5065)
  [13]  (0.8859, 0.4857)
  [14]  (0.8232, 0.4618)
  [15]  (0.8320, 0.3915)
  [16]  (0.8956, 0.3788)
  [17]  (0.9661, 0.3733)
  [18]  (0.9525, 0.7460)
  [19]  (0.8647, 0.7644)
  [20]  (0.7733, 0.7651)
  [21]  (0.6820, 0.7658)
  [22]  (0.5907, 0.7663)
  [23]  (0.4994, 0.7634)
  [24]  (0.4081, 0.7605)
  [25]  (0.3168, 0.7576)
  [26]  (0.2859, 0.7039)
  [27]  (0.9525, 0.4315)
  [28]  (0.9780, 0.4688)
  [29]  (0.9473, 0.4795)
  [30]  (0.9023, 0.4835)
  [31]  (0.8586, 0.4820)
  [32]  (0.8191, 0.4601)
  [33]  (0.8310, 0.4376)
  [34]  (0.8700, 0.4149)
  [35]  (0.9150, 0.4144)
  [36]  (0.9525, 0.4522)
  [37]  (0.9494, 0.4870)
  [38]  (0.9172, 0.4881)
  [39]  (0.8822, 0.4859)
  [40]  (0.8473, 0.4838)
  [41]  (0.8397, 0.4560)
  [42]  (0.8629, 0.4376)
  [43]  (0.8893, 0.4330)
  [44]  (0.8775, 0.4660)
  [45]  (0.9525, 0.9318)
  [46]  (0.8665, 0.8344)
  [47]  (0.7817, 0.7358)
  [48]  (0.6975, 0.6368)
  [49]  (0.6104, 0.5404)
  [50]  (0.5224, 0.4447)
  [51]  (0.4778, 0.3243)
  [52]  (0.5224, 0.2210)
  [53]  (0.6366, 0.1642)
  [54]  (0.9525, 0.4040)
  [55]  (0.9476, 0.4398)
  [56]  (0.9428, 0.4756)
  [57]  (0.9103, 0.4787)
  [58]  (0.8742, 0.4775)
  [59]  (0.8437, 0.4685)
  [60]  (0.8317, 0.4344)
  [61]  (0.8557, 0.4144)
  [62]  (0.8876, 0.3974)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.1718, 0.8875)  angle=59.3 deg
  V1  (0.0000, 0.0682)  angle=109.2 deg
  V2  (0.9525, 0.3357)  angle=43.5 deg
  V3  (1.0000, 0.4551)  angle=52.9 deg
  V4  (0.9536, 0.5065)  angle=65.0 deg
  V5  (0.8232, 0.4618)  angle=76.3 deg
  V6  (0.8320, 0.3915)  angle=71.5 deg
  V7  (0.9661, 0.3733)  angle=96.5 deg
  V8  (0.9525, 0.7460)  angle=76.1 deg
  V9  (0.3168, 0.7576)  angle=58.3 deg
  V10  (0.2859, 0.7039)  angle=97.7 deg
  V11  (0.9525, 0.4315)  angle=77.9 deg
  V12  (0.9780, 0.4688)  angle=105.1 deg
  V13  (0.8191, 0.4601)  angle=89.0 deg
  V14  (0.8310, 0.4376)  angle=31.7 deg
  V15  (0.9150, 0.4144)  angle=45.7 deg
  V16  (0.9525, 0.4522)  angle=50.0 deg
  V17  (0.9494, 0.4870)  angle=82.9 deg
  V18  (0.8473, 0.4838)  angle=71.2 deg
  V19  (0.8397, 0.4560)  angle=67.0 deg
  V20  (0.8893, 0.4330)  angle=119.6 deg
  V21  (0.9525, 0.9318)  angle=147.7 deg
  V22  (0.4778, 0.3243)  angle=43.7 deg
  V23  (0.5224, 0.2210)  angle=40.2 deg
  V24  (0.6366, 0.1642)  angle=63.6 deg
  V25  (0.9525, 0.4040)  angle=60.6 deg
  V26  (0.9428, 0.4756)  angle=76.8 deg
  V27  (0.8437, 0.4685)  angle=54.0 deg
  V28  (0.8317, 0.4344)  angle=69.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
    }
),
