/// <summary>
 /// Creates a new instance of <see cref="TemplateController"/>.
 /// </summary>
 /// <param name="logger">The <see cref="ILogger"/> instance to use for logging.</param>
 /// <param name="simulationEngine">The engine for performing simulated and emulated processing.</param>
 /// <param name="logContextFactory">The factory for creating correlated log contexts.</param>
 public TemplateController(ILogger <TemplateController> logger, IEngine simulationEngine, IScopedLogContextFactory logContextFactory)
     : base(logger, simulationEngine, logContextFactory)
 {
 }
 /// <summary>
 /// Creates a new instance of <see cref="AdaptableController"/>.
 /// </summary>
 /// <param name="logger">The <see cref="ILogger"/> instance to use for logging.</param>
 /// <param name="simulationEngine">The engine for performing simulated and emulated processing.</param>
 /// <param name="logContextFactory">The factory for creating correlated log contexts.</param>
 protected AdaptableController(ILogger <AdaptableController> logger, IEngine simulationEngine, IScopedLogContextFactory logContextFactory)
 {
     log           = logger ?? throw new ArgumentNullException(nameof(logger));
     engine        = simulationEngine ?? throw new ArgumentNullException(nameof(simulationEngine));
     correlatedLog = logContextFactory ?? throw new ArgumentNullException(nameof(logContextFactory));
 }