// Utf8CursorBox (MVP): CP-based helpers for StringBox
// Note: MVP delegates to existing String methods; later replace with true CP scanner.
static box Utf8CursorBox {
  // Return number of code points (MVP: uses .length())
  len_cp(s) { return s.length() }

  // CP-based indexOf (MVP: uses .indexOf)
  indexOf(s, sub, from) {
    if from { return s.indexOf(sub, from) }
    return s.indexOf(sub)
  }

  // CP-based substring (MVP: uses .substring)
  substring_cp(s, i, j) { return s.substring(i, j) }
}

