@atelierai/uco 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/package.json +1 -1
  3. package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetConfig.cs +132 -132
  4. package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDependencyResolver.cs +237 -237
  5. package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDownloader.cs +82 -82
  6. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/MenuItems.cs +247 -247
  7. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/ToolGroups.cs +153 -153
  8. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/SystemTool/Skills.Create.SkillBody.cs +155 -155
  9. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Console.GetLogs.cs +95 -95
  10. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Docs.HttpFetcher.cs +139 -139
  11. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Instance.ListAll.cs +72 -72
  12. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/PathReadHelper.cs +106 -106
  13. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Script.Validate.cs +252 -252
  14. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests/TestResultCollector.cs +537 -537
  15. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests.cs +400 -400
  16. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Branding/ProductInfo.cs +62 -62
  17. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/CopilotServerManager.cs +1034 -1034
  18. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Skills/Skill_InitialSetup.cs +197 -197
  19. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.Editor.cs +201 -201
  20. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.cs +67 -67
  21. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotListWindowBase.cs +393 -393
  22. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotWindowBase.cs +113 -113
  23. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.Connection.cs +3 -3
  24. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotFeatures.cs +195 -195
  25. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +20 -20
  26. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CreateGUI.cs +354 -354
  27. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.cs +78 -78
  28. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowInitializer.cs +47 -47
  29. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/SerializationCheckWindow.cs +190 -190
  30. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Build.cs +91 -91
  31. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Config.cs +298 -298
  32. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Static.cs +296 -296
  33. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.cs +69 -69
  34. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PackageUtils.cs +168 -168
  35. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PrefsKeyMigration.cs +119 -119
  36. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/SafeDefaultsGuard.cs +180 -180
  37. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ScriptUtils.cs +229 -229
  38. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ToolsManifestGenerator.cs +200 -200
  39. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringAdapters.cs +1467 -1467
  40. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringSafetyReloadGuard.cs +65 -65
  41. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityCopilotUpdateProjectSettings.cs +66 -66
  42. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
  43. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
  44. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
  45. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Converter/Json/Structures/EntityIdConverter.cs +120 -120
  46. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.cs +110 -110
  47. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.pre-Unity.6.5.cs +110 -110
  48. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/FileLogStorage.cs +547 -547
  49. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Build.cs +243 -243
  50. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +3 -3
  51. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +295 -295
  52. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginBuilder.cs +105 -105
  53. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.Static.cs +155 -155
  54. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.cs +59 -59
  55. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +11 -11
  56. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/AtomicApiTestFixtures.cs +99 -99
  57. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/TryModifyAtTests.cs +227 -227
  58. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AuthoringSafetyPilotTests.cs +1050 -1050
  59. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetLegacyMigrationTests.cs +304 -304
  60. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +1 -1
  61. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/BlacklistTypeTests.cs +416 -416
  62. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.cs +172 -172
  63. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.pre-Unity.6.5.cs +169 -169
  64. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.cs +182 -182
  65. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.pre-Unity.6.5.cs +179 -179
  66. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.cs +175 -175
  67. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.pre-Unity.6.5.cs +174 -174
  68. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.cs +171 -171
  69. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.pre-Unity.6.5.cs +170 -170
  70. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsCreateFolderTests.cs +243 -243
  71. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsMaterialTests.cs +101 -101
  72. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs +348 -348
  73. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs +348 -348
  74. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsShaderTests.cs +194 -194
  75. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.cs +573 -573
  76. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.pre-Unity.6.5.cs +513 -513
  77. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.cs +154 -154
  78. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.pre-Unity.6.5.cs +154 -154
  79. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotGameViewTests.cs +164 -164
  80. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotSceneViewTests.cs +155 -155
  81. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolParameterTests.cs +56 -56
  82. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.cs +651 -651
  83. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.pre-Unity.6.5.cs +651 -651
  84. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ToolBatchExecutionIntegrationTests.cs +407 -407
  85. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs → UcoPluginTests.cs} +105 -105
  86. package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
  87. /package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs.meta → UcoPluginTests.cs.meta} +0 -0
@@ -14,12 +14,12 @@ using System.Collections.Generic;
14
14
  using com.AtelierAI.Uco.Framework.Common.Utils;
