Is there a list that compiles all the available managers

JavaScript:
class c1 {
    c1var1 = "hello";
    #c1var3 = "something";
    c1func1(val) {
        this.c1var2 = val;
    }
    #c1func2(val) {
        this.c1var4 = val;
    }
}

class c2 extends c1 {
    c2var1 = "world";
    c2func1(val) {
        this.c1func1("stuff");
        this.c2var2 = val;
    }
}

ac2 = new c2();
// c2 {c1var1: 'hello', c2var1: 'world', #c1var3: 'something'}
pac2 = Object.getPrototypeOf(ac2);
// c1 {c2func1: ƒ}
ppac2 = Object.getPrototypeOf(pac2);
// {c1func1: ƒ}

Object.getOwnPropertyNames(ac2);
// ['c1var1', 'c2var1']
Object.getOwnPropertyNames(pac2);
// ['constructor', 'c2func1']
Object.getOwnPropertyNames(ppac2);
// ['constructor', 'c1func1']

ac2.c2func1("stuff");
Object.getOwnPropertyNames(ac2);
// ['c1var1', 'c2var1', 'c1var2', 'c2var2']

ac2;
// c2 {c1var1: 'hello', c2var1: 'world', c1var2: 'stuff', c2var2: 'stuff', #c1var3: 'something'}

The methods for c2 are listed in pac2 and the methods for c1 are in ppac2 while the properties for either are in ac2. I would have expected c2var1 to appear in pac2, but not ac2 since it's declared in the class declaration rather than just assigned a value. I would expect c1var1 to appear in ppac2 since it's declared in the class definition of c1 and is inherited by c2. It seems all properties go to ac2 and that is "this" for both c1func1 and c2func1. It would seem the prototypes never have properties and only have methods. That isn't true though. If you look at the dump of globalThis the equivalent of pac2 has properties. That could simply be because it's native code, isn't actually defined by javascript code. I also don't get why #c1var2 shows up when I create ac2. That's a private property of c1 so it disappears after that. I can't find it anywhere. I don't get where the console is getting it from. I don't get what causes a property to end up in pac2 or ppac2 rather than ac2.
Civ 6 used LUA so you could make a table that could store any valid key/value pair and store it on an object using SetProperty.

Java, on the other hand, is more strongly typed, right? Is there an equivalent data structure that would allow storing data with such flexibility or does Java always require a type in the declaration?
 
No, JavaScript is more loosely typed. A lot of things will cause the Python runtime to throw errors that the JavaScript runtime is perfectly happy and content with. JavaScript, Python and LUA are very similar, they're all very flexible, but JavaScript seems to be far less strict. I guess that's the whole reason for TypeScript, enforce some rules. Something like C will catch many of your errors at compile time because it's simply the wrong type, but with JavaScript all you have to do is get the syntax right.
 
No, JavaScript is more loosely typed. A lot of things will cause the Python runtime to throw errors that the JavaScript runtime is perfectly happy and content with. JavaScript, Python and LUA are very similar, they're all very flexible, but JavaScript seems to be far less strict. I guess that's the whole reason for TypeScript, enforce some rules. Something like C will catch many of your errors at compile time because it's simply the wrong type, but with JavaScript all you have to do is get the syntax right.
Typescript probably helps with development. You can at least eliminate mistakes from passing the wrong type.

That they choose these loosely typed languages like Java and LUA, wouldn’t these languages make sense for the ability to assign unpredictable values. I had come to believe that is why they picked LUA. So we could assign custom properties to objects. Maybe I am wrong about that, but if I were right, there would be a way to do that using Java in this game. Well, I don’t want to try to walk through a brick wall. Maybe it just isn’t possible.
 
There is a way to do that. someObj.someVar = someThing. There is a descriptor for someVar that controls whether it is configurable, enumerable, writable or has a getter and/or setter. If it's no writeable you can't assign a new value to it. If it's not configurable you can't add a key to it. Checking descriptors though it seems everything is configurable. They could restrict you but don't. I believe you can even add properties to functions though why you would do so is a mystery to me. You can do it but why would you. It's only really useful to you because no one else knows it's there unless they actually inspect the object for properties. Generally if you want a global you stick on window or globalThis, same object. That's your globals. Main Menu is a different window than game though. I keep reading that each script has it's own content but globalThis, as far as I know, is your context. So it might be highly volatile.

I'm not sure exactly what they mean by that. With JavaScript file scope is not global scope. You have to take specific actions to make something global. I believe with LUA file scope is global scope. So modders can interfer with one another by recklessly declaring variables in open code. No, that's my i, j and k. You have to get them to encapsulate all their globals in one variable of a name not likely to be used by another mod, like the mod id. I know that what one mod sees in globalThis is different from what another mod sees. You have to take extrodinary actions to get something to show up in globalThis for another mod. I've only seen one thing show up from another mod and that was some type of model statement starting with a g_. Every globalThis has a property of engine. It is the one and only engine. globalThis is a special case actively managed.

Mods are perfectly capable of communicating with one another, just not through globalThis. As an example Mattifus's mod setting manager changes the Mods tab. Other mods put definitions of their options in a list specifying what tab and section to put their options in. He goes through the list getting all the section names from Mods and creates a dropdown list box of them. When the user selects an item in that dropdown list he hides all the other sections. If mods follow a convention of putting all their options in their own section then his dropdown list box lets you easily view just the options for a particular mod rather than having to scroll through what could become a seemingly endless list. Other mods can add a key to their description in that list providing his mod specific information on how they want to be handled, but they have to be aware of his mod at all for his mod to work. His globalThis is totally different than mine, but many of the same objects appear in both. They are not different instances of the same class, but the same instances of a class.

It is simply the use case for adding properties to those shared instances is very limited. Mattifus isn't adding a property to an instance shared by mods, he's just using a list in that instance managed by the vanilla code. Most use cases where it seems a good idea to add a property is really you're doing it wrong. You could add a unit by creating a new property on some object, but then you have to modify a whole bunch of code to actually use that property. Alternatively you could just stick it in the appropriate lists and now everything uses it without modification. The latter is the right way, the former is a very wrong way. Particularly the former is going to be an invisible units since the game won't draw it if it's not in the appropriate lists. I believe adding a unit doesn't even require code, you just use XML to insert the appropriate values in the relevant tables.

The limited use case I can see is basically debugging. I could see doing it just to understand how things work like how the context changes from mod to mod. Alternatively to figure out just how long individual objects actually persist. Nothing really directly game related. Basically development or debugging tools for modders or gathering reference information. Sort of like System Internals for windows. Most people ought not be messing with that stuff.
 
There is a way to do that. someObj.someVar = someThing. There is a descriptor for someVar that controls whether it is configurable, enumerable, writable or has a getter and/or setter. If it's no writeable you can't assign a new value to it. If it's not configurable you can't add a key to it. Checking descriptors though it seems everything is configurable. They could restrict you but don't. I believe you can even add properties to functions though why you would do so is a mystery to me. You can do it but why would you. It's only really useful to you because no one else knows it's there unless they actually inspect the object for properties. Generally if you want a global you stick on window or globalThis, same object. That's your globals. Main Menu is a different window than game though. I keep reading that each script has it's own content but globalThis, as far as I know, is your context. So it might be highly volatile.

I don't know why you would do it, but you could store the results from a function on the function itself for some other caller. I can't remember much java. Do they return values from functions?

edit: suppose you had a bunch of functions that can run once when the turn begins. Then your game scripts do not need to rerun the functions. They can get the results that you stored. Would be nice if you could just set the value instead of returning it, but does a function have itself within scope? I kind of doubt it.
 
Last edited:
It is simply the use case for adding properties to those shared instances is very limited. Mattifus isn't adding a property to an instance shared by mods, he's just using a list in that instance managed by the vanilla code. Most use cases where it seems a good idea to add a property is really you're doing it wrong. You could add a unit by creating a new property on some object, but then you have to modify a whole bunch of code to actually use that property. Alternatively you could just stick it in the appropriate lists and now everything uses it without modification. The latter is the right way, the former is a very wrong way. Particularly the former is going to be an invisible units since the game won't draw it if it's not in the appropriate lists. I believe adding a unit doesn't even require code, you just use XML to insert the appropriate values in the relevant tables.

Adding properties to a Unit could be useful. Suppose I want to remember a Unit's home city. When the unit is created, I could query that and store it on the unit. Perhaps you could store the number of battles it has won. It depends on what can be queried as to what could be stored on a unit as relevant info.
 
There is a way to do that. someObj.someVar = someThing
My question is, where is someVar defined? I know c# better than java. In c#, I think you have to declare someVar.

In this environment can you do something like
Code:
someObj.someVar1 = someThing1
someObj.someVar2 = someThing2
someObj.someVar3 = someThing3

without having to set up those variables first?
 
With JavaScript that is the definition, assigning a value to it. Not for someObj, you would need a const, var or let to declare it. It seems with an existing object you can just stick stuff on there. Well, assuming it's configurable.
 
With JavaScript that is the definition, assigning a value to it. Not for someObj, you would need a const, var or let to declare it. It seems with an existing object you can just stick stuff on there. Well, assuming it's configurable.
Thank you for everything you have researched. Since you can just make up and add variables with an assignment, these new variables would be unpredictable to the developers. In other words, they probably don’t persist between saves.
 
They won't persist between saves nor game sessions. Exit to desktop and they're gone unless you took specific actions to save them to disk. Some objects may only last as long as a panel is open. engine likely lasts as long as the process does. Configuration may as well, but only as long as the user doesn't click reset to defaults in the options panel. Using a game metaphor if you attached something to a unit it only lasts until the unit dies. If you attach it to a city then it only lasts until the city is destroyed. If you attach it to a leader it only lasts until the leader is defeated. If you attach it to the world it lasts until the world is destroyed. It could exist in all worlds at all times. It could exist in all worlds, but only during a particular age. It could exist only in the best of all possible worlds during the best of all possible ages. It depends upon what you attached to.

Mostly doing that type thing is esoteric exercises. You have no practical reason to do that except in very rare cases. I have a mod that lets people set options in the config files. The basic process is you add items to a list of all the options displayed on the options panel. Once that list is built it's used to create and populate the options panel. Some attributes of items in that list are set by the game, like what type of user interface element, which tab it goes on, which group in that tab, the text displayed, the tooltip. Set by the game just meaning the vanilla code uses them. I hide many of the options I add to reduce clutter. There are switches that will show/hide them. So I add into the list items for those switches a list of which controls they show/hide. With the rest of the options I specify the config file, section and option. Really just because I only do one call back for each type of interface element, i.e. all checkboxes, all switches.

I use UI.getOption() and UI.setOption() to read and set those options. You can get to some of them through Configuration, but you can get to all of them through UI. Whatever backs that supports checkpoint, rollback, commit logic as well as reset to defaults. There's a checkpoint set when you open the panel. If the user clicks the cancel button it rolls back the changes. If they click save it commits them and writes them to disk. If they select reset to defaults it resets everything to default and writes that to disk. I don't know, don't care if it ever gets written to disk. Assuming the user saves their changes it will show up with the same values when they come back in assuming nothing else changed them. It doesn't matter if they accessed options through the main menu or the pause menu. It doesn't matter if they shutdown the game and restarted it.

The list of options is a different story. It only lives as long as the panel is open. It has to be rebuilt every time the panel opens. The base game adds some to that list, I add others, other mods add others. The whole list is rebuilt every time. My script only runs when the panel is open. The only way I know the panel closed is I'm having to add my entries to the list. As far as my callbacks are concerned it's there, it's always been there and will always be there, even though it's really not. The open code executes every time the panel opens so it can tell that the panel was opened by the fact it's running. The callbacks can't tell. It's a brand new list exactly like the old list. The only way the open code could tell if it's the first time it ran is by sticking some value somewhere that outlives that panel. If it tried var isFirstTime = true it's always going to be true as far as I know. That is unless the runtime only initializes variables the first time it runs a script.

If you wanted to do a unit panel listing all the units under your command then you don't need any persistence, that's just a point in time. All the persistence you need is already handled for you. If you want a list of all the units that died for you then you need persistence. You need to create a history of units dying. You need to write that to the save game and reload it. Otherwise it's just those that died from the start of the game or you loaded a save game whichever is most recent. That's because, I believe, the unit is removed from the unit list when it dies. The game has no record of it after that. If you want to track something the game doesn't then you have to save and restore it. If you just want to display data the game has but doesn't display then you don't need any persistence. If you want to create a custom unit you don't need persistence, but you do affect the save game. The game will save the unit to the save game, but if your mod isn't there when it loads it then it won't know what to do with it.

There's also persistence across ages. That's sort of like a save/reload except the reload is a different version. It has to translate from the old age to the new age. Presumably it has a default translation, you can specify translation rules or you can do the translation yourself. I don't know for sure, but perhaps with a custom infantry unit it defaults to upgrading to a generic infantry unit. Or you can tell it that it upgrades to the version of your unit in that age. You might be able to specify that you do the translation because otherwise something gets lost. I don't know the details but it something new with the game, you have to worry about age transitions.
 
Parsing the source is a bit beyond me right now. One thought is an import tree. What imports what. An element would be a javascript file, it's children the files that imported it. So you get a tree of what was imported by what an in turn what imported what imported it. Filter out what's imported by nothing and sort it by the number of leaves. That gives a sense of relative importance of the file. If you eliminate the names imported from the globals then you're left with what injected by the engine, i.e. no imports for them. Those are the names you find how they were used in the javascripts. You have no real reference for the parameters and return values for those objects. There is, of course, the issue of making sense of 600+ javascript files. Those mystereous but important globals defined nowhere and imported from nothing is a major stumbling block.
Here are all the imports in a sorted list. It isn't by leaves though.
There are some duplicates because the lines were not identical when I filtered for duplicates.
Spoiler Imports list :

