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

--- NORMALIZED STROKE POINTS (x, y in [0,1], top-left origin) ---
  [ 0]  (0.0740, 0.6332)
  [ 1]  (0.0603, 0.5830)
  [ 2]  (0.0556, 0.5312)
  [ 3]  (0.0829, 0.4957)
  [ 4]  (0.1345, 0.5023)
  [ 5]  (0.1403, 0.4655)
  [ 6]  (0.1272, 0.4154)
  [ 7]  (0.1057, 0.3681)
  [ 8]  (0.0740, 0.3884)
  [ 9]  (0.0767, 0.4199)
  [10]  (0.0798, 0.4515)
  [11]  (0.0811, 0.4832)
  [12]  (0.0824, 0.5149)
  [13]  (0.0824, 0.5466)
  [14]  (0.0819, 0.5783)
  [15]  (0.0899, 0.5976)
  [16]  (0.0740, 0.4786)
  [17]  (0.0830, 0.4891)
  [18]  (0.0834, 0.5012)
  [19]  (0.0702, 0.5051)
  [20]  (0.0602, 0.5017)
  [21]  (0.0655, 0.4895)
  [22]  (0.0777, 0.4834)
  [23]  (0.0914, 0.4841)
  [24]  (0.0740, 0.4786)
  [25]  (0.0875, 0.4823)
  [26]  (0.0983, 0.4911)
  [27]  (0.1032, 0.5039)
  [28]  (0.0902, 0.5082)
  [29]  (0.0780, 0.5029)
  [30]  (0.0810, 0.4900)
  [31]  (0.0922, 0.4833)
  [32]  (0.0740, 0.4040)
  [33]  (0.0762, 0.4314)
  [34]  (0.0766, 0.4589)
  [35]  (0.0769, 0.4863)
  [36]  (0.0769, 0.5138)
  [37]  (0.0745, 0.5412)
  [38]  (0.0721, 0.5685)
  [39]  (0.0661, 0.5951)
  [40]  (0.0740, 0.4089)
  [41]  (0.0765, 0.4368)
  [42]  (0.0769, 0.4649)
  [43]  (0.0772, 0.4929)
  [44]  (0.0772, 0.5210)
  [45]  (0.0772, 0.5491)
  [46]  (0.0770, 0.5771)
  [47]  (0.0701, 0.5959)
  [48]  (0.0740, 0.5910)
  [49]  (0.0371, 0.5754)
  [50]  (0.0000, 0.5602)
  [51]  (0.0103, 0.5438)
  [52]  (0.0314, 0.5182)
  [53]  (0.0351, 0.4782)
  [54]  (0.0369, 0.4380)
  [55]  (0.0408, 0.3981)
  [56]  (0.0740, 0.3565)
  [57]  (0.0846, 0.6760)
  [58]  (0.4340, 0.7580)
  [59]  (0.7999, 0.7003)
  [60]  (1.0000, 0.4523)
  [61]  (0.7262, 0.2420)
  [62]  (0.3603, 0.2718)
  [63]  (0.0065, 0.3639)

--- KEY VERTICES (corners with angle < 120 degrees) ---
  V0  (0.0556, 0.5312)  angle=42.6 deg
  V1  (0.0829, 0.4957)  angle=59.9 deg
  V2  (0.1345, 0.5023)  angle=88.4 deg
  V3  (0.1057, 0.3681)  angle=98.2 deg
  V4  (0.0740, 0.3884)  angle=62.2 deg
  V5  (0.0899, 0.5976)  angle=165.2 deg
  V6  (0.0740, 0.4786)  angle=147.0 deg
  V7  (0.0830, 0.4891)  angle=38.7 deg
  V8  (0.0834, 0.5012)  angle=75.3 deg
  V9  (0.0702, 0.5051)  angle=35.6 deg
  V10  (0.0602, 0.5017)  angle=94.3 deg
  V11  (0.0655, 0.4895)  angle=40.0 deg
  V12  (0.0914, 0.4841)  angle=165.3 deg
  V13  (0.0740, 0.4786)  angle=177.6 deg
  V14  (0.0983, 0.4911)  angle=30.2 deg
  V15  (0.1032, 0.5039)  angle=92.7 deg
  V16  (0.0902, 0.5082)  angle=41.7 deg
  V17  (0.0780, 0.5029)  angle=79.7 deg
  V18  (0.0810, 0.4900)  angle=45.9 deg
  V19  (0.0922, 0.4833)  angle=72.2 deg
  V20  (0.0740, 0.4040)  angle=171.6 deg
  V21  (0.0661, 0.5951)  angle=169.7 deg
  V22  (0.0740, 0.4089)  angle=172.4 deg
  V23  (0.0701, 0.5959)  angle=161.4 deg
  V24  (0.0740, 0.5910)  angle=105.9 deg
  V25  (0.0000, 0.5602)  angle=100.0 deg
  V26  (0.0314, 0.5182)  angle=34.1 deg
  V27  (0.0408, 0.3981)  angle=33.2 deg
  V28  (0.0740, 0.3565)  angle=139.4 deg
  V29  (0.0846, 0.6760)  angle=74.9 deg
  V30  (0.7999, 0.7003)  angle=42.1 deg
  V31  (1.0000, 0.4523)  angle=91.4 deg
  V32  (0.7262, 0.2420)  angle=42.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
    }
),
