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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.3899, 1.0000)
  [ 1]  (0.3905, 0.8839)
  [ 2]  (0.3974, 0.7678)
  [ 3]  (0.4063, 0.6518)
  [ 4]  (0.4165, 0.5359)
  [ 5]  (0.4161, 0.4197)
  [ 6]  (0.4279, 0.3044)
  [ 7]  (0.3899, 0.0000)
  [ 8]  (0.3267, 0.0358)
  [ 9]  (0.2976, 0.0956)
  [10]  (0.3422, 0.1388)
  [11]  (0.4085, 0.1211)
  [12]  (0.3913, 0.0573)
  [13]  (0.3425, 0.0560)
  [14]  (0.3899, 1.0000)
  [15]  (0.3979, 0.9122)
  [16]  (0.4042, 0.8242)
  [17]  (0.4071, 0.7360)
  [18]  (0.4098, 0.6478)
  [19]  (0.4123, 0.5596)
  [20]  (0.4249, 0.4722)
  [21]  (0.3899, 0.1472)
  [22]  (0.3345, 0.1774)
  [23]  (0.3377, 0.2396)
  [24]  (0.3911, 0.2819)
  [25]  (0.4479, 0.2576)
  [26]  (0.4491, 0.1971)
  [27]  (0.3963, 0.1603)
  [28]  (0.3899, 0.1603)
  [29]  (0.3405, 0.3508)
  [30]  (0.3191, 0.5463)
  [31]  (0.3063, 0.7426)
  [32]  (0.3444, 0.8870)
  [33]  (0.5400, 0.8679)
  [34]  (0.7024, 0.8085)
  [35]  (0.3899, 0.3806)
  [36]  (0.3402, 0.4069)
  [37]  (0.3361, 0.4605)
  [38]  (0.3730, 0.4939)
  [39]  (0.4091, 0.4741)
  [40]  (0.4030, 0.4238)
  [41]  (0.3615, 0.3932)
  [42]  (0.3899, 0.2182)
  [43]  (0.3730, 0.3309)
  [44]  (0.3571, 0.4437)
  [45]  (0.3433, 0.5569)
  [46]  (0.3297, 0.6700)
  [47]  (0.3335, 0.7839)
  [48]  (0.3455, 0.8964)
  [49]  (0.3899, 0.3616)
  [50]  (0.3595, 0.4071)
  [51]  (0.3506, 0.4698)
  [52]  (0.3933, 0.5068)
  [53]  (0.4393, 0.4632)
  [54]  (0.4531, 0.4093)
  [55]  (0.4217, 0.4058)
  [56]  (0.3899, 0.6500)
  [57]  (0.3675, 0.7054)
  [58]  (0.3826, 0.7714)
  [59]  (0.4396, 0.7849)
  [60]  (0.4593, 0.7203)
  [61]  (0.4275, 0.6616)
  [62]  (0.3805, 0.6692)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.3899, 0.0000)  angle=112.4 deg
  V1  (0.3267, 0.0358)  angle=34.6 deg
  V2  (0.2976, 0.0956)  angle=71.8 deg
  V3  (0.3422, 0.1388)  angle=59.1 deg
  V4  (0.4085, 0.1211)  angle=90.1 deg
  V5  (0.3913, 0.0573)  angle=73.4 deg
  V6  (0.3425, 0.0560)  angle=94.4 deg
  V7  (0.3899, 1.0000)  angle=171.9 deg
  V8  (0.3899, 0.1472)  angle=112.4 deg
  V9  (0.3345, 0.1774)  angle=64.4 deg
  V10  (0.3377, 0.2396)  angle=48.7 deg
  V11  (0.3911, 0.2819)  angle=61.4 deg
  V12  (0.4479, 0.2576)  angle=65.7 deg
  V13  (0.4491, 0.1971)  angle=56.4 deg
  V14  (0.3963, 0.1603)  angle=34.8 deg
  V15  (0.3899, 0.1603)  angle=75.5 deg
  V16  (0.3444, 0.8870)  angle=80.8 deg
  V17  (0.7024, 0.8085)  angle=106.1 deg
  V18  (0.3899, 0.3806)  angle=81.7 deg
  V19  (0.3402, 0.4069)  angle=57.8 deg
  V20  (0.3361, 0.4605)  angle=52.4 deg
  V21  (0.3730, 0.4939)  angle=70.7 deg
  V22  (0.4091, 0.4741)  angle=68.2 deg
  V23  (0.4030, 0.4238)  angle=46.7 deg
  V24  (0.3615, 0.3932)  angle=62.8 deg
  V25  (0.3899, 0.2182)  angle=179.3 deg
  V26  (0.3455, 0.8964)  angle=169.2 deg
  V27  (0.3899, 0.3616)  angle=151.0 deg
  V28  (0.3506, 0.4698)  angle=57.2 deg
  V29  (0.3933, 0.5068)  angle=84.4 deg
  V30  (0.4393, 0.4632)  angle=32.1 deg
  V31  (0.4531, 0.4093)  angle=98.2 deg
  V32  (0.4217, 0.4058)  angle=88.8 deg
  V33  (0.3675, 0.7054)  angle=34.8 deg
  V34  (0.3826, 0.7714)  angle=63.8 deg
  V35  (0.4396, 0.7849)  angle=86.4 deg
  V36  (0.4593, 0.7203)  angle=45.4 deg
  V37  (0.4275, 0.6616)  angle=70.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
    }
),