Code:
import "/core/ui/components/fxs-button-group.js";
import './city-yields.js';
import './fxs-tab-item.js'; // The above import is elided during compilation
import './panel-town-focus.js';
import './production-chooser-item.js';
import './town-focus-section.js';
import './town-unrest-display.js';
import '/base-standard/ui/city-trade/model-city-trade.js';
import '/base-standard/ui/tutorial/model-tutorial-inspector.js';
import '/core/ui/input/plot-cursor.js';
import '/core/ui/navigation-tray/model-navigation-tray.js';
import '/core/ui/options/editors/index.js';
import '/core/ui/options/options.js';
import '/core/ui/options/screen-options-category.js';
import * as Animations from '/core/ui/utilities/animations.js';
import * as AutomationSupport from '/base-standard/ui/automation/automation-test-support.js';
import * as CityBannersStressTest from '/base-standard/ui/debug/city-banners-stress-test.js';
import * as Civilopedia from '/base-standard/ui/civilopedia/model-civilopedia.js';
import * as StatefulIcon_1 from './stateful-icon.js';
import * as StyleChecker from '/core/ui/utilities/utilities-core-stylechecker.js';
import * as TutorialSupport from '/base-standard/ui/tutorial/tutorial-support.js';
import * as Validation from '/core/ui/utilities/utilities-validation.js';
import * as globals from '/base-standard/maps/map-globals.js';
import * as utilities from '/base-standard/maps/map-utilities.js';
import ActionHandler from '/core/ui/input/action-handler.js';
import ActionHandler, { ActiveDeviceTypeChangedEventName } from "/core/ui/input/action-handler.js";
import ActionHandler, { ActiveDeviceTypeChangedEventName } from '/core/ui/input/action-handler.js';
import AdvancedStart from '/base-standard/ui/advanced-start/model-advanced-start.js';
import AdvisorProgress from '/base-standard/ui/victory-progress/model-advisor-victory.js';
import AgeRankings from '/base-standard/ui/age-rankings/model-age-rankings.js';
import AgeScores from '/base-standard/ui/age-scores/model-age-scores.js';
import AgeSummary from '/base-standard/ui/age-summary/model-age-summary-hub.js';
import AttributeTrees from '/base-standard/ui/attribute-trees/model-attribute-trees.js';
import BuildingListModel from '/base-standard/ui/building-list/model-building-list.js';
import BuildingPlacementManager from '/base-standard/ui/building-placement/building-placement-manager.js';
import BuildingPlacementManager, { BuildingPlacementHoveredPlotChangedEventName } from '/base-standard/ui/building-placement/building-placement-manager.js';
import BuildingPlacementManager, { BuildingPlacementSelectedPlotChangedEventName, BuildingPlacementConstructibleChangedEventName } from '/base-standard/ui/building-placement/building-placement-manager.js';
import CameraController from '/core/ui/camera/camera-controller.js';
import ChatCommandManager, { NotificationType } from '/core/ui/mp-chat/chat-command-manager.js';
import ChoosePlotInterfaceMode from '/base-standard/ui/interface-modes/interface-mode-choose-plot.js';
import CinematicManager from '/base-standard/ui/cinematic/cinematic-manager.js';
import CityBannerManager from '/base-standard/ui/city-banners/city-banner-manager.js';
import CityCaptureChooserModel from '/base-standard/ui/city-capture-chooser/model-city-capture-chooser.js';
import CityDetails, { UpdateCityDetailsEventName } from "/base-standard/ui/city-details/model-city-details.js";
import CityInspectorModel from '/base-standard/ui/unit-city-list/model-city-inspector.js';
import CityTradeData from '/base-standard/ui/city-trade/model-city-trade.js';
import CityYields from '/base-standard/ui/utilities/utilities-city-yields.js';
import CityYieldsEngine from '/base-standard/ui/utilities/utilities-city-yields.js';
import CommanderInteractModel from "/base-standard/ui/commander-interact/model-commander-interact.js";
import ContextManager from "/core/ui/context-manager/context-manager.js";
import ContextManager from '/core/ui/context-manager/context-manager.js';
import ContextManager, { ContextManagerEvents } from '/core/ui/context-manager/context-manager.js';
import CultureTree from '/base-standard/ui/culture-tree/model-culture-tree.js';
import CultureTreeChooser from '/base-standard/ui/culture-tree-chooser/model-culture-tree-chooser.js';
import Cursor from '/core/ui/input/cursor.js';
import Cursor, { CursorUpdatedEventName } from '/core/ui/input/cursor.js';
import Databind from "/core/ui/utilities/utilities-core-databinding.js";
import Databind from '/core/ui/utilities/utilities-core-databinding.js';
import DebugInput from '/core/ui/input/debug-input-handler.js';
import DialogBox, { DialogSource, DialogBoxAction } from '/core/ui/dialog-box/model-dialog-box.js';
import DialogBoxManager from '/core/ui/dialog-box/manager-dialog-box.js';
import DialogBoxManager, { DialogBoxAction } from '/core/ui/dialog-box/manager-dialog-box.js';
import DialogManager from '/core/ui/dialog-box/manager-dialog-box.js';
import DialogManager, { DialogBoxAction } from '/core/ui/dialog-box/manager-dialog-box.js';
import DialogManager, { DialogBoxAction, DialogSource } from '/core/ui/dialog-box/manager-dialog-box.js';
import DialogManager, { DialogSource } from '/core/ui/dialog-box/manager-dialog-box.js';
import DiploRibbonData, { RibbonYieldType } from '/base-standard/ui/diplo-ribbon/model-diplo-ribbon.js';
import DiploRibbonData, { UpdateDiploRibbonEvent } from '/base-standard/ui/diplo-ribbon/model-diplo-ribbon.js';
import DiplomacyManager from '/base-standard/ui/diplomacy/diplomacy-manager.js';
import DiplomacyManager, { DiplomacyInputPanel } from '/base-standard/ui/diplomacy/diplomacy-manager.js';
import DistrictHealthManager from '/base-standard/ui/district/district-health-manager.js';
import EndGame from '/base-standard/ui/endgame/model-endgame.js';
import FocusManager from "/core/ui/input/focus-manager.js";
import FocusManager from '/core/ui/input/focus-manager.js';
import FocusedAttackBaseInterfaceMode from '/base-standard/ui/interface-modes/interface-mode-focused-attack-base.js';
import FxsActivatable from "/core/ui/components/fxs-activatable.js";
import FxsActivatable from '/core/ui/components/fxs-activatable.js';
import FxsActivatable, { ActionActivateEvent } from "/core/ui/components/fxs-activatable.js";
import FxsButton from '/core/ui/components/fxs-button.js';
import FxsNavHelp from "/core/ui/components/fxs-nav-help.js";
import FxsNavHelp from '/core/ui/components/fxs-nav-help.js';
import GreatWorks from '/base-standard/ui/great-works/model-great-works.js';
import HexGridData from '/base-standard/ui/hex-grid/model-hex-grid.js';
import HotkeyManager from '/core/ui/input/hotkey-manager.js';
import LeaderModelManager from '/base-standard/ui/diplomacy/leader-model-manager.js';
import LeaderSelectModelManager from '/core/ui/shell/leader-select/leader-select-model-manager.js';
import LegendsManager from '/base-standard/ui/legends-manager/legends-manager.js';
import LegendsReport from '/base-standard/ui/legends-report/model-legends-report.js';
import LensManager from '/core/ui/lenses/lens-manager.js';
import LensManager, { LensActivationEventName } from '/core/ui/lenses/lens-manager.js';
import LensManager, { LensLayerDisabledEventName, LensLayerEnabledEventName, LensActivationEventName } from '/core/ui/lenses/lens-manager.js';
import LiveEventManager from "/core/ui/shell/live-event-logic/live-event-logic.js";
import LiveEventManager from '/core/ui/shell/live-event-logic/live-event-logic.js';
import MPBrowserModel from "/core/ui/shell/mp-browser/model-mp-browser-new.js";
import MPBrowserModel, { MultiplayerGameListQueryCompleteEventName, MultiplayerGameListQueryDoneEventName, MultiplayerGameListQueryErrorEventName } from '/core/ui/shell/mp-browser/model-mp-browser-new.js';
import MPFriendsModel from "/core/ui/shell/mp-staging/model-mp-friends.js";
import MPFriendsModel from '/core/ui/shell/mp-staging/model-mp-friends.js';
import MPFriendsModel, { MPRefreshDataFlags } from '/core/ui/shell/mp-staging/model-mp-friends.js';
import MPLobbyModel from '/core/ui/shell/mp-staging/model-mp-staging-new.js';
import MPLobbyModel, { LobbyUpdateEventName } from '/core/ui/shell/mp-staging/model-mp-staging-new.js';
import MiniMapData from '/base-standard/ui/mini-map/model-mini-map.js';
import MultiplayerShellManager from '/core/ui/shell/mp-shell-logic/mp-shell-logic.js';
import MultiplayerShellManager, { MultiplayerCreateAttemptEventName, MultiplayerCreateCompleteEventName, MultiplayerCreateFailEventName, MultiplayerGameAbandonedEventName, MultiplayerJoinCompleteEventName, MultiplayerJoinFailEventName, MultiplayerMatchMakeCompleteEventName, MultiplayerMatchMakeFailEventName } from '/core/ui/shell/mp-shell-logic/mp-shell-logic.js';
import NarrativePopupManager from '/base-standard/ui/narrative-event/narrative-popup-manager.js';
import NavTray from "/core/ui/navigation-tray/model-navigation-tray.js";
import NavTray from '/core/ui/navigation-tray/model-navigation-tray.js';
import Options from '/core/ui/options/model-options.js';
import Panel from "/core/ui/panel-support.js";
import Panel from '/core/ui/panel-support.js';
import PanelNotificationMobilePopupManager from '/base-standard/ui/notification-train-mobile/panel-notification-mobile-manager.js';
import PillageBaseInterfaceMode from '/base-standard/ui/interface-modes/interface-mode-pillage-base.js';
import PlacePopulation from '/base-standard/ui/place-population/model-place-population.js';
import PlayerColors from '/core/ui/utilities/utilities-color.js';
import PlayerUnlocks from '/base-standard/ui/unlocks/model-unlocks.js';
import PlotCursor from '/core/ui/input/plot-cursor.js';
import PlotCursor, { PlotCursorUpdatedEventName } from '/core/ui/input/plot-cursor.js';
import PlotIcons from '/core/ui/plot-icons/plot-icons.js';
import PlotIconsManager from '/core/ui/plot-icons/plot-icons-manager.js';
import PlotWorkersManager, { PlotWorkersHoveredPlotChangedEventName } from '/base-standard/ui/plot-workers/plot-workers-manager.js';
import PlotWorkersManager, { PlotWorkersUpdatedEventName } from '/base-standard/ui/plot-workers/plot-workers-manager.js';
import PoliciesData from './model-policies.js';
import QuestTracker from "/base-standard/ui/quest-tracker/quest-tracker.js";
import QuestTracker from '/base-standard/ui/quest-tracker/quest-tracker.js';
import QuestTracker, { QuestCompletedEventName } from '/base-standard/ui/quest-tracker/quest-tracker.js';
import QuestTracker, { QuestListUpdatedEventName } from "/base-standard/ui/quest-tracker/quest-tracker.js";
import ResourceAllocation from '/base-standard/ui/resource-allocation/model-resource-allocation.js';
import RewardsNotificationManager from "/core/ui/rewards-notifications/rewards-notification-manager.js";
import SaveLoadData from '/core/ui/save-load/model-save-load.js';
import SaveLoadData, { DEFAULT_SAVE_GAME_INFO, QueryDoneEventName } from '/core/ui/save-load/model-save-load.js';
import SaveLoadData, { QueryCompleteEventName } from '/core/ui/save-load/model-save-load.js';
import SocialNotificationsManager, { SocialNotificationIndicatorType } from "/core/ui/social-notifications/social-notifications-manager.js";
import SocialNotificationsManager, { SocialNotificationIndicatorType } from '/core/ui/social-notifications/social-notifications-manager.js';
import Spatial from '/core/ui/spatial/spatial-manager.js';
import SpatialNavigation from '/core/ui/external/js-spatial-navigation/spatial_navigation.js';
import SpatialWrap from '/core/ui/external/js-spatial-navigation/spatial-wrapper.js';
import SystemMessageManager from '/core/ui/system-message/system-message-manager.js';
import TechCivicPopupManager, { ProgressionTreeTypes } from '/base-standard/ui/tech-civic-complete/tech-civic-popup-manager.js';
import TechTree from '/base-standard/ui/tech-tree/model-tech-tree.js';
import TechTreeChooser from '/base-standard/ui/tech-tree-chooser/model-tech-tree-chooser.js';
import TooltipManager from "/core/ui/tooltips/tooltip-manager.js";
import TooltipManager from '/core/ui/tooltips/tooltip-manager.js';
import TooltipManager, { PlotTooltipPriority } from '/core/ui/tooltips/tooltip-manager.js';
import TutorialItem, { TutorialAdvisorType, TutorialAnchorPosition, TutorialCalloutType, TutorialLevel } from "/base-standard/ui/tutorial/tutorial-item.js";
import TutorialItem, { TutorialItemState, TutorialLevel, NextItemStatus, TutorialAdvisorType, TutorialAnchorPosition } from '/base-standard/ui/tutorial/tutorial-item.js';
import TutorialManager from '/base-standard/ui/tutorial/tutorial-manager.js';
import TutorialManager, { TutorialCalloutMinimizeEventName } from '/base-standard/ui/tutorial/tutorial-manager.js';
import UnitCityListModel from '/base-standard/ui/unit-city-list/model-unit-city-list.js';
import UnitPromotionModel from '/base-standard/ui/unit-promotion/model-unit-promotion.js';
import UnitSelection from "/base-standard/ui/unit-selection/unit-selection.js";
import UnitSelection from '/base-standard/ui/unit-selection/unit-selection.js';
import UpdateGate from "/core/ui/utilities/utilities-update-gate.js";
import UpdateGate from '/core/ui/utilities/utilities-update-gate.js';
import VictoryManager from '/base-standard/ui/victory-manager/victory-manager.js';
import VictoryPoints from '/base-standard/ui/victory-points/model-victory-points.js';
import VictoryProgress from '/base-standard/ui/victory-progress/model-victory-progress.js';
import ViewManager from "/core/ui/views/view-manager.js";
import ViewManager from '/core/ui/views/view-manager.js';
import ViewManager, { SwitchViewResult } from '/core/ui/views/view-manager.js';
import ViewManager, { UISystem } from '/core/ui/views/view-manager.js';
import WatchOutManager from '/base-standard/ui/watch-out/watch-out-manager.js';
import WorldAnchorTextManager from '/base-standard/ui/world-anchor-text/world-anchor-text-manager.js';
import WorldInput from '/base-standard/ui/world-input/world-input.js';
import YieldBar from "/base-standard/ui/yield-bar/model-yield-bar.js";
import YieldReportData from './model-yields-report.js';
import was found 2207 times in 509 files
import { AGE_TRANSITION_BANNER_FADE_OUT_DURATION } from '/base-standard/ui/age-transition-banner/age-transition-banner.js';
import { ActionActivateEvent } from "/core/ui/components/fxs-activatable.js";
import { ActionActivateEvent } from '/core/ui/components/fxs-activatable.js';
import { ActionActivateEventName } from '/core/ui/components/fxs-activatable.js';
import { ActionConfirmEventName } from '/core/ui/save-load/save-load-card.js';
import { ActionConfirmEventName, SortOptions, mapSortOptionsToFlex } from '/core/ui/shell/mp-browser/mp-browser-chooser-item.js';
import { ActiveDeviceTypeChangedEventName } from "/core/ui/input/action-handler.js";
import { ActiveDeviceTypeChangedEventName } from '/core/ui/input/action-handler.js';
import { AdvisorUtilities } from '/base-standard/ui/tutorial/tutorial-support.js';
import { AnalogInput, InputEngineEvent, InputEngineEventName, NavigateInputEvent, NavigateInputEventName } from '/core/ui/input/input-support.js';
import { Audio } from "/core/ui/audio-base/audio-support.js";
import { Audio } from '/core/ui/audio-base/audio-support.js';
import { AutomationBaseBenchmarkGame } from '/base-standard/ui/automation/automation-base-benchmark-game.js';
import { AutomationBasePlayGame } from '/base-standard/ui/automation/automation-base-play-game.js';
import { AutomationBasePlayGameXR } from '/base-standard/ui/automation/automation-base-play-game-xr.js';
import { BANNER_INVALID_LOCATION } from '/base-standard/ui/city-banners/banner-support.js';
import { BannerType, CityStatusType, BANNER_INVALID_LOCATION } from '/base-standard/ui/city-banners/banner-support.js';
import { BuildQueue } from '/base-standard/ui/build-queue/model-build-queue.js';
import { CanConvertToCity, ConvertToCity } from '/base-standard/ui/production-chooser/production-chooser-operations.js';
import { Catalog } from '/core/ui/utilities/utility-serialize.js';
import { CategoryData, CategoryType } from '/core/ui/options/options-helpers.js';
import { CategoryData, CategoryType, ShowReloadUIPrompt, ShowRestartGamePrompt } from '/core/ui/options/options-helpers.js';
import { CategoryData, OptionType, ShowReloadUIPrompt, ShowRestartGamePrompt } from '/core/ui/options/options-helpers.js';
import { CategoryType, OptionType } from '/core/ui/options/options-helpers.js';
import { ChallengeClass } from '../../../core/ui/utilities/utilities-metaprogression.js';
import { ChallengeClass, ChallengeCategorySortIndex as ChallengeCategorySortIndex } from '/core/ui/utilities/utilities-metaprogression.js';
import { ChooserItem } from "/base-standard/ui/chooser-item/chooser-item.js";
import { ChooserItem } from '/base-standard/ui/chooser-item/chooser-item.js';
import { City } from '/base-standard/ui/city-selection/city-selection.js';
import { CityBannerComponent } from '/base-standard/ui/city-banners/city-banners.js';
import { CityDecorationSupport } from '/base-standard/ui/interface-modes/support-city-decoration.js';
import { CityDetailsClosedEventName } from '/base-standard/ui/city-details/panel-city-details.js';
import { CityZoomer } from '/base-standard/ui/city-zoomer/city-zoomer.js';
import { CivilizationInfoTooltipModel } from "/core/ui/shell/age-transition/civilization-info-tooltip.js";
import { ComponentID } from "/core/ui/utilities/utilities-component-id.js";
import { ComponentID } from '/core/ui/utilities/utilities-component-id.js';
import { ContinentLensLayer, ToggleContinentPanelEventName } from "/base-standard/ui/lenses/layer/continent-layer.js";
import { CreateElementTable } from '/core/ui/utilities/utilities-dom.js';
import { CreateGameModel } from "/core/ui/shell/create-panels/create-game-model.js";
import { CreateGameModel } from '/core/ui/shell/create-panels/create-game-model.js';
import { CreateOptionComponent, GetGroupLocKey, OptionType } from '/core/ui/options/options-helpers.js';
import { CursorUpdatedEventName } from '/core/ui/input/cursor.js';
import { DialogBoxAction } from '/core/ui/dialog-box/manager-dialog-box.js';
import { DisplayHandlerBase } from "/core/ui/context-manager/display-handler.js";
import { DisplayHandlerBase } from '/core/ui/context-manager/display-handler.js';
import { DisplayHandlerBase, DisplayHideReason } from '/core/ui/context-manager/display-handler.js';
import { DisplayQueueManager } from "/core/ui/context-manager/display-queue-manager.js";
import { DisplayQueueManager } from '/core/ui/context-manager/display-queue-manager.js';
import { DisplayQueueManager, DisplayHideReason } from "/core/ui/context-manager/display-queue-manager.js";
import { DropdownSelectionChangeEvent, DropdownSelectionChangeEventName } from '/core/ui/components/fxs-dropdown.js';
import { DropdownSelectionChangeEventName } from '/core/ui/components/fxs-dropdown.js';
import { EditorCalibrateHDRClosedEventName, EditorCalibrateHDROpenedEventName } from '/core/ui/options/editors/index.js';
import { ElementToDebugString } from "/core/ui/utilities/utilities-dom.js";
import { EmoticonSelectEvent } from '/core/ui/mp-chat/screen-mp-chat.js';
import { EndGameScreenCategory } from '/base-standard/ui/endgame/screen-endgame.js';
import { EndResultsFinishedEventName } from '/base-standard/ui/end-results/end-results.js';
import { EventsScreenGoMultiPlayerEventName, EventsScreenGoSinglePlayerEventName, EventsScreenLoadEventName, EventsScreenContinueEventName } from '/core/ui/shell/events/screen-events.js';
import { Focus } from '/core/ui/input/focus-support.js';
import { FocusCityViewEvent, FocusCityViewEventName } from '/base-standard/ui/views/view-city.js';
import { FocusCityViewEventName } from '/base-standard/ui/views/view-city.js';
import { Framework } from '/core/ui/framework.js';
import { FxsActivatable } from "/core/ui/components/fxs-activatable.js";
import { FxsActivatable } from '/core/ui/components/fxs-activatable.js';
import { FxsCheckbox } from '/core/ui/components/fxs-checkbox.js';
import { FxsChooserItem } from "/core/ui/components/fxs-chooser-item.js";
import { FxsChooserItem } from '/core/ui/components/fxs-chooser-item.js';
import { FxsDropdown } from "/core/ui/components/fxs-dropdown.js";
import { FxsDropdown, FxsDropdownItemElement } from "/core/ui/components/fxs-dropdown.js";
import { FxsFrame } from '/core/ui/components/fxs-frame.js';
import { FxsHeader } from "/core/ui/components/fxs-header.js";
import { FxsIcon } from '/core/ui/components/fxs-icon.js';
import { FxsMinusPlusButton } from '/core/ui/components/fxs-minus-plus.js';
import { FxsRingMeter } from '/core/ui/components/fxs-ring-meter.js';
import { FxsSlider } from '/core/ui/components/fxs-slider.js';
import { FxsStepper } from '/core/ui/components/fxs-stepper.js';
import { FxsSwitch } from '/core/ui/components/fxs-switch.js';
import { FxsTextboxValidateVirtualKeyboard } from "/core/ui/components/fxs-textbox.js";
import { FxsVSlot } from '/core/ui/components/fxs-slot.js';
import { GameCreationPanelBase } from '/core/ui/shell/create-panels/game-creation-panel-base.js';
import { GameCreationPromoManager } from '/core/ui/shell/create-panels/game-creation-promo-manager.js';
import { GameCreatorOpenedEvent } from '/core/ui/events/shell-events.js';
import { GameCreatorOpenedEventName, GameCreatorClosedEventName, StartCampaignEventName } from '/core/ui/events/shell-events.js';
import { GenericUnitFlag } from '/base-standard/ui/unit-flags/unit-flags.js';
import { GetAgeMap } from "/core/ui/shell/create-panels/age-civ-select-model.js";
import { GetAgeMap } from '/core/ui/shell/create-panels/age-civ-select-model.js';
import { GetAgeMap, GetCivilizationData } from "/core/ui/shell/create-panels/age-civ-select-model.js";
import { GetAgeMap, GetCivilizationData } from '/core/ui/shell/create-panels/age-civ-select-model.js';
import { GetCivilizationData } from "/core/ui/shell/create-panels/age-civ-select-model.js";
import { GetCivilizationData } from '/core/ui/shell/create-panels/age-civ-select-model.js';
import { GetNextCityID, GetPrevCityID } from '/base-standard/ui/production-chooser/production-chooser-helpers.js';
import { GetPrevCityID, GetNextCityID } from '/base-standard/ui/production-chooser/production-chooser-helpers.js';
import { GetTownFocusBlp } from '/base-standard/ui/production-chooser/production-chooser-helpers.js';
import { GetTownFocusItems } from '/base-standard/ui/production-chooser/production-chooser-helpers.js';
import { Graph } from '/core/ui/graph-layout/graph.js';
import { Graph, isEmpty as graphIsEmpty, constant as graphConstant } from '/core/ui/graph-layout/graph.js';
import { GraphLayout } from '/core/ui/graph-layout/layout.js';
import { HighlightColors } from '/core/ui/utilities/utilities-color.js';
import { Icon } from "/core/ui/utilities/utilities-image.js";
import { Icon } from '/core/ui/utilities/utilities-image.js';
import { IconDropdown } from '/core/ui/shell/shell-components/icon-dropdown.js';
import { InitDebugWidgets } from '/base-standard/ui/debug/hud-debug-widgets.js';
import { InputEngineEvent } from "/core/ui/input/input-support.js";
import { InputEngineEvent } from '/core/ui/input/input-support.js';
import { InputEngineEvent, InputEngineEventName } from '/core/ui/input/input-support.js';
import { InputEngineEventName } from "/core/ui/input/input-support.js";
import { InputEngineEventName } from '/core/ui/input/input-support.js';
import { InputEngineEventName, NavigateInputEventName } from '/core/ui/input/input-support.js';
import { InterfaceMode } from "/core/ui/interface-modes/interface-modes.js";
import { InterfaceMode } from '/core/ui/interface-modes/interface-modes.js';
import { InterfaceMode, InterfaceModeChangedEventName } from '/core/ui/interface-modes/interface-modes.js';
import { IsElement } from '/core/ui/utilities/utilities-dom.js';
import { IsElement, MustGetElement } from '/core/ui/utilities/utilities-dom.js';
import { Layout } from "/core/ui/utilities/utilities-layout.js";
import { Layout } from '/core/ui/utilities/utilities-layout.js';
import { LegalDocsAcceptedEventName } from '/core/ui/shell/mp-legal/mp-legal.js';
import { LegalDocsPlacementAcceptName } from '/core/ui/shell/mp-legal/mp-legal.js';
import { LowerCalloutEvent } from '/base-standard/ui/tutorial/tutorial-events.js';
import { LowerCalloutEvent, LowerQuestPanelEvent } from '/base-standard/ui/tutorial/tutorial-events.js';
import { LowerQuestPanelEvent } from '/base-standard/ui/tutorial/tutorial-events.js';
import { MAX_UI_SCALE, MIN_UI_SCALE, MustGetElement, SetUIScale } from '/core/ui/utilities/utilities-dom.js';
import { MPStagingDropdown } from "/core/ui/shell/mp-staging/mp-staging-dropdown.js";
import { MainMenuReturnEvent } from '/core/ui/events/shell-events.js';
import { MainMenuReturnEventName } from '/core/ui/events/shell-events.js';
import { MakeDraggable, MakeResizeable } from '/core/ui/utilities/utilities-frame.js';
import { MementoSlotType } from "/core/ui/shell/create-panels/leader-select-model.js";
import { MustGetElement } from "/core/ui/utilities/utilities-dom.js";
import { MustGetElement } from '/core/ui/utilities/utilities-dom.js';
import { MustGetElement, MustGetElements } from '/core/ui/utilities/utilities-dom.js';
import { NavigateInputEventName } from '/core/ui/input/input-support.js';
import { Navigation } from "/core/ui/input/navigation-support.js";
import { Navigation } from '/core/ui/input/navigation-support.js';
import { Navigation, NavigationRule } from '/core/ui/input/navigation-support.js';
import { NavigationHandlers } from '/core/ui/input/navigation-handlers.js';
import { NetworkUtilities } from '/core/ui/utilities/utilities-network.js';
import { NetworkUtilities } from 'core/ui/utilities/utilities-network.js';
import { NetworkUtilities, joinGameErrorTypeToErrorBody, lobbyErrorTypeToErrorBody } from '/core/ui/utilities/utilities-network.js';
import { NextCreationAction } from "/core/ui/shell/create-panels/game-creator-types.js";
import { NextCreationAction } from '/core/ui/shell/create-panels/game-creator-types.js';
import { NextItemStatus, TutorialLevel } from '/base-standard/ui/tutorial/tutorial-item.js';
import { NotificationModel } from "/base-standard/ui/notification-train/model-notification-train.js";
import { NotificationModel } from '/base-standard/ui/notification-train/model-notification-train.js';
import { OVERLAY_PRIORITY } from '/base-standard/ui/utilities/utilities-overlay.js';
import { Options } from '/core/ui/options/model-options.js';
import { Options, OptionType } from '/core/ui/options/model-options.js';
import { OrderedMinHeap } from "/core/ui/utilities/ordered-min-heap.js";
import { PassThroughAttributes } from '/core/ui/utilities/utilities-dom.js';
import { PlotCoord } from "/core/ui/utilities/utilities-plotcoord.js";
import { PlotCoord } from '/core/ui/utilities/utilities-plotcoord.js';
import { PlotCursor } from '/core/ui/input/plot-cursor.js';
import { PlotCursorUpdatedEventName } from '/core/ui/input/plot-cursor.js';
import { PolicyChooserItemIcon } from './policy-chooser-item.js';
import { PolicyTabPlacement } from '/base-standard/ui/policies/screen-policies.js';
import { ProductionChooserAccordionSection } from './production-chooser-accordion.js';
import { ProductionChooserScreen } from '/base-standard/ui/production-chooser/panel-production-chooser.js';
import { ProductionPanelCategory } from '/base-standard/ui/production-chooser/production-chooser-helpers.js';
import { ProductionPanelCategory, GetPrevCityID, GetNextCityID, CreateProductionChooserItem, GetProductionItems, Construct, GetCityBuildReccomendations, GetCurrentTownFocus, SetTownFocus, GetUniqueQuarterForPlayer, GetNumUniqueQuarterBuildingsCompleted } from '/base-standard/ui/production-chooser/production-chooser-helpers.js';
import { ProfileAccountLoggedOutEventName } from '/core/ui/profile-header/profile-header.js';
import { ProfileTabType } from '/core/ui/profile-page/screen-profile-page.js';
import { QuickSaveDoneEventName } from '/core/ui/save-load/model-save-load.js';
import { RandomEventsLayer } from '/base-standard/ui/lenses/layer/random-events-layer.js';
import { RecursiveGetAttribute } from "/core/ui/utilities/utilities-dom.js";
import { RecursiveGetAttribute } from '/core/ui/utilities/utilities-dom.js';
import { ReinforcementMapDecorationSupport } from '/base-standard/ui/interface-modes/support-reinforcement-map-decoration.js';
import { RelationshipBreakdown } from '/base-standard/ui/relationship-breakdown/relationship-breakdown.js';
import { RibbonStatsToggleStatus, UpdateDiploRibbonEvent } from '/base-standard/ui/diplo-ribbon/model-diplo-ribbon.js';
import { SaveLoadClosedEventName } from '/core/ui/save-load/screen-save-load.js';
import { ScaleTreeCardEventName, TreeCardBase } from '/base-standard/ui/tree-grid/tree-support.js';
import { ScreenCreditsOpenedEventName, ScreenCreditsClosedEventName } from '/core/ui/shell/credits/screen-credits.js';
import { ScreenGeneralChooser } from '/base-standard/ui/general-chooser/screen-general-chooser.js';
import { ScreenProfilePageExternalStatus } from "/core/ui/profile-page/screen-profile-page.js";
import { ScreenProfilePageExternalStatus } from '/core/ui/profile-page/screen-profile-page.js';
import { SetTransformTranslateScale } from '/core/ui/utilities/utilities-css.js';
import { SettlementRecommendationsLayer } from '/base-standard/ui/lenses/layer/settlement-recommendations-layer.js';
import { SocialPanelOpenEventName } from '/core/ui/shell/mp-staging/mp-friends.js';
import { SortYields } from '/base-standard/ui/utilities/utilities-city-yields.js';
import { SpriteSheetAnimation } from '/core/ui/utilities/animations.js';
import { StartCampaignEvent } from '/core/ui/events/shell-events.js';
import { StartCampaignEvent, GameCreatorClosedEvent } from "/core/ui/events/shell-events.js";
import { StatefulIcon } from '../stateful-icon/index.js';
import { StatefulIcon } from '/core/ui/stateful-icon/index.js';
import { SuspendCloseListenerEvent, ResumeCloseListenerEvent } from '/core/ui/events/shell-events.js';
import { SuspendCloseListenerEventName, ResumeCloseListenerEventName } from '/core/ui/events/shell-events.js';
import { TabNameTypes, TabNames } from '/core/ui/shell/mp-staging/mp-friends.js';
import { TextBoxTextChangedEventName, TextBoxTextEditStopEventName } from '/core/ui/components/fxs-textbox.js';
import { TextBoxTextEditStopEventName } from '/core/ui/components/fxs-textbox.js';
import { TooltipController } from '/core/ui/tooltips/tooltip-controller.js';
import { TradeRoute } from '/core/ui/utilities/utilities-data.js';
import { TradeRoutesModel } from "/base-standard/ui/trade-route-chooser/trade-routes-model.js";
import { TradeRoutesModel } from '/base-standard/ui/trade-route-chooser/trade-routes-model.js';
import { TreeCardActivatedEventName, TreeCardHoveredEventName } from '/base-standard/ui/tree-grid/tree-card.js';
import { TreeCardBase, TreeSupport } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeCardHoveredEvent } from '/base-standard/ui/tree-grid/tree-card.js';
import { TreeCardHoveredEventName } from '/base-standard/ui/tree-grid/tree-card.js';
import { TreeCardScaleBoundary, TreeSupport, TreeGridDirection } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeClassSelector, TreeGridDirection } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeGrid } from '/base-standard/ui/tree-grid/tree-grid.js';
import { TreeGridDirection } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeNodesSupport } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeNodesSupport, TreeGridDirection, LineDirection } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeSupport, TreeGridDirection } from '/base-standard/ui/tree-grid/tree-support.js';
import { TreeSupport, UpdateLinesEvent, TreeGridDirection } from '/base-standard/ui/tree-grid/tree-support.js';
import { TtsManager } from '/core/ui/accessibility/tts-manager.js';
import { Tutorial } from '/base-standard/ui/tutorial/tutorial-highlighter.js';
import { TutorialAdvisorType } from '/base-standard/ui/tutorial/tutorial-item.js';
import { TutorialAdvisorType, TutorialAnchorPosition } from '/base-standard/ui/tutorial/tutorial-item.js';
import { TutorialAnchorPosition } from '/base-standard/ui/tutorial/tutorial-item.js';
import { TutorialCalloutType } from '/base-standard/ui/tutorial/tutorial-item.js';
import { TutorialItemState } from '/base-standard/ui/tutorial/tutorial-item.js';
import { TutorialLevel } from '/base-standard/ui/tutorial/tutorial-item.js';
import { UISystem } from '/core/ui/views/view-manager.js';
import { UniqueQuarter } from '/base-standard/ui/production-chooser/production-chooser-unique-quarter.js';
import { UnitActionCategory } from '/base-standard/ui/unit-actions/unit-actions.js';
import { UnitActionHandlers } from "/base-standard/ui/unit-interact/unit-action-handlers.js";
import { UnitActionHandlers } from '/base-standard/ui/unit-interact/unit-action-handlers.js';
import { UnitFlagFactory, UnitFlagManager } from '/base-standard/ui/unit-flags/unit-flag-manager.js';
import { UnitFlagManager, UnitFlagFactory } from '/base-standard/ui/unit-flags/unit-flag-manager.js';
import { UnitMapDecorationSupport } from '/base-standard/ui/interface-modes/support-unit-map-decoration.js';
import { UnitRenameConfirmEventName } from '/base-standard/ui/unit-rename/unit-rename.js';
import { UnlockPopupManager } from "/base-standard/ui/unlocks/unlocks-manager.js";
import { UnlockableRewardItems } from '/core/ui/utilities/utilities-liveops.js';
import { UnlockableRewardItems, getPlayerCardInfo, getRewardType, updatePlayerProfile, UnlockableRewardType } from '/core/ui/utilities/utilities-liveops.js';
import { UpdateFromOperationResult } from '/core/ui/components/fxs-activatable.js';
import { UpdateLinesEventName } from '/base-standard/ui/tree-grid/tree-support.js';
import { UpdateOperationTargetEvent } from '/base-standard/ui/lenses/layer/operation-target-layer.js';
import { UpdateProductionChooserItem } from './production-chooser-item.js';
import { VictoryAchievedScreenCategory } from '/base-standard/ui/victory-progress/screen-victory-achieved.js';
import { VictoryProgressOpenTab } from '/base-standard/ui/victory-progress/screen-victory-progress.js';
import { VictoryQuestState } from "/base-standard/ui/quest-tracker/quest-item.js";
import { VictoryQuestState } from '/base-standard/ui/quest-tracker/quest-item.js';
import { abuseReasonToName } from '/core/ui/utilities/utilities-online.js';
import { abuseReasonToTooltip } from '/core/ui/utilities/utilities-online.js';
import { addFeatures, designateBiomes } from '/base-standard/maps/feature-biome-generator.js';
import { addMountains, addHills, buildRainfallMap, generateLakes } from '/base-standard/maps/elevation-terrain-generator.js';
import { addMountains, addHills, expandCoasts, buildRainfallMap } from '/base-standard/maps/elevation-terrain-generator.js';
import { addMountains, addHills, expandCoasts, buildRainfallMap, generateLakes } from '/base-standard/maps/elevation-terrain-generator.js';
import { addNaturalWonders } from '/base-standard/maps/natural-wonder-generator.js';
import { addVolcanoes } from '/base-standard/maps/volcano-generator.js';
import { assignAdvancedStartRegions } from '/base-standard/maps/assign-advanced-start-region.js';
import { assignStartPositions, chooseStartSectors } from '/base-standard/maps/assign-starting-plots.js';
import { composeConstructibleDescription } from '/core/ui/utilities/utilities-core-textprovider.js';
import { composeConstructibleDescription, getModifierTextByContext } from '/core/ui/utilities/utilities-core-textprovider.js';
import { databindComponentID, databindRetrieveComponentID, databindRetrieveComponentIDSerial } from '/core/ui/utilities/utilities-databinding.js';
import { databindRetrieveComponentID } from '/core/ui/utilities/utilities-databinding.js';
import { databindRetrieveComponentIDSerial } from '/core/ui/utilities/utilities-databinding.js';
import { displayRequestUniqueId } from "/core/ui/context-manager/display-handler.js";
import { displayRequestUniqueId } from '/core/ui/context-manager/display-handler.js';
import { dumpStartSectors, dumpContinents, dumpTerrain, dumpElevation, dumpRainfall, dumpBiomes, dumpFeatures, dumpResources, dumpNoisePredicate } from '/base-standard/maps/map-debug-helpers.js';
import { formatStringArrayAsNewLineText } from "/core/ui/utilities/utilities-core-textprovider.js";
import { formatStringArrayAsNewLineText } from '/core/ui/utilities/utilities-core-textprovider.js';
import { gameListUpdateTypeToErrorBody, serverTypeToGameModeType } from '/core/ui/utilities/utilities-network.js';
import { generateDiscoveries } from '/base-standard/maps/discovery-generator.js';
import { generateResources } from '/base-standard/maps/resource-generator.js';
import { generateSnow, dumpPermanentSnow } from '/base-standard/maps/snow-generator.js';
import { getConstructibleEffectStrings } from '/core/ui/utilities/utilities-core-textprovider.js';
import { getDefaultPlayerInfo } from '/core/ui/utilities/utilities-liveops.js';
import { getDefaultPlayerInfo, getPlayerCardInfo } from "/core/ui/utilities/utilities-liveops.js";
import { getDistanceToClosestStart } from '/base-standard/maps/map-utilities.js';
import { getLeaderData } from '/core/ui/shell/create-panels/leader-select-model.js';
import { getLeaderData, getMementoData, OwnershipAction } from '/core/ui/shell/create-panels/leader-select-model.js';
import { getMementoData } from "/core/ui/shell/create-panels/leader-select-model.js";
import { getModifierTextByContext, parseConstructibleAdjacency } from "/core/ui/utilities/utilities-core-textprovider.js";
import { getNodeName, getUnlockTargetDescriptions, getUnlockTargetIcon, getUnlockTargetName } from '/base-standard/ui/utilities/utilities-textprovider.js';
import { getPlayerCardInfo } from "/core/ui/utilities/utilities-liveops.js";
import { getPlayerCardInfo } from '/core/ui/utilities/utilities-liveops.js';
import { getPlayerCardInfo, updatePlayerProfile } from '/core/ui/utilities/utilities-liveops.js';
import { getPlayerColorValues } from '/core/ui/utilities/utilities-color.js';
import { getPlayerColorValues, isPrimaryColorLighter } from '/core/ui/utilities/utilities-color.js';
import { getRewardType, UnlockableRewardType } from '/core/ui/utilities/utilities-liveops.js';
import { getSectorRegion, shuffle, isOceanAccess } from '/base-standard/maps/map-utilities.js';
import { getUnlockTargetDescriptions, getUnlockTargetIcon, getUnlockTargetName } from '/base-standard/ui/utilities/utilities-textprovider.js';
import { getUnlockTargetDescriptions, getUnlockTargetName } from '/base-standard/ui/utilities/utilities-textprovider.js';
import { getUnlockTargetDescriptions, getUnlockTargetName, getUnlockTargetIcon } from '/base-standard/ui/utilities/utilities-textprovider.js';
import { graphAlgo } from './graph-algorithms.js';
import { instance as Civilopedia } from '/base-standard/ui/civilopedia/model-civilopedia.js';
import { isSlot } from '/core/ui/components/fxs-slot.js';
import { mapChatTargetTypeToImageClass, PrivateSelectEvent } from '/core/ui/mp-chat/screen-mp-chat.js';
import { normalize } from '/core/ui/graph-layout/layout-normalize.js';
import { numberHexToStringRGB } from "/core/ui/utilities/utilities-color.js";
import { openBenchmarkUi } from '/base-standard/ui/benchmark/screen-benchmark.js';
import { order } from '/core/ui/graph-layout/layout-order.js';
import { parseLegalDocument } from '/core/ui/utilities/utilities-liveops.js';
import { quickFormatProgressionTreeNodeUnlocks } from '/core/ui/utilities/utilities-core-textprovider.js';
import { ranker } from '/core/ui/graph-layout/layout-ranker.js';
import { realizeCivHeraldry } from '/core/ui/utilities/utilities-color.js';
import { realizePlayerColors } from '/core/ui/utilities/utilities-color.js';
import { resizeThumb, ScrollAtBottomEvent, ScrollExitBottomEvent } from '/core/ui/components/fxs-scrollable.js';
import { roundTo2 } from '/core/ui/utilities/utilities-core-textprovider.js';
import { serverTypeToGameModeType } from '/core/ui/utilities/utilities-network.js';
import { setContextManager } from '/core/ui/framework.js';
import { setFocusManager } from '/core/ui/framework.js';
import { shuffle } from '/base-standard/maps/map-utilities.js';
import { utils } from '/core/ui/graph-layout/utils.js';
 
