Fail to build console application with Engine module

Related question: How can I create a console-only program?

Hello, I am making an console application that processes .uasset files. I copied BlankProgram and compiled well. But when I try to add Engine as dependency module, it doesn’t compile with error like below:

EXEC : error : Couldn't find parent type for 'LevelSequenceBurnIn' named 'UUserWidget' in current module or any other module parsed so far.

The author of related question above had same problem but no information about the code structure. Here is my code structure:

  • Engine
  • SimConsole
    • Source
      • Private
      • Public
      • SimConsole.Build.cs
    • SimConsole.Target.cs
    • SimConsole.uproject

SimConsole.Target.cs

using UnrealBuildTool;
using System.Collections.Generic;

[SupportedPlatforms(UnrealPlatformClass.Desktop)]
public class SimConsoleTarget : TargetRules
{
	public SimConsoleTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Program;
		//LinkType = TargetLinkType.Modular;
		LinkType = TargetLinkType.Monolithic;
		LaunchModuleName = "SimConsole";

		// Lean and mean
		bBuildDeveloperTools = false;

		// Never use malloc profiling in Unreal Header Tool.  We set this because often UHT is compiled right before the engine
		// automatically by Unreal Build Tool, but if bUseMallocProfiler is defined, UHT can operate incorrectly.
		bUseMallocProfiler = false;

		// Editor-only data, however, is needed
		bBuildWithEditorOnlyData = true;

		// Currently this app is not linking against the engine, so we'll compile out references from Core to the rest of the engine
		bCompileAgainstEngine = false;
		bCompileAgainstCoreUObject = false;
		//bCompileAgainstApplicationCore = false;

		// UnrealHeaderTool is a console application, not a Windows app (sets entry point to main(), instead of WinMain())
		bIsBuildingConsoleApplication = true;
	}
}

SimConsole.Build.cs

using UnrealBuildTool;
using System.IO;

public class SimConsole : ModuleRules
{
	public SimConsole(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

		PublicIncludePaths.Add(Path.Combine(EngineDirectory, "Source/Runtime/Launch/Public"));
		PrivateIncludePaths.Add(Path.Combine(EngineDirectory, "Source/Runtime/Launch/Private"));		// For LaunchEngineLoop.cpp include

		PublicDependencyModuleNames.AddRange(new string[] {
			"Core",
			"CoreUObject",
			"Projects",
			"Engine",
			"UMG",
		});
	}
}

I looked into the code and saw order of some modules in UHT manifest is not properly configured. Is it intended feature or a bug?