static Source forResource(ResourceResolver resolver, String resource,
			Function<String, String> replaceProperties) {
		ResourceRef resourceRef = resolver.resolve(resource);
		if (resourceRef == null) {
			throw new ExitException(BaseCommand.EXIT_INVALID_INPUT, "Could not find: " + resource);
		}
		return forResourceRef(resourceRef, replaceProperties);
	}
A Script represents a Source (something runnable) in the form of a source
file. It's code that first needs to be compiled before it can be executed.
The Script extracts as much information from the source file as it can, like
all `//`-directives (eg. `//SOURCES`, `//DEPS`, etc.)

NB: The Script contains/returns no other information than that which can be
induced from the source file. So all Scripts that refer to the same source
file will contain/return the exact same information.
src/main/java/dev/jbang/source/Source.java