ScriptsConfig.fromJson constructor
      
      ScriptsConfig.fromJson(
    
    
- Map json_
Implementation
factory ScriptsConfig.fromJson(Map json_) {
  final logger = Logger();
  final json = {...json_};
  final scripts = <String, Script>{};
  final parents = (json.remove(Keys.parents) as List?)?.cast<String>();
  final allowedKeys = RegExp(
    r'^_?([a-z][a-z0-9_.\-]*)?(?<=[a-z0-9_])$',
    caseSensitive: false,
  );
  for (final entry in json.entries) {
    final key = '${entry.key}'.trim();
    if (key.contains(' ')) {
      logger.err(
        'The script name "$key" contains spaces, '
        'which is not allowed.',
      );
      continue;
    }
    if (!allowedKeys.hasMatch(key) && !Keys.scriptParameters.contains(key)) {
      logger.err(
        'The script name "$key" uses forbidden characters, allowed: '
        '${allowedKeys.pattern} (case insensitive)',
      );
      continue;
    }
    scripts[key] = Script.fromJson(
      key,
      entry.value,
      parents: parents,
    );
  }
  return ScriptsConfig(
    scripts: scripts,
    parents: parents,
  );
}