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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.8761, 0.9348)
  [ 1]  (0.6092, 0.9657)
  [ 2]  (0.3410, 0.9834)
  [ 3]  (0.0728, 1.0000)
  [ 4]  (0.0431, 0.8841)
  [ 5]  (0.2531, 0.7223)
  [ 6]  (0.4026, 0.5475)
  [ 7]  (0.4086, 0.2789)
  [ 8]  (0.4101, 0.0102)
  [ 9]  (0.8761, 0.0000)
  [10]  (0.8761, 0.1048)
  [11]  (0.8761, 0.2096)
  [12]  (0.8761, 0.3144)
  [13]  (0.8761, 0.4192)
  [14]  (0.8761, 0.5240)
  [15]  (0.8761, 0.6289)
  [16]  (0.8672, 0.7332)
  [17]  (0.8559, 0.8374)
  [18]  (0.8761, 0.2741)
  [19]  (0.8847, 0.3329)
  [20]  (0.8604, 0.3779)
  [21]  (0.8136, 0.3595)
  [22]  (0.8160, 0.3013)
  [23]  (0.8320, 0.2480)
  [24]  (0.8754, 0.2241)
  [25]  (0.8811, 0.2817)
  [26]  (0.8761, 0.3409)
  [27]  (0.8761, 0.6050)
  [28]  (0.9053, 0.6403)
  [29]  (0.9219, 0.6822)
  [30]  (0.9263, 0.7221)
  [31]  (0.8900, 0.7209)
  [32]  (0.8893, 0.6793)
  [33]  (0.9065, 0.6369)
  [34]  (0.9391, 0.6083)
  [35]  (0.9449, 0.6446)
  [36]  (0.8761, 0.7286)
  [37]  (0.7154, 0.7396)
  [38]  (0.5545, 0.7440)
  [39]  (0.6110, 0.6066)
  [40]  (0.6337, 0.4472)
  [41]  (0.6458, 0.2866)
  [42]  (0.6652, 0.1269)
  [43]  (0.5734, 0.0737)
  [44]  (0.4225, 0.1298)
  [45]  (0.8761, 0.0447)
  [46]  (0.8880, 0.1740)
  [47]  (0.9000, 0.3033)
  [48]  (0.9069, 0.4327)
  [49]  (0.9011, 0.5625)
  [50]  (0.8028, 0.6170)
  [51]  (0.6733, 0.6101)
  [52]  (0.5451, 0.5894)
  [53]  (0.4807, 0.5215)
  [54]  (0.8761, 0.0691)
  [55]  (0.9229, 0.0926)
  [56]  (0.9180, 0.1246)
  [57]  (0.8799, 0.1589)
  [58]  (0.8360, 0.1507)
  [59]  (0.8385, 0.0984)
  [60]  (0.8642, 0.0582)
  [61]  (0.9058, 0.0263)
  [62]  (0.9569, 0.0324)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.0728, 1.0000)  angle=79.2 deg
  V1  (0.0431, 0.8841)  angle=66.7 deg
  V2  (0.4026, 0.5475)  angle=39.3 deg
  V3  (0.4101, 0.0102)  angle=88.4 deg
  V4  (0.8761, 0.0000)  angle=91.2 deg
  V5  (0.8559, 0.8374)  angle=175.9 deg
  V6  (0.8761, 0.2741)  angle=169.6 deg
  V7  (0.8847, 0.3329)  angle=36.8 deg
  V8  (0.8604, 0.3779)  angle=83.1 deg
  V9  (0.8136, 0.3595)  angle=70.9 deg
  V10  (0.8320, 0.2480)  angle=44.5 deg
  V11  (0.8754, 0.2241)  angle=113.1 deg
  V12  (0.8761, 0.6050)  angle=39.7 deg
  V13  (0.9263, 0.7221)  angle=98.2 deg
  V14  (0.8900, 0.7209)  angle=87.2 deg
  V15  (0.9391, 0.6083)  angle=122.2 deg
  V16  (0.9449, 0.6446)  angle=48.3 deg
  V17  (0.8761, 0.7286)  angle=46.8 deg
  V18  (0.5545, 0.7440)  angle=113.9 deg
  V19  (0.6652, 0.1269)  angle=66.8 deg
  V20  (0.5734, 0.0737)  angle=50.5 deg
  V21  (0.4225, 0.1298)  angle=170.2 deg
  V22  (0.8761, 0.0447)  angle=95.3 deg
  V23  (0.9011, 0.5625)  angle=58.4 deg
  V24  (0.8028, 0.6170)  angle=32.1 deg
  V25  (0.5451, 0.5894)  angle=37.4 deg
  V26  (0.4807, 0.5215)  angle=84.6 deg
  V27  (0.8761, 0.0691)  angle=75.5 deg
  V28  (0.9229, 0.0926)  angle=72.0 deg
  V29  (0.9180, 0.1246)  angle=39.4 deg
  V30  (0.8799, 0.1589)  angle=52.4 deg
  V31  (0.8360, 0.1507)  angle=82.2 deg
  V32  (0.9058, 0.0263)  angle=44.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
    }
),