Last edited:
Parsing the source is a bit beyond me right now. One thought is an import tree. What imports what. An element would be a javascript file, it's children the files that imported it. So you get a tree of what was imported by what an in turn what imported what imported it. Filter out what's imported by nothing and sort it by the number of leaves. That gives a sense of relative importance of the file. If you eliminate the names imported from the globals then you're left with what injected by the engine, i.e. no imports for them. Those are the names you find how they were used in the javascripts. You have no real reference for the parameters and return values for those objects. There is, of course, the issue of making sense of 600+ javascript files. Those mystereous but important globals defined nowhere and imported from nothing is a major stumbling block.

I pretty much let Microsoft copilot read exactly what you wrote and it gave me this. Mind you, this only looks at code in the "base" folder.
Spoiler CoPilot results :

Code:
==== Import Tree ====
 imports:
  - /base-standard/maps/map-utilities.js

trade-routes-model.js"; imports:
  - /core/ui/utilities/utilities-dom.js

model-culture-tree-chooser.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /core/ui/context-manager/context-manager.js

utilities-component-id.js'; imports:
  - /base-standard/ui/watch-out/watch-out-manager.js
  - /base-standard/ui/age-transition-banner/age-transition-banner.js
  - /core/ui/views/view-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/graph-layout/utils.js
  - /core/ui/utilities/utilities-update-gate.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-layout.js
  - /base-standard/ui/narrative-event/narrative-popup-manager.js
  - /base-standard/ui/notification-train/model-notification-train.js
  - /base-standard/ui/quest-tracker/quest-item.js
  - core/ui/utilities/utilities-network.js
  - /base-standard/ui/quest-tracker/quest-tracker.js
  - /core/ui/input/plot-cursor.js
  - /base-standard/ui/unit-flags/unit-flag-manager.js
  - /base-standard/ui/tech-tree/model-tech-tree.js
  - /base-standard/ui/policies/screen-policies.js
  - /base-standard/ui/interface-modes/support-unit-map-decoration.js
  - /core/ui/components/fxs-nav-help.js
  - /base-standard/ui/victory-progress/screen-victory-progress.js
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/action-handler.js
  - /base-standard/ui/utilities/utilities-overlay.js
  - /base-standard/ui/diplomacy/diplomacy-manager.js
  - /core/ui/utilities/utilities-plotcoord.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/components/fxs-activatable.js
  - /base-standard/ui/tutorial/tutorial-item.js

