@Nonnull
	public ScriptFile read(@Nonnull Path path) throws IOException {
		String text = Files.readString(path);

		// Parse tags from beginning of file
		Map<String, String> tags = new HashMap<>();
		int metaEnd = Math.max(0, text.indexOf("==/Metadata=="));
		int lineMetaEnd = StringUtil.count("\n", text.substring(0, metaEnd));
		text.lines().limit(lineMetaEnd).forEach(line -> {
			if (line.startsWith("//")) {
				Matcher matcher = RegexUtil.getMatcher(TAG_PATTERN, line);
				if (matcher.matches()) {
					String key = matcher.group("key").toLowerCase();
					String value = matcher.group("value");
					tags.put(key, value);
				}
			}
		});

		return new ScriptFile(path, text, tags);
	}
@param path
		Path to script file.

@return Wrapper of script.

@throws IOException
		When the script file cannot be read from.
recaf-core/src/main/java/software/coley/recaf/services/script/ScriptManager.java