listOut method 
    
    
    
  Implementation
  String listOut({
  StringBuffer? buffer,
  String? prefix,
  String Function(String)? wrapCallableKey,
  String Function(String)? wrapNonCallableKey,
  String Function(String)? wrapMeta,
}) {
  buffer ??= StringBuffer();
  wrapCallableKey ??= (key) => key;
  wrapNonCallableKey ??= (key) => key;
  wrapMeta ??= (meta) => meta;
  if (prefix == null) {
    buffer.writeln('scripts.yaml:');
  }
  prefix ??= '   ';
  final keys = scripts.keys.where((e) => !e.startsWith('_'));
  bool isLast(String key) => keys.last == key;
  for (final MapEntry(:key, value: script) in scripts.entries) {
    if (key.startsWith('_')) continue;
    final wrapper =
        script.commands.isEmpty ? wrapNonCallableKey : wrapCallableKey;
    final entry = isLast(key) ? '└──' : '├──';
    buffer.writeln('$prefix$entry${wrapper(key)}');
    final sub = isLast(key) ? '   ' : '│  ';
    script.listOut(
      buffer: buffer,
      prefix: prefix + sub,
      wrapCallableKey: wrapCallableKey,
      wrapNonCallableKey: wrapNonCallableKey,
      wrapMeta: wrapMeta,
    );
  }
  return buffer.toString();
}