The C# runtime for the Pebble Stream API.

Many of the Pebble Stream Runtime API functions accept the same optional arguments. Pebble Stream Runtime functions do not use every optional argument. Here are the defined optional arguments:

`inputColMap` Map of sheet name to 0-index column to column values.
`inputCols` Map of sheet name to columns.
`inputRowsOfStrings` Map of sheet name to a vector of vector of strings
  which should be coerced to the appropriate type.
`outXlsxPath` File path to save results as an .xlsx file.
`outputWorksheets` List of sheets to stitch together for the final output.
`pbl` The bytes of the path of the pebble to run
`pblId` The unique identifier for the executed pebble
`postUrl` A URL to POST the results to
`printClassifications` Print each sheet and its classification.
`printDirectives` Print each directive (e.g., stop, sort).
`printInputs` Input sheets to print before rendering.
`printRender` Print each worksheet and cell as Pebble Stream runtime renders it.
`reload` Don't check the cache for the pebble before loading and caching it
`requireAllInputSheets` If expected inputs are not provided, fail execution.
`returnOutputContext` Return a context object rather than just the result.
`splitLazy` SPLIT directives create lazySeq rather than a vector.
`trimDirectives` Removes stop* and fail columns.

Here are the runtime functions available in the javascript runtime:


contextToColumns <options>
Given the pebble context returned by runPbl context, give back a column-wise
  vector grid of Clojure values.


contextToRows <options>
Given the pebble context returned by runPbl context, give back a vector grid
  of Clojure values.


describeInputsAndOutputs <options>
   [{name: 'Sheet1'
     columns: [{headers: ['count'] types: #{'number'}}
               {headers: ['Enrolled'] types: #{'boolean'}}
               {headers: ['State'] types: #{'blank' 'string'}}]}
   outputs: [...]}
  where "outputs" is the union of 'final' worksheets and those set with the
  :pebblestreamout directive. Their order is as in the original file.


getColumnDependencies <options>
Return a map of `sheet -> col -> #{[sheet col] ...}` representing columns that
  column depends on.


getColumnTypes <options>
Returns the map of sheet name to an array of set of types where each index in
  said array is its corresponding column's set of seen types in the original


# getDependencies <options>
Returns a map from sheet name to the set of sheet names on which it depends.


getSplitWorksheets <options>
Returns the names of sheets that are destinations of a split directive.


getWorksheetHints <options>
Returns a map of sheet name to hint name to a vector of values.


loadPbl <options>
Loads the pebble into the cache, so future uses of it should be fast.


runPbl <options>
Run the pebble stored in pbl using the value grids of inputRows as
  the data for the corresponding key input name, returning the stitched
  spreadsheet object with the results.


saveValuesAsXlsx(outXlsxPath, templatePath, values, ...<options>)
Saves the object of worksheet name to rows as a .xlsx file at the provided
  filepath using the style template stored in the pebble.