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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.0832, 0.6608)
  [ 1]  (0.0768, 0.6108)
  [ 2]  (0.0713, 0.5608)
  [ 3]  (0.0777, 0.5228)
  [ 4]  (0.1243, 0.5416)
  [ 5]  (0.1330, 0.5110)
  [ 6]  (0.1265, 0.4615)
  [ 7]  (0.1281, 0.4112)
  [ 8]  (0.0832, 0.5115)
  [ 9]  (0.1002, 0.5182)
  [10]  (0.1153, 0.5284)
  [11]  (0.1059, 0.5412)
  [12]  (0.0880, 0.5441)
  [13]  (0.0725, 0.5341)
  [14]  (0.0773, 0.5169)
  [15]  (0.0949, 0.5124)
  [16]  (0.0832, 0.4440)
  [17]  (0.0858, 0.4672)
  [18]  (0.0882, 0.4904)
  [19]  (0.0906, 0.5136)
  [20]  (0.0916, 0.5369)
  [21]  (0.0908, 0.5602)
  [22]  (0.0901, 0.5835)
  [23]  (0.0949, 0.6063)
  [24]  (0.0832, 0.5300)
  [25]  (0.0942, 0.5315)
  [26]  (0.1008, 0.5389)
  [27]  (0.1032, 0.5485)
  [28]  (0.0938, 0.5546)
  [29]  (0.0851, 0.5512)
  [30]  (0.0852, 0.5421)
  [31]  (0.0900, 0.5320)
  [32]  (0.0832, 0.4670)
  [33]  (0.0861, 0.4919)
  [34]  (0.0884, 0.5168)
  [35]  (0.0907, 0.5418)
  [36]  (0.0909, 0.5668)
  [37]  (0.0909, 0.5919)
  [38]  (0.0909, 0.6169)
  [39]  (0.0782, 0.6043)
  [40]  (0.0832, 0.4740)
  [41]  (0.0870, 0.4948)
  [42]  (0.0909, 0.5156)
  [43]  (0.0933, 0.5366)
  [44]  (0.0951, 0.5577)
  [45]  (0.0967, 0.5788)
  [46]  (0.0953, 0.5999)
  [47]  (0.0939, 0.6210)
  [48]  (0.0832, 0.6210)
  [49]  (0.0416, 0.6204)
  [50]  (0.0000, 0.6191)
  [51]  (0.0212, 0.6092)
  [52]  (0.0491, 0.5872)
  [53]  (0.0425, 0.5467)
  [54]  (0.0437, 0.5052)
  [55]  (0.0490, 0.4639)
  [56]  (0.0832, 0.4207)
  [57]  (0.0964, 0.7190)
  [58]  (0.4492, 0.7442)
  [59]  (0.8028, 0.6882)
  [60]  (1.0000, 0.4374)
  [61]  (0.7220, 0.2558)
  [62]  (0.3670, 0.2953)
  [63]  (0.0607, 0.4670)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.0777, 0.5228)  angle=102.4 deg
  V1  (0.1243, 0.5416)  angle=96.0 deg
  V2  (0.1281, 0.4112)  angle=157.7 deg
  V3  (0.0832, 0.5115)  angle=92.6 deg
  V4  (0.1153, 0.5284)  angle=92.3 deg
  V5  (0.1059, 0.5412)  angle=44.6 deg
  V6  (0.0880, 0.5441)  angle=42.0 deg
  V7  (0.0725, 0.5341)  angle=72.8 deg
  V8  (0.0773, 0.5169)  angle=60.1 deg
  V9  (0.0949, 0.5124)  angle=85.4 deg
  V10  (0.0832, 0.4440)  angle=176.9 deg
  V11  (0.0949, 0.6063)  angle=176.8 deg
  V12  (0.0832, 0.5300)  angle=106.4 deg
  V13  (0.0942, 0.5315)  angle=40.6 deg
  V14  (0.1032, 0.5485)  angle=71.3 deg
  V15  (0.0938, 0.5546)  angle=53.7 deg
  V16  (0.0851, 0.5512)  angle=69.6 deg
  V17  (0.0900, 0.5320)  angle=31.3 deg
  V18  (0.0832, 0.4670)  angle=179.3 deg
  V19  (0.0909, 0.6169)  angle=134.9 deg
  V20  (0.0782, 0.6043)  angle=47.3 deg
  V21  (0.0832, 0.4740)  angle=167.3 deg
  V22  (0.0939, 0.6210)  angle=86.3 deg
  V23  (0.0000, 0.6191)  angle=153.2 deg
  V24  (0.0491, 0.5872)  angle=60.9 deg
  V25  (0.0490, 0.4639)  angle=31.2 deg
  V26  (0.0832, 0.4207)  angle=139.1 deg
  V27  (0.0964, 0.7190)  angle=83.4 deg
  V28  (0.8028, 0.6882)  angle=42.8 deg
  V29  (1.0000, 0.4374)  angle=95.0 deg
  V30  (0.7220, 0.2558)  angle=39.5 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
    }
),