model-great-works.js'; imports:
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-color.js
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js

fxs-header.js"; imports:
  - /core/ui/input/input-support.js

model-age-summary-hub.js'; imports:
  - /core/ui/panel-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-color.js
  - /core/ui/input/focus-manager.js

manager-dialog-box.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-liveops.js
  - /core/ui/views/view-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-update-gate.js
  - /base-standard/ui/build-queue/model-build-queue.js
  - /core/ui/utilities/utilities-layout.js
  - /base-standard/ui/diplomacy/leader-model-manager.js
  - ./production-chooser-item.js
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-network.js
  - /base-standard/ui/building-placement/building-placement-manager.js
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/city-details/panel-city-details.js
  - /core/ui/input/input-support.js
  - /core/ui/system-message/system-message-manager.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/save-load/save-load-card.js
  - /core/ui/shell/live-event-logic/live-event-logic.js
  - /core/ui/shell/create-panels/age-civ-select-model.js
  - /base-standard/ui/production-chooser/production-chooser-unique-quarter.js
  - /core/ui/context-manager/display-handler.js
  - /core/ui/components/fxs-activatable.js
  - /base-standard/ui/views/view-city.js
  - /base-standard/ui/production-chooser/production-chooser-helpers.js
  - /core/ui/components/fxs-nav-help.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/input/action-handler.js
  - /core/ui/components/fxs-dropdown.js
  - ./production-chooser-accordion.js
  - /core/ui/shell/create-panels/leader-select-model.js
  - /core/ui/interface-modes/interface-modes.js
  - /base-standard/ui/production-chooser/production-chooser-operations.js
  - /core/ui/audio-base/audio-support.js

utilities-core-databinding.js'; imports:
  - /core/ui/utilities/utilities-layout.js

context-manager.js'; imports:
  - /base-standard/ui/tutorial/tutorial-support.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /base-standard/ui/relationship-breakdown/relationship-breakdown.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-network.js
  - /base-standard/ui/tree-grid/tree-support.js
  - /core/ui/utilities/utilities-update-gate.js
  - /base-standard/ui/endgame/screen-endgame.js
  - /core/ui/utilities/utilities-layout.js
  - /base-standard/ui/diplomacy/leader-model-manager.js
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/shell/mp-shell-logic/mp-shell-logic.js
  - /core/ui/shell/mp-legal/mp-legal.js
  - /core/ui/utilities/utilities-liveops.js
  - /base-standard/ui/diplo-ribbon/model-diplo-ribbon.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /base-standard/ui/victory-progress/screen-victory-achieved.js
  - /core/ui/profile-header/profile-header.js
  - /core/ui/panel-support.js
  - /core/ui/accessibility/tts-manager.js
  - /base-standard/ui/tutorial/tutorial-events.js
  - /base-standard/ui/quest-tracker/quest-item.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/quest-tracker/quest-tracker.js
  - /core/ui/views/view-manager.js
  - /core/ui/components/fxs-slider.js
  - /core/ui/options/options-helpers.js
  - /base-standard/ui/victory-manager/victory-manager.js
  - /core/ui/shell/mp-browser/mp-browser-chooser-item.js
  - /core/ui/events/shell-events.js
  - /core/ui/input/action-handler.js
  - /core/ui/input/navigation-support.js
  - /core/ui/input/input-support.js
  - /base-standard/ui/utilities/utilities-textprovider.js
  - /core/ui/profile-page/screen-profile-page.js
  - /core/ui/context-manager/display-handler.js
  - /base-standard/ui/tree-grid/tree-grid.js
  - /core/ui/shell/create-panels/create-game-model.js
  - /base-standard/ui/cinematic/cinematic-manager.js
  - /core/ui/utilities/utilities-plotcoord.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/debug-input-handler.js
  - /base-standard/ui/tutorial/tutorial-item.js
  - /core/ui/utilities/utilities-core-textprovider.js
  - /core/ui/dialog-box/manager-dialog-box.js

input-support.js'; imports:
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/navigation-tray/model-navigation-tray.js

model-navigation-tray.js'; imports:
  - /core/ui/input/action-handler.js
  - /core/ui/utilities/utilities-liveops.js
  - /core/ui/shell/create-panels/age-civ-select-model.js
  - /core/ui/shell/live-event-logic/live-event-logic.js
  - /core/ui/shell/create-panels/create-game-model.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/shell/create-panels/game-creation-promo-manager.js
  - /core/ui/input/focus-support.js
  - /core/ui/shell/create-panels/game-creation-panel-base.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/legends-manager/legends-manager.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/shell/leader-select/leader-select-model-manager.js
  - /core/ui/dialog-box/manager-dialog-box.js

quest-tracker.js"; imports:
  - /core/ui/input/action-handler.js
  - /core/ui/utilities/utilities-update-gate.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/components/fxs-activatable.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/views/view-manager.js

camera-controller.js'; imports:
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/tooltips/tooltip-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /base-standard/ui/civilopedia/model-civilopedia.js
  - /core/ui/interface-modes/interface-modes.js
  - /base-standard/ui/world-input/world-input.js
  - /core/ui/context-manager/display-handler.js
  - /core/ui/input/hotkey-manager.js
  - /base-standard/ui/debug/hud-debug-widgets.js
  - /core/ui/utilities/utilities-image.js
  - /base-standard/ui/tutorial/tutorial-manager.js
  - /base-standard/ui/benchmark/screen-benchmark.js
  - /core/ui/context-manager/context-manager.js

model-tech-tree-chooser.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /core/ui/context-manager/context-manager.js

action-handler.js'; imports:
  - /core/ui/shell/create-panels/create-game-model.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /base-standard/ui/culture-tree/model-culture-tree.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/views/view-manager.js
  - /core/ui/utilities/utilities-update-gate.js
  - /base-standard/ui/tree-grid/tree-support.js
  - /core/ui/utilities/utilities-layout.js
  - /base-standard/ui/resource-allocation/model-resource-allocation.js
  - /core/ui/utilities/utilities-css.js
  - /core/ui/input/cursor.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /base-standard/ui/unlocks/model-unlocks.js
  - /core/ui/tooltips/tooltip-controller.js
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js
  - core/ui/utilities/utilities-network.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/shell/create-panels/age-civ-select-model.js
  - /base-standard/ui/age-scores/model-age-scores.js
  - /base-standard/ui/tech-tree/model-tech-tree.js
  - /base-standard/ui/tutorial/tutorial-manager.js
  - /base-standard/ui/interface-modes/support-unit-map-decoration.js
  - /core/ui/shell/create-panels/game-creation-panel-base.js
  - /base-standard/ui/tree-grid/tree-card.js
  - /core/ui/context-manager/context-manager.js
  - /base-standard/ui/tree-grid/tree-grid.js
  - /base-standard/ui/utilities/utilities-overlay.js
  - /base-standard/ui/diplomacy/diplomacy-manager.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/audio-base/audio-support.js
  - /base-standard/ui/great-works/model-great-works.js

tutorial-item.js'; imports:
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/action-handler.js
  - /base-standard/ui/watch-out/watch-out-manager.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/components/fxs-checkbox.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/input/focus-support.js
  - /core/ui/interface-modes/interface-modes.js
  - /base-standard/ui/tutorial/tutorial-events.js
  - /base-standard/ui/quest-tracker/quest-item.js
  - /core/ui/input/focus-manager.js
  - /core/ui/components/fxs-nav-help.js
  - /core/ui/context-manager/context-manager.js
  - /base-standard/ui/quest-tracker/quest-tracker.js
  - /core/ui/dialog-box/manager-dialog-box.js

