Having map-specific state stored as a child of ModData makes me uneasy. Could we store these in Map instead? This has the advantage that their MiniYaml lists would no longer need to be public, and ActivateMap could be replaced by lazy evalutation of map.Rules etc.