These points are presented here in no particular sequence.
PSEC internally uses the class facility of .NET extensively. Classes typically set up circular relationships in that a parent will often point to a subclass of itself.
The Powershell implementation balks at loading classes with circular references. PSEC, therefore, uses outer classes that the parent references and then the subclass is defined in lower level modules. The Task and TaskExec definitions are examples of such a design implementation. This design exploits the fact that class matching is performed at runtime, not compile time, by Powershell.
Many runtime errors are hard to locate. It can, for example, be a variable that unexpectedly has no value. Whenever possible code is inserted that validates implied assertions and makes a definitive exception throw if the assertion fails.
Helper functions are supplied with PSEC that assist in extending it. The helper functions exists and notExists are examples of what is provided. The Helps tab in the 2 PSEC Document Navigation Panel provides a complete list.
Markdown text (suitable notated) is used before functions, classes and methods. They provide input to this document package.
The markdown is transformed into a merged stream and processed using the Pandoc Utility. The merging process gives opportunity for some customization to be implemented. The @@ prefix is used to provide PSEC specific customization and is detailed in PSEC - Markdown Usage.
PSEC is an extensive set of Powershell enhancements that, along with other acknowledged works, is deployed into the public domain subject to the limitations detailed below.
More detailed information is found by clicking on the link that triggered this popup