15
15
  using com.AtelierAI.Unity.Copilot.Utils;
16
16
  using Microsoft.Extensions.Logging;
17
- using static com.AtelierAI.Uco.Framework.Common.Consts.MCP.Server;
17
+ using static com.AtelierAI.Uco.Framework.Common.Consts.Uco.Server;
18
18
 
19
19
  namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
20
20
  {
21
21
  /// <summary>
22
- /// Loads MCP plugin configuration from layered sources and (optionally) applies
22
+ /// Loads Uco plugin configuration from layered sources and (optionally) applies
23
23
  /// runtime overrides from environment variables and process command-line arguments.
24
24
  ///
25
25
  /// Priority (highest wins):
@@ -39,7 +39,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
39
39
  {
40
40
  static readonly ILogger _logger = UnityLoggerFactory.LoggerFactory.CreateLogger(nameof(EnvironmentUtils));
41
41
 
42
- // Environment variable names for MCP connection overrides.
42
+ // Environment variable names for Uco connection overrides.
43
43
  public const string EnvHost = "UNITY_COPILOT_HOST";
44
44
  public const string EnvKeepConnected = "UNITY_COPILOT_KEEP_CONNECTED";
45
45
  public const string EnvAuthOption = "UNITY_COPILOT_AUTH_OPTION";
@@ -187,7 +187,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
187
187
  {
188
188
  record.Track(FieldHost, config.LocalHost, host);
189
189
  config.LocalHost = host;
190
- _logger.LogInformation("[MCP] Override: {Key}={Value}", FieldHost, host);
190
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", FieldHost, host);
191
191
  }
192
192
  }
193
193
  }
@@ -208,7 +208,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
208
208
  {
209
209
  record.Track(FieldConnectionMode, config.ConnectionMode, targetMode.Value);
210
210
  config.ConnectionMode = targetMode.Value;
211
- _logger.LogInformation("[MCP] Override: {Key}={Value}", FieldConnectionMode, targetMode.Value);
211
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", FieldConnectionMode, targetMode.Value);
212
212
  }
213
213
 
214
214
  var rawKeep = Resolve(EnvKeepConnected, flagAlias: null);
@@ -216,7 +216,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
216
216
  {
217
217
  record.Track(FieldKeepConnected, config.KeepConnected, keep);
218
218
  config.KeepConnected = keep;
219
- _logger.LogInformation("[MCP] Override: {Key}={Value}", EnvKeepConnected, keep);
219
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", EnvKeepConnected, keep);
220
220
  }
221
221
 
222
222
  var rawAuth = Resolve(EnvAuthOption, FlagAuth);
@@ -226,7 +226,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
226
226
  {
227
227
  record.Track(FieldAuthOption, config.AuthOption, ao);
228
228
  config.AuthOption = ao;
229
- _logger.LogInformation("[MCP] Override: {Key}={Value}", EnvAuthOption, ao);
229
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", EnvAuthOption, ao);
230
230
  }
231
231
 
232
232
  // We track the specific
@@ -241,7 +241,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
241
241
  {
242
242
  record.Track(FieldLocalToken, config.LocalToken, token);
243
243
  config.LocalToken = token;
244
- _logger.LogInformation("[MCP] Override: {Key}=*** (LocalToken)", EnvToken);
244
+ _logger.LogInformation("[Uco] Override: {Key}=*** (LocalToken)", EnvToken);
245
245
  }
246
246
  }
247
247
 
@@ -252,7 +252,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
252
252
  {
253
253
  record.Track(FieldTransport, config.TransportMethod, tm);
254
254
  config.TransportMethod = tm;
255
- _logger.LogInformation("[MCP] Override: {Key}={Value}", EnvTransport, tm);
255
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", EnvTransport, tm);
256
256
  }
257
257
 
258
258
  var rawStart = Resolve(EnvStartServer, flagAlias: null);
@@ -260,7 +260,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
260
260
  {
261
261
  record.Track(FieldStartServer, config.KeepServerRunning, ss);
262
262
  config.KeepServerRunning = ss;
263
- _logger.LogInformation("[MCP] Override: {Key}={Value}", EnvStartServer, ss);
263
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", EnvStartServer, ss);
264
264
  }