production-chooser-helpers.js'; imports:
  - /core/ui/components/fxs-frame.js
  - /core/ui/components/fxs-chooser-item.js
  - /core/ui/tooltips/tooltip-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/framework.js
  - /core/ui/components/fxs-slot.js
  - /core/ui/utilities/utilities-core-textprovider.js

graph.js'; imports:
  - /core/ui/graph-layout/layout-order.js
  - /core/ui/graph-layout/layout-normalize.js
  - /core/ui/graph-layout/layout-ranker.js

utilities-image.js'; imports:
  - /core/ui/utilities/utilities-component-id.js
  - /base-standard/ui/victory-manager/victory-manager.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/endgame/model-endgame.js

lens-manager.js'; imports:
  - /base-standard/ui/utilities/utilities-overlay.js

trade-routes-model.js'; imports:
  - /core/ui/lenses/lens-manager.js
  - /base-standard/ui/utilities/utilities-overlay.js

tree-support.js'; imports:
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/utilities/utilities-update-gate.js

interface-modes.js'; imports:
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-component-id.js
  - /base-standard/ui/utilities/utilities-overlay.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/save-load/model-save-load.js
  - /base-standard/ui/place-population/model-place-population.js

utilities-core-textprovider.js'; imports:
  - /core/ui/graph-layout/graph.js
  - /core/ui/graph-layout/layout.js
  - /base-standard/ui/tree-grid/tree-support.js
  - /base-standard/ui/attribute-trees/model-attribute-trees.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/tree-grid/tree-card.js
  - /core/ui/graph-layout/utils.js

diplomacy-manager.js'; imports:
  - /core/ui/input/focus-manager.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-color.js
  - /core/ui/panel-support.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/input/navigation-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/lenses/lens-manager.js
  - /core/ui/context-manager/context-manager.js
  - /base-standard/ui/diplomacy/leader-model-manager.js

tts-manager.js'; imports:
  - /core/ui/options/options-helpers.js
  - /core/ui/options/model-options.js

fxs-activatable.js'; imports:
  - /core/ui/views/view-manager.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/components/fxs-dropdown.js
  - /core/ui/utilities/utilities-network.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/components/fxs-button.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/accessibility/tts-manager.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/context-manager/context-manager.js

model-resource-allocation.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /core/ui/input/navigation-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-image.js

interface-mode-choose-plot.js'; imports:
  - /core/ui/input/plot-cursor.js
  - /core/ui/audio-base/audio-support.js

model-tutorial-inspector.js'; imports:
  - /base-standard/ui/tutorial/tutorial-manager.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/utilities/utilities-frame.js

building-placement-manager.js'; imports:
  - /core/ui/lenses/lens-manager.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/utilities/utilities-update-gate.js
  - /base-standard/ui/utilities/utilities-city-yields.js

model-city-inspector.js'; imports:
  - /core/ui/panel-support.js
  - /core/ui/utilities/utilities-databinding.js

context-manager.js"; imports:
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/events/shell-events.js
  - /core/ui/views/view-manager.js
  - /core/ui/shell/mp-legal/mp-legal.js
  - /core/ui/utilities/utilities-liveops.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/shell/create-panels/age-civ-select-model.js
  - /core/ui/utilities/utilities-update-gate.js
  - /core/ui/shell/age-transition/civilization-info-tooltip.js
  - /core/ui/panel-support.js
  - /core/ui/shell/create-panels/create-game-model.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/profile-page/screen-profile-page.js
  - /core/ui/dialog-box/manager-dialog-box.js

model-victory-progress.js'; imports:
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js

continent-layer.js"; imports:
  - /core/ui/utilities/utilities-dom.js

model-city-trade.js'; imports:
  - /core/ui/panel-support.js
  - /core/ui/utilities/utilities-data.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/focus-manager.js

framework.js'; imports:
  - /core/ui/views/view-manager.js
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/input/focus-manager.js
  - /core/ui/dialog-box/manager-dialog-box.js

model-unlocks.js'; imports:
  - /core/ui/input/action-handler.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-layout.js

model-unit-city-list.js'; imports:
  - /core/ui/panel-support.js
  - /core/ui/input/action-handler.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/input/focus-manager.js

quest-item.js'; imports:
  - /base-standard/ui/tutorial/tutorial-manager.js
  - /core/ui/context-manager/context-manager.js

settlement-recommendations-layer.js'; imports:
  - /core/ui/lenses/lens-manager.js

* @description Displays info for important system messages imports:
  - /core/ui/panel-support.js
  - /core/ui/system-message/system-message-manager.js
  - /core/ui/navigation-tray/model-navigation-tray.js

cinematic-manager.js'; imports:
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/context-manager/context-manager.js

unlocks-manager.js"; imports:
  - /core/ui/input/focus-manager.js

utils.js'; imports:
  - /base-standard/ui/utilities/utilities-textprovider.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/components/fxs-activatable.js
  - /base-standard/ui/unit-flags/unit-flag-manager.js
  - /core/ui/utilities/utilities-image.js

interface-modes.js' imports:
  - /core/ui/panel-support.js
  - /core/ui/dialog-box/manager-dialog-box.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/input/focus-manager.js

model-policies.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/input/focus-support.js
  - /core/ui/graph-layout/utils.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - ./policy-chooser-item.js
  - /core/ui/utilities/utilities-layout.js

model-build-queue.js'; imports:
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /base-standard/ui/views/view-city.js

assign-starting-plots.js'; imports:
  - /base-standard/maps/natural-wonder-generator.js
  - /base-standard/maps/feature-biome-generator.js
  - /base-standard/maps/discovery-generator.js
  - /base-standard/maps/resource-generator.js
  - /base-standard/maps/volcano-generator.js
  - /base-standard/maps/snow-generator.js
  - /base-standard/maps/map-debug-helpers.js
  - /base-standard/maps/assign-advanced-start-region.js

panel-support.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/components/fxs-chooser-item.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-color.js
  - /core/ui/components/fxs-textbox.js
  - /core/ui/accessibility/tts-manager.js
  - /base-standard/ui/building-list/model-building-list.js
  - /core/ui/shell/mp-staging/model-mp-friends.js
  - /core/ui/input/focus-manager.js
  - /core/ui/components/fxs-activatable.js
  - /core/ui/utilities/utilities-online.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/dialog-box/manager-dialog-box.js

model-commander-interact.js"; imports:
  - /core/ui/utilities/utilities-update-gate.js
  - /base-standard/ui/unit-selection/unit-selection.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/panel-support.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/components/fxs-activatable.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-core-textprovider.js

focus-manager.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-liveops.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-update-gate.js
  - /base-standard/ui/watch-out/watch-out-manager.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/utilities/utilities-online.js
  - /core/ui/shell/mp-shell-logic/mp-shell-logic.js
  - /core/ui/spatial/spatial-manager.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /base-standard/ui/unlocks/model-unlocks.js
  - /core/ui/utilities/utilities-network.js
  - /core/ui/panel-support.js
  - /base-standard/ui/tutorial/tutorial-events.js
  - /core/ui/components/fxs-scrollable.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/shell/mp-staging/mp-friends.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/shell/mp-staging/model-mp-friends.js
  - /core/ui/events/shell-events.js
  - /core/ui/input/navigation-support.js
  - /core/ui/shell/mp-staging/model-mp-staging-new.js
  - /core/ui/options/model-options.js
  - /base-standard/ui/narrative-event/narrative-popup-manager.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/action-handler.js
  - /base-standard/ui/utilities/utilities-overlay.js
  - /core/ui/interface-modes/interface-modes.js
  - /base-standard/ui/world-input/world-input.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/utilities/utilities-core-textprovider.js
  - /core/ui/dialog-box/manager-dialog-box.js

view-manager.js'; imports:
  - /base-standard/ui/diplo-ribbon/model-diplo-ribbon.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/views/view-manager.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/context-manager/context-manager.js

utilities-component-id.js"; imports:
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/utilities/utilities-update-gate.js

* @description Manages the data and queue for important system messages imports:
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/context-manager/display-handler.js

model-city-capture-chooser.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/production-chooser/production-chooser-helpers.js

audio-support.js'; imports:
  - /base-standard/ui/civilopedia/model-civilopedia.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-liveops.js
  - /base-standard/ui/interface-modes/interface-mode-choose-plot.js
  - /core/ui/utilities/utilities-update-gate.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/views/view-manager.js
  - /core/ui/shell/mp-shell-logic/mp-shell-logic.js
  - /base-standard/ui/lenses/layer/operation-target-layer.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/context-manager/display-queue-manager.js
  - /base-standard/ui/unit-interact/unit-action-handlers.js
  - /base-standard/ui/unit-rename/unit-rename.js
  - /core/ui/save-load/model-save-load.js
  - /core/ui/shell/mp-legal/mp-legal.js
  - /core/ui/input/cursor.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /base-standard/ui/trade-route-chooser/trade-routes-model.js
  - /core/ui/profile-page/screen-profile-page.js
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/unit-promotion/model-unit-promotion.js
  - /base-standard/ui/place-population/model-place-population.js
  - /core/ui/input/plot-cursor.js
  - /base-standard/ui/unit-selection/unit-selection.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/shell/events/screen-events.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-metaprogression.js
  - /core/ui/utilities/utilities-color.js
  - /core/ui/shell/credits/screen-credits.js
  - /core/ui/input/focus-support.js
  - /core/ui/events/shell-events.js
  - /core/ui/input/action-handler.js
  - /base-standard/ui/interface-modes/support-unit-map-decoration.js
  - /core/ui/save-load/screen-save-load.js
  - /base-standard/ui/production-chooser/production-chooser-helpers.js
  - /core/ui/utilities/animations.js
  - /base-standard/ui/victory-progress/screen-victory-progress.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/options/editors/index.js
  - /core/ui/lenses/lens-manager.js
  - /base-standard/ui/end-results/end-results.js
  - /core/ui/context-manager/display-handler.js
  - /base-standard/ui/utilities/utilities-overlay.js
  - /core/ui/shell/create-panels/leader-select-model.js
  - /base-standard/ui/city-zoomer/city-zoomer.js
  - /core/ui/interface-modes/interface-modes.js
  - /base-standard/ui/world-input/world-input.js
  - /core/ui/input/navigation-support.js
  - /base-standard/ui/city-selection/city-selection.js
  - /base-standard/ui/production-chooser/panel-production-chooser.js
  - /core/ui/utilities/utilities-network.js
  - /core/ui/dialog-box/manager-dialog-box.js

utilities-update-gate.js'; imports:
  - /base-standard/ui/unit-interact/unit-action-handlers.js
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/graph-layout/layout.js
  - /core/ui/views/view-manager.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/graph-layout/utils.js
  - /base-standard/ui/quest-tracker/quest-tracker.js
  - /base-standard/ui/quest-tracker/quest-item.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/utilities/utilities-core-textprovider.js

fxs-activatable.js"; imports:
  - /core/ui/input/action-handler.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-liveops.js
  - /core/ui/rewards-notifications/rewards-notification-manager.js
  - /core/ui/shell/create-panels/leader-select-model.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/shell/mp-staging/model-mp-friends.js
  - /core/ui/panel-support.js
  - /core/ui/shell/create-panels/create-game-model.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/dialog-box/manager-dialog-box.js

city-banner-manager.js'; imports:
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/components/fxs-activatable.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/utilities/utilities-dom.js
  - /base-standard/ui/city-banners/banner-support.js

legends-manager.js'; imports:
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-layout.js

model-notification-train.js'; imports:
  - /base-standard/ui/chooser-item/chooser-item.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-image.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /base-standard/ui/notification-train-mobile/panel-notification-mobile-manager.js
  - /core/ui/input/focus-manager.js
  - /core/ui/utilities/utilities-update-gate.js

model-attribute-trees.js'; imports:
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /base-standard/ui/tree-grid/tree-card.js
  - /core/ui/input/focus-manager.js
  - /base-standard/ui/tree-grid/tree-support.js

model-advisor-victory.js'; imports:
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/input/input-support.js
  - /core/ui/audio-base/audio-support.js
  - /base-standard/ui/quest-tracker/quest-item.js
  - /core/ui/input/focus-manager.js

fxs-checkbox.js'; imports:
  - /core/ui/events/shell-events.js
  - /core/ui/input/input-support.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/components/fxs-dropdown.js
  - /core/ui/options/options-helpers.js
  - /core/ui/options/model-options.js
  - /core/ui/components/fxs-switch.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/context-manager/display-handler.js
  - /core/ui/components/fxs-slider.js
  - /core/ui/input/focus-manager.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/components/fxs-stepper.js

model-advanced-start.js'; imports:
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/input/cursor.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/context-manager/display-handler.js
  - /core/ui/input/focus-manager.js

chooser-item.js"; imports:
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/shell/mp-browser/model-mp-browser-new.js

D:\Steam\steamapps\common\Sid Meier's Civilization VII\Base\modules\age-antiquity\ui\tutorial\tutorial-items-antiquity.js imports:
  - /core/ui/lenses/lens-manager.js
  - /core/ui/input/plot-cursor.js
  - /core/ui/tooltips/tooltip-manager.js
  - /base-standard/ui/diplomacy/diplomacy-manager.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/interface-modes/interface-modes.js
  - /base-standard/ui/tutorial/tutorial-manager.js
  - /base-standard/ui/tutorial/tutorial-item.js

support-city-decoration.js'; imports:
  - /core/ui/utilities/utilities-component-id.js

model-mini-map.js'; imports:
  - /core/ui/shell/mp-staging/mp-friends.js
  - /core/ui/input/input-support.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/utilities/utilities-layout.js

utilities-dom.js'; imports:
  - /core/ui/input/input-support.js
  - ../stateful-icon/index.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/focus-manager.js

options-helpers.js'; imports:
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/options/model-options.js
  - /core/ui/input/input-support.js
  - /core/ui/panel-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/context-manager/context-manager.js

utilities-liveops.js'; imports:
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/context-manager/display-handler.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/input/focus-support.js
  - /core/ui/panel-support.js
  - /core/ui/utilities/utilities-image.js
  - core/ui/utilities/utilities-network.js
  - /core/ui/save-load/model-save-load.js
  - /core/ui/context-manager/context-manager.js

screen-general-chooser.js'; imports:
  - /base-standard/ui/chooser-item/chooser-item.js
  - /core/ui/input/action-handler.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-color.js
  - /core/ui/components/fxs-textbox.js
  - /core/ui/input/focus-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/context-manager/context-manager.js
  - /core/ui/dialog-box/manager-dialog-box.js

district-health-manager.js'; imports:
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/utilities/utilities-plotcoord.js

support-reinforcement-map-decoration.js'; imports:
  - /core/ui/utilities/utilities-component-id.js

utilities-city-yields.js'; imports:
  - /core/ui/utilities/utilities-component-id.js
  - /core/ui/utilities/utilities-update-gate.js

tooltip-manager.js'; imports:
  - /base-standard/ui/tutorial/tutorial-support.js
  - /core/ui/lenses/lens-manager.js
  - /base-standard/ui/relationship-breakdown/relationship-breakdown.js
  - /base-standard/ui/tech-tree/model-tech-tree.js
  - /base-standard/ui/culture-tree/model-culture-tree.js
  - /base-standard/ui/district/district-health-manager.js
  - /core/ui/utilities/utilities-dom.js
  - /base-standard/ui/culture-tree-chooser/model-culture-tree-chooser.js
  - /base-standard/ui/tree-grid/tree-support.js
  - /base-standard/ui/utilities/utilities-city-yields.js

focus-manager.js"; imports:
  - /core/ui/components/fxs-slot.js
  - /core/ui/context-manager/context-manager.js

model-civilopedia.js'; imports:
  - /base-standard/ui/chooser-item/chooser-item.js
  - /core/ui/context-manager/display-queue-manager.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/input/input-support.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/interface-modes/interface-modes.js
  - /core/ui/input/navigation-support.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/utilities/utilities-layout.js

panel-notification-mobile-manager.js'; imports:
  - /base-standard/ui/notification-train/model-notification-train.js

fxs-dropdown.js'; imports:
  - /core/ui/shell/mp-shell-logic/mp-shell-logic.js
  - /core/ui/input/action-handler.js
  - /core/ui/utilities/utilities-core-databinding.js
  - /core/ui/navigation-tray/model-navigation-tray.js
  - /core/ui/shell/create-panels/game-creation-panel-base.js
  - /core/ui/utilities/utilities-network.js
  - /core/ui/shell/create-panels/create-game-model.js
  - /core/ui/shell/create-panels/age-civ-select-model.js
  - /core/ui/utilities/utilities-dom.js
  - /core/ui/panel-support.js
  - /core/ui/profile-header/profile-header.js
  - /core/ui/events/shell-events.js
  - /core/ui/components/fxs-activatable.js
  - /core/ui/audio-base/audio-support.js
  - /core/ui/input/focus-manager.js
  - /core/ui/shell/live-event-logic/live-event-logic.js
  - /core/ui/utilities/utilities-layout.js
  - /core/ui/shell/create-panels/leader-select-model.js
  - /core/ui/shell/leader-select/leader-select-model-manager.js

