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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.4212, 0.9734)
  [ 1]  (0.4316, 0.8901)
  [ 2]  (0.4406, 0.8067)
  [ 3]  (0.4457, 0.7229)
  [ 4]  (0.4508, 0.6391)
  [ 5]  (0.4355, 0.5568)
  [ 6]  (0.4184, 0.4746)
  [ 7]  (0.4212, 0.0000)
  [ 8]  (0.3538, 0.0542)
  [ 9]  (0.3424, 0.1310)
  [10]  (0.3790, 0.1830)
  [11]  (0.4646, 0.1705)
  [12]  (0.4418, 0.0966)
  [13]  (0.3974, 0.0820)
  [14]  (0.4212, 1.0000)
  [15]  (0.4221, 0.9101)
  [16]  (0.4251, 0.8202)
  [17]  (0.4295, 0.7304)
  [18]  (0.4361, 0.6407)
  [19]  (0.4437, 0.5511)
  [20]  (0.4601, 0.4627)
  [21]  (0.4212, 0.0943)
  [22]  (0.3776, 0.1523)
  [23]  (0.3339, 0.2103)
  [24]  (0.3423, 0.2725)
  [25]  (0.3897, 0.2579)
  [26]  (0.4222, 0.2050)
  [27]  (0.3944, 0.1635)
  [28]  (0.4212, 0.1815)
  [29]  (0.3952, 0.3827)
  [30]  (0.3682, 0.5836)
  [31]  (0.3209, 0.7808)
  [32]  (0.3714, 0.8832)
  [33]  (0.5627, 0.8158)
  [34]  (0.7591, 0.7666)
  [35]  (0.4212, 0.2832)
  [36]  (0.3311, 0.3606)
  [37]  (0.2409, 0.4380)
  [38]  (0.3029, 0.4906)
  [39]  (0.3668, 0.4094)
  [40]  (0.3210, 0.2998)
  [41]  (0.2656, 0.3042)
  [42]  (0.4212, 0.8426)
  [43]  (0.4212, 0.7314)
  [44]  (0.4212, 0.6201)
  [45]  (0.4222, 0.5088)
  [46]  (0.4254, 0.3976)
  [47]  (0.4286, 0.2864)
  [48]  (0.4361, 0.1755)
  [49]  (0.4212, 0.2084)
  [50]  (0.3457, 0.2448)
  [51]  (0.3442, 0.3252)
  [52]  (0.3819, 0.3865)
  [53]  (0.4232, 0.3321)
  [54]  (0.3805, 0.2720)
  [55]  (0.3196, 0.2802)
  [56]  (0.4212, 0.5017)
  [57]  (0.4024, 0.5528)
  [58]  (0.3891, 0.6028)
  [59]  (0.4272, 0.6419)
  [60]  (0.4606, 0.6486)
  [61]  (0.4812, 0.6006)
  [62]  (0.4541, 0.5533)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.4212, 0.0000)  angle=129.2 deg
  V1  (0.3538, 0.0542)  angle=42.7 deg
  V2  (0.3424, 0.1310)  angle=43.6 deg
  V3  (0.3790, 0.1830)  angle=63.2 deg
  V4  (0.4646, 0.1705)  angle=98.8 deg
  V5  (0.4418, 0.0966)  angle=54.7 deg
  V6  (0.3974, 0.0820)  angle=109.6 deg
  V7  (0.4212, 1.0000)  angle=177.9 deg
  V8  (0.4212, 0.0943)  angle=137.0 deg
  V9  (0.3339, 0.2103)  angle=44.6 deg
  V10  (0.3423, 0.2725)  angle=99.5 deg
  V11  (0.3897, 0.2579)  angle=41.2 deg
  V12  (0.4222, 0.2050)  angle=65.5 deg
  V13  (0.3944, 0.1635)  angle=157.8 deg
  V14  (0.4212, 0.1815)  angle=63.4 deg
  V15  (0.3209, 0.7808)  angle=39.8 deg
  V16  (0.3714, 0.8832)  angle=83.1 deg
  V17  (0.7591, 0.7666)  angle=110.9 deg
  V18  (0.4212, 0.2832)  angle=95.7 deg
  V19  (0.2409, 0.4380)  angle=99.0 deg
  V20  (0.3029, 0.4906)  angle=92.1 deg
  V21  (0.3668, 0.4094)  angle=60.9 deg
  V22  (0.3210, 0.2998)  angle=71.8 deg
  V23  (0.2656, 0.3042)  angle=101.6 deg
  V24  (0.4212, 0.8426)  angle=163.9 deg
  V25  (0.4361, 0.1755)  angle=159.5 deg
  V26  (0.4212, 0.2084)  angle=40.0 deg
  V27  (0.3457, 0.2448)  angle=63.3 deg
  V28  (0.3442, 0.3252)  angle=32.6 deg
  V29  (0.3819, 0.3865)  angle=111.2 deg
  V30  (0.4232, 0.3321)  angle=72.7 deg
  V31  (0.3805, 0.2720)  angle=62.2 deg
  V32  (0.3196, 0.2802)  angle=107.0 deg
  V33  (0.4212, 0.5017)  angle=44.9 deg
  V34  (0.3891, 0.6028)  angle=59.0 deg
  V35  (0.4272, 0.6419)  angle=34.5 deg
  V36  (0.4606, 0.6486)  angle=78.0 deg
  V37  (0.4812, 0.6006)  angle=53.2 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
    }
),
