** (Service) - Holds meta information on how the 'Registry' was built.
** 'RegistryMeta' may be dependency injected.  
const mixin RegistryMeta {
    ** The options map as defined by `RegistryBuilder`. 
    ** This map is case-insensitive.
    ** Useful for passing external immutable data into services.   
    abstract [Str:Obj?] options()

    ** Returns the 'option' value for the specified key. 
    abstract Obj? get(Str key)

    ** Returns 'true' if the specified key is mapped in 'options'.
    abstract Bool containsKey(Str key)
    ** Returns a list of modules loaded by this IoC
    abstract Type[] moduleTypes()
    ** Returns a unique list of pods that contain modules loaded by this IoC.
    ** Useful for gaining a list of pods used in an application, should you wish to *scan* for
    ** classes. 
    abstract Pod[] modulePods()

internal const class RegistryMetaImpl : RegistryMeta {
    override const [Str:Obj?]   options
    override const Type[]       moduleTypes

    new make([Str:Obj?] options, Type[] moduleTypes) {
        this.options        = options
        this.moduleTypes    = moduleTypes
    override Obj? get(Str key) {

    override Bool containsKey(Str key) {
    override Pod[] modulePods() { { it.pod }.unique