==== Unused Files ====

trade-routes-model.js";
model-culture-tree-chooser.js';
utilities-core-databinding.js';
model-great-works.js';
fxs-header.js";
model-age-summary-hub.js';
manager-dialog-box.js';
tts-manager.js';
context-manager.js';
input-support.js';
model-navigation-tray.js';
quest-tracker.js";
camera-controller.js';
model-tech-tree-chooser.js';
action-handler.js';
tutorial-item.js';
utilities-image.js';
lens-manager.js';
trade-routes-model.js';
model-advanced-start.js';
utilities-component-id.js';
model-unit-city-list.js';
interface-modes.js';
utilities-liveops.js';
diplomacy-manager.js';
graph.js';
fxs-activatable.js";
interface-mode-choose-plot.js';
model-tutorial-inspector.js';
building-placement-manager.js';
model-city-inspector.js';
context-manager.js";
model-victory-progress.js';
continent-layer.js";
model-city-trade.js';
framework.js';
model-unlocks.js';
fxs-checkbox.js';
quest-item.js';
settlement-recommendations-layer.js';
fxs-activatable.js';
* @description Displays info for important system messages
cinematic-manager.js';
unlocks-manager.js";
utils.js';
interface-modes.js'
model-policies.js';
model-build-queue.js';
assign-starting-plots.js';
panel-support.js';
model-commander-interact.js";
focus-manager.js';
view-manager.js';
utilities-component-id.js";
* @description Manages the data and queue for important system messages
model-city-capture-chooser.js';
audio-support.js';
utilities-update-gate.js';
tree-support.js';
city-banner-manager.js';
legends-manager.js';
model-notification-train.js';
model-attribute-trees.js';
model-advisor-victory.js';
model-resource-allocation.js';
production-chooser-helpers.js';
chooser-item.js";
D:\Steam\steamapps\common\Sid Meier's Civilization VII\Base\modules\age-antiquity\ui\tutorial\tutorial-items-antiquity.js
support-city-decoration.js';
model-mini-map.js';
utilities-dom.js';
options-helpers.js';
utilities-core-textprovider.js';
screen-general-chooser.js';
district-health-manager.js';
support-reinforcement-map-decoration.js';
utilities-city-yields.js';
tooltip-manager.js';
focus-manager.js";
model-civilopedia.js';
panel-notification-mobile-manager.js';
fxs-dropdown.js';

==== Potential Globals ====
diplomacy
focus
unrest
manager
MultiplayerShellManager
during
DiplomacyInputPanel
elided
ViewManager
displaying
MultiplayerCreateAttemptEventName
PlotWorkersUpdatedEventName
QuestTracker
const
DialogBoxAction
UISystem
workers
DEFAULT_SAVE_GAME_INFO
production
LensLayerEnabledEventName
input
MultiplayerMatchMakeFailEventName
save
tooltips
info
NextItemStatus
MultiplayerCreateCompleteEventName
views
MultiplayerJoinFailEventName
LensLayerDisabledEventName
quest
chat
PlotWorkersManager
diplo
Validation
TutorialItem
QueryCompleteEventName
ProgressionTreeTypes
animations
item
MPFriendsModel
yields
view
RibbonYieldType
ContextManagerEvents
MPRefreshDataFlags
TechCivicPopupManager
dialog
MPBrowserModel
TutorialLevel
tutorial
description
category
for
TutorialAdvisorType
section
NotificationType
tooltip
tracker
above
import
screen
core
popup
city
DialogManager
compilation
standard
base
TutorialAnchorPosition
staging
Civilopedia
js
panel
box
UpdateDiploRibbonEvent
ActiveDeviceTypeChangedEventName
route
messages
display
length
context
social
action
civilopedia
TutorialItemState
options
lenses
load
DiploRibbonData
TutorialSupport
civic
ContextManager
PlotCursorUpdatedEventName
globals
QuestCompletedEventName
ChatCommandManager
payload
plot
from
SocialNotificationsManager
LobbyUpdateEventName
support
chooser
system
MultiplayerCreateFailEventName
handler
tradeRoute
DiplomacyManager
complete
LensActivationEventName
Animations
new
importPayloads
notifications
DialogBoxCallbackSignature
TutorialManager
town
SocialNotificationIndicatorType
b
DialogBoxManager
MultiplayerJoinCompleteEventName
cursor
ui
mp
of
MPLobbyModel
LensManager
browser
MultiplayerMatchMakeCompleteEventName
PlotCursor
is
DialogSource
PlotWorkersHoveredPlotChangedEventName
MultiplayerGameListQueryCompleteEventName
as
shell
tab
fxs
maps
ribbon
command
TooltipManager
map
PlotTooltipPriority
SaveLoadData
logic
Screen
utilities
lens
MultiplayerGameListQueryDoneEventName
important
TutorialCalloutMinimizeEventName
The
friends
TutorialCalloutType
a
ActionHandler
MultiplayerGameListQueryErrorEventName
tech
MultiplayerGameAbandonedEventName
push
model
validation
SwitchViewResult
QueryDoneEventName

Is this even one step closer to what you wanted?
 
Alright I worked with it a bit more. I don't know if this accurate but here is the tree it came up with.
Spoiler Tree :

Code:
==== Chain Imports (Dependency Paths) ====


    /base-standard/maps/map-utilities.js

utilities-component-id.js';
    /core/ui/input/plot-cursor.js
        /base-standard/ui/watch-out/watch-out-manager.js
            /base-standard/ui/unit-flags/unit-flag-manager.js
                /core/ui/utilities/utilities-dom.js
                    /base-standard/ui/age-transition-banner/age-transition-banner.js
                        /core/ui/views/view-manager.js
                            /base-standard/ui/tech-tree/model-tech-tree.js
                                /base-standard/ui/policies/screen-policies.js
                                    /base-standard/ui/interface-modes/support-unit-map-decoration.js
                                        /core/ui/components/fxs-activatable.js
                                            /core/ui/utilities/utilities-update-gate.js
                                                /core/ui/utilities/utilities-core-databinding.js
                                                    /base-standard/ui/narrative-event/narrative-popup-manager.js
                                                        /core/ui/utilities/utilities-layout.js
                                                            /base-standard/ui/victory-progress/screen-victory-progress.js
                                                                /core/ui/components/fxs-nav-help.js
                                                                    /base-standard/ui/notification-train/model-notification-train.js
                                                                        /core/ui/lenses/lens-manager.js
                                                                            /core/ui/input/action-handler.js
                                                                                /base-standard/ui/utilities/utilities-overlay.js
                                                                                    /base-standard/ui/diplomacy/diplomacy-manager.js
                                                                                        /core/ui/utilities/utilities-plotcoord.js
                                                                                            /core/ui/interface-modes/interface-modes.js
                                                                                                /base-standard/ui/quest-tracker/quest-item.js
                                                                                                    core/ui/utilities/utilities-network.js
                                                                                                        /core/ui/graph-layout/utils.js
                                                                                                            /base-standard/ui/tutorial/tutorial-item.js
                                                                                                                /base-standard/ui/quest-tracker/quest-tracker.js

manager-dialog-box.js';
    /core/ui/shell/create-panels/age-civ-select-model.js
        /core/ui/input/input-support.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/system-message/system-message-manager.js
                    /core/ui/utilities/utilities-liveops.js
                        /core/ui/utilities/utilities-component-id.js
                            /core/ui/save-load/save-load-card.js
                                /core/ui/shell/live-event-logic/live-event-logic.js
                                    /core/ui/views/view-manager.js
                                        /core/ui/utilities/utilities-dom.js
                                            /base-standard/ui/production-chooser/production-chooser-unique-quarter.js
                                                /base-standard/ui/production-chooser/production-chooser-helpers.js
                                                    /core/ui/context-manager/display-handler.js
                                                        /core/ui/components/fxs-activatable.js
                                                            /core/ui/utilities/utilities-update-gate.js
                                                                /base-standard/ui/build-queue/model-build-queue.js
                                                                    /core/ui/components/fxs-nav-help.js
                                                                        /core/ui/utilities/utilities-layout.js
                                                                            /core/ui/context-manager/context-manager.js
                                                                                /base-standard/ui/diplomacy/leader-model-manager.js
                                                                                    ./production-chooser-item.js
                                                                                        /core/ui/context-manager/display-queue-manager.js
                                                                                            /core/ui/input/action-handler.js
                                                                                                /core/ui/navigation-tray/model-navigation-tray.js
                                                                                                    /core/ui/components/fxs-dropdown.js
                                                                                                        ./production-chooser-accordion.js
                                                                                                            /core/ui/utilities/utilities-network.js
                                                                                                                /base-standard/ui/building-placement/building-placement-manager.js
                                                                                                                    /core/ui/shell/create-panels/leader-select-model.js
                                                                                                                        /core/ui/panel-support.js
                                                                                                                            /core/ui/interface-modes/interface-modes.js
                                                                                                                                /base-standard/ui/views/view-city.js
                                                                                                                                    /base-standard/ui/production-chooser/production-chooser-operations.js
                                                                                                                                        /core/ui/audio-base/audio-support.js
                                                                                                                                            /core/ui/input/focus-manager.js
                                                                                                                                                /base-standard/ui/city-details/panel-city-details.js

quest-tracker.js";
    /core/ui/input/action-handler.js
        /core/ui/input/focus-manager.js
            /core/ui/utilities/utilities-dom.js
                /core/ui/panel-support.js
                    /core/ui/components/fxs-activatable.js
                        /core/ui/audio-base/audio-support.js
                            /core/ui/utilities/utilities-update-gate.js
                                /core/ui/views/view-manager.js

action-handler.js';
    /core/ui/input/plot-cursor.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/utilities/utilities-component-id.js
                /core/ui/utilities/utilities-dom.js
                    /base-standard/ui/culture-tree/model-culture-tree.js
                        /core/ui/views/view-manager.js
                            /base-standard/ui/tech-tree/model-tech-tree.js
                                /core/ui/tooltips/tooltip-controller.js
                                    /base-standard/ui/tree-grid/tree-support.js
                                        /core/ui/shell/create-panels/create-game-model.js
                                            /base-standard/ui/interface-modes/support-unit-map-decoration.js
                                                /core/ui/shell/create-panels/game-creation-panel-base.js
                                                    /core/ui/utilities/utilities-update-gate.js
                                                        /base-standard/ui/tree-grid/tree-card.js
                                                            /core/ui/utilities/utilities-layout.js
                                                                /core/ui/context-manager/context-manager.js
                                                                    /core/ui/shell/create-panels/age-civ-select-model.js
                                                                        /base-standard/ui/resource-allocation/model-resource-allocation.js
                                                                            /core/ui/utilities/utilities-css.js
                                                                                /base-standard/ui/tree-grid/tree-grid.js
                                                                                    /core/ui/input/cursor.js
                                                                                        /core/ui/navigation-tray/model-navigation-tray.js
                                                                                            /base-standard/ui/unlocks/model-unlocks.js
                                                                                                /base-standard/ui/great-works/model-great-works.js
                                                                                                    /base-standard/ui/utilities/utilities-overlay.js
                                                                                                        /base-standard/ui/diplomacy/diplomacy-manager.js
                                                                                                            /core/ui/panel-support.js
                                                                                                                /core/ui/interface-modes/interface-modes.js
                                                                                                                    /core/ui/input/input-support.js
                                                                                                                        /core/ui/audio-base/audio-support.js
                                                                                                                            /core/ui/input/focus-manager.js
                                                                                                                                core/ui/utilities/utilities-network.js
                                                                                                                                    /base-standard/ui/tutorial/tutorial-manager.js
                                                                                                                                        /base-standard/ui/age-scores/model-age-scores.js

lens-manager.js';
    /base-standard/ui/utilities/utilities-overlay.js

graph.js';
    /core/ui/graph-layout/layout-order.js
        /core/ui/graph-layout/layout-normalize.js
            /core/ui/graph-layout/layout-ranker.js

interface-mode-choose-plot.js';
    /core/ui/input/plot-cursor.js
        /core/ui/audio-base/audio-support.js

model-city-inspector.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-databinding.js

model-victory-progress.js';
    /core/ui/panel-support.js
        /core/ui/input/focus-manager.js
            /core/ui/audio-base/audio-support.js
                /core/ui/navigation-tray/model-navigation-tray.js
                    /core/ui/input/input-support.js
                        /core/ui/utilities/utilities-dom.js

* @description Displays info for important system messages
    /core/ui/panel-support.js
        /core/ui/system-message/system-message-manager.js
            /core/ui/navigation-tray/model-navigation-tray.js

model-build-queue.js';
    /core/ui/interface-modes/interface-modes.js
        /base-standard/ui/views/view-city.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/navigation-tray/model-navigation-tray.js

focus-manager.js';
    /core/ui/input/plot-cursor.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/utilities/utilities-liveops.js
                /core/ui/utilities/utilities-component-id.js
                    /core/ui/input/input-support.js
                        /core/ui/utilities/utilities-dom.js
                            /core/ui/shell/mp-staging/model-mp-friends.js
                                /core/ui/events/shell-events.js
                                    /core/ui/shell/mp-shell-logic/mp-shell-logic.js
                                        /core/ui/input/action-handler.js
                                            /core/ui/input/navigation-support.js
                                                /core/ui/shell/mp-staging/model-mp-staging-new.js
                                                    /core/ui/options/model-options.js
                                                        /core/ui/utilities/utilities-online.js
                                                            /base-standard/ui/watch-out/watch-out-manager.js
                                                                /base-standard/ui/narrative-event/narrative-popup-manager.js
                                                                    /core/ui/utilities/utilities-layout.js
                                                                        /core/ui/context-manager/context-manager.js
                                                                            /core/ui/utilities/utilities-update-gate.js
                                                                                /core/ui/lenses/lens-manager.js
                                                                                    /core/ui/spatial/spatial-manager.js
                                                                                        /core/ui/shell/mp-staging/mp-friends.js
                                                                                            /core/ui/navigation-tray/model-navigation-tray.js
                                                                                                /base-standard/ui/unlocks/model-unlocks.js
                                                                                                    /core/ui/utilities/utilities-network.js
                                                                                                        /base-standard/ui/utilities/utilities-overlay.js
                                                                                                            /core/ui/panel-support.js
                                                                                                                /core/ui/interface-modes/interface-modes.js
                                                                                                                    /base-standard/ui/world-input/world-input.js
                                                                                                                        /base-standard/ui/tutorial/tutorial-events.js
                                                                                                                            /core/ui/audio-base/audio-support.js
                                                                                                                                /core/ui/components/fxs-scrollable.js
                                                                                                                                    /core/ui/utilities/utilities-core-textprovider.js
                                                                                                                                        /core/ui/dialog-box/manager-dialog-box.js

utilities-update-gate.js';
    /base-standard/ui/unit-interact/unit-action-handlers.js
        /core/ui/utilities/utilities-component-id.js
            /core/ui/graph-layout/layout.js
                /core/ui/views/view-manager.js
                    /core/ui/interface-modes/interface-modes.js
                        /core/ui/graph-layout/utils.js
                            /base-standard/ui/quest-tracker/quest-tracker.js
                                /base-standard/ui/quest-tracker/quest-item.js
                                    /core/ui/input/focus-manager.js
                                        /core/ui/utilities/utilities-layout.js
                                            /core/ui/utilities/utilities-core-textprovider.js

context-manager.js";
    /core/ui/context-manager/display-queue-manager.js
        /core/ui/input/focus-manager.js
            /core/ui/shell/create-panels/create-game-model.js
                /core/ui/shell/mp-legal/mp-legal.js
                    /core/ui/utilities/utilities-liveops.js
                        /core/ui/navigation-tray/model-navigation-tray.js
                            /core/ui/shell/create-panels/age-civ-select-model.js
                                /core/ui/views/view-manager.js
                                    /core/ui/shell/age-transition/civilization-info-tooltip.js
                                        /core/ui/panel-support.js
                                            /core/ui/events/shell-events.js
                                                /core/ui/audio-base/audio-support.js
                                                    /core/ui/utilities/utilities-update-gate.js
                                                        /core/ui/utilities/utilities-layout.js
                                                            /core/ui/profile-page/screen-profile-page.js
                                                                /core/ui/dialog-box/manager-dialog-box.js

chooser-item.js";
    /core/ui/utilities/utilities-dom.js
        /core/ui/utilities/utilities-layout.js
            /core/ui/shell/mp-browser/model-mp-browser-new.js

