RoomPlanScanner constructor
      
      RoomPlanScanner({ 
    
- RoomPlanChannel? roomPlanChannel,
Creates and initializes a RoomPlanScanner.
A RoomPlanChannel can be provided for testing purposes.
Performance optimization: Lazy stream initialization and efficient error handling.
Implementation
factory RoomPlanScanner({RoomPlanChannel? roomPlanChannel}) {
  final channel = roomPlanChannel ?? RoomPlanChannel();
  // Performance optimization: Use lazy stream transformation to avoid unnecessary processing
  final onScanResult = channel.scanUpdateStream
      .where((result) => result is String)
      .map<ScanResult?>((result) {
        try {
          return parseScanResult(result as String);
        } catch (e, stacktrace) {
          // Performance optimization: Only print debug info in debug mode
          assert(() {
            debugPrint('Error parsing scan update: $e');
            debugPrint(stacktrace.toString());
            return true;
          }());
          return null;
        }
      });
  return RoomPlanScanner._(channel, onScanResult);
}