=== SAVED CAST: echo_3_s81 ===
Normalized points: 64
Raw points: N/A

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.7520, 0.3575)
  [ 1]  (0.7846, 0.5376)
  [ 2]  (0.7946, 0.7200)
  [ 3]  (0.7994, 0.9030)
  [ 4]  (0.6710, 0.9531)
  [ 5]  (0.4881, 0.9587)
  [ 6]  (0.3053, 0.9686)
  [ 7]  (0.1224, 0.9776)
  [ 8]  (0.7520, 0.3764)
  [ 9]  (0.8207, 0.4093)
  [10]  (0.8776, 0.4617)
  [11]  (0.8442, 0.5309)
  [12]  (0.7679, 0.5374)
  [13]  (0.7213, 0.4852)
  [14]  (0.7456, 0.4151)
  [15]  (0.8181, 0.4019)
  [16]  (0.7520, 1.0000)
  [17]  (0.6937, 0.8788)
  [18]  (0.6222, 0.7638)
  [19]  (0.5592, 0.6448)
  [20]  (0.5764, 0.5273)
  [21]  (0.7037, 0.4821)
  [22]  (0.7506, 0.3636)
  [23]  (0.7424, 0.2284)
  [24]  (0.7520, 0.0000)
  [25]  (0.8058, 0.0138)
  [26]  (0.8214, 0.0677)
  [27]  (0.8002, 0.1088)
  [28]  (0.7516, 0.1186)
  [29]  (0.7163, 0.0859)
  [30]  (0.7287, 0.0416)
  [31]  (0.7552, 0.0607)
  [32]  (0.7520, 0.8509)
  [33]  (0.7511, 0.8343)
  [34]  (0.7393, 0.7626)
  [35]  (0.7275, 0.6908)
  [36]  (0.7163, 0.6191)
  [37]  (0.7090, 0.5468)
  [38]  (0.7016, 0.4745)
  [39]  (0.7016, 0.4018)
  [40]  (0.7520, 0.3828)
  [41]  (0.6867, 0.3868)
  [42]  (0.6213, 0.3893)
  [43]  (0.5558, 0.3898)
  [44]  (0.4904, 0.3902)
  [45]  (0.4249, 0.3907)
  [46]  (0.3595, 0.3912)
  [47]  (0.2941, 0.3886)
  [48]  (0.7520, 0.1906)
  [49]  (0.7160, 0.1840)
  [50]  (0.6797, 0.1802)
  [51]  (0.6433, 0.1763)
  [52]  (0.6069, 0.1724)
  [53]  (0.5706, 0.1686)
  [54]  (0.5343, 0.1635)
  [55]  (0.4987, 0.1677)
  [56]  (0.7520, 0.8440)
  [57]  (0.7114, 0.7339)
  [58]  (0.6460, 0.6326)
  [59]  (0.5783, 0.5330)
  [60]  (0.5019, 0.4397)
  [61]  (0.5595, 0.3826)
  [62]  (0.6762, 0.3542)
  [63]  (0.7960, 0.3417)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.7994, 0.9030)  angle=70.2 deg
  V1  (0.1224, 0.9776)  angle=139.2 deg
  V2  (0.7520, 0.3764)  angle=69.3 deg
  V3  (0.8776, 0.4617)  angle=73.2 deg
  V4  (0.8442, 0.5309)  angle=59.3 deg
  V5  (0.7679, 0.5374)  angle=53.1 deg
  V6  (0.7213, 0.4852)  angle=60.8 deg
  V7  (0.7456, 0.4151)  angle=60.6 deg
  V8  (0.8181, 0.4019)  angle=106.7 deg
  V9  (0.7520, 1.0000)  angle=148.0 deg
  V10  (0.5592, 0.6448)  angle=36.2 deg
  V11  (0.5764, 0.5273)  angle=62.1 deg
  V12  (0.7037, 0.4821)  angle=48.9 deg
  V13  (0.7520, 0.0000)  angle=102.0 deg
  V14  (0.8058, 0.0138)  angle=59.4 deg
  V15  (0.8214, 0.0677)  angle=43.5 deg
  V16  (0.8002, 0.1088)  angle=51.3 deg
  V17  (0.7516, 0.1186)  angle=54.1 deg
  V18  (0.7163, 0.0859)  angle=62.9 deg
  V19  (0.7287, 0.0416)  angle=110.2 deg
  V20  (0.7552, 0.0607)  angle=54.4 deg
  V21  (0.7520, 0.8509)  angle=176.8 deg
  V22  (0.7016, 0.4018)  angle=69.3 deg
  V23  (0.7520, 0.3828)  angle=162.8 deg
  V24  (0.2941, 0.3886)  angle=154.4 deg
  V25  (0.7520, 0.1906)  angle=146.3 deg
  V26  (0.4987, 0.1677)  angle=103.9 deg
  V27  (0.7520, 0.8440)  angle=179.7 deg
  V28  (0.5019, 0.4397)  angle=84.6 deg
  V29  (0.5595, 0.3826)  angle=31.1 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
    }
),