panel-notification-mobile-manager.js';
    /base-standard/ui/notification-train/model-notification-train.js

trade-routes-model.js";
    /core/ui/utilities/utilities-dom.js

fxs-activatable.js";
    /core/ui/input/focus-manager.js
        /core/ui/input/action-handler.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/utilities/utilities-liveops.js
                    /core/ui/rewards-notifications/rewards-notification-manager.js
                        /core/ui/shell/create-panels/leader-select-model.js
                            /core/ui/navigation-tray/model-navigation-tray.js
                                /core/ui/utilities/utilities-dom.js
                                    /core/ui/shell/mp-staging/model-mp-friends.js
                                        /core/ui/panel-support.js
                                            /core/ui/shell/create-panels/create-game-model.js
                                                /core/ui/utilities/utilities-image.js
                                                    /core/ui/dialog-box/manager-dialog-box.js

input-support.js';
    /core/ui/panel-support.js
        /core/ui/input/focus-manager.js
            /core/ui/utilities/utilities-dom.js
                /core/ui/navigation-tray/model-navigation-tray.js

legends-manager.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-layout.js
            /core/ui/audio-base/audio-support.js
                /core/ui/input/focus-manager.js
                    /core/ui/input/input-support.js
                        /core/ui/utilities/utilities-dom.js

interface-modes.js';
    /core/ui/context-manager/display-queue-manager.js
        /core/ui/lenses/lens-manager.js
            /core/ui/input/plot-cursor.js
                /core/ui/utilities/utilities-core-databinding.js
                    /core/ui/navigation-tray/model-navigation-tray.js
                        /core/ui/utilities/utilities-component-id.js
                            /base-standard/ui/utilities/utilities-overlay.js
                                /core/ui/utilities/utilities-dom.js
                                    /core/ui/panel-support.js
                                        /core/ui/input/focus-manager.js
                                            /core/ui/save-load/model-save-load.js
                                                /base-standard/ui/place-population/model-place-population.js

diplomacy-manager.js';
    /core/ui/input/focus-manager.js
        /core/ui/input/plot-cursor.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/input/input-support.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/utilities/utilities-color.js
                            /core/ui/panel-support.js
                                /core/ui/interface-modes/interface-modes.js
                                    /core/ui/input/navigation-support.js
                                        /core/ui/audio-base/audio-support.js
                                            /core/ui/utilities/utilities-image.js
                                                /core/ui/lenses/lens-manager.js
                                                    /core/ui/context-manager/context-manager.js
                                                        /base-standard/ui/diplomacy/leader-model-manager.js

unlocks-manager.js";
    /core/ui/input/focus-manager.js

quest-item.js';
    /base-standard/ui/tutorial/tutorial-manager.js
        /core/ui/context-manager/context-manager.js

cinematic-manager.js';
    /core/ui/interface-modes/interface-modes.js
        /core/ui/input/plot-cursor.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/lenses/lens-manager.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/context-manager/context-manager.js

utils.js';
    /core/ui/components/fxs-activatable.js
        /base-standard/ui/unit-flags/unit-flag-manager.js
            /core/ui/utilities/utilities-image.js
                /base-standard/ui/utilities/utilities-textprovider.js
                    /core/ui/utilities/utilities-layout.js

interface-modes.js'
    /core/ui/panel-support.js
        /core/ui/input/focus-manager.js
            /core/ui/utilities/utilities-image.js
                /core/ui/dialog-box/manager-dialog-box.js

model-notification-train.js';
    /base-standard/ui/chooser-item/chooser-item.js
        /core/ui/utilities/utilities-core-databinding.js
            /base-standard/ui/notification-train-mobile/panel-notification-mobile-manager.js
                /core/ui/navigation-tray/model-navigation-tray.js
                    /core/ui/input/focus-manager.js
                        /core/ui/utilities/utilities-dom.js
                            /core/ui/input/focus-support.js
                                /core/ui/panel-support.js
                                    /core/ui/audio-base/audio-support.js
                                        /core/ui/utilities/utilities-image.js
                                            /core/ui/utilities/utilities-update-gate.js

production-chooser-helpers.js';
    /core/ui/components/fxs-frame.js
        /core/ui/components/fxs-chooser-item.js
            /core/ui/framework.js
                /core/ui/components/fxs-slot.js
                    /core/ui/tooltips/tooltip-manager.js
                        /core/ui/utilities/utilities-dom.js
                            /core/ui/utilities/utilities-core-textprovider.js

view-manager.js';
    /core/ui/interface-modes/interface-modes.js
        /base-standard/ui/diplo-ribbon/model-diplo-ribbon.js
            /core/ui/audio-base/audio-support.js
                /core/ui/navigation-tray/model-navigation-tray.js
                    /core/ui/views/view-manager.js
                        /core/ui/context-manager/context-manager.js

audio-support.js';
    /base-standard/ui/civilopedia/model-civilopedia.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/utilities/utilities-liveops.js
                /base-standard/ui/interface-modes/interface-mode-choose-plot.js
                    /core/ui/views/view-manager.js
                        /core/ui/utilities/utilities-dom.js
                            /core/ui/shell/mp-shell-logic/mp-shell-logic.js
                                /base-standard/ui/lenses/layer/operation-target-layer.js
                                    /core/ui/utilities/utilities-image.js
                                        /core/ui/utilities/utilities-layout.js
                                            /core/ui/context-manager/display-queue-manager.js
                                                /base-standard/ui/unit-interact/unit-action-handlers.js
                                                    /base-standard/ui/unit-rename/unit-rename.js
                                                        /core/ui/save-load/model-save-load.js
                                                            /core/ui/shell/mp-legal/mp-legal.js
                                                                /core/ui/input/cursor.js
                                                                    /core/ui/navigation-tray/model-navigation-tray.js
                                                                        /base-standard/ui/trade-route-chooser/trade-routes-model.js
                                                                            /core/ui/profile-page/screen-profile-page.js
                                                                                /core/ui/panel-support.js
                                                                                    /core/ui/input/focus-manager.js
                                                                                        /base-standard/ui/unit-promotion/model-unit-promotion.js
                                                                                            /base-standard/ui/place-population/model-place-population.js
                                                                                                /core/ui/options/editors/index.js
                                                                                                    /core/ui/input/plot-cursor.js
                                                                                                        /base-standard/ui/unit-selection/unit-selection.js
                                                                                                            /core/ui/utilities/utilities-component-id.js
                                                                                                                /core/ui/shell/events/screen-events.js
                                                                                                                    /core/ui/input/input-support.js
                                                                                                                        /core/ui/utilities/utilities-metaprogression.js
                                                                                                                            /core/ui/utilities/utilities-color.js
                                                                                                                                /core/ui/shell/credits/screen-credits.js
                                                                                                                                    /core/ui/input/focus-support.js
                                                                                                                                        /core/ui/events/shell-events.js
                                                                                                                                            /core/ui/input/action-handler.js
                                                                                                                                                /base-standard/ui/interface-modes/support-unit-map-decoration.js
                                                                                                                                                    /core/ui/save-load/screen-save-load.js
                                                                                                                                                        /base-standard/ui/production-chooser/production-chooser-helpers.js
                                                                                                                                                            /core/ui/utilities/animations.js
                                                                                                                                                                /base-standard/ui/victory-progress/screen-victory-progress.js
                                                                                                                                                                    /core/ui/context-manager/context-manager.js
                                                                                                                                                                        /core/ui/utilities/utilities-update-gate.js
                                                                                                                                                                            /core/ui/lenses/lens-manager.js
                                                                                                                                                                                /base-standard/ui/end-results/end-results.js
                                                                                                                                                                                    /core/ui/context-manager/display-handler.js
                                                                                                                                                                                        /base-standard/ui/utilities/utilities-overlay.js
                                                                                                                                                                                            /core/ui/shell/create-panels/leader-select-model.js
                                                                                                                                                                                                /base-standard/ui/city-zoomer/city-zoomer.js
                                                                                                                                                                                                    /core/ui/interface-modes/interface-modes.js
                                                                                                                                                                                                        /base-standard/ui/world-input/world-input.js
                                                                                                                                                                                                            /core/ui/input/navigation-support.js
                                                                                                                                                                                                                /base-standard/ui/city-selection/city-selection.js
                                                                                                                                                                                                                    /base-standard/ui/production-chooser/panel-production-chooser.js
                                                                                                                                                                                                                        /core/ui/utilities/utilities-network.js
                                                                                                                                                                                                                            /core/ui/dialog-box/manager-dialog-box.js

city-banner-manager.js';
    /core/ui/utilities/utilities-component-id.js
        /core/ui/utilities/utilities-dom.js
            /base-standard/ui/city-banners/banner-support.js
                /core/ui/components/fxs-activatable.js
                    /core/ui/utilities/utilities-image.js

support-city-decoration.js';
    /core/ui/utilities/utilities-component-id.js

options-helpers.js';
    /core/ui/panel-support.js
        /core/ui/input/focus-manager.js
            /core/ui/input/input-support.js
                /core/ui/navigation-tray/model-navigation-tray.js
                    /core/ui/options/model-options.js
                        /core/ui/context-manager/context-manager.js

screen-general-chooser.js';
    /base-standard/ui/chooser-item/chooser-item.js
        /core/ui/input/action-handler.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/navigation-tray/model-navigation-tray.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/utilities/utilities-color.js
                            /core/ui/components/fxs-textbox.js
                                /core/ui/input/focus-support.js
                                    /core/ui/audio-base/audio-support.js
                                        /core/ui/input/focus-manager.js
                                            /core/ui/context-manager/context-manager.js
                                                /core/ui/dialog-box/manager-dialog-box.js

district-health-manager.js';
    /core/ui/utilities/utilities-component-id.js
        /core/ui/utilities/utilities-dom.js
            /core/ui/utilities/utilities-plotcoord.js

support-reinforcement-map-decoration.js';
    /core/ui/utilities/utilities-component-id.js

model-civilopedia.js';
    /base-standard/ui/chooser-item/chooser-item.js
        /core/ui/context-manager/display-queue-manager.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/input/input-support.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/panel-support.js
                            /core/ui/interface-modes/interface-modes.js
                                /core/ui/input/navigation-support.js
                                    /core/ui/audio-base/audio-support.js
                                        /core/ui/utilities/utilities-layout.js

model-great-works.js';
    /core/ui/panel-support.js
        /core/ui/input/focus-manager.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/utilities/utilities-component-id.js
                    /core/ui/input/input-support.js
                        /core/ui/utilities/utilities-dom.js
                            /core/ui/utilities/utilities-color.js

fxs-header.js";
    /core/ui/input/input-support.js

model-age-summary-hub.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/input/focus-manager.js
                /core/ui/utilities/utilities-dom.js
                    /core/ui/utilities/utilities-color.js

model-mini-map.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-layout.js
            /core/ui/shell/mp-staging/mp-friends.js
                /core/ui/audio-base/audio-support.js
                    /core/ui/utilities/utilities-core-databinding.js
                        /core/ui/input/input-support.js
                            /core/ui/input/focus-support.js

model-tech-tree-chooser.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/input/input-support.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/context-manager/context-manager.js
                            /core/ui/input/focus-support.js

fxs-dropdown.js';
    /core/ui/profile-header/profile-header.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/shell/create-panels/age-civ-select-model.js
                /core/ui/shell/live-event-logic/live-event-logic.js
                    /core/ui/shell/create-panels/game-creation-panel-base.js
                        /core/ui/events/shell-events.js
                            /core/ui/components/fxs-activatable.js
                                /core/ui/utilities/utilities-layout.js
                                    /core/ui/panel-support.js
                                        /core/ui/input/action-handler.js
                                            /core/ui/navigation-tray/model-navigation-tray.js
                                                /core/ui/utilities/utilities-network.js
                                                    /core/ui/shell/create-panels/create-game-model.js
                                                        /core/ui/shell/create-panels/leader-select-model.js
                                                            /core/ui/utilities/utilities-dom.js
                                                                /core/ui/shell/mp-shell-logic/mp-shell-logic.js
                                                                    /core/ui/audio-base/audio-support.js
                                                                        /core/ui/input/focus-manager.js
                                                                            /core/ui/shell/leader-select/leader-select-model-manager.js

tutorial-item.js';
    /base-standard/ui/watch-out/watch-out-manager.js
        /core/ui/audio-base/audio-support.js
            /core/ui/utilities/utilities-dom.js
                /core/ui/input/focus-support.js
                    /core/ui/components/fxs-nav-help.js
                        /core/ui/context-manager/context-manager.js
                            /core/ui/lenses/lens-manager.js
                                /core/ui/input/action-handler.js
                                    /core/ui/components/fxs-checkbox.js
                                        /core/ui/interface-modes/interface-modes.js
                                            /base-standard/ui/tutorial/tutorial-events.js
                                                /base-standard/ui/quest-tracker/quest-item.js
                                                    /core/ui/input/focus-manager.js
                                                        /base-standard/ui/quest-tracker/quest-tracker.js
                                                            /core/ui/dialog-box/manager-dialog-box.js

utilities-image.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-component-id.js
            /core/ui/audio-base/audio-support.js
                /core/ui/input/focus-manager.js
                    /base-standard/ui/endgame/model-endgame.js
                        /base-standard/ui/victory-manager/victory-manager.js
                            /core/ui/input/input-support.js
                                /core/ui/utilities/utilities-dom.js

model-tutorial-inspector.js';
    /base-standard/ui/tutorial/tutorial-manager.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/context-manager/context-manager.js
                /core/ui/utilities/utilities-frame.js

tree-support.js';
    /core/ui/utilities/utilities-layout.js
        /core/ui/utilities/utilities-update-gate.js

utilities-core-textprovider.js';
    /base-standard/ui/tree-grid/tree-support.js
        /base-standard/ui/attribute-trees/model-attribute-trees.js
            /core/ui/graph-layout/graph.js
                /core/ui/input/focus-manager.js
                    /base-standard/ui/tree-grid/tree-card.js
                        /core/ui/graph-layout/utils.js
                            /core/ui/graph-layout/layout.js

building-placement-manager.js';
    /core/ui/lenses/lens-manager.js
        /core/ui/interface-modes/interface-modes.js
            /core/ui/utilities/utilities-update-gate.js
                /core/ui/utilities/utilities-component-id.js
                    /core/ui/utilities/utilities-image.js
                        /base-standard/ui/utilities/utilities-city-yields.js

framework.js';
    /core/ui/context-manager/display-queue-manager.js
        /core/ui/dialog-box/manager-dialog-box.js
            /core/ui/views/view-manager.js
                /core/ui/input/focus-manager.js

model-city-trade.js';
    /core/ui/panel-support.js
        /core/ui/input/focus-manager.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/utilities/utilities-data.js

continent-layer.js";
    /core/ui/utilities/utilities-dom.js

assign-starting-plots.js';
    /base-standard/maps/natural-wonder-generator.js
        /base-standard/maps/feature-biome-generator.js
            /base-standard/maps/discovery-generator.js
                /base-standard/maps/resource-generator.js
                    /base-standard/maps/volcano-generator.js
                        /base-standard/maps/snow-generator.js
                            /base-standard/maps/map-debug-helpers.js
                                /base-standard/maps/assign-advanced-start-region.js

panel-support.js';
    /core/ui/utilities/utilities-core-databinding.js
        /core/ui/components/fxs-chooser-item.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/input/input-support.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/utilities/utilities-color.js
                            /core/ui/components/fxs-textbox.js
                                /core/ui/accessibility/tts-manager.js
                                    /base-standard/ui/building-list/model-building-list.js
                                        /core/ui/shell/mp-staging/model-mp-friends.js
                                            /core/ui/input/focus-manager.js
                                                /core/ui/components/fxs-activatable.js
                                                    /core/ui/utilities/utilities-online.js
                                                        /core/ui/utilities/utilities-layout.js
                                                            /core/ui/utilities/utilities-image.js
                                                                /core/ui/context-manager/context-manager.js
                                                                    /core/ui/dialog-box/manager-dialog-box.js

model-commander-interact.js";
    /core/ui/input/focus-manager.js
        /base-standard/ui/unit-selection/unit-selection.js
            /core/ui/utilities/utilities-component-id.js
                /core/ui/utilities/utilities-image.js
                    /core/ui/panel-support.js
                        /core/ui/interface-modes/interface-modes.js
                            /core/ui/components/fxs-activatable.js
                                /core/ui/utilities/utilities-update-gate.js
                                    /core/ui/utilities/utilities-core-textprovider.js

utilities-component-id.js";
    /core/ui/interface-modes/interface-modes.js
        /core/ui/input/plot-cursor.js
            /core/ui/utilities/utilities-update-gate.js

