Feature/abstract enrichment

This requires documentation.  There are also multiple "complex enrichments" in the works. I expect at least one to get added.

Note that shared examples for complex enrichments don't actually run in the current code base.
:+1: