Optionally wrap functionality in this method, if e.g.
Optionally wrap functionality in this method, if e.g. this App is expected to be serialized and some things shouldn't run on a deserialized version.
For example: code referencing a org.apache.spark.SparkContext shouldn't re-run in an App instance that's been sent to a Spark executor as part of a task closure).
An example of logic to *not* wrap in run is implicit fields that are to be automatically in-scope in subclasses.
App with OutPathApp that gets its output path from its Opts, which must have a field named
outPath
of type OptionPath