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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.0955, 0.7145)
  [ 1]  (0.0881, 0.6501)
  [ 2]  (0.0801, 0.5856)
  [ 3]  (0.1210, 0.5913)
  [ 4]  (0.1439, 0.5667)
  [ 5]  (0.1424, 0.5017)
  [ 6]  (0.1347, 0.4373)
  [ 7]  (0.1166, 0.3930)
  [ 8]  (0.0955, 0.4426)
  [ 9]  (0.1004, 0.4787)
  [10]  (0.0992, 0.5156)
  [11]  (0.0983, 0.5525)
  [12]  (0.0986, 0.5895)
  [13]  (0.0989, 0.6264)
  [14]  (0.1001, 0.6633)
  [15]  (0.1083, 0.6839)
  [16]  (0.0955, 0.5477)
  [17]  (0.1106, 0.5557)
  [18]  (0.1188, 0.5681)
  [19]  (0.1173, 0.5838)
  [20]  (0.1035, 0.5820)
  [21]  (0.0946, 0.5680)
  [22]  (0.0930, 0.5520)
  [23]  (0.1093, 0.5468)
  [24]  (0.0955, 0.5543)
  [25]  (0.1130, 0.5586)
  [26]  (0.1264, 0.5703)
  [27]  (0.1366, 0.5853)
  [28]  (0.1213, 0.5938)
  [29]  (0.1040, 0.5884)
  [30]  (0.0984, 0.5770)
  [31]  (0.1074, 0.5617)
  [32]  (0.0955, 0.4714)
  [33]  (0.0992, 0.5053)
  [34]  (0.1027, 0.5391)
  [35]  (0.1020, 0.5732)
  [36]  (0.1013, 0.6072)
  [37]  (0.0985, 0.6412)
  [38]  (0.0945, 0.6750)
  [39]  (0.0927, 0.6774)
  [40]  (0.0955, 0.4596)
  [41]  (0.0955, 0.4946)
  [42]  (0.0955, 0.5295)
  [43]  (0.0966, 0.5645)
  [44]  (0.0979, 0.5995)
  [45]  (0.0991, 0.6344)
  [46]  (0.0970, 0.6694)
  [47]  (0.0946, 0.7043)
  [48]  (0.0955, 0.6941)
  [49]  (0.0479, 0.6866)
  [50]  (0.0000, 0.6812)
  [51]  (0.0305, 0.6567)
  [52]  (0.0687, 0.6343)
  [53]  (0.0670, 0.5861)
  [54]  (0.0663, 0.5379)
  [55]  (0.0671, 0.4897)
  [56]  (0.0955, 0.4203)
  [57]  (0.0399, 0.7587)
  [58]  (0.4179, 0.8153)
  [59]  (0.8040, 0.7381)
  [60]  (1.0000, 0.4549)
  [61]  (0.7391, 0.1847)
  [62]  (0.3595, 0.2384)
  [63]  (0.0349, 0.4517)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.0801, 0.5856)  angle=105.0 deg
  V1  (0.1210, 0.5913)  angle=55.0 deg
  V2  (0.1439, 0.5667)  angle=44.3 deg
  V3  (0.1166, 0.3930)  angle=134.8 deg
  V4  (0.0955, 0.4426)  angle=30.7 deg
  V5  (0.1083, 0.6839)  angle=163.6 deg
  V6  (0.0955, 0.5477)  angle=123.1 deg
  V7  (0.1188, 0.5681)  angle=38.5 deg
  V8  (0.1173, 0.5838)  angle=92.1 deg
  V9  (0.1035, 0.5820)  angle=50.4 deg
  V10  (0.0930, 0.5520)  angle=78.0 deg
  V11  (0.1093, 0.5468)  angle=169.3 deg
  V12  (0.0955, 0.5543)  angle=137.5 deg
  V13  (0.1366, 0.5853)  angle=95.3 deg
  V14  (0.1213, 0.5938)  angle=46.2 deg
  V15  (0.1040, 0.5884)  angle=46.5 deg
  V16  (0.0984, 0.5770)  angle=56.8 deg
  V17  (0.1074, 0.5617)  angle=38.1 deg
  V18  (0.0955, 0.4714)  angle=178.7 deg
  V19  (0.0927, 0.6774)  angle=145.2 deg
  V20  (0.0955, 0.4596)  angle=179.3 deg
  V21  (0.0946, 0.7043)  angle=179.0 deg
  V22  (0.0955, 0.6941)  angle=85.9 deg
  V23  (0.0000, 0.6812)  angle=134.8 deg
  V24  (0.0687, 0.6343)  angle=61.7 deg
  V25  (0.0955, 0.4203)  angle=167.1 deg
  V26  (0.0399, 0.7587)  angle=90.8 deg
  V27  (0.8040, 0.7381)  angle=44.0 deg
  V28  (1.0000, 0.4549)  angle=78.7 deg
  V29  (0.7391, 0.1847)  angle=54.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
    }
),