265
265
 
266
266
  // EnabledToolsOverride is [JsonIgnore] so it is never persisted regardless of the
@@ -279,7 +279,7 @@ namespace com.AtelierAI.Unity.Copilot.Runtime.Utils
279
279
  }
280
280
  record.Track(FieldTools, config.EnabledToolsOverride, trimmed);
281
281
  config.EnabledToolsOverride = trimmed;
282
- _logger.LogInformation("[MCP] Override: {Key}={Value}", EnvTools, rawTools.Trim());
282
+ _logger.LogInformation("[Uco] Override: {Key}={Value}", EnvTools, rawTools.Trim());
283
283
  }
284
284
 
285
285
  return record;
@@ -1,99 +1,99 @@
1
- /*
2
- ┌──────────────────────────────────────────────────────────────────┐
3
- │ Author: Ivan Murzak (https://github.com/IvanMurzak) │
4
- │ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
5
- │ Copyright (c) 2025 Ivan Murzak │
6
- │ Licensed under the Apache License, Version 2.0. │
7
- │ See the LICENSE file in the project root for more information. │
8
- └──────────────────────────────────────────────────────────────────┘
9
- */
10
-
11
- #nullable enable
12
- using System.Collections.Generic;
13
- using System.Text.Json.Serialization;
14
-
15
- namespace com.AtelierAI.Unity.Copilot.Editor.Tests.AtomicApi
16
- {
17
- /// <summary>
18
- /// Small POCO test fixtures used by the atomic-API EditMode tests
19
- /// (TryModifyAt / TryPatch / TryReadAt / View / Grep). The shape mirrors
20
- /// the SolarSystem fixture used by ReflectorNet.Tests but is defined here
21
- /// so it does not depend on ReflectorNet's own test assembly, which is not
22
- /// shipped to Unity. Naming and field types match
23
- /// <c>com.IvanMurzak.ReflectorNet.Tests.Model.SolarSystem.CelestialBody</c>
24
- /// closely so reviewers can correlate the assertions across the two repos.
25
- /// </summary>
26
- public class CelestialBody
27
- {
28
- [JsonInclude]
29
- public float orbitRadius = 10f;
30
-
31
- [JsonInclude]
32
- public float orbitSpeed = 1f;
33
-
34
- [JsonInclude]
35
- public float rotationSpeed = 1f;
36
-
37
- [JsonInclude]
38
- public string name = string.Empty;
39
- }
40
-
41
- /// <summary>
42
- /// A small POCO graph that mirrors the Unity-side shape of a celestial-body
43
- /// container used in real Unity-MCP tools (root field + array + dictionary).
44
- /// </summary>
45
- public class StarSystemPoco
46
- {
47
- [JsonInclude]
48
- public CelestialBody[]? celestialBodies;
49
-
50
- [JsonInclude]
51
- public Dictionary<string, int> config = new Dictionary<string, int>();
52
-
53
- [JsonInclude]
54
- public Dictionary<int, string> lookup = new Dictionary<int, string>();
55
-
56
- [JsonInclude]
57
- public float globalOrbitSpeedMultiplier = 1f;
58
-
59
- [JsonInclude]
60
- public float globalSizeMultiplier = 1f;
61
- }
62
-
63
- /// <summary>Polymorphism fixture for the TryPatch "$type" hint scenario.</summary>
64
- public class Animal
65
- {
66
- [JsonInclude]
67
- public string name = string.Empty;
68
- }
69
-
70
- /// <summary>Polymorphism fixture — subtype of Animal used by the "$type" hint test.</summary>
71
- public class Dog : Animal
72
- {
73
- [JsonInclude]
74
- public string breed = string.Empty;
75
- }
76
-
77
- /// <summary>Container that holds an Animal — used for polymorphism / type-replacement tests.</summary>
78
- public class AnimalContainer
79
- {
80
- [JsonInclude]
81
- public Animal? animal;
82
- }
83
-
84
- /// <summary>
85
- /// Graph with a self-reference, used to confirm View / Grep stop traversing
86
- /// when they hit a cycle and do not recurse infinitely.
87
- /// </summary>
88
- public class CyclicNode
89
- {
90
- [JsonInclude]
91
- public string label = string.Empty;
92
-
93
- [JsonInclude]
94
- public float weight = 0f;
95
-
96
- [JsonInclude]
97
- public CyclicNode? next;
98
- }
99
- }
1
+ /*
2
+ ┌──────────────────────────────────────────────────────────────────┐
3
+ │ Author: Ivan Murzak (https://github.com/IvanMurzak) │
4
+ │ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
5
+ │ Copyright (c) 2025 Ivan Murzak │
6
+ │ Licensed under the Apache License, Version 2.0. │
7
+ │ See the LICENSE file in the project root for more information. │
8
+ └──────────────────────────────────────────────────────────────────┘
9
+ */
10
+
11
+ #nullable enable
12
+ using System.Collections.Generic;
13
+ using System.Text.Json.Serialization;
14
+
15
+ namespace com.AtelierAI.Unity.Copilot.Editor.Tests.AtomicApi
16
+ {
17
+ /// <summary>
18
+ /// Small POCO test fixtures used by the atomic-API EditMode tests
19
+ /// (TryModifyAt / TryPatch / TryReadAt / View / Grep). The shape mirrors
20
+ /// the SolarSystem fixture used by ReflectorNet.Tests but is defined here
21
+ /// so it does not depend on ReflectorNet's own test assembly, which is not
22
+ /// shipped to Unity. Naming and field types match
23
+ /// <c>com.IvanMurzak.ReflectorNet.Tests.Model.SolarSystem.CelestialBody</c>
24
+ /// closely so reviewers can correlate the assertions across the two repos.
25
+ /// </summary>
26
+ public class CelestialBody
27
+ {
28
+ [JsonInclude]
29
+ public float orbitRadius = 10f;
30
+
31
+ [JsonInclude]
32
+ public float orbitSpeed = 1f;
33
+
34
+ [JsonInclude]
35
+ public float rotationSpeed = 1f;
36
+
37
+ [JsonInclude]
38
+ public string name = string.Empty;
39
+ }
40
+
41
+ /// <summary>
42
+ /// A small POCO graph that mirrors the Unity-side shape of a celestial-body
43
+ /// container used in real Unity-Uco tools (root field + array + dictionary).
44
+ /// </summary>
45
+ public class StarSystemPoco
46
+ {
47
+ [JsonInclude]
48
+ public CelestialBody[]? celestialBodies;
49
+
50
+ [JsonInclude]
51
+ public Dictionary<string, int> config = new Dictionary<string, int>();
52
+
53
+ [JsonInclude]
54
+ public Dictionary<int, string> lookup = new Dictionary<int, string>();
55
+
56
+ [JsonInclude]
57
+ public float globalOrbitSpeedMultiplier = 1f;
58
+
59
+ [JsonInclude]
60
+ public float globalSizeMultiplier = 1f;
61
+ }
62
+
63
+ /// <summary>Polymorphism fixture for the TryPatch "$type" hint scenario.</summary>
64
+ public class Animal
65
+ {
66
+ [JsonInclude]
67
+ public string name = string.Empty;
68
+ }
69
+
70
+ /// <summary>Polymorphism fixture — subtype of Animal used by the "$type" hint test.</summary>
71
+ public class Dog : Animal
72
+ {
73
+ [JsonInclude]
74
+ public string breed = string.Empty;
75
+ }
76
+
77
+ /// <summary>Container that holds an Animal — used for polymorphism / type-replacement tests.</summary>
78
+ public class AnimalContainer
79
+ {
80
+ [JsonInclude]
81
+ public Animal? animal;
82
+ }
83
+
84
+ /// <summary>
85
+ /// Graph with a self-reference, used to confirm View / Grep stop traversing
86
+ /// when they hit a cycle and do not recurse infinitely.
87
+ /// </summary>
88
+ public class CyclicNode
89
+ {
90
+ [JsonInclude]
91
+ public string label = string.Empty;
92
+
93
+ [JsonInclude]
94
+ public float weight = 0f;
95
+
96
+ [JsonInclude]
97
+ public CyclicNode? next;
98
+ }
99
+ }