protected BombedMazeFactory(MazeFactoryParameters p) : base(p)
 {
 }
 public new static MazeFactory CreateInstance(MazeFactoryParameters p)
 => _instance ??= new BombedMazeFactory(p);
 protected MazeFactory(MazeFactoryParameters p)
 {
     Message = p.Message;
 }
 protected EnhancedMazeFactory(MazeFactoryParameters p) : base(p)
 {
 }
 public static MazeFactory CreateInstance(MazeFactoryParameters p) => _instance ??= new MazeFactory(p);