import 'package:ulid/ulid.dart'; /// Typed ULID with prefix (e.g. `hb_01J9XYZ...`). String generateUlid(String prefix) { if (prefix.isEmpty) { throw ArgumentError('prefix must be non-empty'); } return '${prefix}_${Ulid().toString()}'; } final RegExp _ulidRegex = RegExp(r'^[A-Za-z]{1,8}_[0-9A-HJKMNP-TV-Z]{26}$'); bool isValidUlid(String s) => _ulidRegex.hasMatch(s);