model-city-capture-chooser.js';
    /core/ui/utilities/utilities-core-databinding.js
        /core/ui/navigation-tray/model-navigation-tray.js
            /core/ui/utilities/utilities-component-id.js
                /core/ui/input/input-support.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/interface-modes/interface-modes.js
                            /core/ui/input/focus-manager.js
                                /base-standard/ui/production-chooser/production-chooser-helpers.js

fxs-activatable.js';
    /core/ui/views/view-manager.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/components/fxs-dropdown.js
                    /core/ui/utilities/utilities-network.js
                        /core/ui/input/input-support.js
                            /core/ui/utilities/utilities-dom.js
                                /core/ui/components/fxs-button.js
                                    /core/ui/input/focus-support.js
                                        /core/ui/panel-support.js
                                            /core/ui/interface-modes/interface-modes.js
                                                /core/ui/accessibility/tts-manager.js
                                                    /core/ui/audio-base/audio-support.js
                                                        /core/ui/input/focus-manager.js
                                                            /core/ui/utilities/utilities-layout.js
                                                                /core/ui/utilities/utilities-image.js
                                                                    /core/ui/context-manager/context-manager.js

model-advanced-start.js';
    /core/ui/lenses/lens-manager.js
        /core/ui/input/plot-cursor.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/input/cursor.js
                    /core/ui/navigation-tray/model-navigation-tray.js
                        /core/ui/utilities/utilities-dom.js
                            /core/ui/panel-support.js
                                /core/ui/interface-modes/interface-modes.js
                                    /core/ui/context-manager/display-handler.js
                                        /core/ui/input/focus-manager.js

D:\Steam\steamapps\common\Sid Meier's Civilization VII\Base\modules\age-antiquity\ui\tutorial\tutorial-items-antiquity.js
    /core/ui/lenses/lens-manager.js
        /core/ui/input/plot-cursor.js
            /core/ui/tooltips/tooltip-manager.js
                /base-standard/ui/diplomacy/diplomacy-manager.js
                    /base-standard/ui/tutorial/tutorial-item.js
                        /core/ui/interface-modes/interface-modes.js
                            /base-standard/ui/tutorial/tutorial-manager.js
                                /core/ui/context-manager/context-manager.js

utilities-dom.js';
    /core/ui/input/focus-manager.js
        /core/ui/input/input-support.js
            ../stateful-icon/index.js
                /core/ui/navigation-tray/model-navigation-tray.js

utilities-city-yields.js';
    /core/ui/utilities/utilities-component-id.js
        /core/ui/utilities/utilities-update-gate.js

tts-manager.js';
    /core/ui/options/options-helpers.js
        /core/ui/options/model-options.js

utilities-core-databinding.js';
    /core/ui/utilities/utilities-layout.js

context-manager.js';
    /base-standard/ui/tutorial/tutorial-support.js
        /core/ui/utilities/utilities-core-databinding.js
            /base-standard/ui/relationship-breakdown/relationship-breakdown.js
                /core/ui/views/view-manager.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/utilities/utilities-network.js
                            /base-standard/ui/cinematic/cinematic-manager.js
                                /core/ui/utilities/utilities-image.js
                                    /base-standard/ui/tree-grid/tree-support.js
                                        /core/ui/utilities/utilities-layout.js
                                            /base-standard/ui/diplomacy/leader-model-manager.js
                                                /core/ui/context-manager/display-queue-manager.js
                                                    /core/ui/panel-support.js
                                                        /core/ui/shell/mp-legal/mp-legal.js
                                                            /core/ui/utilities/utilities-liveops.js
                                                                /base-standard/ui/diplo-ribbon/model-diplo-ribbon.js
                                                                    /core/ui/navigation-tray/model-navigation-tray.js
                                                                        /base-standard/ui/victory-progress/screen-victory-achieved.js
                                                                            /core/ui/profile-header/profile-header.js
                                                                                /core/ui/shell/mp-shell-logic/mp-shell-logic.js
                                                                                    /core/ui/accessibility/tts-manager.js
                                                                                        /base-standard/ui/tutorial/tutorial-events.js
                                                                                            /base-standard/ui/quest-tracker/quest-item.js
                                                                                                /core/ui/input/focus-manager.js
                                                                                                    /base-standard/ui/quest-tracker/quest-tracker.js
                                                                                                        /core/ui/input/input-support.js
                                                                                                            /core/ui/components/fxs-slider.js
                                                                                                                /core/ui/options/options-helpers.js
                                                                                                                    /base-standard/ui/victory-manager/victory-manager.js
                                                                                                                        /core/ui/shell/mp-browser/mp-browser-chooser-item.js
                                                                                                                            /core/ui/events/shell-events.js
                                                                                                                                /core/ui/context-manager/display-handler.js
                                                                                                                                    /core/ui/input/navigation-support.js
                                                                                                                                        /base-standard/ui/utilities/utilities-textprovider.js
                                                                                                                                            /core/ui/profile-page/screen-profile-page.js
                                                                                                                                                /core/ui/utilities/utilities-update-gate.js
                                                                                                                                                    /core/ui/input/action-handler.js
                                                                                                                                                        /base-standard/ui/tree-grid/tree-grid.js
                                                                                                                                                            /core/ui/shell/create-panels/create-game-model.js
                                                                                                                                                                /core/ui/utilities/utilities-plotcoord.js
                                                                                                                                                                    /core/ui/interface-modes/interface-modes.js
                                                                                                                                                                        /base-standard/ui/endgame/screen-endgame.js
                                                                                                                                                                            /core/ui/audio-base/audio-support.js
                                                                                                                                                                                /core/ui/input/debug-input-handler.js
                                                                                                                                                                                    /base-standard/ui/tutorial/tutorial-item.js
                                                                                                                                                                                        /core/ui/utilities/utilities-core-textprovider.js
                                                                                                                                                                                            /core/ui/dialog-box/manager-dialog-box.js

model-navigation-tray.js';
    /core/ui/utilities/utilities-liveops.js
        /core/ui/utilities/utilities-dom.js
            /core/ui/shell/live-event-logic/live-event-logic.js
                /core/ui/shell/create-panels/age-civ-select-model.js
                    /core/ui/input/focus-support.js
                        /core/ui/shell/create-panels/game-creation-panel-base.js
                            /base-standard/ui/legends-manager/legends-manager.js
                                /core/ui/utilities/utilities-layout.js
                                    /core/ui/context-manager/context-manager.js
                                        /core/ui/input/action-handler.js
                                            /core/ui/shell/create-panels/create-game-model.js
                                                /core/ui/shell/create-panels/game-creation-promo-manager.js
                                                    /core/ui/audio-base/audio-support.js
                                                        /core/ui/input/focus-manager.js
                                                            /core/ui/shell/leader-select/leader-select-model-manager.js
                                                                /core/ui/dialog-box/manager-dialog-box.js

camera-controller.js';
    /core/ui/context-manager/display-queue-manager.js
        /core/ui/input/plot-cursor.js
            /core/ui/tooltips/tooltip-manager.js
                /core/ui/utilities/utilities-dom.js
                    /base-standard/ui/civilopedia/model-civilopedia.js
                        /core/ui/interface-modes/interface-modes.js
                            /base-standard/ui/world-input/world-input.js
                                /core/ui/context-manager/display-handler.js
                                    /core/ui/input/hotkey-manager.js
                                        /base-standard/ui/debug/hud-debug-widgets.js
                                            /core/ui/utilities/utilities-image.js
                                                /base-standard/ui/tutorial/tutorial-manager.js
                                                    /base-standard/ui/benchmark/screen-benchmark.js
                                                        /core/ui/context-manager/context-manager.js

model-unit-city-list.js';
    /core/ui/panel-support.js
        /core/ui/input/action-handler.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/input/plot-cursor.js
                    /core/ui/input/focus-manager.js

utilities-liveops.js';
    /core/ui/context-manager/display-queue-manager.js
        /core/ui/context-manager/display-handler.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/input/input-support.js
                    /core/ui/input/focus-support.js
                        /core/ui/panel-support.js
                            /core/ui/utilities/utilities-image.js
                                core/ui/utilities/utilities-network.js
                                    /core/ui/save-load/model-save-load.js
                                        /core/ui/context-manager/context-manager.js

model-culture-tree-chooser.js';
    /core/ui/panel-support.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/input/input-support.js
                    /core/ui/utilities/utilities-dom.js
                        /core/ui/context-manager/context-manager.js
                            /core/ui/input/focus-support.js

settlement-recommendations-layer.js';
    /core/ui/lenses/lens-manager.js

model-unlocks.js';
    /core/ui/input/action-handler.js
        /core/ui/utilities/utilities-core-databinding.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/utilities/utilities-dom.js
                    /core/ui/panel-support.js
                        /core/ui/audio-base/audio-support.js
                            /core/ui/input/focus-manager.js
                                /core/ui/utilities/utilities-layout.js

fxs-checkbox.js';
    /core/ui/panel-support.js
        /core/ui/context-manager/display-handler.js
            /core/ui/navigation-tray/model-navigation-tray.js
                /core/ui/components/fxs-dropdown.js
                    /core/ui/options/options-helpers.js
                        /core/ui/input/input-support.js
                            /core/ui/utilities/utilities-dom.js
                                /core/ui/events/shell-events.js
                                    /core/ui/components/fxs-switch.js
                                        /core/ui/input/focus-manager.js
                                            /core/ui/components/fxs-slider.js
                                                /core/ui/options/model-options.js
                                                    /core/ui/context-manager/context-manager.js
                                                        /core/ui/components/fxs-stepper.js

model-policies.js';
    /core/ui/utilities/utilities-core-databinding.js
        /core/ui/navigation-tray/model-navigation-tray.js
            /core/ui/input/input-support.js
                /core/ui/utilities/utilities-dom.js
                    /core/ui/input/focus-support.js
                        /core/ui/graph-layout/utils.js
                            /core/ui/audio-base/audio-support.js
                                /core/ui/input/focus-manager.js
                                    ./policy-chooser-item.js
                                        /core/ui/utilities/utilities-layout.js

model-advisor-victory.js';
    /core/ui/utilities/utilities-layout.js
        /core/ui/input/input-support.js
            /base-standard/ui/quest-tracker/quest-item.js
                /core/ui/audio-base/audio-support.js
                    /core/ui/input/focus-manager.js

trade-routes-model.js';
    /core/ui/lenses/lens-manager.js
        /base-standard/ui/utilities/utilities-overlay.js

model-attribute-trees.js';
    /core/ui/panel-support.js
        /base-standard/ui/tree-grid/tree-support.js
            /core/ui/utilities/utilities-core-databinding.js
                /core/ui/navigation-tray/model-navigation-tray.js
                    /base-standard/ui/tree-grid/tree-card.js
                        /core/ui/input/focus-manager.js
                            /core/ui/utilities/utilities-dom.js

* @description Manages the data and queue for important system messages
    /core/ui/context-manager/display-queue-manager.js
        /core/ui/context-manager/display-handler.js

focus-manager.js";
    /core/ui/components/fxs-slot.js
        /core/ui/context-manager/context-manager.js

model-resource-allocation.js';
    /core/ui/utilities/utilities-core-databinding.js
        /core/ui/navigation-tray/model-navigation-tray.js
            /core/ui/input/input-support.js
                /core/ui/utilities/utilities-dom.js
                    /core/ui/input/focus-support.js
                        /core/ui/panel-support.js
                            /core/ui/input/navigation-support.js
                                /core/ui/input/focus-manager.js
                                    /core/ui/utilities/utilities-image.js

tooltip-manager.js';
    /base-standard/ui/tutorial/tutorial-support.js
        /core/ui/lenses/lens-manager.js
            /base-standard/ui/relationship-breakdown/relationship-breakdown.js
                /base-standard/ui/tech-tree/model-tech-tree.js
                    /base-standard/ui/culture-tree/model-culture-tree.js
                        /base-standard/ui/district/district-health-manager.js
                            /core/ui/utilities/utilities-dom.js
                                /base-standard/ui/culture-tree-chooser/model-culture-tree-chooser.js
                                    /base-standard/ui/tree-grid/tree-support.js
                                        /base-standard/ui/utilities/utilities-city-yields.js

Not sure if it makes any sense. I don't understand if it is correct or not.

here is the python script from notepad++
Code:
# -*- coding: utf-8 -*-

import re
from collections import defaultdict

# Define file paths
file1_path = r"D:\Steam\steamapps\common\Sid Meier's Civilization VII\imports2.txt"
output_file = r"D:\Steam\steamapps\common\Sid Meier's Civilization VII\import_analysis.txt"

# Data structure for dependency mapping
import_tree = defaultdict(set)

def extract_filename(line):
    """Extract JavaScript filename from a full path."""
    return line.strip().split("/")[-1]

def parse_imports(lines, start_index):
    """Extract imported files from a section."""
    imports = set()
    i = start_index

    while i < len(lines) and not lines[i].startswith("---"):
        line = lines[i].strip()

        # Named imports
        named_import_match = re.search(r'import\s*{.*?}\s*from\s*["\'](.*?)["\']', line)
        default_import_match = re.search(r'import\s*(\w+)\s*from\s*["\'](.*?)["\']', line)

        if named_import_match:
            imports.add(named_import_match.group(1))
        elif default_import_match:
            imports.add(default_import_match.group(2))

        i += 1

    return imports, i  # Return parsed imports and updated index

# Read file and build dependency tree
with open(file1_path, "r") as file1:  # No encoding specified
    lines = file1.readlines()
    i = 0

    while i < len(lines):
        if lines[i].startswith("---"):
            js_file_name = extract_filename(lines[i + 1])  # Extract filename
            imports, i = parse_imports(lines, i + 3)  # Extract imports
            import_tree[js_file_name].update(imports)  # Store imports

        i += 1

# **Find Chain Imports Using Depth-First Search (DFS)**
def find_import_chains(file, visited=None, chain=None):
    if visited is None:
        visited = set()
    if chain is None:
        chain = []

    visited.add(file)
    chain.append(file)

    for imported_file in import_tree.get(file, []):
        if imported_file not in visited:
            find_import_chains(imported_file, visited, chain)

    return chain if len(chain) > 1 else None

# Identify and Write Chain Imports with Indentation
def write_chain_imports(file_path, chains):
    """Write chain imports with indentation to a file."""
    with open(file_path, "w") as file:
        file.write("==== Chain Imports (Dependency Paths) ====\n\n")

        for chain in chains:
            levels = chain.split(" → ")  # Split at arrows
            for depth, level in enumerate(levels):
                file.write("    " * depth + level + "\n")  # Indent based on depth
            file.write("\n")  # Add spacing between chains

# Find chains and write them to the file
chain_results = []
for js_file in import_tree:
    chain = find_import_chains(js_file)
    if chain:
        chain_results.append(" → ".join(chain))  # Convert chain into readable format

write_chain_imports(output_file, chain_results)

print("Formatted chain imports saved to", output_file)

I attached imports2.txt
 

Attachments

Last edited:
I didn't know Copilot could do that. Particularly I didn't know it could access the file system. Ask it to list you all the javascript files with manager in the name, or just use file explorer. There's 38 of them. That was actually your original question. No one can claim I don't make things complicated enough. I was fixated on the globalThis objects. I was all caught up in how to get the properties of objects in globalThis since that's how you actually get information about the game. Like if you want the yields for a city. Now that I'm playing with source files something struck me that hadn't really acknowledged. None of the managers are in globalThis, you have to import them. I assumed ContextManager, since it's so central to everything, was in there, but it isn't. It's how you display a panel. Those managers would be a good place to start to get a handle on the user interface. The globalThis object are how you get game information like about players, cities, buildings, units, tiles, etc. Sorry about dragging you through two pages when your actual question could have been answer fairly easily.

One caveat is that may not be a complete list. It's a convention for naming the files which may not be strictly adhered to. Similarly everything that behaves as a manager may not be called a manager. I've done about all I can with imports so next up was exports. That might pick up a few that didn't follow convention. Behaves like a manager but isn't named a manager would be much harder to find programmatically.
 
You can do a control-F on the spoiler info for post#14 if you want a preview of what they named manager. I looked through there and there is a few. I am searching through the directories with Astrogrep but I think notepad++ will do it too. Those will let you search multiple files for a string. CoPilot can't be fed anything unless it is text and then it has a limit. I only used CoPilot to help make the python script. The rest I did on my PC.
 
Something is wrong with that list. utilities-component-id.js is imported directly from 61 files. You list 28 files. My guess is that's one chain of imports. There's actually 61 chains. There's some reference data that might help verification. Trying to do that made it obvious I need to throw some sorts in there. It started out sorted that got lost as I went through some processing.
 

Attachments

Back
Top Bottom