From b424f298ef9f506489a732efcb025daaa8f1f8b8 Mon Sep 17 00:00:00 2001 From: Alfa Team Date: Sun, 28 Jun 2026 21:13:54 -0400 Subject: [PATCH] Move browser-owned src files into www --- api/API_RUNTIME_BOUNDARY.md | 2 +- api/admin/admin-notes-menu.mjs | 2 +- api/guest-seeds/tool-metadata-inventory.js | 2 +- api/server/local-api-router.mjs | 6 +- .../PROJECT_INSTRUCTIONS.md | 2 +- .../PROJECT_INSTRUCTIONS_VERSION.md | 3 +- .../ProjectInstructions/PROJECT_STATE.md | 17 +- .../backlog/BACKLOG_MASTER.md | 4 +- .../canonical_repository_structure.md | 42 +- .../repository/www_migration_map.md | 12 +- ...ve-src-browser-to-www_branch-validation.md | 9 + ...-browser-to-www_manual-validation-notes.md | 6 + ...WNER_018-move-src-browser-to-www_report.md | 39 + ...rc-browser-to-www_requirement-checklist.md | 16 + ...ve-src-browser-to-www_validation-report.md | 14 + .../asset_ownership_strategy_validation.txt | 2 +- dev/reports/codex_changed_files.txt | 742 +- dev/reports/codex_review.diff | 10153 ++++++++++++++-- dev/scripts/run-platform-validation-suite.mjs | 4 +- .../validate-asset-ownership-strategy.mjs | 6 +- dev/scripts/validate-browser-env-agnostic.mjs | 8 +- ...alidate-canonical-repository-structure.mjs | 8 +- dev/scripts/validate-dev-runtime-boundary.mjs | 4 +- dev/tests/ai/AIBehaviors.test.mjs | 10 +- dev/tests/assets/AssetLoaderSystem.test.mjs | 6 +- dev/tests/audio/AudioService.test.mjs | 2 +- dev/tests/combat/Combat.test.mjs | 2 +- dev/tests/config/ConfigStore.test.mjs | 2 +- ...BackgroundImageAndFullscreenBezel.test.mjs | 8 +- ...ine2DCapabilityCombinedFoundation.test.mjs | 22 +- .../Engine3DPhysicsHookIsolation.test.mjs | 6 +- .../core/EngineCoreBoundaryBaseline.test.mjs | 44 +- dev/tests/core/EngineFullscreen.test.mjs | 4 +- dev/tests/core/EngineSceneLifecycle.test.mjs | 8 +- dev/tests/core/EngineTiming.test.mjs | 6 +- .../Section1FinalResidueStructure.test.mjs | 30 +- .../dev-runtime/AdminNotesBoundary.test.mjs | 16 +- .../dev-runtime/ApiMenuPathCleanup.test.mjs | 7 +- ...hitectureCleanupApiNavInvitations.test.mjs | 18 +- .../dev-runtime/PublicApiUrlClient.test.mjs | 2 +- .../ServerApiClientStandardization.test.mjs | 6 +- .../engine/EngineV2AbilitySystem.test.mjs | 2 +- .../engine/EngineV2AnimationRuntime.test.mjs | 2 +- .../engine/EngineV2AudioRuntime.test.mjs | 2 +- .../engine/EngineV2CameraRuntime.test.mjs | 2 +- .../engine/EngineV2ChaseFleeBehavior.test.mjs | 2 +- .../engine/EngineV2CheckpointSystem.test.mjs | 2 +- .../EngineV2ConfigDrivenProofScene.test.mjs | 2 +- .../engine/EngineV2ContainerSystem.test.mjs | 2 +- .../EngineV2CraftingFoundation.test.mjs | 2 +- ...gineV2CustomExtensionsHookRuntime.test.mjs | 4 +- .../engine/EngineV2DialogueSystem.test.mjs | 2 +- .../EngineV2EconomyAndCurrency.test.mjs | 2 +- .../engine/EngineV2EffectRuntime.test.mjs | 2 +- .../engine/EngineV2EquipmentSystem.test.mjs | 2 +- .../engine/EngineV2InteractionSystem.test.mjs | 2 +- .../engine/EngineV2InventorySystem.test.mjs | 2 +- .../engine/EngineV2ItemAndLootSystem.test.mjs | 2 +- .../engine/EngineV2ModifierStack.test.mjs | 2 +- .../engine/EngineV2ObjectiveSystem.test.mjs | 2 +- .../EngineV2PathfindingBaseline.test.mjs | 2 +- .../engine/EngineV2PatrolBehavior.test.mjs | 2 +- .../EngineV2PersistenceRuntime.test.mjs | 4 +- .../EngineV2ProfileStateSystem.test.mjs | 2 +- .../engine/EngineV2ProjectileSystem.test.mjs | 2 +- dev/tests/engine/EngineV2QuestSystem.test.mjs | 4 +- .../EngineV2SaveLoadValidation.test.mjs | 2 +- .../engine/EngineV2SaveStateModel.test.mjs | 2 +- .../EngineV2StateMachineRuntime.test.mjs | 2 +- .../EngineV2StatusEffectSystem.test.mjs | 2 +- dev/tests/engine/EngineV2UiRuntime.test.mjs | 2 +- .../engine/EngineV2VendorSystem.test.mjs | 2 +- .../engine/EngineV2WeaponSystem.test.mjs | 2 +- .../FirstManifestDrivenPlayableScene.test.mjs | 2 +- .../engine/HitboxCollisionContract.test.mjs | 2 +- .../engine/ManifestRuntimeParser.test.mjs | 2 +- .../engine/ObjectDefinitionReader.test.mjs | 2 +- dev/tests/engine/ObjectModelContract.test.mjs | 2 +- .../engine/RuleDefinitionReader.test.mjs | 2 +- dev/tests/engine/RuntimeActionSystem.test.mjs | 6 +- .../RuntimeBehaviorComposition.test.mjs | 12 +- .../RuntimeCollisionProcessing.test.mjs | 2 +- .../engine/RuntimeConditionSystem.test.mjs | 2 +- .../engine/RuntimeCooldownProcessing.test.mjs | 2 +- .../engine/RuntimeDamageProcessing.test.mjs | 4 +- .../RuntimeDeterminismValidation.test.mjs | 2 +- .../engine/RuntimeEnvironmentEffects.test.mjs | 2 +- ...timeEnvironmentForceInstantiation.test.mjs | 2 +- .../engine/RuntimeErrorReporting.test.mjs | 2 +- dev/tests/engine/RuntimeEventSystem.test.mjs | 4 +- dev/tests/engine/RuntimeHealthModel.test.mjs | 2 +- .../engine/RuntimeInputPipeline.test.mjs | 2 +- .../engine/RuntimeLivesAndRespawn.test.mjs | 2 +- .../engine/RuntimeLoaderValidation.test.mjs | 6 +- .../RuntimeManifestFixtureHardening.test.mjs | 10 +- .../engine/RuntimeMovementProcessing.test.mjs | 2 +- .../engine/RuntimeMultiSceneLoading.test.mjs | 2 +- .../RuntimeObjectDefaultRejection.test.mjs | 2 +- .../RuntimeObjectInstantiation.test.mjs | 6 +- .../RuntimeObjectRecordFactory.test.mjs | 4 +- .../RuntimeObjectRecordValidation.test.mjs | 2 +- .../RuntimeObjectTypeValidation.test.mjs | 4 +- .../engine/RuntimeOutcomeProcessing.test.mjs | 2 +- dev/tests/engine/RuntimePlayableLoop.test.mjs | 2 +- .../engine/RuntimePlayableSceneUat.test.mjs | 2 +- .../engine/RuntimeRenderPipeline.test.mjs | 2 +- .../engine/RuntimeRenderingBootstrap.test.mjs | 2 +- .../engine/RuntimeRuleAttachment.test.mjs | 10 +- .../RuntimeSceneDefinitionSupport.test.mjs | 2 +- .../RuntimeScoringAndStateProcessing.test.mjs | 4 +- .../RuntimeSpawnDespawnProcessing.test.mjs | 10 +- .../engine/RuntimeTerrainEffects.test.mjs | 2 +- ...ntimeTerrainMaterialInstantiation.test.mjs | 2 +- dev/tests/engine/RuntimeTickLoop.test.mjs | 2 +- .../engine/RuntimeTriggerProcessing.test.mjs | 4 +- dev/tests/engine/core/FixedTicker.test.mjs | 2 +- dev/tests/engine/core/FrameClock.test.mjs | 2 +- dev/tests/engine/core/RuntimeMetrics.test.mjs | 2 +- dev/tests/entity/Entity.test.mjs | 8 +- dev/tests/events/EventBus.test.mjs | 2 +- dev/tests/events/EventBusNaming.test.mjs | 10 +- .../final/DebugObservabilityMaturity.test.mjs | 12 +- .../final/DeveloperToolingSystems.test.mjs | 12 +- .../EditorAutomationSecurityPipeline.test.mjs | 36 +- dev/tests/final/FinalSystems.test.mjs | 8 +- dev/tests/final/FullscreenService.test.mjs | 2 +- .../final/MultiplayerNetworkingStack.test.mjs | 38 +- ...rkDebugAndServerDashboardCloseout.test.mjs | 18 +- dev/tests/final/PlatformUxSystems.test.mjs | 30 +- .../final/PrecisionCollisionSystems.test.mjs | 12 +- .../final/ReleaseReadinessSystems.test.mjs | 16 +- dev/tests/fx/ParticleSystem.test.mjs | 2 +- dev/tests/games/AsteroidsHardening.test.mjs | 2 +- .../games/AsteroidsPlatformDemo.test.mjs | 2 +- dev/tests/games/AsteroidsValidation.test.mjs | 2 +- .../runtimeSceneLoaderHotReload.helpers.mjs | 4 +- .../input/GamepadHapticsService.test.mjs | 2 +- dev/tests/input/GamepadInputAdapter.test.mjs | 2 +- dev/tests/input/GamepadState.test.mjs | 2 +- dev/tests/input/InputMap.test.mjs | 2 +- dev/tests/input/InputService.test.mjs | 4 +- dev/tests/input/KeyboardState.test.mjs | 2 +- dev/tests/input/MouseState.test.mjs | 2 +- .../input/NormalizedInputRegistry.test.mjs | 2 +- dev/tests/persistence/StorageService.test.mjs | 4 +- .../tools/AdminNotesLocalViewer.spec.mjs | 4 +- .../tools/InputMappingV2Tool.spec.mjs | 10 +- .../tools/ToolboxRoutePages.spec.mjs | 20 +- .../production/ProductionReadiness.test.mjs | 10 +- ...nicalRepositoryStructureGuardrail.test.mjs | 4 +- dev/tests/render/Renderer.test.mjs | 2 +- dev/tests/replay/ReplaySystem.test.mjs | 2 +- dev/tests/replay/ReplayTimeline.test.mjs | 2 +- ...Phase19RuntimeLifecycleValidation.test.mjs | 4 +- .../runtime/RuntimeMonitoringHooks.test.mjs | 4 +- .../scenes/AttractModeController.test.mjs | 4 +- dev/tests/scenes/SceneManager.test.mjs | 4 +- dev/tests/scenes/TransitionScene.test.mjs | 4 +- dev/tests/shared/ColorFoundation.test.mjs | 2 +- dev/tests/shared/GeometryFoundation.test.mjs | 2 +- .../GetStateVariantClassification.test.mjs | 2 +- dev/tests/shared/HashFoundation.test.mjs | 2 +- dev/tests/shared/NoiseFoundation.test.mjs | 2 +- dev/tests/shared/Random.test.mjs | 2 +- dev/tests/shared/RandomHelpers.test.mjs | 2 +- dev/tests/shared/RandomSeed.test.mjs | 2 +- .../SharedFoundationCombinedPass.test.mjs | 32 +- .../SharedNumberStringIdCloseout.test.mjs | 6 +- dev/tests/shared/TextFoundation.test.mjs | 2 +- dev/tests/shared/TimeFoundation.test.mjs | 2 +- dev/tests/tools/AiAuthoringAssistant.test.mjs | 2 +- .../tools/AssetErrorHandlingStandard.test.mjs | 2 +- dev/tests/tools/AssetManifestLoader.test.mjs | 2 +- dev/tests/tools/AssetMarketplace.test.mjs | 2 +- dev/tests/tools/AssetPipelineTooling.test.mjs | 2 +- .../tools/AssetRemediationSystem.test.mjs | 2 +- .../tools/AssetUsageIntegration.test.mjs | 2 +- .../tools/AssetValidationEngine.test.mjs | 2 +- dev/tests/tools/CameraDebugPanel.test.mjs | 4 +- dev/tests/tools/CiValidationPipeline.test.mjs | 2 +- dev/tests/tools/CloudRuntime.test.mjs | 2 +- dev/tests/tools/CollaborationSystem.test.mjs | 2 +- .../CollisionOverlaysDebugPanel.test.mjs | 8 +- .../tools/DebugVisualizationLayer.test.mjs | 2 +- .../tools/DevConsoleDebugOverlay.test.mjs | 2 +- .../tools/EditorExperienceLayer.test.mjs | 2 +- .../GameAssetManifestCoordinator.test.mjs | 2 +- .../tools/GameAssetManifestDiscovery.test.mjs | 4 +- dev/tests/tools/GameTemplates.test.mjs | 2 +- dev/tests/tools/GameplaySystemLayer.test.mjs | 2 +- dev/tests/tools/HotReloadSystem.test.mjs | 2 +- dev/tests/tools/MultiTargetExport.test.mjs | 2 +- .../ObjectVectorFinalRuntimeCleanup.test.mjs | 2 +- .../tools/PerformanceBenchmarks.test.mjs | 2 +- dev/tests/tools/PerformanceProfiler.test.mjs | 2 +- .../tools/PlatformValidationSuite.test.mjs | 2 +- .../tools/PluginArchitectureSystem.test.mjs | 2 +- .../tools/ProjectPackagingSystem.test.mjs | 2 +- .../tools/ProjectToolDataContracts.test.mjs | 2 +- .../tools/ProjectVersioningSystem.test.mjs | 2 +- dev/tests/tools/PublishingPipeline.test.mjs | 2 +- .../RenderPipelineContractAll4Tools.test.mjs | 2 +- .../RenderPipelineStagesDebugPanel.test.mjs | 8 +- dev/tests/tools/RuntimeAssetBinding.test.mjs | 4 +- dev/tests/tools/RuntimeAssetLoader.test.mjs | 2 +- .../RuntimeAssetLookupConsolidation.test.mjs | 2 +- .../tools/RuntimeAssetValidation.test.mjs | 2 +- .../tools/RuntimeStreamingSystem.test.mjs | 2 +- .../SceneGraphInspectorDebugPanel.test.mjs | 8 +- ...LayoutDockingControlNormalization.test.mjs | 2 +- .../TransformInspectorDebugPanel.test.mjs | 8 +- dev/tests/tools/VectorAssetSystem.test.mjs | 12 +- .../tools/VectorGeometryRuntime.test.mjs | 10 +- dev/tests/tools/VectorNativeTemplate.test.mjs | 2 +- dev/tests/vector/VectorMath.test.mjs | 2 +- ...orldGameStateAuthoritativeHandoff.test.mjs | 6 +- .../WorldGameStateAuthoritativeScore.test.mjs | 6 +- dev/tests/world/WorldGameStateSystem.test.mjs | 12 +- dev/tests/world/WorldSystems.test.mjs | 16 +- .../advanced/debugMacroExecutor.js | 2 +- .../advanced/debugMacroRegistry.js | 4 +- .../advanced/debugPanelGroupRegistry.js | 6 +- .../toolbox-dev/canvasDebugHudRenderer.js | 2 +- .../checkSharedExtractionGuard.baseline.json | 1084 +- .../commandPacks/groupCommandPack.js | 4 +- .../commandPacks/inspectorCommandPack.js | 4 +- .../commandPacks/macroCommandPack.js | 2 +- .../commandPacks/overlayCommandPack.js | 4 +- .../toolbox-dev/commandPacks/packUtils.js | 4 +- .../commandPacks/presetCommandPack.js | 4 +- .../toolbox-dev/devConsoleCommandRegistry.js | 4 +- .../toolbox-dev/devConsoleIntegration.js | 10 +- .../toolbox-dev/inspectors/inspectorStore.js | 6 +- .../interactiveDevConsoleRenderer.js | 2 +- .../toolbox-dev/plugins/debugPluginSystem.js | 6 +- .../toolbox-dev/presets/debugPresetApplier.js | 8 +- .../presets/debugPresetRegistry.js | 8 +- .../presets/registerPresetCommands.js | 2 +- .../advanced/promotion/createPromotionGate.js | 0 {src => www/src}/advanced/state/constants.js | 0 .../createObjectiveProgressMirrorConsumer.js | 0 .../state/createWorldGameStateSystem.js | 0 {src => www/src}/advanced/state/events.js | 0 .../src}/advanced/state/initialState.js | 0 .../registerWorldGameStateSystem.js | 0 {src => www/src}/advanced/state/selectors.js | 0 .../src}/advanced/state/transitions.js | 0 {src => www/src}/advanced/state/utils.js | 0 .../api/admin-infrastructure-api-client.js | 0 .../src}/api/admin-invitations-api-client.js | 0 .../src}/api/admin-operations-api-client.js | 0 .../src}/api/admin-owner-navigation.js | 0 .../src}/api/admin-setup-api-client.js | 0 .../api/admin-system-health-api-client.js | 0 {src => www/src}/api/ai-credits-api-client.js | 0 {src => www/src}/api/db-viewer-api-client.js | 0 {src => www/src}/api/db-viewer-ui.js | 0 .../api/game-journey-completion-api-client.js | 0 {src => www/src}/api/legal-api-client.js | 0 .../src}/api/marketplace-api-client.js | 0 .../src}/api/memberships-api-client.js | 0 .../src}/api/owner-ai-credits-api-client.js | 0 .../src}/api/owner-memberships-api-client.js | 0 .../src}/api/platform-settings-api-client.js | 0 {src => www/src}/api/public-config-client.js | 0 {src => www/src}/api/server-api-client.js | 0 {src => www/src}/api/session-api-client.js | 0 .../src}/api/toolbox-votes-api-client.js | 0 .../dev-runtime/admin/admin-notes-viewer.js | 0 .../dev-runtime/admin/header-nav.local.html | 0 {src => www/src}/dev-runtime/admin/notes.html | 0 .../src}/engine/ai/AIStateController.js | 0 {src => www/src}/engine/ai/GridPathfinding.js | 0 {src => www/src}/engine/ai/GroupBehaviors.js | 0 {src => www/src}/engine/ai/PatrolSystem.js | 0 .../src}/engine/ai/SteeringBehaviors.js | 0 .../engine/animation/AnimationController.js | 0 .../src}/engine/assets/AssetLoaderSystem.js | 0 .../src}/engine/assets/AssetOptimizer.js | 0 .../src}/engine/assets/AssetRegistry.js | 0 .../src}/engine/assets/ImageAssetLoader.js | 0 {src => www/src}/engine/assets/SpriteAtlas.js | 0 {src => www/src}/engine/audio/AudioService.js | 0 .../src}/engine/audio/FrequencyPlayer.js | 0 .../src}/engine/audio/GaplessLoopPlayer.js | 0 .../engine/audio/HtmlAudioMediaBackend.js | 0 .../src}/engine/audio/InstrumentGridParser.js | 0 .../src}/engine/audio/MediaTrackService.js | 0 {src => www/src}/engine/audio/MidiPlayer.js | 0 .../engine/audio/MidiSourceMetadataParser.js | 0 .../src}/engine/audio/PlaylistManager.js | 0 .../engine/audio/PreviewInstrumentPacks.js | 0 .../src}/engine/audio/PreviewSynthEngine.js | 0 .../src}/engine/audio/SongSheetParser.js | 0 .../engine/audio/SoundFontPreviewEngine.js | 0 {src => www/src}/engine/audio/Synthesizer.js | 0 .../src}/engine/audio/TextToSpeechDefaults.js | 0 .../src}/engine/audio/TextToSpeechEngine.js | 0 .../src}/engine/audio/WebAudioToneBackend.js | 0 .../engine/automation/AutomatedTestRunner.js | 0 .../src}/engine/automation/BenchmarkRunner.js | 0 .../engine/automation/CIValidationFlow.js | 0 .../automation/RegressionPlaybackHarness.js | 0 {src => www/src}/engine/camera/Camera2D.js | 0 {src => www/src}/engine/camera/Camera3D.js | 0 .../src}/engine/camera/CameraSystem.js | 0 .../src}/engine/camera/ZoneCameraSystem.js | 0 {src => www/src}/engine/collision/aabb.js | 0 .../src}/engine/collision/combat/Combat.js | 0 .../src}/engine/collision/hitboxCollision.js | 0 {src => www/src}/engine/collision/hybrid.js | 0 .../src}/engine/collision/objectVector.js | 0 {src => www/src}/engine/collision/polygon.js | 0 {src => www/src}/engine/collision/raster.js | 0 .../src}/engine/components/Components.js | 0 {src => www/src}/engine/config/ConfigStore.js | 0 {src => www/src}/engine/core/Engine.js | 0 {src => www/src}/engine/core/FixedTicker.js | 0 {src => www/src}/engine/core/FrameClock.js | 0 .../src}/engine/core/RuntimeMetrics.js | 0 .../src}/engine/debug/CombatDebugOverlay.js | 0 .../src}/engine/debug/DebugOverlayLayout.js | 0 {src => www/src}/engine/debug/DebugPanel.js | 0 {src => www/src}/engine/debug/DebugTools.js | 0 {src => www/src}/engine/debug/Minimap.js | 0 .../engine/debug/PerformanceMetricsPanel.js | 0 {src => www/src}/engine/debug/StatsTracker.js | 0 {src => www/src}/engine/debug/Validation.js | 0 .../createInspectorSurfaceIntegration.js | 0 .../commands/registerInspectorCommands.js | 0 .../inspectors/host/debugInspectorHost.js | 0 .../registerAdvancedInspectorDebugPresets.js | 0 .../registry/debugInspectorRegistry.js | 0 .../debug/inspectors/shared/inspectorUtils.js | 0 .../viewModels/componentInspectorViewModel.js | 0 .../viewModels/entityInspectorViewModel.js | 0 .../eventStreamInspectorViewModel.js | 0 .../viewModels/stateDiffInspectorViewModel.js | 0 .../viewModels/timelineInspectorViewModel.js | 0 .../createNetworkDebugSurfaceIntegration.js | 0 .../commands/networkDebugCommandPackBridge.js | 0 .../dashboard/registerDashboardCommands.js | 0 .../network/dashboard/serverDashboardHost.js | 0 .../dashboard/serverDashboardMetrics.js | 0 .../dashboard/serverDashboardProviders.js | 0 .../dashboard/serverDashboardRefreshModes.js | 0 .../dashboard/serverDashboardRegistry.js | 0 .../dashboard/serverDashboardRenderer.js | 0 .../dashboard/serverDashboardViewModel.js | 0 .../diagnostics/divergenceDiagnosticsModel.js | 0 .../diagnostics/latencyDiagnosticsModel.js | 0 .../networkPromotionRecommendation.js | 0 .../replicationDiagnosticsModel.js | 0 .../panels/networkDebugPanelRegistry.js | 0 .../panels/networkObservabilityPanels.js | 0 .../providers/networkDebugProviderRegistry.js | 0 .../debug/network/shared/hostReadUtils.js | 0 .../debug/network/shared/networkDebugUtils.js | 0 .../engine/debug/panels/PromotionGatePanel.js | 0 .../debug/shared/debugCommandResultUtils.js | 0 ...createStandard3dDebugSurfaceIntegration.js | 0 .../standard/threeD/panels/panel3dCamera.js | 0 .../threeD/panels/panel3dCollision.js | 0 .../threeD/panels/panel3dCollisionOverlays.js | 0 .../panels/panel3dRenderPipelineStages.js | 0 .../threeD/panels/panel3dRenderStages.js | 0 .../threeD/panels/panel3dSceneGraph.js | 0 .../panels/panel3dSceneGraphInspector.js | 0 .../threeD/panels/panel3dTransform.js | 0 .../panels/panel3dTransformInspector.js | 0 .../threeD/panels/registerStandard3dPanels.js | 0 .../presets/registerStandard3dDebugPresets.js | 0 .../threeD/providers/cameraSummaryProvider.js | 0 .../providers/collisionOverlaysProvider.js | 0 .../providers/collisionSummaryProvider.js | 0 .../providers/registerStandard3dProviders.js | 0 .../providers/renderPipelineStagesProvider.js | 0 .../providers/renderStageSummaryProvider.js | 0 .../providers/sceneGraphInspectorProvider.js | 0 .../providers/sceneGraphSummaryProvider.js | 0 .../providers/transformInspectorProvider.js | 0 .../providers/transformSummaryProvider.js | 0 .../threeD/shared/threeDDebugUtils.js | 0 {src => www/src}/engine/ecs/World.js | 0 {src => www/src}/engine/entity/Bounds.js | 0 {src => www/src}/engine/entity/Entity.js | 0 {src => www/src}/engine/entity/Transform.js | 0 {src => www/src}/engine/entity/Velocity.js | 0 {src => www/src}/engine/events/EventBus.js | 0 {src => www/src}/engine/fx/ParticleSystem.js | 0 {src => www/src}/engine/game/GameModeState.js | 0 {src => www/src}/engine/game/gameplayHooks.js | 0 .../engine/input/ActionInputDebugOverlay.js | 0 .../src}/engine/input/ActionInputMap.js | 0 .../src}/engine/input/ActionInputService.js | 0 .../engine/input/GamepadHapticsService.js | 0 .../src}/engine/input/GamepadInputAdapter.js | 0 .../engine/input/GamepadInputClassifier.js | 0 {src => www/src}/engine/input/GamepadState.js | 0 .../input/InputCapabilityDescriptors.js | 0 .../src}/engine/input/InputCaptureService.js | 0 .../src}/engine/input/InputCaptureSession.js | 0 .../src}/engine/input/InputComboState.js | 0 .../src}/engine/input/InputContextService.js | 0 {src => www/src}/engine/input/InputMap.js | 0 .../src}/engine/input/InputMappingManifest.js | 0 {src => www/src}/engine/input/InputService.js | 0 .../src}/engine/input/KeyboardState.js | 0 {src => www/src}/engine/input/MouseState.js | 0 .../engine/input/NormalizedInputRegistry.js | 0 .../src}/engine/input/PointerDragState.js | 0 .../engine/interaction/InteractionSystem.js | 0 {src => www/src}/engine/level/LevelLoader.js | 0 .../localization/LocalizationService.js | 0 .../src}/engine/logging/ErrorBoundary.js | 0 {src => www/src}/engine/logging/Logger.js | 0 .../src}/engine/memory/DisposableStore.js | 0 {src => www/src}/engine/memory/ObjectPool.js | 0 .../network/bootstrap/HostServerBootstrap.js | 0 .../network/bootstrap/NetworkingLayer.js | 0 .../client/ClientReconciliationStrategy.js | 0 .../ClientReplicationApplicationLayer.js | 0 .../network/client/PredictionReconciler.js | 0 .../client/RemoteInterpolationBuffer.js | 0 .../network/debug/NetworkDebugOverlay.js | 0 .../replication/ReplicationMessageContract.js | 0 .../network/replication/StateReplication.js | 0 .../AuthoritativeInputIngestionContract.js | 0 .../server/AuthoritativeServerRuntime.js | 0 .../engine/network/server/InterestManager.js | 0 .../network/server/RollbackDiagnostics.js | 0 .../network/session/ChatPresenceLayer.js | 0 .../network/session/HandshakeSimulator.js | 0 .../network/session/LobbySessionManager.js | 0 .../session/SessionLifecycleContract.js | 0 .../network/transport/LoopbackTransport.js | 0 .../transport/NetworkConditionSimulator.js | 0 .../engine/network/transport/Serializer.js | 0 .../network/transport/TransportContract.js | 0 {src => www/src}/engine/object-model/index.js | 0 .../object-model/objectDefinitionSchema.js | 0 .../object-model/objectDefinitionValidator.js | 0 .../object-model/objectModelRegistry.js | 0 {src => www/src}/engine/paletteList.js | 0 .../persistence/BrowserStorageService.js | 0 .../engine/persistence/CompressionService.js | 0 .../persistence/CookieStorageService.js | 0 .../persistence/FilePersistenceService.js | 0 .../engine/persistence/LocalStorageService.js | 0 .../engine/persistence/SaveSlotManager.js | 0 .../persistence/SessionStorageService.js | 0 .../src}/engine/persistence/StorageService.js | 0 .../engine/persistence/WorldSerializer.js | 0 {src => www/src}/engine/physics/arcadeBody.js | 0 .../src}/engine/physics/collision3d.js | 0 {src => www/src}/engine/physics/drag.js | 0 .../src}/engine/physics/integration.js | 0 .../src}/engine/physics/integration3d.js | 0 {src => www/src}/engine/physics/scene3d.js | 0 .../src}/engine/prefabs/PrefabFactory.js | 0 .../engine/release/AccessibilityOptions.js | 0 .../engine/release/CrashRecoveryManager.js | 0 .../src}/engine/release/DeploymentProfiles.js | 0 .../engine/release/DistributionPackager.js | 0 .../release/ReleaseValidationChecklist.js | 0 .../src}/engine/release/SettingsSystem.js | 0 .../src}/engine/rendering/CanvasRenderer.js | 0 .../engine/rendering/LayeredRenderSystem.js | 0 .../ObjectVectorRuntimeAssetService.js | 0 .../rendering/ObjectVectorTransformService.js | 0 .../engine/rendering/OrientationTransform.js | 0 {src => www/src}/engine/rendering/Renderer.js | 0 .../src}/engine/rendering/ResolutionScaler.js | 0 .../engine/rendering/SpriteRenderSystem.js | 0 .../src}/engine/rendering/VectorDrawing.js | 0 .../engine/rendering/WorldScreenTransform.js | 0 .../rendering/WorldScreenTransformService.js | 0 {src => www/src}/engine/replay/ReplayModel.js | 0 .../src}/engine/replay/ReplaySystem.js | 0 .../src}/engine/replay/ReplayTimeline.js | 0 .../engine/runtime/BrowserDownloadService.js | 0 .../src}/engine/runtime/FullscreenService.js | 0 .../engine/runtime/MobileRuntimeTweaks.js | 0 .../engine/runtime/RuntimeMonitoringHooks.js | 0 .../src}/engine/runtime/backgroundColor.js | 0 .../src}/engine/runtime/backgroundImage.js | 0 .../engine/runtime/engineV2AbilitySystem.js | 0 .../runtime/engineV2AnimationRuntime.js | 0 .../engine/runtime/engineV2AudioRuntime.js | 0 .../engine/runtime/engineV2CameraRuntime.js | 0 .../runtime/engineV2ChaseFleeBehavior.js | 0 .../runtime/engineV2CheckpointSystem.js | 0 .../runtime/engineV2ConfigDrivenProofScene.js | 0 .../engine/runtime/engineV2ContainerSystem.js | 0 .../runtime/engineV2CraftingFoundation.js | 0 .../engineV2CustomExtensionsHookRuntime.js | 0 .../engine/runtime/engineV2DialogueSystem.js | 0 .../runtime/engineV2EconomyAndCurrency.js | 0 .../engine/runtime/engineV2EffectRuntime.js | 0 .../engine/runtime/engineV2EquipmentSystem.js | 0 .../runtime/engineV2InteractionSystem.js | 0 .../engine/runtime/engineV2InventorySystem.js | 0 .../runtime/engineV2ItemAndLootSystem.js | 0 .../engine/runtime/engineV2ModifierStack.js | 0 .../engine/runtime/engineV2ObjectiveSystem.js | 0 .../runtime/engineV2PathfindingBaseline.js | 0 .../engine/runtime/engineV2PatrolBehavior.js | 0 .../runtime/engineV2PersistenceRuntime.js | 0 .../runtime/engineV2ProfileStateSystem.js | 0 .../runtime/engineV2ProjectileSystem.js | 0 .../engine/runtime/engineV2QuestSystem.js | 0 .../runtime/engineV2SaveLoadValidation.js | 0 .../engine/runtime/engineV2SaveStateModel.js | 0 .../runtime/engineV2StateMachineRuntime.js | 0 .../runtime/engineV2StatusEffectSystem.js | 0 .../src}/engine/runtime/engineV2UiRuntime.js | 0 .../engine/runtime/engineV2VendorSystem.js | 0 .../engine/runtime/engineV2WeaponSystem.js | 0 .../firstManifestDrivenPlayableScene.js | 0 .../src}/engine/runtime/fullscreenBezel.js | 0 .../engine/runtime/gameImageConvention.js | 0 .../engine/runtime/manifestRuntimeParser.js | 0 .../engine/runtime/objectDefinitionReader.js | 0 .../engine/runtime/ruleDefinitionReader.js | 0 .../engine/runtime/runtimeActionSystem.js | 0 .../runtime/runtimeBehaviorComposition.js | 0 .../runtime/runtimeCollisionProcessing.js | 0 .../engine/runtime/runtimeConditionSystem.js | 0 .../runtime/runtimeCooldownProcessing.js | 0 .../engine/runtime/runtimeDamageProcessing.js | 0 .../runtime/runtimeEnvironmentEffects.js | 0 .../runtimeEnvironmentForceInstantiation.js | 0 .../engine/runtime/runtimeErrorReporting.js | 0 .../src}/engine/runtime/runtimeEventSystem.js | 0 .../src}/engine/runtime/runtimeHealthModel.js | 0 .../engine/runtime/runtimeInputPipeline.js | 0 .../engine/runtime/runtimeLivesAndRespawn.js | 0 .../runtime/runtimeMovementProcessing.js | 0 .../runtime/runtimeMultiSceneLoading.js | 0 .../runtime/runtimeObjectInstantiation.js | 0 .../runtime/runtimeObjectRecordFactory.js | 0 .../runtime/runtimeOutcomeProcessing.js | 0 .../engine/runtime/runtimePlayableLoop.js | 0 .../engine/runtime/runtimeRenderPipeline.js | 0 .../runtime/runtimeRenderingBootstrap.js | 0 .../engine/runtime/runtimeRuleAttachment.js | 0 .../runtime/runtimeSceneDefinitionSupport.js | 0 .../runtimeScoringAndStateProcessing.js | 0 .../runtime/runtimeSpawnDespawnProcessing.js | 0 .../engine/runtime/runtimeTerrainEffects.js | 0 .../runtimeTerrainMaterialInstantiation.js | 0 .../src}/engine/runtime/runtimeTickLoop.js | 0 .../runtime/runtimeTriggerProcessing.js | 0 .../engine/scene/AttractModeController.js | 0 {src => www/src}/engine/scene/Scene.js | 0 {src => www/src}/engine/scene/SceneManager.js | 0 .../src}/engine/scene/SceneTransition.js | 0 .../engine/scene/SceneTransitionController.js | 0 .../src}/engine/scene/TransitionScene.js | 0 .../engine/security/DataIntegrityService.js | 0 .../src}/engine/security/PacketValidator.js | 0 .../src}/engine/security/PermissionGate.js | 0 .../engine/security/SessionTrustValidator.js | 0 {src => www/src}/engine/state/StateMachine.js | 0 .../src}/engine/systems/BounceSystem.js | 0 .../src}/engine/systems/BoundsSystem.js | 0 .../src}/engine/systems/CollectSystem.js | 0 .../systems/CollisionResolutionSystem.js | 0 .../src}/engine/systems/CollisionSystem.js | 0 .../src}/engine/systems/InputControlSystem.js | 0 .../src}/engine/systems/LifecycleSystem.js | 0 .../src}/engine/systems/MovementSystem.js | 0 .../src}/engine/systems/PhysicsSystem.js | 0 .../src}/engine/systems/ProjectileSystem.js | 0 .../src}/engine/systems/RenderSystem.js | 0 .../src}/engine/systems/SystemUtils.js | 0 .../src}/engine/tilemap/TileMetadata.js | 0 {src => www/src}/engine/tilemap/Tilemap.js | 0 .../src}/engine/tilemap/TilemapCollision.js | 0 .../engine/tilemap/TilemapRenderSystem.js | 0 .../src}/engine/ui/CanvasDialogPrimitives.js | 0 .../src}/engine/ui/CanvasPopupInteractions.js | 0 .../src}/engine/ui/CanvasPopupState.js | 0 {src => www/src}/engine/ui/UIFramework.js | 0 .../ui/assets/icons/pin-monocolor-filled.svg | 0 .../engine/ui/assets/icons/pin-monocolor.svg | 0 {src => www/src}/engine/ui/baseLayout.css | 0 {src => www/src}/engine/ui/hubCommon.css | 0 {src => www/src}/engine/ui/spriteEditor.css | 0 .../src}/engine/world/AchievementSystem.js | 0 .../src}/engine/world/CutsceneSystem.js | 0 .../src}/engine/world/DayNightCycle.js | 0 .../src}/engine/world/EventScriptSystem.js | 0 {src => www/src}/engine/world/QuestSystem.js | 0 {src => www/src}/engine/world/SpawnSystem.js | 0 .../src}/engine/world/WeatherSystem.js | 0 .../src}/engine/world/WorldStreamingSystem.js | 0 {src => www/src}/shared/array/arrays.js | 0 {src => www/src}/shared/array/recordArrays.js | 0 {src => www/src}/shared/color/color.js | 0 {src => www/src}/shared/game/highScores.js | 0 {src => www/src}/shared/game/initialsEntry.js | 0 {src => www/src}/shared/geometry/geometry.js | 0 {src => www/src}/shared/hash/hash.js | 0 {src => www/src}/shared/id/ids.js | 0 {src => www/src}/shared/json/clone.js | 0 {src => www/src}/shared/json/jsonIO.js | 0 {src => www/src}/shared/math/Random.js | 0 {src => www/src}/shared/math/RandomSeed.js | 0 {src => www/src}/shared/math/directions.js | 0 {src => www/src}/shared/math/geometry.js | 0 .../src}/shared/math/numberNormalization.js | 0 {src => www/src}/shared/math/randomHelpers.js | 0 {src => www/src}/shared/math/scalars.js | 0 {src => www/src}/shared/math/vectorMath.js | 0 .../src}/shared/math/vectorNormalize.js | 0 {src => www/src}/shared/noise/noise.js | 0 {src => www/src}/shared/number/numbers.js | 0 {src => www/src}/shared/object/objects.js | 0 {src => www/src}/shared/runtime/registry.js | 0 .../src}/shared/runtime/snapshotClone.js | 0 .../state/createPromotionStateSnapshot.js | 0 {src => www/src}/shared/state/getState.js | 0 .../state/getStateVariantClassification.js | 0 {src => www/src}/shared/state/guards.js | 0 .../src}/shared/state/normalization.js | 0 {src => www/src}/shared/state/selectors.js | 0 {src => www/src}/shared/string/commandText.js | 0 .../src}/shared/string/fuzzyMatchScore.js | 0 .../src}/shared/string/stringifyValue.js | 0 {src => www/src}/shared/string/strings.js | 0 {src => www/src}/shared/string/textWrap.js | 0 {src => www/src}/shared/text/text.js | 0 {src => www/src}/shared/time/time.js | 0 .../shared/toolbox/aiAuthoringAssistant.js | 0 .../src}/shared/toolbox/assetMarketplace.js | 0 .../shared/toolbox/assetPipelineConverters.js | 0 .../shared/toolbox/assetPipelineFoundation.js | 0 .../toolbox/assetPipelineValidationOutput.js | 0 .../shared/toolbox/assetUsageIntegration.js | 0 .../shared/toolbox/ciValidationPipeline.js | 0 .../src}/shared/toolbox/cloudRuntime.js | 0 .../shared/toolbox/collaborationSystem.js | 0 .../src}/shared/toolbox/contractVersioning.js | 0 .../src}/shared/toolbox/debugInspectorData.js | 0 .../shared/toolbox/debugInspectorTools.css | 0 .../toolbox/debugToolInteractionFlow.js | 0 .../shared/toolbox/debugVisualizationLayer.js | 0 .../shared/toolbox/devConsoleDebugOverlay.js | 0 .../src}/shared/toolbox/documentModeGuards.js | 0 .../toolbox/editor/EntityPlacementEditor.js | 0 .../src}/shared/toolbox/editor/LevelEditor.js | 0 .../shared/toolbox/editor/TileMapEditor.js | 0 .../shared/toolbox/editor/TimelineEditor.js | 0 .../shared/toolbox/editorExperienceLayer.js | 0 .../src}/shared/toolbox/eventCommandUtils.js | 0 .../src}/shared/toolbox/gameTemplates.js | 0 .../shared/toolbox/gameplaySystemLayer.js | 0 .../src}/shared/toolbox/hotReloadSystem.js | 0 .../shared/toolbox/livePreviewSyncChannel.js | 0 .../src}/shared/toolbox/multiTargetExport.js | 0 .../shared/toolbox/paletteDocumentContract.js | 0 .../shared/toolbox/performanceBenchmarks.js | 0 .../shared/toolbox/performanceProfiler.js | 0 .../toolbox/pipeline/AssetImportPipeline.js | 0 .../pipeline/AudioPreprocessPipeline.js | 0 .../pipeline/BuildAssetManifestSystem.js | 0 .../pipeline/ContentMigrationSystem.js | 0 .../pipeline/ContentValidationPipeline.js | 0 .../pipeline/TexturePreprocessPipeline.js | 0 .../toolbox/pipeline/assetErrorHandling.js | 0 .../toolbox/pipeline/assetManifestLoader.js | 0 .../toolbox/pipeline/assetPipelineTooling.js | 0 .../pipeline/gameAssetManifestCoordinator.js | 0 .../pipeline/gameAssetManifestDiscovery.js | 0 .../toolbox/pipeline/runtimeAssetBinding.js | 0 .../toolbox/pipeline/runtimeAssetLookup.js | 0 .../pipeline/runtimeAssetValidation.js | 0 .../src}/shared/toolbox/platformShell.css | 0 .../src}/shared/toolbox/platformShell.js | 0 .../shared/toolbox/platformValidationSuite.js | 0 .../src}/shared/toolbox/pluginArchitecture.js | 0 .../toolbox/powerShell/find_dupes_called.ps1 | 0 .../shared/toolbox/projectAssetRegistry.js | 0 .../shared/toolbox/projectAssetRemediation.js | 0 .../shared/toolbox/projectAssetValidation.js | 0 .../shared/toolbox/projectManifestContract.js | 0 .../src}/shared/toolbox/projectPackaging.js | 0 .../src}/shared/toolbox/projectSystem.js | 0 .../shared/toolbox/projectSystemAdapters.js | 0 .../shared/toolbox/projectSystemValueUtils.js | 0 .../shared/toolbox/projectToolIntegration.js | 0 .../src}/shared/toolbox/projectVersioning.js | 0 .../src}/shared/toolbox/publishingPipeline.js | 0 .../shared/toolbox/renderPipelineContract.js | 0 .../src}/shared/toolbox/runtimeAssetLoader.js | 0 .../shared/toolbox/runtimeAssetSharedUtils.js | 0 .../toolbox/runtimeAssetValidationUtils.js | 0 .../toolbox/runtimeSceneLoaderHotReload.js | 0 .../src}/shared/toolbox/runtimeStreaming.js | 0 .../assets/images/clouds-layer.svg | 0 .../parallax/overworld-main.parallax.json | 0 .../assets/sprites/hero-idle.sprite.json | 0 .../tilemaps/overworld-main.tilemap.json | 0 .../assets/tiles/overworld-main.png | Bin .../project.assets.json | 10 +- .../toolbox/schemaOnlyToolPresetValidation.js | 0 .../shared/toolbox/tool-metadata-inventory.js | 0 .../src}/shared/toolbox/toolBootContract.js | 0 .../src}/shared/toolbox/toolHostManifest.js | 0 .../src}/shared/toolbox/toolHostRuntime.js | 0 .../shared/toolbox/toolHostSharedContext.js | 0 .../src}/shared/toolbox/toolLaunchSSoT.js | 0 .../src}/shared/toolbox/toolLaunchSSoTData.js | 0 .../shared/toolbox/toolLoadDiagnostics.js | 0 .../src}/shared/toolbox/toolSampleCatalog.js | 0 .../shared/toolbox/tooling/AssetBrowser.js | 0 .../toolbox/tooling/DeveloperConsole.js | 0 .../toolbox/tooling/LiveTuningService.js | 0 .../shared/toolbox/tooling/PropertyEditor.js | 0 .../toolbox/tooling/RuntimeInspector.js | 0 .../toolbox/tooling/SceneGraphViewer.js | 0 .../src}/shared/toolbox/uiSafeUtils.js | 0 .../shared/toolbox/unifiedToolUxContract.js | 0 .../toolbox/vector/vectorAssetBridge.js | 0 .../toolbox/vector/vectorAssetContract.js | 0 .../toolbox/vector/vectorGeometryMath.js | 0 .../shared/toolbox/vector/vectorRenderPrep.js | 0 .../toolbox/vector/vectorSafeValueUtils.js | 0 .../src}/shared/toolbox/vectorAssetSystem.js | 0 .../shared/toolbox/vectorGeometryRuntime.js | 0 .../shared/toolbox/vectorNativeTemplate.js | 0 .../toolbox/vectorTemplateSampleGame.js | 0 .../src}/shared/toolbox/workspaceShell.js | 0 {src => www/src}/shared/types/typeGuards.js | 0 {src => www/src}/shared/validation/assert.js | 0 .../src}/shared/validation/invariant.js | 0 .../src}/tools/common/GameManifestLoader.js | 0 .../tools/common/WorkspaceDirtyNotifier.js | 0 739 files changed, 11318 insertions(+), 1926 deletions(-) create mode 100644 dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md create mode 100644 dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md create mode 100644 dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md create mode 100644 dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md create mode 100644 dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md rename {src => www/src}/advanced/promotion/createPromotionGate.js (100%) rename {src => www/src}/advanced/state/constants.js (100%) rename {src => www/src}/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js (100%) rename {src => www/src}/advanced/state/createWorldGameStateSystem.js (100%) rename {src => www/src}/advanced/state/events.js (100%) rename {src => www/src}/advanced/state/initialState.js (100%) rename {src => www/src}/advanced/state/integration/registerWorldGameStateSystem.js (100%) rename {src => www/src}/advanced/state/selectors.js (100%) rename {src => www/src}/advanced/state/transitions.js (100%) rename {src => www/src}/advanced/state/utils.js (100%) rename {src => www/src}/api/admin-infrastructure-api-client.js (100%) rename {src => www/src}/api/admin-invitations-api-client.js (100%) rename {src => www/src}/api/admin-operations-api-client.js (100%) rename {src => www/src}/api/admin-owner-navigation.js (100%) rename {src => www/src}/api/admin-setup-api-client.js (100%) rename {src => www/src}/api/admin-system-health-api-client.js (100%) rename {src => www/src}/api/ai-credits-api-client.js (100%) rename {src => www/src}/api/db-viewer-api-client.js (100%) rename {src => www/src}/api/db-viewer-ui.js (100%) rename {src => www/src}/api/game-journey-completion-api-client.js (100%) rename {src => www/src}/api/legal-api-client.js (100%) rename {src => www/src}/api/marketplace-api-client.js (100%) rename {src => www/src}/api/memberships-api-client.js (100%) rename {src => www/src}/api/owner-ai-credits-api-client.js (100%) rename {src => www/src}/api/owner-memberships-api-client.js (100%) rename {src => www/src}/api/platform-settings-api-client.js (100%) rename {src => www/src}/api/public-config-client.js (100%) rename {src => www/src}/api/server-api-client.js (100%) rename {src => www/src}/api/session-api-client.js (100%) rename {src => www/src}/api/toolbox-votes-api-client.js (100%) rename {src => www/src}/dev-runtime/admin/admin-notes-viewer.js (100%) rename {src => www/src}/dev-runtime/admin/header-nav.local.html (100%) rename {src => www/src}/dev-runtime/admin/notes.html (100%) rename {src => www/src}/engine/ai/AIStateController.js (100%) rename {src => www/src}/engine/ai/GridPathfinding.js (100%) rename {src => www/src}/engine/ai/GroupBehaviors.js (100%) rename {src => www/src}/engine/ai/PatrolSystem.js (100%) rename {src => www/src}/engine/ai/SteeringBehaviors.js (100%) rename {src => www/src}/engine/animation/AnimationController.js (100%) rename {src => www/src}/engine/assets/AssetLoaderSystem.js (100%) rename {src => www/src}/engine/assets/AssetOptimizer.js (100%) rename {src => www/src}/engine/assets/AssetRegistry.js (100%) rename {src => www/src}/engine/assets/ImageAssetLoader.js (100%) rename {src => www/src}/engine/assets/SpriteAtlas.js (100%) rename {src => www/src}/engine/audio/AudioService.js (100%) rename {src => www/src}/engine/audio/FrequencyPlayer.js (100%) rename {src => www/src}/engine/audio/GaplessLoopPlayer.js (100%) rename {src => www/src}/engine/audio/HtmlAudioMediaBackend.js (100%) rename {src => www/src}/engine/audio/InstrumentGridParser.js (100%) rename {src => www/src}/engine/audio/MediaTrackService.js (100%) rename {src => www/src}/engine/audio/MidiPlayer.js (100%) rename {src => www/src}/engine/audio/MidiSourceMetadataParser.js (100%) rename {src => www/src}/engine/audio/PlaylistManager.js (100%) rename {src => www/src}/engine/audio/PreviewInstrumentPacks.js (100%) rename {src => www/src}/engine/audio/PreviewSynthEngine.js (100%) rename {src => www/src}/engine/audio/SongSheetParser.js (100%) rename {src => www/src}/engine/audio/SoundFontPreviewEngine.js (100%) rename {src => www/src}/engine/audio/Synthesizer.js (100%) rename {src => www/src}/engine/audio/TextToSpeechDefaults.js (100%) rename {src => www/src}/engine/audio/TextToSpeechEngine.js (100%) rename {src => www/src}/engine/audio/WebAudioToneBackend.js (100%) rename {src => www/src}/engine/automation/AutomatedTestRunner.js (100%) rename {src => www/src}/engine/automation/BenchmarkRunner.js (100%) rename {src => www/src}/engine/automation/CIValidationFlow.js (100%) rename {src => www/src}/engine/automation/RegressionPlaybackHarness.js (100%) rename {src => www/src}/engine/camera/Camera2D.js (100%) rename {src => www/src}/engine/camera/Camera3D.js (100%) rename {src => www/src}/engine/camera/CameraSystem.js (100%) rename {src => www/src}/engine/camera/ZoneCameraSystem.js (100%) rename {src => www/src}/engine/collision/aabb.js (100%) rename {src => www/src}/engine/collision/combat/Combat.js (100%) rename {src => www/src}/engine/collision/hitboxCollision.js (100%) rename {src => www/src}/engine/collision/hybrid.js (100%) rename {src => www/src}/engine/collision/objectVector.js (100%) rename {src => www/src}/engine/collision/polygon.js (100%) rename {src => www/src}/engine/collision/raster.js (100%) rename {src => www/src}/engine/components/Components.js (100%) rename {src => www/src}/engine/config/ConfigStore.js (100%) rename {src => www/src}/engine/core/Engine.js (100%) rename {src => www/src}/engine/core/FixedTicker.js (100%) rename {src => www/src}/engine/core/FrameClock.js (100%) rename {src => www/src}/engine/core/RuntimeMetrics.js (100%) rename {src => www/src}/engine/debug/CombatDebugOverlay.js (100%) rename {src => www/src}/engine/debug/DebugOverlayLayout.js (100%) rename {src => www/src}/engine/debug/DebugPanel.js (100%) rename {src => www/src}/engine/debug/DebugTools.js (100%) rename {src => www/src}/engine/debug/Minimap.js (100%) rename {src => www/src}/engine/debug/PerformanceMetricsPanel.js (100%) rename {src => www/src}/engine/debug/StatsTracker.js (100%) rename {src => www/src}/engine/debug/Validation.js (100%) rename {src => www/src}/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js (100%) rename {src => www/src}/engine/debug/inspectors/commands/registerInspectorCommands.js (100%) rename {src => www/src}/engine/debug/inspectors/host/debugInspectorHost.js (100%) rename {src => www/src}/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js (100%) rename {src => www/src}/engine/debug/inspectors/registry/debugInspectorRegistry.js (100%) rename {src => www/src}/engine/debug/inspectors/shared/inspectorUtils.js (100%) rename {src => www/src}/engine/debug/inspectors/viewModels/componentInspectorViewModel.js (100%) rename {src => www/src}/engine/debug/inspectors/viewModels/entityInspectorViewModel.js (100%) rename {src => www/src}/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js (100%) rename {src => www/src}/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js (100%) rename {src => www/src}/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js (100%) rename {src => www/src}/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js (100%) rename {src => www/src}/engine/debug/network/commands/networkDebugCommandPackBridge.js (100%) rename {src => www/src}/engine/debug/network/dashboard/registerDashboardCommands.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardHost.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardMetrics.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardProviders.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardRefreshModes.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardRegistry.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardRenderer.js (100%) rename {src => www/src}/engine/debug/network/dashboard/serverDashboardViewModel.js (100%) rename {src => www/src}/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js (100%) rename {src => www/src}/engine/debug/network/diagnostics/latencyDiagnosticsModel.js (100%) rename {src => www/src}/engine/debug/network/diagnostics/networkPromotionRecommendation.js (100%) rename {src => www/src}/engine/debug/network/diagnostics/replicationDiagnosticsModel.js (100%) rename {src => www/src}/engine/debug/network/panels/networkDebugPanelRegistry.js (100%) rename {src => www/src}/engine/debug/network/panels/networkObservabilityPanels.js (100%) rename {src => www/src}/engine/debug/network/providers/networkDebugProviderRegistry.js (100%) rename {src => www/src}/engine/debug/network/shared/hostReadUtils.js (100%) rename {src => www/src}/engine/debug/network/shared/networkDebugUtils.js (100%) rename {src => www/src}/engine/debug/panels/PromotionGatePanel.js (100%) rename {src => www/src}/engine/debug/shared/debugCommandResultUtils.js (100%) rename {src => www/src}/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dCamera.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dCollision.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dRenderStages.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dSceneGraph.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dTransform.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/panel3dTransformInspector.js (100%) rename {src => www/src}/engine/debug/standard/threeD/panels/registerStandard3dPanels.js (100%) rename {src => www/src}/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/cameraSummaryProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/collisionSummaryProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/registerStandard3dProviders.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/transformInspectorProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/providers/transformSummaryProvider.js (100%) rename {src => www/src}/engine/debug/standard/threeD/shared/threeDDebugUtils.js (100%) rename {src => www/src}/engine/ecs/World.js (100%) rename {src => www/src}/engine/entity/Bounds.js (100%) rename {src => www/src}/engine/entity/Entity.js (100%) rename {src => www/src}/engine/entity/Transform.js (100%) rename {src => www/src}/engine/entity/Velocity.js (100%) rename {src => www/src}/engine/events/EventBus.js (100%) rename {src => www/src}/engine/fx/ParticleSystem.js (100%) rename {src => www/src}/engine/game/GameModeState.js (100%) rename {src => www/src}/engine/game/gameplayHooks.js (100%) rename {src => www/src}/engine/input/ActionInputDebugOverlay.js (100%) rename {src => www/src}/engine/input/ActionInputMap.js (100%) rename {src => www/src}/engine/input/ActionInputService.js (100%) rename {src => www/src}/engine/input/GamepadHapticsService.js (100%) rename {src => www/src}/engine/input/GamepadInputAdapter.js (100%) rename {src => www/src}/engine/input/GamepadInputClassifier.js (100%) rename {src => www/src}/engine/input/GamepadState.js (100%) rename {src => www/src}/engine/input/InputCapabilityDescriptors.js (100%) rename {src => www/src}/engine/input/InputCaptureService.js (100%) rename {src => www/src}/engine/input/InputCaptureSession.js (100%) rename {src => www/src}/engine/input/InputComboState.js (100%) rename {src => www/src}/engine/input/InputContextService.js (100%) rename {src => www/src}/engine/input/InputMap.js (100%) rename {src => www/src}/engine/input/InputMappingManifest.js (100%) rename {src => www/src}/engine/input/InputService.js (100%) rename {src => www/src}/engine/input/KeyboardState.js (100%) rename {src => www/src}/engine/input/MouseState.js (100%) rename {src => www/src}/engine/input/NormalizedInputRegistry.js (100%) rename {src => www/src}/engine/input/PointerDragState.js (100%) rename {src => www/src}/engine/interaction/InteractionSystem.js (100%) rename {src => www/src}/engine/level/LevelLoader.js (100%) rename {src => www/src}/engine/localization/LocalizationService.js (100%) rename {src => www/src}/engine/logging/ErrorBoundary.js (100%) rename {src => www/src}/engine/logging/Logger.js (100%) rename {src => www/src}/engine/memory/DisposableStore.js (100%) rename {src => www/src}/engine/memory/ObjectPool.js (100%) rename {src => www/src}/engine/network/bootstrap/HostServerBootstrap.js (100%) rename {src => www/src}/engine/network/bootstrap/NetworkingLayer.js (100%) rename {src => www/src}/engine/network/client/ClientReconciliationStrategy.js (100%) rename {src => www/src}/engine/network/client/ClientReplicationApplicationLayer.js (100%) rename {src => www/src}/engine/network/client/PredictionReconciler.js (100%) rename {src => www/src}/engine/network/client/RemoteInterpolationBuffer.js (100%) rename {src => www/src}/engine/network/debug/NetworkDebugOverlay.js (100%) rename {src => www/src}/engine/network/replication/ReplicationMessageContract.js (100%) rename {src => www/src}/engine/network/replication/StateReplication.js (100%) rename {src => www/src}/engine/network/server/AuthoritativeInputIngestionContract.js (100%) rename {src => www/src}/engine/network/server/AuthoritativeServerRuntime.js (100%) rename {src => www/src}/engine/network/server/InterestManager.js (100%) rename {src => www/src}/engine/network/server/RollbackDiagnostics.js (100%) rename {src => www/src}/engine/network/session/ChatPresenceLayer.js (100%) rename {src => www/src}/engine/network/session/HandshakeSimulator.js (100%) rename {src => www/src}/engine/network/session/LobbySessionManager.js (100%) rename {src => www/src}/engine/network/session/SessionLifecycleContract.js (100%) rename {src => www/src}/engine/network/transport/LoopbackTransport.js (100%) rename {src => www/src}/engine/network/transport/NetworkConditionSimulator.js (100%) rename {src => www/src}/engine/network/transport/Serializer.js (100%) rename {src => www/src}/engine/network/transport/TransportContract.js (100%) rename {src => www/src}/engine/object-model/index.js (100%) rename {src => www/src}/engine/object-model/objectDefinitionSchema.js (100%) rename {src => www/src}/engine/object-model/objectDefinitionValidator.js (100%) rename {src => www/src}/engine/object-model/objectModelRegistry.js (100%) rename {src => www/src}/engine/paletteList.js (100%) rename {src => www/src}/engine/persistence/BrowserStorageService.js (100%) rename {src => www/src}/engine/persistence/CompressionService.js (100%) rename {src => www/src}/engine/persistence/CookieStorageService.js (100%) rename {src => www/src}/engine/persistence/FilePersistenceService.js (100%) rename {src => www/src}/engine/persistence/LocalStorageService.js (100%) rename {src => www/src}/engine/persistence/SaveSlotManager.js (100%) rename {src => www/src}/engine/persistence/SessionStorageService.js (100%) rename {src => www/src}/engine/persistence/StorageService.js (100%) rename {src => www/src}/engine/persistence/WorldSerializer.js (100%) rename {src => www/src}/engine/physics/arcadeBody.js (100%) rename {src => www/src}/engine/physics/collision3d.js (100%) rename {src => www/src}/engine/physics/drag.js (100%) rename {src => www/src}/engine/physics/integration.js (100%) rename {src => www/src}/engine/physics/integration3d.js (100%) rename {src => www/src}/engine/physics/scene3d.js (100%) rename {src => www/src}/engine/prefabs/PrefabFactory.js (100%) rename {src => www/src}/engine/release/AccessibilityOptions.js (100%) rename {src => www/src}/engine/release/CrashRecoveryManager.js (100%) rename {src => www/src}/engine/release/DeploymentProfiles.js (100%) rename {src => www/src}/engine/release/DistributionPackager.js (100%) rename {src => www/src}/engine/release/ReleaseValidationChecklist.js (100%) rename {src => www/src}/engine/release/SettingsSystem.js (100%) rename {src => www/src}/engine/rendering/CanvasRenderer.js (100%) rename {src => www/src}/engine/rendering/LayeredRenderSystem.js (100%) rename {src => www/src}/engine/rendering/ObjectVectorRuntimeAssetService.js (100%) rename {src => www/src}/engine/rendering/ObjectVectorTransformService.js (100%) rename {src => www/src}/engine/rendering/OrientationTransform.js (100%) rename {src => www/src}/engine/rendering/Renderer.js (100%) rename {src => www/src}/engine/rendering/ResolutionScaler.js (100%) rename {src => www/src}/engine/rendering/SpriteRenderSystem.js (100%) rename {src => www/src}/engine/rendering/VectorDrawing.js (100%) rename {src => www/src}/engine/rendering/WorldScreenTransform.js (100%) rename {src => www/src}/engine/rendering/WorldScreenTransformService.js (100%) rename {src => www/src}/engine/replay/ReplayModel.js (100%) rename {src => www/src}/engine/replay/ReplaySystem.js (100%) rename {src => www/src}/engine/replay/ReplayTimeline.js (100%) rename {src => www/src}/engine/runtime/BrowserDownloadService.js (100%) rename {src => www/src}/engine/runtime/FullscreenService.js (100%) rename {src => www/src}/engine/runtime/MobileRuntimeTweaks.js (100%) rename {src => www/src}/engine/runtime/RuntimeMonitoringHooks.js (100%) rename {src => www/src}/engine/runtime/backgroundColor.js (100%) rename {src => www/src}/engine/runtime/backgroundImage.js (100%) rename {src => www/src}/engine/runtime/engineV2AbilitySystem.js (100%) rename {src => www/src}/engine/runtime/engineV2AnimationRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2AudioRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2CameraRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2ChaseFleeBehavior.js (100%) rename {src => www/src}/engine/runtime/engineV2CheckpointSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2ConfigDrivenProofScene.js (100%) rename {src => www/src}/engine/runtime/engineV2ContainerSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2CraftingFoundation.js (100%) rename {src => www/src}/engine/runtime/engineV2CustomExtensionsHookRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2DialogueSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2EconomyAndCurrency.js (100%) rename {src => www/src}/engine/runtime/engineV2EffectRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2EquipmentSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2InteractionSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2InventorySystem.js (100%) rename {src => www/src}/engine/runtime/engineV2ItemAndLootSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2ModifierStack.js (100%) rename {src => www/src}/engine/runtime/engineV2ObjectiveSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2PathfindingBaseline.js (100%) rename {src => www/src}/engine/runtime/engineV2PatrolBehavior.js (100%) rename {src => www/src}/engine/runtime/engineV2PersistenceRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2ProfileStateSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2ProjectileSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2QuestSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2SaveLoadValidation.js (100%) rename {src => www/src}/engine/runtime/engineV2SaveStateModel.js (100%) rename {src => www/src}/engine/runtime/engineV2StateMachineRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2StatusEffectSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2UiRuntime.js (100%) rename {src => www/src}/engine/runtime/engineV2VendorSystem.js (100%) rename {src => www/src}/engine/runtime/engineV2WeaponSystem.js (100%) rename {src => www/src}/engine/runtime/firstManifestDrivenPlayableScene.js (100%) rename {src => www/src}/engine/runtime/fullscreenBezel.js (100%) rename {src => www/src}/engine/runtime/gameImageConvention.js (100%) rename {src => www/src}/engine/runtime/manifestRuntimeParser.js (100%) rename {src => www/src}/engine/runtime/objectDefinitionReader.js (100%) rename {src => www/src}/engine/runtime/ruleDefinitionReader.js (100%) rename {src => www/src}/engine/runtime/runtimeActionSystem.js (100%) rename {src => www/src}/engine/runtime/runtimeBehaviorComposition.js (100%) rename {src => www/src}/engine/runtime/runtimeCollisionProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimeConditionSystem.js (100%) rename {src => www/src}/engine/runtime/runtimeCooldownProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimeDamageProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimeEnvironmentEffects.js (100%) rename {src => www/src}/engine/runtime/runtimeEnvironmentForceInstantiation.js (100%) rename {src => www/src}/engine/runtime/runtimeErrorReporting.js (100%) rename {src => www/src}/engine/runtime/runtimeEventSystem.js (100%) rename {src => www/src}/engine/runtime/runtimeHealthModel.js (100%) rename {src => www/src}/engine/runtime/runtimeInputPipeline.js (100%) rename {src => www/src}/engine/runtime/runtimeLivesAndRespawn.js (100%) rename {src => www/src}/engine/runtime/runtimeMovementProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimeMultiSceneLoading.js (100%) rename {src => www/src}/engine/runtime/runtimeObjectInstantiation.js (100%) rename {src => www/src}/engine/runtime/runtimeObjectRecordFactory.js (100%) rename {src => www/src}/engine/runtime/runtimeOutcomeProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimePlayableLoop.js (100%) rename {src => www/src}/engine/runtime/runtimeRenderPipeline.js (100%) rename {src => www/src}/engine/runtime/runtimeRenderingBootstrap.js (100%) rename {src => www/src}/engine/runtime/runtimeRuleAttachment.js (100%) rename {src => www/src}/engine/runtime/runtimeSceneDefinitionSupport.js (100%) rename {src => www/src}/engine/runtime/runtimeScoringAndStateProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimeSpawnDespawnProcessing.js (100%) rename {src => www/src}/engine/runtime/runtimeTerrainEffects.js (100%) rename {src => www/src}/engine/runtime/runtimeTerrainMaterialInstantiation.js (100%) rename {src => www/src}/engine/runtime/runtimeTickLoop.js (100%) rename {src => www/src}/engine/runtime/runtimeTriggerProcessing.js (100%) rename {src => www/src}/engine/scene/AttractModeController.js (100%) rename {src => www/src}/engine/scene/Scene.js (100%) rename {src => www/src}/engine/scene/SceneManager.js (100%) rename {src => www/src}/engine/scene/SceneTransition.js (100%) rename {src => www/src}/engine/scene/SceneTransitionController.js (100%) rename {src => www/src}/engine/scene/TransitionScene.js (100%) rename {src => www/src}/engine/security/DataIntegrityService.js (100%) rename {src => www/src}/engine/security/PacketValidator.js (100%) rename {src => www/src}/engine/security/PermissionGate.js (100%) rename {src => www/src}/engine/security/SessionTrustValidator.js (100%) rename {src => www/src}/engine/state/StateMachine.js (100%) rename {src => www/src}/engine/systems/BounceSystem.js (100%) rename {src => www/src}/engine/systems/BoundsSystem.js (100%) rename {src => www/src}/engine/systems/CollectSystem.js (100%) rename {src => www/src}/engine/systems/CollisionResolutionSystem.js (100%) rename {src => www/src}/engine/systems/CollisionSystem.js (100%) rename {src => www/src}/engine/systems/InputControlSystem.js (100%) rename {src => www/src}/engine/systems/LifecycleSystem.js (100%) rename {src => www/src}/engine/systems/MovementSystem.js (100%) rename {src => www/src}/engine/systems/PhysicsSystem.js (100%) rename {src => www/src}/engine/systems/ProjectileSystem.js (100%) rename {src => www/src}/engine/systems/RenderSystem.js (100%) rename {src => www/src}/engine/systems/SystemUtils.js (100%) rename {src => www/src}/engine/tilemap/TileMetadata.js (100%) rename {src => www/src}/engine/tilemap/Tilemap.js (100%) rename {src => www/src}/engine/tilemap/TilemapCollision.js (100%) rename {src => www/src}/engine/tilemap/TilemapRenderSystem.js (100%) rename {src => www/src}/engine/ui/CanvasDialogPrimitives.js (100%) rename {src => www/src}/engine/ui/CanvasPopupInteractions.js (100%) rename {src => www/src}/engine/ui/CanvasPopupState.js (100%) rename {src => www/src}/engine/ui/UIFramework.js (100%) rename {src => www/src}/engine/ui/assets/icons/pin-monocolor-filled.svg (100%) rename {src => www/src}/engine/ui/assets/icons/pin-monocolor.svg (100%) rename {src => www/src}/engine/ui/baseLayout.css (100%) rename {src => www/src}/engine/ui/hubCommon.css (100%) rename {src => www/src}/engine/ui/spriteEditor.css (100%) rename {src => www/src}/engine/world/AchievementSystem.js (100%) rename {src => www/src}/engine/world/CutsceneSystem.js (100%) rename {src => www/src}/engine/world/DayNightCycle.js (100%) rename {src => www/src}/engine/world/EventScriptSystem.js (100%) rename {src => www/src}/engine/world/QuestSystem.js (100%) rename {src => www/src}/engine/world/SpawnSystem.js (100%) rename {src => www/src}/engine/world/WeatherSystem.js (100%) rename {src => www/src}/engine/world/WorldStreamingSystem.js (100%) rename {src => www/src}/shared/array/arrays.js (100%) rename {src => www/src}/shared/array/recordArrays.js (100%) rename {src => www/src}/shared/color/color.js (100%) rename {src => www/src}/shared/game/highScores.js (100%) rename {src => www/src}/shared/game/initialsEntry.js (100%) rename {src => www/src}/shared/geometry/geometry.js (100%) rename {src => www/src}/shared/hash/hash.js (100%) rename {src => www/src}/shared/id/ids.js (100%) rename {src => www/src}/shared/json/clone.js (100%) rename {src => www/src}/shared/json/jsonIO.js (100%) rename {src => www/src}/shared/math/Random.js (100%) rename {src => www/src}/shared/math/RandomSeed.js (100%) rename {src => www/src}/shared/math/directions.js (100%) rename {src => www/src}/shared/math/geometry.js (100%) rename {src => www/src}/shared/math/numberNormalization.js (100%) rename {src => www/src}/shared/math/randomHelpers.js (100%) rename {src => www/src}/shared/math/scalars.js (100%) rename {src => www/src}/shared/math/vectorMath.js (100%) rename {src => www/src}/shared/math/vectorNormalize.js (100%) rename {src => www/src}/shared/noise/noise.js (100%) rename {src => www/src}/shared/number/numbers.js (100%) rename {src => www/src}/shared/object/objects.js (100%) rename {src => www/src}/shared/runtime/registry.js (100%) rename {src => www/src}/shared/runtime/snapshotClone.js (100%) rename {src => www/src}/shared/state/createPromotionStateSnapshot.js (100%) rename {src => www/src}/shared/state/getState.js (100%) rename {src => www/src}/shared/state/getStateVariantClassification.js (100%) rename {src => www/src}/shared/state/guards.js (100%) rename {src => www/src}/shared/state/normalization.js (100%) rename {src => www/src}/shared/state/selectors.js (100%) rename {src => www/src}/shared/string/commandText.js (100%) rename {src => www/src}/shared/string/fuzzyMatchScore.js (100%) rename {src => www/src}/shared/string/stringifyValue.js (100%) rename {src => www/src}/shared/string/strings.js (100%) rename {src => www/src}/shared/string/textWrap.js (100%) rename {src => www/src}/shared/text/text.js (100%) rename {src => www/src}/shared/time/time.js (100%) rename {src => www/src}/shared/toolbox/aiAuthoringAssistant.js (100%) rename {src => www/src}/shared/toolbox/assetMarketplace.js (100%) rename {src => www/src}/shared/toolbox/assetPipelineConverters.js (100%) rename {src => www/src}/shared/toolbox/assetPipelineFoundation.js (100%) rename {src => www/src}/shared/toolbox/assetPipelineValidationOutput.js (100%) rename {src => www/src}/shared/toolbox/assetUsageIntegration.js (100%) rename {src => www/src}/shared/toolbox/ciValidationPipeline.js (100%) rename {src => www/src}/shared/toolbox/cloudRuntime.js (100%) rename {src => www/src}/shared/toolbox/collaborationSystem.js (100%) rename {src => www/src}/shared/toolbox/contractVersioning.js (100%) rename {src => www/src}/shared/toolbox/debugInspectorData.js (100%) rename {src => www/src}/shared/toolbox/debugInspectorTools.css (100%) rename {src => www/src}/shared/toolbox/debugToolInteractionFlow.js (100%) rename {src => www/src}/shared/toolbox/debugVisualizationLayer.js (100%) rename {src => www/src}/shared/toolbox/devConsoleDebugOverlay.js (100%) rename {src => www/src}/shared/toolbox/documentModeGuards.js (100%) rename {src => www/src}/shared/toolbox/editor/EntityPlacementEditor.js (100%) rename {src => www/src}/shared/toolbox/editor/LevelEditor.js (100%) rename {src => www/src}/shared/toolbox/editor/TileMapEditor.js (100%) rename {src => www/src}/shared/toolbox/editor/TimelineEditor.js (100%) rename {src => www/src}/shared/toolbox/editorExperienceLayer.js (100%) rename {src => www/src}/shared/toolbox/eventCommandUtils.js (100%) rename {src => www/src}/shared/toolbox/gameTemplates.js (100%) rename {src => www/src}/shared/toolbox/gameplaySystemLayer.js (100%) rename {src => www/src}/shared/toolbox/hotReloadSystem.js (100%) rename {src => www/src}/shared/toolbox/livePreviewSyncChannel.js (100%) rename {src => www/src}/shared/toolbox/multiTargetExport.js (100%) rename {src => www/src}/shared/toolbox/paletteDocumentContract.js (100%) rename {src => www/src}/shared/toolbox/performanceBenchmarks.js (100%) rename {src => www/src}/shared/toolbox/performanceProfiler.js (100%) rename {src => www/src}/shared/toolbox/pipeline/AssetImportPipeline.js (100%) rename {src => www/src}/shared/toolbox/pipeline/AudioPreprocessPipeline.js (100%) rename {src => www/src}/shared/toolbox/pipeline/BuildAssetManifestSystem.js (100%) rename {src => www/src}/shared/toolbox/pipeline/ContentMigrationSystem.js (100%) rename {src => www/src}/shared/toolbox/pipeline/ContentValidationPipeline.js (100%) rename {src => www/src}/shared/toolbox/pipeline/TexturePreprocessPipeline.js (100%) rename {src => www/src}/shared/toolbox/pipeline/assetErrorHandling.js (100%) rename {src => www/src}/shared/toolbox/pipeline/assetManifestLoader.js (100%) rename {src => www/src}/shared/toolbox/pipeline/assetPipelineTooling.js (100%) rename {src => www/src}/shared/toolbox/pipeline/gameAssetManifestCoordinator.js (100%) rename {src => www/src}/shared/toolbox/pipeline/gameAssetManifestDiscovery.js (100%) rename {src => www/src}/shared/toolbox/pipeline/runtimeAssetBinding.js (100%) rename {src => www/src}/shared/toolbox/pipeline/runtimeAssetLookup.js (100%) rename {src => www/src}/shared/toolbox/pipeline/runtimeAssetValidation.js (100%) rename {src => www/src}/shared/toolbox/platformShell.css (100%) rename {src => www/src}/shared/toolbox/platformShell.js (100%) rename {src => www/src}/shared/toolbox/platformValidationSuite.js (100%) rename {src => www/src}/shared/toolbox/pluginArchitecture.js (100%) rename {src => www/src}/shared/toolbox/powerShell/find_dupes_called.ps1 (100%) rename {src => www/src}/shared/toolbox/projectAssetRegistry.js (100%) rename {src => www/src}/shared/toolbox/projectAssetRemediation.js (100%) rename {src => www/src}/shared/toolbox/projectAssetValidation.js (100%) rename {src => www/src}/shared/toolbox/projectManifestContract.js (100%) rename {src => www/src}/shared/toolbox/projectPackaging.js (100%) rename {src => www/src}/shared/toolbox/projectSystem.js (100%) rename {src => www/src}/shared/toolbox/projectSystemAdapters.js (100%) rename {src => www/src}/shared/toolbox/projectSystemValueUtils.js (100%) rename {src => www/src}/shared/toolbox/projectToolIntegration.js (100%) rename {src => www/src}/shared/toolbox/projectVersioning.js (100%) rename {src => www/src}/shared/toolbox/publishingPipeline.js (100%) rename {src => www/src}/shared/toolbox/renderPipelineContract.js (100%) rename {src => www/src}/shared/toolbox/runtimeAssetLoader.js (100%) rename {src => www/src}/shared/toolbox/runtimeAssetSharedUtils.js (100%) rename {src => www/src}/shared/toolbox/runtimeAssetValidationUtils.js (100%) rename {src => www/src}/shared/toolbox/runtimeSceneLoaderHotReload.js (100%) rename {src => www/src}/shared/toolbox/runtimeStreaming.js (100%) rename {src => www/src}/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg (100%) rename {src => www/src}/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json (100%) rename {src => www/src}/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json (100%) rename {src => www/src}/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json (100%) rename {src => www/src}/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png (100%) rename {src => www/src}/shared/toolbox/samples/project-asset-registry-demo/project.assets.json (70%) rename {src => www/src}/shared/toolbox/schemaOnlyToolPresetValidation.js (100%) rename {src => www/src}/shared/toolbox/tool-metadata-inventory.js (100%) rename {src => www/src}/shared/toolbox/toolBootContract.js (100%) rename {src => www/src}/shared/toolbox/toolHostManifest.js (100%) rename {src => www/src}/shared/toolbox/toolHostRuntime.js (100%) rename {src => www/src}/shared/toolbox/toolHostSharedContext.js (100%) rename {src => www/src}/shared/toolbox/toolLaunchSSoT.js (100%) rename {src => www/src}/shared/toolbox/toolLaunchSSoTData.js (100%) rename {src => www/src}/shared/toolbox/toolLoadDiagnostics.js (100%) rename {src => www/src}/shared/toolbox/toolSampleCatalog.js (100%) rename {src => www/src}/shared/toolbox/tooling/AssetBrowser.js (100%) rename {src => www/src}/shared/toolbox/tooling/DeveloperConsole.js (100%) rename {src => www/src}/shared/toolbox/tooling/LiveTuningService.js (100%) rename {src => www/src}/shared/toolbox/tooling/PropertyEditor.js (100%) rename {src => www/src}/shared/toolbox/tooling/RuntimeInspector.js (100%) rename {src => www/src}/shared/toolbox/tooling/SceneGraphViewer.js (100%) rename {src => www/src}/shared/toolbox/uiSafeUtils.js (100%) rename {src => www/src}/shared/toolbox/unifiedToolUxContract.js (100%) rename {src => www/src}/shared/toolbox/vector/vectorAssetBridge.js (100%) rename {src => www/src}/shared/toolbox/vector/vectorAssetContract.js (100%) rename {src => www/src}/shared/toolbox/vector/vectorGeometryMath.js (100%) rename {src => www/src}/shared/toolbox/vector/vectorRenderPrep.js (100%) rename {src => www/src}/shared/toolbox/vector/vectorSafeValueUtils.js (100%) rename {src => www/src}/shared/toolbox/vectorAssetSystem.js (100%) rename {src => www/src}/shared/toolbox/vectorGeometryRuntime.js (100%) rename {src => www/src}/shared/toolbox/vectorNativeTemplate.js (100%) rename {src => www/src}/shared/toolbox/vectorTemplateSampleGame.js (100%) rename {src => www/src}/shared/toolbox/workspaceShell.js (100%) rename {src => www/src}/shared/types/typeGuards.js (100%) rename {src => www/src}/shared/validation/assert.js (100%) rename {src => www/src}/shared/validation/invariant.js (100%) rename {src => www/src}/tools/common/GameManifestLoader.js (100%) rename {src => www/src}/tools/common/WorkspaceDirtyNotifier.js (100%) diff --git a/api/API_RUNTIME_BOUNDARY.md b/api/API_RUNTIME_BOUNDARY.md index ba4c12c6b..8dd2ff870 100644 --- a/api/API_RUNTIME_BOUNDARY.md +++ b/api/API_RUNTIME_BOUNDARY.md @@ -11,6 +11,6 @@ It is intentionally not `dev/tests/dev-runtime`: Deployment boundary: - DEV validation may execute `api/` through local server commands. -- Browser pages, Theme V2 scripts, toolbox pages, and `src/engine` runtime code must use declared API/service contracts instead of importing `api/` directly. +- Browser pages, Theme V2 scripts, toolbox pages, and `www/src/engine` runtime code must use declared API/service contracts instead of importing `api/` directly. - If a dev-only adapter is needed by a browser page, expose it through the Local API contract while keeping the implementation under `api/`. - Developer-only local bootstrap/orchestration remains outside `api/` until the scoped `dev/local-runtime/` migration PR. diff --git a/api/admin/admin-notes-menu.mjs b/api/admin/admin-notes-menu.mjs index 3e6d13e5d..1320d7216 100644 --- a/api/admin/admin-notes-menu.mjs +++ b/api/admin/admin-notes-menu.mjs @@ -6,7 +6,7 @@ export const ADMIN_NOTES_LOCAL_MENU_LABEL = "Notes"; export const ADMIN_MY_STUFF_MENU_LABEL = "My Stuff"; const HEADER_PARTIAL_PATH = "www/assets/theme-v2/partials/header-nav.html"; -const LOCAL_HEADER_PARTIAL_PATH = "src/dev-runtime/admin/header-nav.local.html"; +const LOCAL_HEADER_PARTIAL_PATH = "www/src/dev-runtime/admin/header-nav.local.html"; function repoRelativePath(repoRoot, targetPath) { return path.relative(repoRoot, targetPath).replaceAll(path.sep, "/"); diff --git a/api/guest-seeds/tool-metadata-inventory.js b/api/guest-seeds/tool-metadata-inventory.js index 2a7efcf29..36a2e01e5 100644 --- a/api/guest-seeds/tool-metadata-inventory.js +++ b/api/guest-seeds/tool-metadata-inventory.js @@ -1 +1 @@ -export * from "../../src/shared/toolbox/tool-metadata-inventory.js"; +export * from "../../www/src/shared/toolbox/tool-metadata-inventory.js"; diff --git a/api/server/local-api-router.mjs b/api/server/local-api-router.mjs index cd315eee8..9151feb52 100644 --- a/api/server/local-api-router.mjs +++ b/api/server/local-api-router.mjs @@ -133,7 +133,7 @@ import { import { getAdminNavigationItems, getOwnerNavigationItems, -} from "../../src/api/admin-owner-navigation.js"; +} from "../../www/src/api/admin-owner-navigation.js"; import { createPaletteSourceMockDbRows } from "../guest-seeds/palette-source-mock-db.js"; import { SUPABASE_AUTH_PROVIDER_ID, @@ -6929,8 +6929,8 @@ SELECT pg_database_size(current_database()) AS database_size_bytes, adminMainItems: getAdminNavigationItems(), ownerMenuItems: getOwnerNavigationItems(), ownership: { - adminMainItems: "src/api/admin-owner-navigation.js", - ownerMenuItems: "src/api/admin-owner-navigation.js", + adminMainItems: "www/src/api/admin-owner-navigation.js", + ownerMenuItems: "www/src/api/admin-owner-navigation.js", routeMap: "static shell route resolution", }, source: "server-api", diff --git a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md index 76a4ca47c..a2595051c 100644 --- a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md +++ b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md @@ -117,7 +117,7 @@ Rules: ## Current Version/Date -- Project Instructions Version: 2026.06.28.017 +- Project Instructions Version: 2026.06.28.018 - Date: 2026-06-28 - Owner: OWNER diff --git a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md index e0fb5fb57..345bd239e 100644 --- a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md +++ b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md @@ -1,6 +1,6 @@ # Project Instructions Version -Current Project Instructions Version: 2026.06.28.017 +Current Project Instructions Version: 2026.06.28.018 Last Updated: 2026-06-28 @@ -25,6 +25,7 @@ Last Updated: 2026-06-28 - Added root leftover audit and `src/` transition plan for the final repository layout cleanup stage. - Removed safe empty local root directory shells and documented blocked local-only `assets/` cleanup. - Removed the local demo `.gfsp` artifact and recorded a file-by-file `src/` destination audit for future scoped migrations. +- Moved PR017-audited browser/www-owned legacy `src/` files into `www/src/` while preserving public `/src/...` browser route compatibility under the `www` web root. - Codex must read this version file and the latest repository copy of `PROJECT_INSTRUCTIONS.md` before performing work. - Codex must discard previously remembered Project Instructions and treat the repository copy as authoritative. - Codex must validate canonical report and ZIP paths, branching model, and legacy path avoidance before work proceeds. diff --git a/dev/build/ProjectInstructions/PROJECT_STATE.md b/dev/build/ProjectInstructions/PROJECT_STATE.md index d768977a8..7e01574cb 100644 --- a/dev/build/ProjectInstructions/PROJECT_STATE.md +++ b/dev/build/ProjectInstructions/PROJECT_STATE.md @@ -1,7 +1,7 @@ # Project State ```yaml -project_state_version: "2026.06.28.017" +project_state_version: "2026.06.28.018" last_updated: "2026-06-28" current_main_commit: "40de767476d70cadfd1292c916844c2f31b6f185" repository_status: @@ -10,9 +10,9 @@ repository_status: runtime_database: "Postgres" creator_metadata: "API to Postgres" creator_assets: "API to R2" -project_instructions_version: "2026.06.28.017" -repository_structure_version: "2026.06.28.017" -canonical_layout_version: "2026.06.28.017" +project_instructions_version: "2026.06.28.018" +repository_structure_version: "2026.06.28.018" +canonical_layout_version: "2026.06.28.018" active_teams: - "Owner" - "Alfa" @@ -20,8 +20,8 @@ active_teams: - "Charlie" - "Delta" - "Golf" -latest_owner_pr: "PR_26180_OWNER_017-src-dissection-and-demo-cleanup" -latest_structure_pr: "PR_26180_OWNER_017-src-dissection-and-demo-cleanup" +latest_owner_pr: "PR_26180_OWNER_018-move-src-browser-to-www" +latest_structure_pr: "PR_26180_OWNER_018-move-src-browser-to-www" valid_top_level_folders: - "api/" - "deploy/" @@ -40,7 +40,8 @@ valid_dev_folders: - "dev/tools/" - "dev/workspace/" known_technical_debt: - - "Browser API client modules remain under src/api/ until the final src layer migration moves them into src/web/ or src/runtime/." - - "src/dev-runtime/admin/ remains as a legacy Admin Notes browser-viewer compatibility path until a scoped browser admin migration retires it." + - "API/server-owned contracts, schemas, and project data store modules remain under src/shared/ until PR_26180_OWNER_019 moves them to api/." + - "Developer/source reference files remain under src/ until PR_26180_OWNER_020 moves them to dev/." + - "src/dev-runtime/admin/.gitkeep remains as a placeholder until PR_26180_OWNER_021 retires the empty root src folder." - "repository_directory_standard.md and codex_project_instructions_startup.md are superseded pointers retained for compatibility." ``` diff --git a/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md b/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md index 980ac2308..7b384c38e 100644 --- a/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md +++ b/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md @@ -40,8 +40,8 @@ The backlog is the authoritative source for determining the next logical PRs. - Product Area: Repository Architecture Simplification - Status: Active - Percent Complete: 99% -- Active PR: PR_26180_OWNER_017-src-dissection-and-demo-cleanup -- Next Milestone: Final layout validation and completion report +- Active PR: PR_26180_OWNER_018-move-src-browser-to-www +- Next Milestone: Move API/server-owned source to api/ - Source / Reference: `dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md`; `dev/build/ProjectInstructions/repository/www_migration_map.md` ## Game Journey MVP diff --git a/dev/build/ProjectInstructions/repository/canonical_repository_structure.md b/dev/build/ProjectInstructions/repository/canonical_repository_structure.md index f1561c28e..6a3115dd9 100644 --- a/dev/build/ProjectInstructions/repository/canonical_repository_structure.md +++ b/dev/build/ProjectInstructions/repository/canonical_repository_structure.md @@ -14,7 +14,7 @@ Valid top-level folders: - www/ Root product and repo sections: -- www/ owns browser-served production website sections, Creator toolbox pages, public game discovery, production Docs & Help, and browser assets. +- www/ owns browser-served production website sections, Creator toolbox pages, public game discovery, production Docs & Help, browser assets, and browser-owned runtime/client modules under `www/src/`. - api/ is the Node/API/server application surface for server entry points, API routing, API services, database access, storage access, auth, setup, publishing, and admin server logic. - deploy/ contains deployment configuration. - dev/ contains the development workspace. @@ -26,14 +26,14 @@ Deployable application source: - src/api-runtime/{feature-name}/ - src/runtime/{feature-name}/ -Final src layer ownership: -- src/web/ owns browser-facing deployable application modules used by public pages, account/admin surfaces, and Creator tools. -- src/api-runtime/ owns deployable API/runtime service modules that back the shared Browser -> API -> Postgres/R2 contract. -- src/runtime/ owns deployable game, tool, engine, and shared runtime capabilities. -- Existing top-level src/advanced/, src/api/, src/engine/, src/shared/, and src/tools/ directories are legacy transition buckets until explicit migration PRs move them. +Final source ownership after the repository layout simplification: +- `www/src/` owns browser-facing deployable application modules used by public pages, account/admin surfaces, Creator tools, game runtime, shared browser utilities, and browser API clients. +- `api/` owns deployable API/runtime service modules that back the shared Browser -> API -> Postgres/R2 contract. +- `dev/` owns developer-only source, scripts, tests, reports, local runtime orchestration, and reference material. +- Existing root `src/shared/contracts/`, `src/shared/schemas/`, `src/shared/projectDataStore/`, and source-reference files are legacy transition buckets until explicit migration PRs move them. - Browser API clients remain outside `api/`; browser-served code must use API/service contracts instead of importing top-level `api/` files directly. -- `src/dev-runtime/admin/` remains only as a legacy Admin Notes browser-viewer compatibility path until a scoped browser admin migration retires it. -- Do not add new top-level src/ layer names outside src/web/, src/api-runtime/, or src/runtime/ without OWNER approval. +- `www/src/dev-runtime/admin/` preserves the public `/src/dev-runtime/admin/...` Admin Notes browser-viewer compatibility route under the `www` web root. +- Do not add new root `src/` layer names or new root `src/` work without OWNER approval. - Do not use team names in runtime source filenames. Valid dev workspace folders: @@ -60,6 +60,9 @@ Dev workspace ownership: - dev/tools/ owns development-only tooling. - dev/workspace/ owns generated output: tmp, zips, logs, generated files, and test-results. +Browser-served runtime/client source: +- www/src/ + Browser-served tools: - www/toolbox/{tool-name}/index.html @@ -75,14 +78,18 @@ Shared JavaScript: - www/assets/js/shared/ Legacy transition buckets: -- src/advanced/ -- src/api/ -- src/engine/ -- src/shared/ -- src/tools/ -- src/dev-runtime/admin/ - -These legacy transition buckets may remain until explicit migration PRs move them into `src/web/`, `src/api-runtime/`, or `src/runtime/`. +- www/src/advanced/ +- www/src/api/ +- www/src/engine/ +- www/src/shared/ +- www/src/tools/ +- www/src/dev-runtime/admin/ +- src/shared/contracts/ +- src/shared/schemas/ +- src/shared/projectDataStore/ +- src/dev-runtime/admin/.gitkeep + +The `www/src/` legacy transition buckets preserve public `/src/...` browser import compatibility during source retirement. Remaining root `src/` buckets may remain only until explicit stacked migration PRs move them to `api/` or `dev/`. ## Rules @@ -102,7 +109,8 @@ These legacy transition buckets may remain until explicit migration PRs move the - Do not create new folders unless they fit the documented canonical structure. - If a requested or generated path does not clearly fit the canonical structure, Codex must HARD STOP and report the proposed path. - New development follows the canonical structure. -- New deployable `src/` work follows `src/web/`, `src/api-runtime/`, or `src/runtime/`. +- New browser-owned source belongs under `www/` according to the browser source and asset rules above. +- New API/server source belongs under `api/`. - New non-deployable work belongs under `dev/`. - Required reports belong under flat `dev/reports/`. - Required ZIPs belong under `dev/workspace/zips/`; generated temporary artifacts belong under `dev/workspace/tmp/`. diff --git a/dev/build/ProjectInstructions/repository/www_migration_map.md b/dev/build/ProjectInstructions/repository/www_migration_map.md index a41ddc297..8f822299e 100644 --- a/dev/build/ProjectInstructions/repository/www_migration_map.md +++ b/dev/build/ProjectInstructions/repository/www_migration_map.md @@ -1,9 +1,9 @@ # www Migration Map -Status: Implemented migration map +Status: Implemented migration map and browser source migration Owner: Owner Workstream: Repository Architecture Simplification -PR: PR_26180_OWNER_006-www-migration-map; PR_26180_OWNER_008-move-www-application +PR: PR_26180_OWNER_006-www-migration-map; PR_26180_OWNER_008-move-www-application; PR_26180_OWNER_018-move-src-browser-to-www ## Purpose @@ -15,9 +15,11 @@ This map began as a no-runtime-change governance artifact. `PR_26180_OWNER_008-m The browser-served application now lives under `www/`. +PR_26180_OWNER_018 moved the PR017-audited browser/www-owned legacy `src/` files into `www/src/`. + Current local runtime, test helpers, and browser pages keep URLs such as `/index.html`, `/toolbox/index.html`, `/assets/theme-v2/css/theme.css`, `/account/sign-in.html`, `/admin/system-health.html`, and `/games/index.html` while resolving browser-served files from `www/`. -The move preserved public route URLs while changing the filesystem lookup root. Repository-root fallback remains available for transition-only compatibility, including browser imports that still reference root-level `src/`. +The move preserved public route URLs while changing the filesystem lookup root. Browser imports that use `/src/...` or relative paths resolving to `/src/...` now resolve under `www/src/` when `www/` is the served web root. ## Current Browser-Served Surface @@ -54,7 +56,7 @@ Broad active-reference search across browser roots, `src/`, `dev/scripts/`, and | `legal/` | 13 | Footer/navigation route references and page links. | | `learn/` | 9 | Learn route links and navigation. | | `play/` | 7 | No root folder exists; review references manually before introducing a route. | -| `src/` | 451 | Browser imports, server imports, tests, validation aliases, and current runtime/source modules. | +| `src/` | 451 | Browser imports, server imports, tests, validation aliases, and legacy runtime/source modules before the browser-owned subset moved to `www/src/`. | The high `src/` count means the browser migration cannot be treated as static files only. Several browser-facing pages import modules from root-level `src/`, including account/admin/toolbox flows. @@ -103,7 +105,7 @@ Examples of current references that depend on root-level path relationships: - `toolbox/toolRegistry.js` imports from `../src/shared/toolbox/tool-metadata-inventory.js`. - `assets/toolbox/*/js/index.js` imports from `../../../../src/` or `../../../../toolbox/` in several tool flows. -These references can be preserved temporarily by serving compatibility paths from the repository root, but the final architecture should move browser-facing runtime modules into `www/` or an approved deployable browser module surface. +These references are preserved by serving the browser-owned source modules from `www/src/` while keeping public `/src/...` URL compatibility. ## Current Local Web Server Root Behavior diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md new file mode 100644 index 000000000..b45424059 --- /dev/null +++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md @@ -0,0 +1,9 @@ +# PR_26180_OWNER_018-move-src-browser-to-www Branch Validation + +| Check | Status | Evidence | +| --- | --- | --- | +| Current branch | PASS | `PR_26180_OWNER_018-move-src-browser-to-www` | +| Expected stacked base | PASS | Created from `PR_26180_OWNER_017-src-dissection-and-demo-cleanup` workstream branch. | +| Worktree scope | PASS | Staged changes are source relocation, reference updates, targeted tests, and governance/report artifacts. | +| Reports path | PASS | `dev/reports/` | +| ZIP path | PASS | `dev/workspace/zips/PR_26180_OWNER_018-move-src-browser-to-www_delta.zip` generated for this outcome. | diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md new file mode 100644 index 000000000..428998e73 --- /dev/null +++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md @@ -0,0 +1,6 @@ +# PR_26180_OWNER_018-move-src-browser-to-www Manual Validation Notes + +- No manual browser launch was required beyond targeted Playwright route smoke. +- Public browser route compatibility was manually smoke-checked through `resolveStaticRouteTarget` for representative browser, toolbox, admin, and `/src/...` routes. +- Product behavior is expected to remain unchanged because public URLs are preserved and moved files keep their relative browser module relationships under `www/src/`. +- The guard self-test intentionally retains a legacy `src/shared` import string as a violation fixture; it was allowlisted in the path scan and not treated as an active dependency. diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md new file mode 100644 index 000000000..c7f9301da --- /dev/null +++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md @@ -0,0 +1,39 @@ +# PR_26180_OWNER_018-move-src-browser-to-www Report + +## Executive Summary + +Moved PR017-audited browser/www-owned legacy `src/` files into `www/src/` so public browser imports such as `/src/...` continue to resolve under the `www` web root. This PR does not move API/server-owned or dev-owned `src` files and does not change product behavior. + +## Scope Confirmation + +- Branch: `PR_26180_OWNER_018-move-src-browser-to-www` +- Base workstream: `PR_26180_OWNER_017-src-dissection-and-demo-cleanup` +- Current HEAD before commit: `f4be737bbfcccd0f04f5298963ac7573362df7ca` +- Browser/www-owned files moved: 501 +- Modified reference/test/governance files: 231 +- Runtime behavior changes: None intended; public route/import URLs are preserved. +- API/server-owned files moved: None. +- Dev-owned files moved: None. + +## Implementation Notes + +- Moved browser-owned `src/advanced`, `src/api` browser clients, `src/dev-runtime/admin` browser viewer files, `src/engine`, browser/shared helpers, toolbox browser modules, and browser tool helpers into `www/src/` according to the PR017 destination audit. +- Updated active API/dev/test imports that load these browser-owned modules to point at `www/src/` filesystem paths. +- Preserved public browser URLs such as `/src/engine/core/Engine.js`, `/src/api/admin-owner-navigation.js`, and `/src/dev-runtime/admin/notes.html` through the existing static web root compatibility layer. +- Updated Project Instructions, repository structure docs, migration map, Project State, and Backlog to record the PR018 migration state. +- Updated targeted tests to reflect the current encoded Admin Notes source path and current toolbox registry release-channel counts. + +## Files/Folders Moved + +- `src/advanced/**` -> `www/src/advanced/**` +- `src/api/**` browser API clients -> `www/src/api/**` +- `src/dev-runtime/admin/**` browser viewer files -> `www/src/dev-runtime/admin/**` +- `src/engine/**` browser/runtime engine modules -> `www/src/engine/**` +- Browser-owned `src/shared/**` helper/toolbox modules -> `www/src/shared/**` +- `src/tools/**` browser tool helpers -> `www/src/tools/**` + +## Remaining Source Buckets + +- `src/shared/contracts/**`, `src/shared/schemas/**`, and `src/shared/projectDataStore/**` remain for PR019 API/server migration. +- `src/dev-runtime/admin/.gitkeep` and any remaining dev/reference ownership remain for later scoped PRs. +- `src/` is not retired in this PR. diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md new file mode 100644 index 000000000..2d6888956 --- /dev/null +++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md @@ -0,0 +1,16 @@ +# PR_26180_OWNER_018-move-src-browser-to-www Requirement Checklist + +| Requirement | Status | Evidence | +| --- | --- | --- | +| Use PR017 src destination audit as source of truth | PASS | Moved only audit-classified browser/www-owned source buckets. | +| Move browser/www-owned src files into www/src | PASS | 501 staged renames into `www/src/`. | +| Preserve public browser import URLs such as /src/... | PASS | Static route check resolves public `/src/...` URLs into `www/src/...`. | +| Update references only where required | PASS | Active API/dev/test filesystem imports updated for moved browser modules. | +| Do not move API/server-owned files | PASS | API/server-owned root `src/shared/contracts`, schemas, and project data store remain for PR019. | +| Do not move dev-owned files | PASS | Dev-owned source remains for later PR020 scope. | +| Do not change product behavior | PASS | Migration preserves public URLs and route behavior. | +| Stop on ambiguous ownership | PASS | No ambiguous files were moved; remaining source buckets are documented for later PRs. | +| Stop if browser file depends directly on api runtime internals | PASS | No direct browser-to-`api/` import introduced. | +| Stop if preserving public URLs requires API/server behavior changes | PASS | Existing static web-root compatibility resolved routes without API behavior changes. | +| Required reports under dev/reports | PASS | Report bundle generated. | +| Required ZIP under dev/workspace/zips | PASS | `dev/workspace/zips/PR_26180_OWNER_018-move-src-browser-to-www_delta.zip` generated for this outcome. | diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md new file mode 100644 index 000000000..0488dbf3d --- /dev/null +++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md @@ -0,0 +1,14 @@ +# PR_26180_OWNER_018-move-src-browser-to-www Validation Report + +| Validation | Result | Notes | +| --- | --- | --- | +| Startup Validation | PASS | Loaded Project Instructions v2026.06.28.018 from repository; cached memory discarded. | +| git diff --check | PASS | No whitespace errors. | +| npm run validate:canonical-structure | PASS | Blocking violations: 0; approved legacy exceptions: 499. | +| node ./dev/scripts/run-platform-validation-suite.mjs | PASS | 8/8 deterministic platform scenarios passed. | +| Static route resolution smoke | PASS | /index.html, /toolbox/index.html, /admin/site-setup.html, /admin/admin-notes.html, and representative /src/... URLs resolve. | +| Targeted active import scan | PASS | No active relative imports point to moved root src browser files; intentional guard self-test fixture allowlisted. | +| Targeted Node tests | PASS | 11/11 targeted files passed; 37 assertions passed. | +| npm run test:playwright:static | PASS | Static preflight report status PASS. | +| Targeted Playwright route smoke | PASS | 18/18 tests passed for Admin Notes, Static Web Root Compatibility, and Toolbox route pages. | +| Runtime/API/UI/database implementation changes | PASS | No API/server files moved; changes are migration references/tests/docs for browser-owned source relocation. | diff --git a/dev/reports/asset_ownership_strategy_validation.txt b/dev/reports/asset_ownership_strategy_validation.txt index 8d72dcf59..5612cc026 100644 --- a/dev/reports/asset_ownership_strategy_validation.txt +++ b/dev/reports/asset_ownership_strategy_validation.txt @@ -9,7 +9,7 @@ Checks: - Validated template ownership manifest: dev/archive/v1-v2/games/_template/assets/tools.manifest.json - Archived sample has no inline asset path entries: dev/archive/v1-v2/samples/phase-15/1505/AssetBrowserScene.js - Validated sample ownership path: dev/archive/v1-v2/samples/phase-15/1505/AssetBrowserScene.js -- Validated tool demo ownership path: src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +- Validated tool demo ownership path: www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json Issues: - none diff --git a/dev/reports/codex_changed_files.txt b/dev/reports/codex_changed_files.txt index 13caaeae5..d516995cc 100644 --- a/dev/reports/codex_changed_files.txt +++ b/dev/reports/codex_changed_files.txt @@ -1,13 +1,737 @@ -M dev/reports/codex_changed_files.txt -M dev/reports/codex_review.diff +M api/API_RUNTIME_BOUNDARY.md +M api/admin/admin-notes-menu.mjs +M api/guest-seeds/tool-metadata-inventory.js +M api/server/local-api-router.mjs M dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md M dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md M dev/build/ProjectInstructions/PROJECT_STATE.md M dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md -M dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md -A dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_branch-validation.md -A dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_manual-validation-notes.md -A dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_report.md -A dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_requirement-checklist.md -A dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_src-file-destination-audit.md -A dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_validation-report.md +M dev/build/ProjectInstructions/repository/canonical_repository_structure.md +M dev/build/ProjectInstructions/repository/www_migration_map.md +A dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md +A dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md +A dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md +A dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md +A dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md +M dev/reports/asset_ownership_strategy_validation.txt +M dev/scripts/run-platform-validation-suite.mjs +M dev/scripts/validate-asset-ownership-strategy.mjs +M dev/scripts/validate-browser-env-agnostic.mjs +M dev/scripts/validate-canonical-repository-structure.mjs +M dev/scripts/validate-dev-runtime-boundary.mjs +M dev/tests/ai/AIBehaviors.test.mjs +M dev/tests/assets/AssetLoaderSystem.test.mjs +M dev/tests/audio/AudioService.test.mjs +M dev/tests/combat/Combat.test.mjs +M dev/tests/config/ConfigStore.test.mjs +M dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs +M dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs +M dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs +M dev/tests/core/EngineCoreBoundaryBaseline.test.mjs +M dev/tests/core/EngineFullscreen.test.mjs +M dev/tests/core/EngineSceneLifecycle.test.mjs +M dev/tests/core/EngineTiming.test.mjs +M dev/tests/core/Section1FinalResidueStructure.test.mjs +M dev/tests/dev-runtime/AdminNotesBoundary.test.mjs +M dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs +M dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs +M dev/tests/dev-runtime/PublicApiUrlClient.test.mjs +M dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs +M dev/tests/engine/EngineV2AbilitySystem.test.mjs +M dev/tests/engine/EngineV2AnimationRuntime.test.mjs +M dev/tests/engine/EngineV2AudioRuntime.test.mjs +M dev/tests/engine/EngineV2CameraRuntime.test.mjs +M dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs +M dev/tests/engine/EngineV2CheckpointSystem.test.mjs +M dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs +M dev/tests/engine/EngineV2ContainerSystem.test.mjs +M dev/tests/engine/EngineV2CraftingFoundation.test.mjs +M dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs +M dev/tests/engine/EngineV2DialogueSystem.test.mjs +M dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs +M dev/tests/engine/EngineV2EffectRuntime.test.mjs +M dev/tests/engine/EngineV2EquipmentSystem.test.mjs +M dev/tests/engine/EngineV2InteractionSystem.test.mjs +M dev/tests/engine/EngineV2InventorySystem.test.mjs +M dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs +M dev/tests/engine/EngineV2ModifierStack.test.mjs +M dev/tests/engine/EngineV2ObjectiveSystem.test.mjs +M dev/tests/engine/EngineV2PathfindingBaseline.test.mjs +M dev/tests/engine/EngineV2PatrolBehavior.test.mjs +M dev/tests/engine/EngineV2PersistenceRuntime.test.mjs +M dev/tests/engine/EngineV2ProfileStateSystem.test.mjs +M dev/tests/engine/EngineV2ProjectileSystem.test.mjs +M dev/tests/engine/EngineV2QuestSystem.test.mjs +M dev/tests/engine/EngineV2SaveLoadValidation.test.mjs +M dev/tests/engine/EngineV2SaveStateModel.test.mjs +M dev/tests/engine/EngineV2StateMachineRuntime.test.mjs +M dev/tests/engine/EngineV2StatusEffectSystem.test.mjs +M dev/tests/engine/EngineV2UiRuntime.test.mjs +M dev/tests/engine/EngineV2VendorSystem.test.mjs +M dev/tests/engine/EngineV2WeaponSystem.test.mjs +M dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs +M dev/tests/engine/HitboxCollisionContract.test.mjs +M dev/tests/engine/ManifestRuntimeParser.test.mjs +M dev/tests/engine/ObjectDefinitionReader.test.mjs +M dev/tests/engine/ObjectModelContract.test.mjs +M dev/tests/engine/RuleDefinitionReader.test.mjs +M dev/tests/engine/RuntimeActionSystem.test.mjs +M dev/tests/engine/RuntimeBehaviorComposition.test.mjs +M dev/tests/engine/RuntimeCollisionProcessing.test.mjs +M dev/tests/engine/RuntimeConditionSystem.test.mjs +M dev/tests/engine/RuntimeCooldownProcessing.test.mjs +M dev/tests/engine/RuntimeDamageProcessing.test.mjs +M dev/tests/engine/RuntimeDeterminismValidation.test.mjs +M dev/tests/engine/RuntimeEnvironmentEffects.test.mjs +M dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs +M dev/tests/engine/RuntimeErrorReporting.test.mjs +M dev/tests/engine/RuntimeEventSystem.test.mjs +M dev/tests/engine/RuntimeHealthModel.test.mjs +M dev/tests/engine/RuntimeInputPipeline.test.mjs +M dev/tests/engine/RuntimeLivesAndRespawn.test.mjs +M dev/tests/engine/RuntimeLoaderValidation.test.mjs +M dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs +M dev/tests/engine/RuntimeMovementProcessing.test.mjs +M dev/tests/engine/RuntimeMultiSceneLoading.test.mjs +M dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs +M dev/tests/engine/RuntimeObjectInstantiation.test.mjs +M dev/tests/engine/RuntimeObjectRecordFactory.test.mjs +M dev/tests/engine/RuntimeObjectRecordValidation.test.mjs +M dev/tests/engine/RuntimeObjectTypeValidation.test.mjs +M dev/tests/engine/RuntimeOutcomeProcessing.test.mjs +M dev/tests/engine/RuntimePlayableLoop.test.mjs +M dev/tests/engine/RuntimePlayableSceneUat.test.mjs +M dev/tests/engine/RuntimeRenderPipeline.test.mjs +M dev/tests/engine/RuntimeRenderingBootstrap.test.mjs +M dev/tests/engine/RuntimeRuleAttachment.test.mjs +M dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs +M dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs +M dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs +M dev/tests/engine/RuntimeTerrainEffects.test.mjs +M dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs +M dev/tests/engine/RuntimeTickLoop.test.mjs +M dev/tests/engine/RuntimeTriggerProcessing.test.mjs +M dev/tests/engine/core/FixedTicker.test.mjs +M dev/tests/engine/core/FrameClock.test.mjs +M dev/tests/engine/core/RuntimeMetrics.test.mjs +M dev/tests/entity/Entity.test.mjs +M dev/tests/events/EventBus.test.mjs +M dev/tests/events/EventBusNaming.test.mjs +M dev/tests/final/DebugObservabilityMaturity.test.mjs +M dev/tests/final/DeveloperToolingSystems.test.mjs +M dev/tests/final/EditorAutomationSecurityPipeline.test.mjs +M dev/tests/final/FinalSystems.test.mjs +M dev/tests/final/FullscreenService.test.mjs +M dev/tests/final/MultiplayerNetworkingStack.test.mjs +M dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs +M dev/tests/final/PlatformUxSystems.test.mjs +M dev/tests/final/PrecisionCollisionSystems.test.mjs +M dev/tests/final/ReleaseReadinessSystems.test.mjs +M dev/tests/fx/ParticleSystem.test.mjs +M dev/tests/games/AsteroidsHardening.test.mjs +M dev/tests/games/AsteroidsPlatformDemo.test.mjs +M dev/tests/games/AsteroidsValidation.test.mjs +M dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs +M dev/tests/input/GamepadHapticsService.test.mjs +M dev/tests/input/GamepadInputAdapter.test.mjs +M dev/tests/input/GamepadState.test.mjs +M dev/tests/input/InputMap.test.mjs +M dev/tests/input/InputService.test.mjs +M dev/tests/input/KeyboardState.test.mjs +M dev/tests/input/MouseState.test.mjs +M dev/tests/input/NormalizedInputRegistry.test.mjs +M dev/tests/persistence/StorageService.test.mjs +M dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs +M dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs +M dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs +M dev/tests/production/ProductionReadiness.test.mjs +M dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs +M dev/tests/render/Renderer.test.mjs +M dev/tests/replay/ReplaySystem.test.mjs +M dev/tests/replay/ReplayTimeline.test.mjs +M dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs +M dev/tests/runtime/RuntimeMonitoringHooks.test.mjs +M dev/tests/scenes/AttractModeController.test.mjs +M dev/tests/scenes/SceneManager.test.mjs +M dev/tests/scenes/TransitionScene.test.mjs +M dev/tests/shared/ColorFoundation.test.mjs +M dev/tests/shared/GeometryFoundation.test.mjs +M dev/tests/shared/GetStateVariantClassification.test.mjs +M dev/tests/shared/HashFoundation.test.mjs +M dev/tests/shared/NoiseFoundation.test.mjs +M dev/tests/shared/Random.test.mjs +M dev/tests/shared/RandomHelpers.test.mjs +M dev/tests/shared/RandomSeed.test.mjs +M dev/tests/shared/SharedFoundationCombinedPass.test.mjs +M dev/tests/shared/SharedNumberStringIdCloseout.test.mjs +M dev/tests/shared/TextFoundation.test.mjs +M dev/tests/shared/TimeFoundation.test.mjs +M dev/tests/tools/AiAuthoringAssistant.test.mjs +M dev/tests/tools/AssetErrorHandlingStandard.test.mjs +M dev/tests/tools/AssetManifestLoader.test.mjs +M dev/tests/tools/AssetMarketplace.test.mjs +M dev/tests/tools/AssetPipelineTooling.test.mjs +M dev/tests/tools/AssetRemediationSystem.test.mjs +M dev/tests/tools/AssetUsageIntegration.test.mjs +M dev/tests/tools/AssetValidationEngine.test.mjs +M dev/tests/tools/CameraDebugPanel.test.mjs +M dev/tests/tools/CiValidationPipeline.test.mjs +M dev/tests/tools/CloudRuntime.test.mjs +M dev/tests/tools/CollaborationSystem.test.mjs +M dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs +M dev/tests/tools/DebugVisualizationLayer.test.mjs +M dev/tests/tools/DevConsoleDebugOverlay.test.mjs +M dev/tests/tools/EditorExperienceLayer.test.mjs +M dev/tests/tools/GameAssetManifestCoordinator.test.mjs +M dev/tests/tools/GameAssetManifestDiscovery.test.mjs +M dev/tests/tools/GameTemplates.test.mjs +M dev/tests/tools/GameplaySystemLayer.test.mjs +M dev/tests/tools/HotReloadSystem.test.mjs +M dev/tests/tools/MultiTargetExport.test.mjs +M dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs +M dev/tests/tools/PerformanceBenchmarks.test.mjs +M dev/tests/tools/PerformanceProfiler.test.mjs +M dev/tests/tools/PlatformValidationSuite.test.mjs +M dev/tests/tools/PluginArchitectureSystem.test.mjs +M dev/tests/tools/ProjectPackagingSystem.test.mjs +M dev/tests/tools/ProjectToolDataContracts.test.mjs +M dev/tests/tools/ProjectVersioningSystem.test.mjs +M dev/tests/tools/PublishingPipeline.test.mjs +M dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs +M dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs +M dev/tests/tools/RuntimeAssetBinding.test.mjs +M dev/tests/tools/RuntimeAssetLoader.test.mjs +M dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs +M dev/tests/tools/RuntimeAssetValidation.test.mjs +M dev/tests/tools/RuntimeStreamingSystem.test.mjs +M dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs +M dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs +M dev/tests/tools/TransformInspectorDebugPanel.test.mjs +M dev/tests/tools/VectorAssetSystem.test.mjs +M dev/tests/tools/VectorGeometryRuntime.test.mjs +M dev/tests/tools/VectorNativeTemplate.test.mjs +M dev/tests/vector/VectorMath.test.mjs +M dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs +M dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs +M dev/tests/world/WorldGameStateSystem.test.mjs +M dev/tests/world/WorldSystems.test.mjs +M dev/tools/toolbox-dev/advanced/debugMacroExecutor.js +M dev/tools/toolbox-dev/advanced/debugMacroRegistry.js +M dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js +M dev/tools/toolbox-dev/canvasDebugHudRenderer.js +M dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json +M dev/tools/toolbox-dev/commandPacks/groupCommandPack.js +M dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js +M dev/tools/toolbox-dev/commandPacks/macroCommandPack.js +M dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js +M dev/tools/toolbox-dev/commandPacks/packUtils.js +M dev/tools/toolbox-dev/commandPacks/presetCommandPack.js +M dev/tools/toolbox-dev/devConsoleCommandRegistry.js +M dev/tools/toolbox-dev/devConsoleIntegration.js +M dev/tools/toolbox-dev/inspectors/inspectorStore.js +M dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js +M dev/tools/toolbox-dev/plugins/debugPluginSystem.js +M dev/tools/toolbox-dev/presets/debugPresetApplier.js +M dev/tools/toolbox-dev/presets/debugPresetRegistry.js +M dev/tools/toolbox-dev/presets/registerPresetCommands.js +R100 src/advanced/promotion/createPromotionGate.js www/src/advanced/promotion/createPromotionGate.js +R100 src/advanced/state/constants.js www/src/advanced/state/constants.js +R100 src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js +R100 src/advanced/state/createWorldGameStateSystem.js www/src/advanced/state/createWorldGameStateSystem.js +R100 src/advanced/state/events.js www/src/advanced/state/events.js +R100 src/advanced/state/initialState.js www/src/advanced/state/initialState.js +R100 src/advanced/state/integration/registerWorldGameStateSystem.js www/src/advanced/state/integration/registerWorldGameStateSystem.js +R100 src/advanced/state/selectors.js www/src/advanced/state/selectors.js +R100 src/advanced/state/transitions.js www/src/advanced/state/transitions.js +R100 src/advanced/state/utils.js www/src/advanced/state/utils.js +R100 src/api/admin-infrastructure-api-client.js www/src/api/admin-infrastructure-api-client.js +R100 src/api/admin-invitations-api-client.js www/src/api/admin-invitations-api-client.js +R100 src/api/admin-operations-api-client.js www/src/api/admin-operations-api-client.js +R100 src/api/admin-owner-navigation.js www/src/api/admin-owner-navigation.js +R100 src/api/admin-setup-api-client.js www/src/api/admin-setup-api-client.js +R100 src/api/admin-system-health-api-client.js www/src/api/admin-system-health-api-client.js +R100 src/api/ai-credits-api-client.js www/src/api/ai-credits-api-client.js +R100 src/api/db-viewer-api-client.js www/src/api/db-viewer-api-client.js +R100 src/api/db-viewer-ui.js www/src/api/db-viewer-ui.js +R100 src/api/game-journey-completion-api-client.js www/src/api/game-journey-completion-api-client.js +R100 src/api/legal-api-client.js www/src/api/legal-api-client.js +R100 src/api/marketplace-api-client.js www/src/api/marketplace-api-client.js +R100 src/api/memberships-api-client.js www/src/api/memberships-api-client.js +R100 src/api/owner-ai-credits-api-client.js www/src/api/owner-ai-credits-api-client.js +R100 src/api/owner-memberships-api-client.js www/src/api/owner-memberships-api-client.js +R100 src/api/platform-settings-api-client.js www/src/api/platform-settings-api-client.js +R100 src/api/public-config-client.js www/src/api/public-config-client.js +R100 src/api/server-api-client.js www/src/api/server-api-client.js +R100 src/api/session-api-client.js www/src/api/session-api-client.js +R100 src/api/toolbox-votes-api-client.js www/src/api/toolbox-votes-api-client.js +R100 src/dev-runtime/admin/admin-notes-viewer.js www/src/dev-runtime/admin/admin-notes-viewer.js +R100 src/dev-runtime/admin/header-nav.local.html www/src/dev-runtime/admin/header-nav.local.html +R100 src/dev-runtime/admin/notes.html www/src/dev-runtime/admin/notes.html +R100 src/engine/ai/AIStateController.js www/src/engine/ai/AIStateController.js +R100 src/engine/ai/GridPathfinding.js www/src/engine/ai/GridPathfinding.js +R100 src/engine/ai/GroupBehaviors.js www/src/engine/ai/GroupBehaviors.js +R100 src/engine/ai/PatrolSystem.js www/src/engine/ai/PatrolSystem.js +R100 src/engine/ai/SteeringBehaviors.js www/src/engine/ai/SteeringBehaviors.js +R100 src/engine/animation/AnimationController.js www/src/engine/animation/AnimationController.js +R100 src/engine/assets/AssetLoaderSystem.js www/src/engine/assets/AssetLoaderSystem.js +R100 src/engine/assets/AssetOptimizer.js www/src/engine/assets/AssetOptimizer.js +R100 src/engine/assets/AssetRegistry.js www/src/engine/assets/AssetRegistry.js +R100 src/engine/assets/ImageAssetLoader.js www/src/engine/assets/ImageAssetLoader.js +R100 src/engine/assets/SpriteAtlas.js www/src/engine/assets/SpriteAtlas.js +R100 src/engine/audio/AudioService.js www/src/engine/audio/AudioService.js +R100 src/engine/audio/FrequencyPlayer.js www/src/engine/audio/FrequencyPlayer.js +R100 src/engine/audio/GaplessLoopPlayer.js www/src/engine/audio/GaplessLoopPlayer.js +R100 src/engine/audio/HtmlAudioMediaBackend.js www/src/engine/audio/HtmlAudioMediaBackend.js +R100 src/engine/audio/InstrumentGridParser.js www/src/engine/audio/InstrumentGridParser.js +R100 src/engine/audio/MediaTrackService.js www/src/engine/audio/MediaTrackService.js +R100 src/engine/audio/MidiPlayer.js www/src/engine/audio/MidiPlayer.js +R100 src/engine/audio/MidiSourceMetadataParser.js www/src/engine/audio/MidiSourceMetadataParser.js +R100 src/engine/audio/PlaylistManager.js www/src/engine/audio/PlaylistManager.js +R100 src/engine/audio/PreviewInstrumentPacks.js www/src/engine/audio/PreviewInstrumentPacks.js +R100 src/engine/audio/PreviewSynthEngine.js www/src/engine/audio/PreviewSynthEngine.js +R100 src/engine/audio/SongSheetParser.js www/src/engine/audio/SongSheetParser.js +R100 src/engine/audio/SoundFontPreviewEngine.js www/src/engine/audio/SoundFontPreviewEngine.js +R100 src/engine/audio/Synthesizer.js www/src/engine/audio/Synthesizer.js +R100 src/engine/audio/TextToSpeechDefaults.js www/src/engine/audio/TextToSpeechDefaults.js +R100 src/engine/audio/TextToSpeechEngine.js www/src/engine/audio/TextToSpeechEngine.js +R100 src/engine/audio/WebAudioToneBackend.js www/src/engine/audio/WebAudioToneBackend.js +R100 src/engine/automation/AutomatedTestRunner.js www/src/engine/automation/AutomatedTestRunner.js +R100 src/engine/automation/BenchmarkRunner.js www/src/engine/automation/BenchmarkRunner.js +R100 src/engine/automation/CIValidationFlow.js www/src/engine/automation/CIValidationFlow.js +R100 src/engine/automation/RegressionPlaybackHarness.js www/src/engine/automation/RegressionPlaybackHarness.js +R100 src/engine/camera/Camera2D.js www/src/engine/camera/Camera2D.js +R100 src/engine/camera/Camera3D.js www/src/engine/camera/Camera3D.js +R100 src/engine/camera/CameraSystem.js www/src/engine/camera/CameraSystem.js +R100 src/engine/camera/ZoneCameraSystem.js www/src/engine/camera/ZoneCameraSystem.js +R100 src/engine/collision/aabb.js www/src/engine/collision/aabb.js +R100 src/engine/collision/combat/Combat.js www/src/engine/collision/combat/Combat.js +R100 src/engine/collision/hitboxCollision.js www/src/engine/collision/hitboxCollision.js +R100 src/engine/collision/hybrid.js www/src/engine/collision/hybrid.js +R100 src/engine/collision/objectVector.js www/src/engine/collision/objectVector.js +R100 src/engine/collision/polygon.js www/src/engine/collision/polygon.js +R100 src/engine/collision/raster.js www/src/engine/collision/raster.js +R100 src/engine/components/Components.js www/src/engine/components/Components.js +R100 src/engine/config/ConfigStore.js www/src/engine/config/ConfigStore.js +R100 src/engine/core/Engine.js www/src/engine/core/Engine.js +R100 src/engine/core/FixedTicker.js www/src/engine/core/FixedTicker.js +R100 src/engine/core/FrameClock.js www/src/engine/core/FrameClock.js +R100 src/engine/core/RuntimeMetrics.js www/src/engine/core/RuntimeMetrics.js +R100 src/engine/debug/CombatDebugOverlay.js www/src/engine/debug/CombatDebugOverlay.js +R100 src/engine/debug/DebugOverlayLayout.js www/src/engine/debug/DebugOverlayLayout.js +R100 src/engine/debug/DebugPanel.js www/src/engine/debug/DebugPanel.js +R100 src/engine/debug/DebugTools.js www/src/engine/debug/DebugTools.js +R100 src/engine/debug/Minimap.js www/src/engine/debug/Minimap.js +R100 src/engine/debug/PerformanceMetricsPanel.js www/src/engine/debug/PerformanceMetricsPanel.js +R100 src/engine/debug/StatsTracker.js www/src/engine/debug/StatsTracker.js +R100 src/engine/debug/Validation.js www/src/engine/debug/Validation.js +R100 src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js +R100 src/engine/debug/inspectors/commands/registerInspectorCommands.js www/src/engine/debug/inspectors/commands/registerInspectorCommands.js +R100 src/engine/debug/inspectors/host/debugInspectorHost.js www/src/engine/debug/inspectors/host/debugInspectorHost.js +R100 src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js +R100 src/engine/debug/inspectors/registry/debugInspectorRegistry.js www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js +R100 src/engine/debug/inspectors/shared/inspectorUtils.js www/src/engine/debug/inspectors/shared/inspectorUtils.js +R100 src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js +R100 src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js +R100 src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js +R100 src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js +R100 src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js +R100 src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js +R100 src/engine/debug/network/commands/networkDebugCommandPackBridge.js www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js +R100 src/engine/debug/network/dashboard/registerDashboardCommands.js www/src/engine/debug/network/dashboard/registerDashboardCommands.js +R100 src/engine/debug/network/dashboard/serverDashboardHost.js www/src/engine/debug/network/dashboard/serverDashboardHost.js +R100 src/engine/debug/network/dashboard/serverDashboardMetrics.js www/src/engine/debug/network/dashboard/serverDashboardMetrics.js +R100 src/engine/debug/network/dashboard/serverDashboardProviders.js www/src/engine/debug/network/dashboard/serverDashboardProviders.js +R100 src/engine/debug/network/dashboard/serverDashboardRefreshModes.js www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js +R100 src/engine/debug/network/dashboard/serverDashboardRegistry.js www/src/engine/debug/network/dashboard/serverDashboardRegistry.js +R100 src/engine/debug/network/dashboard/serverDashboardRenderer.js www/src/engine/debug/network/dashboard/serverDashboardRenderer.js +R100 src/engine/debug/network/dashboard/serverDashboardViewModel.js www/src/engine/debug/network/dashboard/serverDashboardViewModel.js +R100 src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js +R100 src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js +R100 src/engine/debug/network/diagnostics/networkPromotionRecommendation.js www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js +R100 src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js +R100 src/engine/debug/network/panels/networkDebugPanelRegistry.js www/src/engine/debug/network/panels/networkDebugPanelRegistry.js +R100 src/engine/debug/network/panels/networkObservabilityPanels.js www/src/engine/debug/network/panels/networkObservabilityPanels.js +R100 src/engine/debug/network/providers/networkDebugProviderRegistry.js www/src/engine/debug/network/providers/networkDebugProviderRegistry.js +R100 src/engine/debug/network/shared/hostReadUtils.js www/src/engine/debug/network/shared/hostReadUtils.js +R100 src/engine/debug/network/shared/networkDebugUtils.js www/src/engine/debug/network/shared/networkDebugUtils.js +R100 src/engine/debug/panels/PromotionGatePanel.js www/src/engine/debug/panels/PromotionGatePanel.js +R100 src/engine/debug/shared/debugCommandResultUtils.js www/src/engine/debug/shared/debugCommandResultUtils.js +R100 src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js +R100 src/engine/debug/standard/threeD/panels/panel3dCamera.js www/src/engine/debug/standard/threeD/panels/panel3dCamera.js +R100 src/engine/debug/standard/threeD/panels/panel3dCollision.js www/src/engine/debug/standard/threeD/panels/panel3dCollision.js +R100 src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js +R100 src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js +R100 src/engine/debug/standard/threeD/panels/panel3dRenderStages.js www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js +R100 src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js +R100 src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js +R100 src/engine/debug/standard/threeD/panels/panel3dTransform.js www/src/engine/debug/standard/threeD/panels/panel3dTransform.js +R100 src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js +R100 src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js +R100 src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js +R100 src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js +R100 src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js +R100 src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js +R100 src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js +R100 src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js +R100 src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js +R100 src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js +R100 src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js +R100 src/engine/debug/standard/threeD/providers/transformInspectorProvider.js www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js +R100 src/engine/debug/standard/threeD/providers/transformSummaryProvider.js www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js +R100 src/engine/debug/standard/threeD/shared/threeDDebugUtils.js www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js +R100 src/engine/ecs/World.js www/src/engine/ecs/World.js +R100 src/engine/entity/Bounds.js www/src/engine/entity/Bounds.js +R100 src/engine/entity/Entity.js www/src/engine/entity/Entity.js +R100 src/engine/entity/Transform.js www/src/engine/entity/Transform.js +R100 src/engine/entity/Velocity.js www/src/engine/entity/Velocity.js +R100 src/engine/events/EventBus.js www/src/engine/events/EventBus.js +R100 src/engine/fx/ParticleSystem.js www/src/engine/fx/ParticleSystem.js +R100 src/engine/game/GameModeState.js www/src/engine/game/GameModeState.js +R100 src/engine/game/gameplayHooks.js www/src/engine/game/gameplayHooks.js +R100 src/engine/input/ActionInputDebugOverlay.js www/src/engine/input/ActionInputDebugOverlay.js +R100 src/engine/input/ActionInputMap.js www/src/engine/input/ActionInputMap.js +R100 src/engine/input/ActionInputService.js www/src/engine/input/ActionInputService.js +R100 src/engine/input/GamepadHapticsService.js www/src/engine/input/GamepadHapticsService.js +R100 src/engine/input/GamepadInputAdapter.js www/src/engine/input/GamepadInputAdapter.js +R100 src/engine/input/GamepadInputClassifier.js www/src/engine/input/GamepadInputClassifier.js +R100 src/engine/input/GamepadState.js www/src/engine/input/GamepadState.js +R100 src/engine/input/InputCapabilityDescriptors.js www/src/engine/input/InputCapabilityDescriptors.js +R100 src/engine/input/InputCaptureService.js www/src/engine/input/InputCaptureService.js +R100 src/engine/input/InputCaptureSession.js www/src/engine/input/InputCaptureSession.js +R100 src/engine/input/InputComboState.js www/src/engine/input/InputComboState.js +R100 src/engine/input/InputContextService.js www/src/engine/input/InputContextService.js +R100 src/engine/input/InputMap.js www/src/engine/input/InputMap.js +R100 src/engine/input/InputMappingManifest.js www/src/engine/input/InputMappingManifest.js +R100 src/engine/input/InputService.js www/src/engine/input/InputService.js +R100 src/engine/input/KeyboardState.js www/src/engine/input/KeyboardState.js +R100 src/engine/input/MouseState.js www/src/engine/input/MouseState.js +R100 src/engine/input/NormalizedInputRegistry.js www/src/engine/input/NormalizedInputRegistry.js +R100 src/engine/input/PointerDragState.js www/src/engine/input/PointerDragState.js +R100 src/engine/interaction/InteractionSystem.js www/src/engine/interaction/InteractionSystem.js +R100 src/engine/level/LevelLoader.js www/src/engine/level/LevelLoader.js +R100 src/engine/localization/LocalizationService.js www/src/engine/localization/LocalizationService.js +R100 src/engine/logging/ErrorBoundary.js www/src/engine/logging/ErrorBoundary.js +R100 src/engine/logging/Logger.js www/src/engine/logging/Logger.js +R100 src/engine/memory/DisposableStore.js www/src/engine/memory/DisposableStore.js +R100 src/engine/memory/ObjectPool.js www/src/engine/memory/ObjectPool.js +R100 src/engine/network/bootstrap/HostServerBootstrap.js www/src/engine/network/bootstrap/HostServerBootstrap.js +R100 src/engine/network/bootstrap/NetworkingLayer.js www/src/engine/network/bootstrap/NetworkingLayer.js +R100 src/engine/network/client/ClientReconciliationStrategy.js www/src/engine/network/client/ClientReconciliationStrategy.js +R100 src/engine/network/client/ClientReplicationApplicationLayer.js www/src/engine/network/client/ClientReplicationApplicationLayer.js +R100 src/engine/network/client/PredictionReconciler.js www/src/engine/network/client/PredictionReconciler.js +R100 src/engine/network/client/RemoteInterpolationBuffer.js www/src/engine/network/client/RemoteInterpolationBuffer.js +R100 src/engine/network/debug/NetworkDebugOverlay.js www/src/engine/network/debug/NetworkDebugOverlay.js +R100 src/engine/network/replication/ReplicationMessageContract.js www/src/engine/network/replication/ReplicationMessageContract.js +R100 src/engine/network/replication/StateReplication.js www/src/engine/network/replication/StateReplication.js +R100 src/engine/network/server/AuthoritativeInputIngestionContract.js www/src/engine/network/server/AuthoritativeInputIngestionContract.js +R100 src/engine/network/server/AuthoritativeServerRuntime.js www/src/engine/network/server/AuthoritativeServerRuntime.js +R100 src/engine/network/server/InterestManager.js www/src/engine/network/server/InterestManager.js +R100 src/engine/network/server/RollbackDiagnostics.js www/src/engine/network/server/RollbackDiagnostics.js +R100 src/engine/network/session/ChatPresenceLayer.js www/src/engine/network/session/ChatPresenceLayer.js +R100 src/engine/network/session/HandshakeSimulator.js www/src/engine/network/session/HandshakeSimulator.js +R100 src/engine/network/session/LobbySessionManager.js www/src/engine/network/session/LobbySessionManager.js +R100 src/engine/network/session/SessionLifecycleContract.js www/src/engine/network/session/SessionLifecycleContract.js +R100 src/engine/network/transport/LoopbackTransport.js www/src/engine/network/transport/LoopbackTransport.js +R100 src/engine/network/transport/NetworkConditionSimulator.js www/src/engine/network/transport/NetworkConditionSimulator.js +R100 src/engine/network/transport/Serializer.js www/src/engine/network/transport/Serializer.js +R100 src/engine/network/transport/TransportContract.js www/src/engine/network/transport/TransportContract.js +R100 src/engine/object-model/index.js www/src/engine/object-model/index.js +R100 src/engine/object-model/objectDefinitionSchema.js www/src/engine/object-model/objectDefinitionSchema.js +R100 src/engine/object-model/objectDefinitionValidator.js www/src/engine/object-model/objectDefinitionValidator.js +R100 src/engine/object-model/objectModelRegistry.js www/src/engine/object-model/objectModelRegistry.js +R100 src/engine/paletteList.js www/src/engine/paletteList.js +R100 src/engine/persistence/BrowserStorageService.js www/src/engine/persistence/BrowserStorageService.js +R100 src/engine/persistence/CompressionService.js www/src/engine/persistence/CompressionService.js +R100 src/engine/persistence/CookieStorageService.js www/src/engine/persistence/CookieStorageService.js +R100 src/engine/persistence/FilePersistenceService.js www/src/engine/persistence/FilePersistenceService.js +R100 src/engine/persistence/LocalStorageService.js www/src/engine/persistence/LocalStorageService.js +R100 src/engine/persistence/SaveSlotManager.js www/src/engine/persistence/SaveSlotManager.js +R100 src/engine/persistence/SessionStorageService.js www/src/engine/persistence/SessionStorageService.js +R100 src/engine/persistence/StorageService.js www/src/engine/persistence/StorageService.js +R100 src/engine/persistence/WorldSerializer.js www/src/engine/persistence/WorldSerializer.js +R100 src/engine/physics/arcadeBody.js www/src/engine/physics/arcadeBody.js +R100 src/engine/physics/collision3d.js www/src/engine/physics/collision3d.js +R100 src/engine/physics/drag.js www/src/engine/physics/drag.js +R100 src/engine/physics/integration.js www/src/engine/physics/integration.js +R100 src/engine/physics/integration3d.js www/src/engine/physics/integration3d.js +R100 src/engine/physics/scene3d.js www/src/engine/physics/scene3d.js +R100 src/engine/prefabs/PrefabFactory.js www/src/engine/prefabs/PrefabFactory.js +R100 src/engine/release/AccessibilityOptions.js www/src/engine/release/AccessibilityOptions.js +R100 src/engine/release/CrashRecoveryManager.js www/src/engine/release/CrashRecoveryManager.js +R100 src/engine/release/DeploymentProfiles.js www/src/engine/release/DeploymentProfiles.js +R100 src/engine/release/DistributionPackager.js www/src/engine/release/DistributionPackager.js +R100 src/engine/release/ReleaseValidationChecklist.js www/src/engine/release/ReleaseValidationChecklist.js +R100 src/engine/release/SettingsSystem.js www/src/engine/release/SettingsSystem.js +R100 src/engine/rendering/CanvasRenderer.js www/src/engine/rendering/CanvasRenderer.js +R100 src/engine/rendering/LayeredRenderSystem.js www/src/engine/rendering/LayeredRenderSystem.js +R100 src/engine/rendering/ObjectVectorRuntimeAssetService.js www/src/engine/rendering/ObjectVectorRuntimeAssetService.js +R100 src/engine/rendering/ObjectVectorTransformService.js www/src/engine/rendering/ObjectVectorTransformService.js +R100 src/engine/rendering/OrientationTransform.js www/src/engine/rendering/OrientationTransform.js +R100 src/engine/rendering/Renderer.js www/src/engine/rendering/Renderer.js +R100 src/engine/rendering/ResolutionScaler.js www/src/engine/rendering/ResolutionScaler.js +R100 src/engine/rendering/SpriteRenderSystem.js www/src/engine/rendering/SpriteRenderSystem.js +R100 src/engine/rendering/VectorDrawing.js www/src/engine/rendering/VectorDrawing.js +R100 src/engine/rendering/WorldScreenTransform.js www/src/engine/rendering/WorldScreenTransform.js +R100 src/engine/rendering/WorldScreenTransformService.js www/src/engine/rendering/WorldScreenTransformService.js +R100 src/engine/replay/ReplayModel.js www/src/engine/replay/ReplayModel.js +R100 src/engine/replay/ReplaySystem.js www/src/engine/replay/ReplaySystem.js +R100 src/engine/replay/ReplayTimeline.js www/src/engine/replay/ReplayTimeline.js +R100 src/engine/runtime/BrowserDownloadService.js www/src/engine/runtime/BrowserDownloadService.js +R100 src/engine/runtime/FullscreenService.js www/src/engine/runtime/FullscreenService.js +R100 src/engine/runtime/MobileRuntimeTweaks.js www/src/engine/runtime/MobileRuntimeTweaks.js +R100 src/engine/runtime/RuntimeMonitoringHooks.js www/src/engine/runtime/RuntimeMonitoringHooks.js +R100 src/engine/runtime/backgroundColor.js www/src/engine/runtime/backgroundColor.js +R100 src/engine/runtime/backgroundImage.js www/src/engine/runtime/backgroundImage.js +R100 src/engine/runtime/engineV2AbilitySystem.js www/src/engine/runtime/engineV2AbilitySystem.js +R100 src/engine/runtime/engineV2AnimationRuntime.js www/src/engine/runtime/engineV2AnimationRuntime.js +R100 src/engine/runtime/engineV2AudioRuntime.js www/src/engine/runtime/engineV2AudioRuntime.js +R100 src/engine/runtime/engineV2CameraRuntime.js www/src/engine/runtime/engineV2CameraRuntime.js +R100 src/engine/runtime/engineV2ChaseFleeBehavior.js www/src/engine/runtime/engineV2ChaseFleeBehavior.js +R100 src/engine/runtime/engineV2CheckpointSystem.js www/src/engine/runtime/engineV2CheckpointSystem.js +R100 src/engine/runtime/engineV2ConfigDrivenProofScene.js www/src/engine/runtime/engineV2ConfigDrivenProofScene.js +R100 src/engine/runtime/engineV2ContainerSystem.js www/src/engine/runtime/engineV2ContainerSystem.js +R100 src/engine/runtime/engineV2CraftingFoundation.js www/src/engine/runtime/engineV2CraftingFoundation.js +R100 src/engine/runtime/engineV2CustomExtensionsHookRuntime.js www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js +R100 src/engine/runtime/engineV2DialogueSystem.js www/src/engine/runtime/engineV2DialogueSystem.js +R100 src/engine/runtime/engineV2EconomyAndCurrency.js www/src/engine/runtime/engineV2EconomyAndCurrency.js +R100 src/engine/runtime/engineV2EffectRuntime.js www/src/engine/runtime/engineV2EffectRuntime.js +R100 src/engine/runtime/engineV2EquipmentSystem.js www/src/engine/runtime/engineV2EquipmentSystem.js +R100 src/engine/runtime/engineV2InteractionSystem.js www/src/engine/runtime/engineV2InteractionSystem.js +R100 src/engine/runtime/engineV2InventorySystem.js www/src/engine/runtime/engineV2InventorySystem.js +R100 src/engine/runtime/engineV2ItemAndLootSystem.js www/src/engine/runtime/engineV2ItemAndLootSystem.js +R100 src/engine/runtime/engineV2ModifierStack.js www/src/engine/runtime/engineV2ModifierStack.js +R100 src/engine/runtime/engineV2ObjectiveSystem.js www/src/engine/runtime/engineV2ObjectiveSystem.js +R100 src/engine/runtime/engineV2PathfindingBaseline.js www/src/engine/runtime/engineV2PathfindingBaseline.js +R100 src/engine/runtime/engineV2PatrolBehavior.js www/src/engine/runtime/engineV2PatrolBehavior.js +R100 src/engine/runtime/engineV2PersistenceRuntime.js www/src/engine/runtime/engineV2PersistenceRuntime.js +R100 src/engine/runtime/engineV2ProfileStateSystem.js www/src/engine/runtime/engineV2ProfileStateSystem.js +R100 src/engine/runtime/engineV2ProjectileSystem.js www/src/engine/runtime/engineV2ProjectileSystem.js +R100 src/engine/runtime/engineV2QuestSystem.js www/src/engine/runtime/engineV2QuestSystem.js +R100 src/engine/runtime/engineV2SaveLoadValidation.js www/src/engine/runtime/engineV2SaveLoadValidation.js +R100 src/engine/runtime/engineV2SaveStateModel.js www/src/engine/runtime/engineV2SaveStateModel.js +R100 src/engine/runtime/engineV2StateMachineRuntime.js www/src/engine/runtime/engineV2StateMachineRuntime.js +R100 src/engine/runtime/engineV2StatusEffectSystem.js www/src/engine/runtime/engineV2StatusEffectSystem.js +R100 src/engine/runtime/engineV2UiRuntime.js www/src/engine/runtime/engineV2UiRuntime.js +R100 src/engine/runtime/engineV2VendorSystem.js www/src/engine/runtime/engineV2VendorSystem.js +R100 src/engine/runtime/engineV2WeaponSystem.js www/src/engine/runtime/engineV2WeaponSystem.js +R100 src/engine/runtime/firstManifestDrivenPlayableScene.js www/src/engine/runtime/firstManifestDrivenPlayableScene.js +R100 src/engine/runtime/fullscreenBezel.js www/src/engine/runtime/fullscreenBezel.js +R100 src/engine/runtime/gameImageConvention.js www/src/engine/runtime/gameImageConvention.js +R100 src/engine/runtime/manifestRuntimeParser.js www/src/engine/runtime/manifestRuntimeParser.js +R100 src/engine/runtime/objectDefinitionReader.js www/src/engine/runtime/objectDefinitionReader.js +R100 src/engine/runtime/ruleDefinitionReader.js www/src/engine/runtime/ruleDefinitionReader.js +R100 src/engine/runtime/runtimeActionSystem.js www/src/engine/runtime/runtimeActionSystem.js +R100 src/engine/runtime/runtimeBehaviorComposition.js www/src/engine/runtime/runtimeBehaviorComposition.js +R100 src/engine/runtime/runtimeCollisionProcessing.js www/src/engine/runtime/runtimeCollisionProcessing.js +R100 src/engine/runtime/runtimeConditionSystem.js www/src/engine/runtime/runtimeConditionSystem.js +R100 src/engine/runtime/runtimeCooldownProcessing.js www/src/engine/runtime/runtimeCooldownProcessing.js +R100 src/engine/runtime/runtimeDamageProcessing.js www/src/engine/runtime/runtimeDamageProcessing.js +R100 src/engine/runtime/runtimeEnvironmentEffects.js www/src/engine/runtime/runtimeEnvironmentEffects.js +R100 src/engine/runtime/runtimeEnvironmentForceInstantiation.js www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js +R100 src/engine/runtime/runtimeErrorReporting.js www/src/engine/runtime/runtimeErrorReporting.js +R100 src/engine/runtime/runtimeEventSystem.js www/src/engine/runtime/runtimeEventSystem.js +R100 src/engine/runtime/runtimeHealthModel.js www/src/engine/runtime/runtimeHealthModel.js +R100 src/engine/runtime/runtimeInputPipeline.js www/src/engine/runtime/runtimeInputPipeline.js +R100 src/engine/runtime/runtimeLivesAndRespawn.js www/src/engine/runtime/runtimeLivesAndRespawn.js +R100 src/engine/runtime/runtimeMovementProcessing.js www/src/engine/runtime/runtimeMovementProcessing.js +R100 src/engine/runtime/runtimeMultiSceneLoading.js www/src/engine/runtime/runtimeMultiSceneLoading.js +R100 src/engine/runtime/runtimeObjectInstantiation.js www/src/engine/runtime/runtimeObjectInstantiation.js +R100 src/engine/runtime/runtimeObjectRecordFactory.js www/src/engine/runtime/runtimeObjectRecordFactory.js +R100 src/engine/runtime/runtimeOutcomeProcessing.js www/src/engine/runtime/runtimeOutcomeProcessing.js +R100 src/engine/runtime/runtimePlayableLoop.js www/src/engine/runtime/runtimePlayableLoop.js +R100 src/engine/runtime/runtimeRenderPipeline.js www/src/engine/runtime/runtimeRenderPipeline.js +R100 src/engine/runtime/runtimeRenderingBootstrap.js www/src/engine/runtime/runtimeRenderingBootstrap.js +R100 src/engine/runtime/runtimeRuleAttachment.js www/src/engine/runtime/runtimeRuleAttachment.js +R100 src/engine/runtime/runtimeSceneDefinitionSupport.js www/src/engine/runtime/runtimeSceneDefinitionSupport.js +R100 src/engine/runtime/runtimeScoringAndStateProcessing.js www/src/engine/runtime/runtimeScoringAndStateProcessing.js +R100 src/engine/runtime/runtimeSpawnDespawnProcessing.js www/src/engine/runtime/runtimeSpawnDespawnProcessing.js +R100 src/engine/runtime/runtimeTerrainEffects.js www/src/engine/runtime/runtimeTerrainEffects.js +R100 src/engine/runtime/runtimeTerrainMaterialInstantiation.js www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js +R100 src/engine/runtime/runtimeTickLoop.js www/src/engine/runtime/runtimeTickLoop.js +R100 src/engine/runtime/runtimeTriggerProcessing.js www/src/engine/runtime/runtimeTriggerProcessing.js +R100 src/engine/scene/AttractModeController.js www/src/engine/scene/AttractModeController.js +R100 src/engine/scene/Scene.js www/src/engine/scene/Scene.js +R100 src/engine/scene/SceneManager.js www/src/engine/scene/SceneManager.js +R100 src/engine/scene/SceneTransition.js www/src/engine/scene/SceneTransition.js +R100 src/engine/scene/SceneTransitionController.js www/src/engine/scene/SceneTransitionController.js +R100 src/engine/scene/TransitionScene.js www/src/engine/scene/TransitionScene.js +R100 src/engine/security/DataIntegrityService.js www/src/engine/security/DataIntegrityService.js +R100 src/engine/security/PacketValidator.js www/src/engine/security/PacketValidator.js +R100 src/engine/security/PermissionGate.js www/src/engine/security/PermissionGate.js +R100 src/engine/security/SessionTrustValidator.js www/src/engine/security/SessionTrustValidator.js +R100 src/engine/state/StateMachine.js www/src/engine/state/StateMachine.js +R100 src/engine/systems/BounceSystem.js www/src/engine/systems/BounceSystem.js +R100 src/engine/systems/BoundsSystem.js www/src/engine/systems/BoundsSystem.js +R100 src/engine/systems/CollectSystem.js www/src/engine/systems/CollectSystem.js +R100 src/engine/systems/CollisionResolutionSystem.js www/src/engine/systems/CollisionResolutionSystem.js +R100 src/engine/systems/CollisionSystem.js www/src/engine/systems/CollisionSystem.js +R100 src/engine/systems/InputControlSystem.js www/src/engine/systems/InputControlSystem.js +R100 src/engine/systems/LifecycleSystem.js www/src/engine/systems/LifecycleSystem.js +R100 src/engine/systems/MovementSystem.js www/src/engine/systems/MovementSystem.js +R100 src/engine/systems/PhysicsSystem.js www/src/engine/systems/PhysicsSystem.js +R100 src/engine/systems/ProjectileSystem.js www/src/engine/systems/ProjectileSystem.js +R100 src/engine/systems/RenderSystem.js www/src/engine/systems/RenderSystem.js +R100 src/engine/systems/SystemUtils.js www/src/engine/systems/SystemUtils.js +R100 src/engine/tilemap/TileMetadata.js www/src/engine/tilemap/TileMetadata.js +R100 src/engine/tilemap/Tilemap.js www/src/engine/tilemap/Tilemap.js +R100 src/engine/tilemap/TilemapCollision.js www/src/engine/tilemap/TilemapCollision.js +R100 src/engine/tilemap/TilemapRenderSystem.js www/src/engine/tilemap/TilemapRenderSystem.js +R100 src/engine/ui/CanvasDialogPrimitives.js www/src/engine/ui/CanvasDialogPrimitives.js +R100 src/engine/ui/CanvasPopupInteractions.js www/src/engine/ui/CanvasPopupInteractions.js +R100 src/engine/ui/CanvasPopupState.js www/src/engine/ui/CanvasPopupState.js +R100 src/engine/ui/UIFramework.js www/src/engine/ui/UIFramework.js +R100 src/engine/ui/assets/icons/pin-monocolor-filled.svg www/src/engine/ui/assets/icons/pin-monocolor-filled.svg +R100 src/engine/ui/assets/icons/pin-monocolor.svg www/src/engine/ui/assets/icons/pin-monocolor.svg +R100 src/engine/ui/baseLayout.css www/src/engine/ui/baseLayout.css +R100 src/engine/ui/hubCommon.css www/src/engine/ui/hubCommon.css +R100 src/engine/ui/spriteEditor.css www/src/engine/ui/spriteEditor.css +R100 src/engine/world/AchievementSystem.js www/src/engine/world/AchievementSystem.js +R100 src/engine/world/CutsceneSystem.js www/src/engine/world/CutsceneSystem.js +R100 src/engine/world/DayNightCycle.js www/src/engine/world/DayNightCycle.js +R100 src/engine/world/EventScriptSystem.js www/src/engine/world/EventScriptSystem.js +R100 src/engine/world/QuestSystem.js www/src/engine/world/QuestSystem.js +R100 src/engine/world/SpawnSystem.js www/src/engine/world/SpawnSystem.js +R100 src/engine/world/WeatherSystem.js www/src/engine/world/WeatherSystem.js +R100 src/engine/world/WorldStreamingSystem.js www/src/engine/world/WorldStreamingSystem.js +R100 src/shared/array/arrays.js www/src/shared/array/arrays.js +R100 src/shared/array/recordArrays.js www/src/shared/array/recordArrays.js +R100 src/shared/color/color.js www/src/shared/color/color.js +R100 src/shared/game/highScores.js www/src/shared/game/highScores.js +R100 src/shared/game/initialsEntry.js www/src/shared/game/initialsEntry.js +R100 src/shared/geometry/geometry.js www/src/shared/geometry/geometry.js +R100 src/shared/hash/hash.js www/src/shared/hash/hash.js +R100 src/shared/id/ids.js www/src/shared/id/ids.js +R100 src/shared/json/clone.js www/src/shared/json/clone.js +R100 src/shared/json/jsonIO.js www/src/shared/json/jsonIO.js +R100 src/shared/math/Random.js www/src/shared/math/Random.js +R100 src/shared/math/RandomSeed.js www/src/shared/math/RandomSeed.js +R100 src/shared/math/directions.js www/src/shared/math/directions.js +R100 src/shared/math/geometry.js www/src/shared/math/geometry.js +R100 src/shared/math/numberNormalization.js www/src/shared/math/numberNormalization.js +R100 src/shared/math/randomHelpers.js www/src/shared/math/randomHelpers.js +R100 src/shared/math/scalars.js www/src/shared/math/scalars.js +R100 src/shared/math/vectorMath.js www/src/shared/math/vectorMath.js +R100 src/shared/math/vectorNormalize.js www/src/shared/math/vectorNormalize.js +R100 src/shared/noise/noise.js www/src/shared/noise/noise.js +R100 src/shared/number/numbers.js www/src/shared/number/numbers.js +R100 src/shared/object/objects.js www/src/shared/object/objects.js +R100 src/shared/runtime/registry.js www/src/shared/runtime/registry.js +R100 src/shared/runtime/snapshotClone.js www/src/shared/runtime/snapshotClone.js +R100 src/shared/state/createPromotionStateSnapshot.js www/src/shared/state/createPromotionStateSnapshot.js +R100 src/shared/state/getState.js www/src/shared/state/getState.js +R100 src/shared/state/getStateVariantClassification.js www/src/shared/state/getStateVariantClassification.js +R100 src/shared/state/guards.js www/src/shared/state/guards.js +R100 src/shared/state/normalization.js www/src/shared/state/normalization.js +R100 src/shared/state/selectors.js www/src/shared/state/selectors.js +R100 src/shared/string/commandText.js www/src/shared/string/commandText.js +R100 src/shared/string/fuzzyMatchScore.js www/src/shared/string/fuzzyMatchScore.js +R100 src/shared/string/stringifyValue.js www/src/shared/string/stringifyValue.js +R100 src/shared/string/strings.js www/src/shared/string/strings.js +R100 src/shared/string/textWrap.js www/src/shared/string/textWrap.js +R100 src/shared/text/text.js www/src/shared/text/text.js +R100 src/shared/time/time.js www/src/shared/time/time.js +R100 src/shared/toolbox/aiAuthoringAssistant.js www/src/shared/toolbox/aiAuthoringAssistant.js +R100 src/shared/toolbox/assetMarketplace.js www/src/shared/toolbox/assetMarketplace.js +R100 src/shared/toolbox/assetPipelineConverters.js www/src/shared/toolbox/assetPipelineConverters.js +R100 src/shared/toolbox/assetPipelineFoundation.js www/src/shared/toolbox/assetPipelineFoundation.js +R100 src/shared/toolbox/assetPipelineValidationOutput.js www/src/shared/toolbox/assetPipelineValidationOutput.js +R100 src/shared/toolbox/assetUsageIntegration.js www/src/shared/toolbox/assetUsageIntegration.js +R100 src/shared/toolbox/ciValidationPipeline.js www/src/shared/toolbox/ciValidationPipeline.js +R100 src/shared/toolbox/cloudRuntime.js www/src/shared/toolbox/cloudRuntime.js +R100 src/shared/toolbox/collaborationSystem.js www/src/shared/toolbox/collaborationSystem.js +R100 src/shared/toolbox/contractVersioning.js www/src/shared/toolbox/contractVersioning.js +R100 src/shared/toolbox/debugInspectorData.js www/src/shared/toolbox/debugInspectorData.js +R100 src/shared/toolbox/debugInspectorTools.css www/src/shared/toolbox/debugInspectorTools.css +R100 src/shared/toolbox/debugToolInteractionFlow.js www/src/shared/toolbox/debugToolInteractionFlow.js +R100 src/shared/toolbox/debugVisualizationLayer.js www/src/shared/toolbox/debugVisualizationLayer.js +R100 src/shared/toolbox/devConsoleDebugOverlay.js www/src/shared/toolbox/devConsoleDebugOverlay.js +R100 src/shared/toolbox/documentModeGuards.js www/src/shared/toolbox/documentModeGuards.js +R100 src/shared/toolbox/editor/EntityPlacementEditor.js www/src/shared/toolbox/editor/EntityPlacementEditor.js +R100 src/shared/toolbox/editor/LevelEditor.js www/src/shared/toolbox/editor/LevelEditor.js +R100 src/shared/toolbox/editor/TileMapEditor.js www/src/shared/toolbox/editor/TileMapEditor.js +R100 src/shared/toolbox/editor/TimelineEditor.js www/src/shared/toolbox/editor/TimelineEditor.js +R100 src/shared/toolbox/editorExperienceLayer.js www/src/shared/toolbox/editorExperienceLayer.js +R100 src/shared/toolbox/eventCommandUtils.js www/src/shared/toolbox/eventCommandUtils.js +R100 src/shared/toolbox/gameTemplates.js www/src/shared/toolbox/gameTemplates.js +R100 src/shared/toolbox/gameplaySystemLayer.js www/src/shared/toolbox/gameplaySystemLayer.js +R100 src/shared/toolbox/hotReloadSystem.js www/src/shared/toolbox/hotReloadSystem.js +R100 src/shared/toolbox/livePreviewSyncChannel.js www/src/shared/toolbox/livePreviewSyncChannel.js +R100 src/shared/toolbox/multiTargetExport.js www/src/shared/toolbox/multiTargetExport.js +R100 src/shared/toolbox/paletteDocumentContract.js www/src/shared/toolbox/paletteDocumentContract.js +R100 src/shared/toolbox/performanceBenchmarks.js www/src/shared/toolbox/performanceBenchmarks.js +R100 src/shared/toolbox/performanceProfiler.js www/src/shared/toolbox/performanceProfiler.js +R100 src/shared/toolbox/pipeline/AssetImportPipeline.js www/src/shared/toolbox/pipeline/AssetImportPipeline.js +R100 src/shared/toolbox/pipeline/AudioPreprocessPipeline.js www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js +R100 src/shared/toolbox/pipeline/BuildAssetManifestSystem.js www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js +R100 src/shared/toolbox/pipeline/ContentMigrationSystem.js www/src/shared/toolbox/pipeline/ContentMigrationSystem.js +R100 src/shared/toolbox/pipeline/ContentValidationPipeline.js www/src/shared/toolbox/pipeline/ContentValidationPipeline.js +R100 src/shared/toolbox/pipeline/TexturePreprocessPipeline.js www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js +R100 src/shared/toolbox/pipeline/assetErrorHandling.js www/src/shared/toolbox/pipeline/assetErrorHandling.js +R100 src/shared/toolbox/pipeline/assetManifestLoader.js www/src/shared/toolbox/pipeline/assetManifestLoader.js +R100 src/shared/toolbox/pipeline/assetPipelineTooling.js www/src/shared/toolbox/pipeline/assetPipelineTooling.js +R100 src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js +R100 src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js +R100 src/shared/toolbox/pipeline/runtimeAssetBinding.js www/src/shared/toolbox/pipeline/runtimeAssetBinding.js +R100 src/shared/toolbox/pipeline/runtimeAssetLookup.js www/src/shared/toolbox/pipeline/runtimeAssetLookup.js +R100 src/shared/toolbox/pipeline/runtimeAssetValidation.js www/src/shared/toolbox/pipeline/runtimeAssetValidation.js +R100 src/shared/toolbox/platformShell.css www/src/shared/toolbox/platformShell.css +R100 src/shared/toolbox/platformShell.js www/src/shared/toolbox/platformShell.js +R100 src/shared/toolbox/platformValidationSuite.js www/src/shared/toolbox/platformValidationSuite.js +R100 src/shared/toolbox/pluginArchitecture.js www/src/shared/toolbox/pluginArchitecture.js +R100 src/shared/toolbox/powerShell/find_dupes_called.ps1 www/src/shared/toolbox/powerShell/find_dupes_called.ps1 +R100 src/shared/toolbox/projectAssetRegistry.js www/src/shared/toolbox/projectAssetRegistry.js +R100 src/shared/toolbox/projectAssetRemediation.js www/src/shared/toolbox/projectAssetRemediation.js +R100 src/shared/toolbox/projectAssetValidation.js www/src/shared/toolbox/projectAssetValidation.js +R100 src/shared/toolbox/projectManifestContract.js www/src/shared/toolbox/projectManifestContract.js +R100 src/shared/toolbox/projectPackaging.js www/src/shared/toolbox/projectPackaging.js +R100 src/shared/toolbox/projectSystem.js www/src/shared/toolbox/projectSystem.js +R100 src/shared/toolbox/projectSystemAdapters.js www/src/shared/toolbox/projectSystemAdapters.js +R100 src/shared/toolbox/projectSystemValueUtils.js www/src/shared/toolbox/projectSystemValueUtils.js +R100 src/shared/toolbox/projectToolIntegration.js www/src/shared/toolbox/projectToolIntegration.js +R100 src/shared/toolbox/projectVersioning.js www/src/shared/toolbox/projectVersioning.js +R100 src/shared/toolbox/publishingPipeline.js www/src/shared/toolbox/publishingPipeline.js +R100 src/shared/toolbox/renderPipelineContract.js www/src/shared/toolbox/renderPipelineContract.js +R100 src/shared/toolbox/runtimeAssetLoader.js www/src/shared/toolbox/runtimeAssetLoader.js +R100 src/shared/toolbox/runtimeAssetSharedUtils.js www/src/shared/toolbox/runtimeAssetSharedUtils.js +R100 src/shared/toolbox/runtimeAssetValidationUtils.js www/src/shared/toolbox/runtimeAssetValidationUtils.js +R100 src/shared/toolbox/runtimeSceneLoaderHotReload.js www/src/shared/toolbox/runtimeSceneLoaderHotReload.js +R100 src/shared/toolbox/runtimeStreaming.js www/src/shared/toolbox/runtimeStreaming.js +R100 src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg +R100 src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json +R100 src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json +R100 src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json +R100 src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png +R070 src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +R100 src/shared/toolbox/schemaOnlyToolPresetValidation.js www/src/shared/toolbox/schemaOnlyToolPresetValidation.js +R100 src/shared/toolbox/tool-metadata-inventory.js www/src/shared/toolbox/tool-metadata-inventory.js +R100 src/shared/toolbox/toolBootContract.js www/src/shared/toolbox/toolBootContract.js +R100 src/shared/toolbox/toolHostManifest.js www/src/shared/toolbox/toolHostManifest.js +R100 src/shared/toolbox/toolHostRuntime.js www/src/shared/toolbox/toolHostRuntime.js +R100 src/shared/toolbox/toolHostSharedContext.js www/src/shared/toolbox/toolHostSharedContext.js +R100 src/shared/toolbox/toolLaunchSSoT.js www/src/shared/toolbox/toolLaunchSSoT.js +R100 src/shared/toolbox/toolLaunchSSoTData.js www/src/shared/toolbox/toolLaunchSSoTData.js +R100 src/shared/toolbox/toolLoadDiagnostics.js www/src/shared/toolbox/toolLoadDiagnostics.js +R100 src/shared/toolbox/toolSampleCatalog.js www/src/shared/toolbox/toolSampleCatalog.js +R100 src/shared/toolbox/tooling/AssetBrowser.js www/src/shared/toolbox/tooling/AssetBrowser.js +R100 src/shared/toolbox/tooling/DeveloperConsole.js www/src/shared/toolbox/tooling/DeveloperConsole.js +R100 src/shared/toolbox/tooling/LiveTuningService.js www/src/shared/toolbox/tooling/LiveTuningService.js +R100 src/shared/toolbox/tooling/PropertyEditor.js www/src/shared/toolbox/tooling/PropertyEditor.js +R100 src/shared/toolbox/tooling/RuntimeInspector.js www/src/shared/toolbox/tooling/RuntimeInspector.js +R100 src/shared/toolbox/tooling/SceneGraphViewer.js www/src/shared/toolbox/tooling/SceneGraphViewer.js +R100 src/shared/toolbox/uiSafeUtils.js www/src/shared/toolbox/uiSafeUtils.js +R100 src/shared/toolbox/unifiedToolUxContract.js www/src/shared/toolbox/unifiedToolUxContract.js +R100 src/shared/toolbox/vector/vectorAssetBridge.js www/src/shared/toolbox/vector/vectorAssetBridge.js +R100 src/shared/toolbox/vector/vectorAssetContract.js www/src/shared/toolbox/vector/vectorAssetContract.js +R100 src/shared/toolbox/vector/vectorGeometryMath.js www/src/shared/toolbox/vector/vectorGeometryMath.js +R100 src/shared/toolbox/vector/vectorRenderPrep.js www/src/shared/toolbox/vector/vectorRenderPrep.js +R100 src/shared/toolbox/vector/vectorSafeValueUtils.js www/src/shared/toolbox/vector/vectorSafeValueUtils.js +R100 src/shared/toolbox/vectorAssetSystem.js www/src/shared/toolbox/vectorAssetSystem.js +R100 src/shared/toolbox/vectorGeometryRuntime.js www/src/shared/toolbox/vectorGeometryRuntime.js +R100 src/shared/toolbox/vectorNativeTemplate.js www/src/shared/toolbox/vectorNativeTemplate.js +R100 src/shared/toolbox/vectorTemplateSampleGame.js www/src/shared/toolbox/vectorTemplateSampleGame.js +R100 src/shared/toolbox/workspaceShell.js www/src/shared/toolbox/workspaceShell.js +R100 src/shared/types/typeGuards.js www/src/shared/types/typeGuards.js +R100 src/shared/validation/assert.js www/src/shared/validation/assert.js +R100 src/shared/validation/invariant.js www/src/shared/validation/invariant.js +R100 src/tools/common/GameManifestLoader.js www/src/tools/common/GameManifestLoader.js +R100 src/tools/common/WorkspaceDirtyNotifier.js www/src/tools/common/WorkspaceDirtyNotifier.js diff --git a/dev/reports/codex_review.diff b/dev/reports/codex_review.diff index e7c4f9dbf..fecc49b4f 100644 --- a/dev/reports/codex_review.diff +++ b/dev/reports/codex_review.diff @@ -1,46 +1,102 @@ -diff --git a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md -index b232a5124..76a4ca47c 100644 +diff --git a/api/API_RUNTIME_BOUNDARY.md b/api/API_RUNTIME_BOUNDARY.md +index ba4c12c6b..8dd2ff870 100644 +--- a/api/API_RUNTIME_BOUNDARY.md ++++ b/api/API_RUNTIME_BOUNDARY.md +@@ -11,6 +11,6 @@ It is intentionally not `dev/tests/dev-runtime`: + Deployment boundary: + + - DEV validation may execute `api/` through local server commands. +-- Browser pages, Theme V2 scripts, toolbox pages, and `src/engine` runtime code must use declared API/service contracts instead of importing `api/` directly. ++- Browser pages, Theme V2 scripts, toolbox pages, and `www/src/engine` runtime code must use declared API/service contracts instead of importing `api/` directly. + - If a dev-only adapter is needed by a browser page, expose it through the Local API contract while keeping the implementation under `api/`. + - Developer-only local bootstrap/orchestration remains outside `api/` until the scoped `dev/local-runtime/` migration PR. +diff --git a/api/admin/admin-notes-menu.mjs b/api/admin/admin-notes-menu.mjs +index 3e6d13e5d..1320d7216 100644 +--- a/api/admin/admin-notes-menu.mjs ++++ b/api/admin/admin-notes-menu.mjs +@@ -6,7 +6,7 @@ export const ADMIN_NOTES_LOCAL_MENU_LABEL = "Notes"; + export const ADMIN_MY_STUFF_MENU_LABEL = "My Stuff"; + + const HEADER_PARTIAL_PATH = "www/assets/theme-v2/partials/header-nav.html"; +-const LOCAL_HEADER_PARTIAL_PATH = "src/dev-runtime/admin/header-nav.local.html"; ++const LOCAL_HEADER_PARTIAL_PATH = "www/src/dev-runtime/admin/header-nav.local.html"; + + function repoRelativePath(repoRoot, targetPath) { + return path.relative(repoRoot, targetPath).replaceAll(path.sep, "/"); +diff --git a/api/guest-seeds/tool-metadata-inventory.js b/api/guest-seeds/tool-metadata-inventory.js +index 2a7efcf29..36a2e01e5 100644 +--- a/api/guest-seeds/tool-metadata-inventory.js ++++ b/api/guest-seeds/tool-metadata-inventory.js +@@ -1 +1 @@ +-export * from "../../src/shared/toolbox/tool-metadata-inventory.js"; ++export * from "../../www/src/shared/toolbox/tool-metadata-inventory.js"; +diff --git a/api/server/local-api-router.mjs b/api/server/local-api-router.mjs +index cd315eee8..9151feb52 100644 +--- a/api/server/local-api-router.mjs ++++ b/api/server/local-api-router.mjs +@@ -133,7 +133,7 @@ import { + import { + getAdminNavigationItems, + getOwnerNavigationItems, +-} from "../../src/api/admin-owner-navigation.js"; ++} from "../../www/src/api/admin-owner-navigation.js"; + import { createPaletteSourceMockDbRows } from "../guest-seeds/palette-source-mock-db.js"; + import { + SUPABASE_AUTH_PROVIDER_ID, +@@ -6929,8 +6929,8 @@ SELECT pg_database_size(current_database()) AS database_size_bytes, + adminMainItems: getAdminNavigationItems(), + ownerMenuItems: getOwnerNavigationItems(), + ownership: { +- adminMainItems: "src/api/admin-owner-navigation.js", +- ownerMenuItems: "src/api/admin-owner-navigation.js", ++ adminMainItems: "www/src/api/admin-owner-navigation.js", ++ ownerMenuItems: "www/src/api/admin-owner-navigation.js", + routeMap: "static shell route resolution", + }, + source: "server-api", +diff --git a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md +index 76a4ca47c..a2595051c 100644 --- a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md +++ b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS.md @@ -117,7 +117,7 @@ Rules: ## Current Version/Date --- Project Instructions Version: 2026.06.28.016 -+- Project Instructions Version: 2026.06.28.017 +-- Project Instructions Version: 2026.06.28.017 ++- Project Instructions Version: 2026.06.28.018 - Date: 2026-06-28 - Owner: OWNER diff --git a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md -index 5fefe8969..e0fb5fb57 100644 +index e0fb5fb57..345bd239e 100644 --- a/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md +++ b/dev/build/ProjectInstructions/PROJECT_INSTRUCTIONS_VERSION.md @@ -1,6 +1,6 @@ # Project Instructions Version --Current Project Instructions Version: 2026.06.28.016 -+Current Project Instructions Version: 2026.06.28.017 +-Current Project Instructions Version: 2026.06.28.017 ++Current Project Instructions Version: 2026.06.28.018 Last Updated: 2026-06-28 -@@ -24,6 +24,7 @@ Last Updated: 2026-06-28 - - Moved the tracked browser-served favicon under `www/`, added remaining root/src audit governance, and documented root `.env` placement policy. +@@ -25,6 +25,7 @@ Last Updated: 2026-06-28 - Added root leftover audit and `src/` transition plan for the final repository layout cleanup stage. - Removed safe empty local root directory shells and documented blocked local-only `assets/` cleanup. -+- Removed the local demo `.gfsp` artifact and recorded a file-by-file `src/` destination audit for future scoped migrations. + - Removed the local demo `.gfsp` artifact and recorded a file-by-file `src/` destination audit for future scoped migrations. ++- Moved PR017-audited browser/www-owned legacy `src/` files into `www/src/` while preserving public `/src/...` browser route compatibility under the `www` web root. - Codex must read this version file and the latest repository copy of `PROJECT_INSTRUCTIONS.md` before performing work. - Codex must discard previously remembered Project Instructions and treat the repository copy as authoritative. - Codex must validate canonical report and ZIP paths, branching model, and legacy path avoidance before work proceeds. diff --git a/dev/build/ProjectInstructions/PROJECT_STATE.md b/dev/build/ProjectInstructions/PROJECT_STATE.md -index 12753b41a..d768977a8 100644 +index d768977a8..7e01574cb 100644 --- a/dev/build/ProjectInstructions/PROJECT_STATE.md +++ b/dev/build/ProjectInstructions/PROJECT_STATE.md @@ -1,7 +1,7 @@ # Project State ```yaml --project_state_version: "2026.06.28.016" -+project_state_version: "2026.06.28.017" +-project_state_version: "2026.06.28.017" ++project_state_version: "2026.06.28.018" last_updated: "2026-06-28" current_main_commit: "40de767476d70cadfd1292c916844c2f31b6f185" repository_status: @@ -48,12 +104,12 @@ index 12753b41a..d768977a8 100644 runtime_database: "Postgres" creator_metadata: "API to Postgres" creator_assets: "API to R2" --project_instructions_version: "2026.06.28.016" --repository_structure_version: "2026.06.28.016" --canonical_layout_version: "2026.06.28.016" -+project_instructions_version: "2026.06.28.017" -+repository_structure_version: "2026.06.28.017" -+canonical_layout_version: "2026.06.28.017" +-project_instructions_version: "2026.06.28.017" +-repository_structure_version: "2026.06.28.017" +-canonical_layout_version: "2026.06.28.017" ++project_instructions_version: "2026.06.28.018" ++repository_structure_version: "2026.06.28.018" ++canonical_layout_version: "2026.06.28.018" active_teams: - "Owner" - "Alfa" @@ -61,815 +117,9330 @@ index 12753b41a..d768977a8 100644 - "Charlie" - "Delta" - "Golf" --latest_owner_pr: "PR_26180_OWNER_016-remove-empty-root-shells" --latest_structure_pr: "PR_26180_OWNER_016-remove-empty-root-shells" -+latest_owner_pr: "PR_26180_OWNER_017-src-dissection-and-demo-cleanup" -+latest_structure_pr: "PR_26180_OWNER_017-src-dissection-and-demo-cleanup" +-latest_owner_pr: "PR_26180_OWNER_017-src-dissection-and-demo-cleanup" +-latest_structure_pr: "PR_26180_OWNER_017-src-dissection-and-demo-cleanup" ++latest_owner_pr: "PR_26180_OWNER_018-move-src-browser-to-www" ++latest_structure_pr: "PR_26180_OWNER_018-move-src-browser-to-www" valid_top_level_folders: - "api/" - "deploy/" +@@ -40,7 +40,8 @@ valid_dev_folders: + - "dev/tools/" + - "dev/workspace/" + known_technical_debt: +- - "Browser API client modules remain under src/api/ until the final src layer migration moves them into src/web/ or src/runtime/." +- - "src/dev-runtime/admin/ remains as a legacy Admin Notes browser-viewer compatibility path until a scoped browser admin migration retires it." ++ - "API/server-owned contracts, schemas, and project data store modules remain under src/shared/ until PR_26180_OWNER_019 moves them to api/." ++ - "Developer/source reference files remain under src/ until PR_26180_OWNER_020 moves them to dev/." ++ - "src/dev-runtime/admin/.gitkeep remains as a placeholder until PR_26180_OWNER_021 retires the empty root src folder." + - "repository_directory_standard.md and codex_project_instructions_startup.md are superseded pointers retained for compatibility." + ``` diff --git a/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md b/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md -index 788219bd3..980ac2308 100644 +index 980ac2308..7b384c38e 100644 --- a/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md +++ b/dev/build/ProjectInstructions/backlog/BACKLOG_MASTER.md -@@ -39,8 +39,8 @@ The backlog is the authoritative source for determining the next logical PRs. - - Team: Owner +@@ -40,8 +40,8 @@ The backlog is the authoritative source for determining the next logical PRs. - Product Area: Repository Architecture Simplification - Status: Active --- Percent Complete: 98% --- Active PR: PR_26180_OWNER_016-remove-empty-root-shells -+- Percent Complete: 99% -+- Active PR: PR_26180_OWNER_017-src-dissection-and-demo-cleanup - - Next Milestone: Final layout validation and completion report + - Percent Complete: 99% +-- Active PR: PR_26180_OWNER_017-src-dissection-and-demo-cleanup +-- Next Milestone: Final layout validation and completion report ++- Active PR: PR_26180_OWNER_018-move-src-browser-to-www ++- Next Milestone: Move API/server-owned source to api/ - Source / Reference: `dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md`; `dev/build/ProjectInstructions/repository/www_migration_map.md` -diff --git a/dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md b/dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md -index b604ddb1c..94566e33b 100644 ---- a/dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md -+++ b/dev/build/ProjectInstructions/repository/repository_layout_architecture_plan.md -@@ -42,6 +42,8 @@ No browser, API, server, test, script, or runtime files move in the scaffold or + ## Game Journey MVP +diff --git a/dev/build/ProjectInstructions/repository/canonical_repository_structure.md b/dev/build/ProjectInstructions/repository/canonical_repository_structure.md +index f1561c28e..6a3115dd9 100644 +--- a/dev/build/ProjectInstructions/repository/canonical_repository_structure.md ++++ b/dev/build/ProjectInstructions/repository/canonical_repository_structure.md +@@ -14,7 +14,7 @@ Valid top-level folders: + - www/ + + Root product and repo sections: +-- www/ owns browser-served production website sections, Creator toolbox pages, public game discovery, production Docs & Help, and browser assets. ++- www/ owns browser-served production website sections, Creator toolbox pages, public game discovery, production Docs & Help, browser assets, and browser-owned runtime/client modules under `www/src/`. + - api/ is the Node/API/server application surface for server entry points, API routing, API services, database access, storage access, auth, setup, publishing, and admin server logic. + - deploy/ contains deployment configuration. + - dev/ contains the development workspace. +@@ -26,14 +26,14 @@ Deployable application source: + - src/api-runtime/{feature-name}/ + - src/runtime/{feature-name}/ + +-Final src layer ownership: +-- src/web/ owns browser-facing deployable application modules used by public pages, account/admin surfaces, and Creator tools. +-- src/api-runtime/ owns deployable API/runtime service modules that back the shared Browser -> API -> Postgres/R2 contract. +-- src/runtime/ owns deployable game, tool, engine, and shared runtime capabilities. +-- Existing top-level src/advanced/, src/api/, src/engine/, src/shared/, and src/tools/ directories are legacy transition buckets until explicit migration PRs move them. ++Final source ownership after the repository layout simplification: ++- `www/src/` owns browser-facing deployable application modules used by public pages, account/admin surfaces, Creator tools, game runtime, shared browser utilities, and browser API clients. ++- `api/` owns deployable API/runtime service modules that back the shared Browser -> API -> Postgres/R2 contract. ++- `dev/` owns developer-only source, scripts, tests, reports, local runtime orchestration, and reference material. ++- Existing root `src/shared/contracts/`, `src/shared/schemas/`, `src/shared/projectDataStore/`, and source-reference files are legacy transition buckets until explicit migration PRs move them. + - Browser API clients remain outside `api/`; browser-served code must use API/service contracts instead of importing top-level `api/` files directly. +-- `src/dev-runtime/admin/` remains only as a legacy Admin Notes browser-viewer compatibility path until a scoped browser admin migration retires it. +-- Do not add new top-level src/ layer names outside src/web/, src/api-runtime/, or src/runtime/ without OWNER approval. ++- `www/src/dev-runtime/admin/` preserves the public `/src/dev-runtime/admin/...` Admin Notes browser-viewer compatibility route under the `www` web root. ++- Do not add new root `src/` layer names or new root `src/` work without OWNER approval. + - Do not use team names in runtime source filenames. - `PR_26180_OWNER_016-remove-empty-root-shells` removes safe empty local root directory shells left behind after the migration and documents the blocked local-only `assets/` shell that contains ignored user data. + Valid dev workspace folders: +@@ -60,6 +60,9 @@ Dev workspace ownership: + - dev/tools/ owns development-only tooling. + - dev/workspace/ owns generated output: tmp, zips, logs, generated files, and test-results. -+`PR_26180_OWNER_017-src-dissection-and-demo-cleanup` removes the local ignored demo `.gfsp` artifact, removes the now-empty `assets/` shell, and records a file-by-file `src/` destination audit without moving source files. ++Browser-served runtime/client source: ++- www/src/ + - ## Proposed Future Layout - - ```text -@@ -189,7 +191,13 @@ Rules: - - Do not delete ignored local-only data. - - Document any folder that cannot be removed. - --13. `PR_26180_OWNER_017-final-layout-validation` -+13. `PR_26180_OWNER_017-src-dissection-and-demo-cleanup` -+ - Delete the local ignored demo `.gfsp` artifact and remove `assets/` if empty. -+ - Audit every tracked `src/` file and assign a proposed destination. -+ - Do not bulk-move `src/`. -+ - Preserve runtime behavior. + Browser-served tools: + - www/toolbox/{tool-name}/index.html + +@@ -75,14 +78,18 @@ Shared JavaScript: + - www/assets/js/shared/ + + Legacy transition buckets: +-- src/advanced/ +-- src/api/ +-- src/engine/ +-- src/shared/ +-- src/tools/ +-- src/dev-runtime/admin/ +- +-These legacy transition buckets may remain until explicit migration PRs move them into `src/web/`, `src/api-runtime/`, or `src/runtime/`. ++- www/src/advanced/ ++- www/src/api/ ++- www/src/engine/ ++- www/src/shared/ ++- www/src/tools/ ++- www/src/dev-runtime/admin/ ++- src/shared/contracts/ ++- src/shared/schemas/ ++- src/shared/projectDataStore/ ++- src/dev-runtime/admin/.gitkeep ++ ++The `www/src/` legacy transition buckets preserve public `/src/...` browser import compatibility during source retirement. Remaining root `src/` buckets may remain only until explicit stacked migration PRs move them to `api/` or `dev/`. + + ## Rules + +@@ -102,7 +109,8 @@ These legacy transition buckets may remain until explicit migration PRs move the + - Do not create new folders unless they fit the documented canonical structure. + - If a requested or generated path does not clearly fit the canonical structure, Codex must HARD STOP and report the proposed path. + - New development follows the canonical structure. +-- New deployable `src/` work follows `src/web/`, `src/api-runtime/`, or `src/runtime/`. ++- New browser-owned source belongs under `www/` according to the browser source and asset rules above. ++- New API/server source belongs under `api/`. + - New non-deployable work belongs under `dev/`. + - Required reports belong under flat `dev/reports/`. + - Required ZIPs belong under `dev/workspace/zips/`; generated temporary artifacts belong under `dev/workspace/tmp/`. +diff --git a/dev/build/ProjectInstructions/repository/www_migration_map.md b/dev/build/ProjectInstructions/repository/www_migration_map.md +index a41ddc297..8f822299e 100644 +--- a/dev/build/ProjectInstructions/repository/www_migration_map.md ++++ b/dev/build/ProjectInstructions/repository/www_migration_map.md +@@ -1,9 +1,9 @@ + # www Migration Map + +-Status: Implemented migration map ++Status: Implemented migration map and browser source migration + Owner: Owner + Workstream: Repository Architecture Simplification +-PR: PR_26180_OWNER_006-www-migration-map; PR_26180_OWNER_008-move-www-application ++PR: PR_26180_OWNER_006-www-migration-map; PR_26180_OWNER_008-move-www-application; PR_26180_OWNER_018-move-src-browser-to-www + + ## Purpose + +@@ -15,9 +15,11 @@ This map began as a no-runtime-change governance artifact. `PR_26180_OWNER_008-m + + The browser-served application now lives under `www/`. + ++PR_26180_OWNER_018 moved the PR017-audited browser/www-owned legacy `src/` files into `www/src/`. + -+14. `PR_26180_OWNER_018-final-layout-validation` - - Validate final repository layout. - - Confirm `www/` owns the browser-served app, `api/` owns the server app, and `dev/` owns the developer workspace. - - Confirm runtime does not depend on `dev/`, browser code does not import `api/`, and legacy references are removed or documented. -diff --git a/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_branch-validation.md b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_branch-validation.md + Current local runtime, test helpers, and browser pages keep URLs such as `/index.html`, `/toolbox/index.html`, `/assets/theme-v2/css/theme.css`, `/account/sign-in.html`, `/admin/system-health.html`, and `/games/index.html` while resolving browser-served files from `www/`. + +-The move preserved public route URLs while changing the filesystem lookup root. Repository-root fallback remains available for transition-only compatibility, including browser imports that still reference root-level `src/`. ++The move preserved public route URLs while changing the filesystem lookup root. Browser imports that use `/src/...` or relative paths resolving to `/src/...` now resolve under `www/src/` when `www/` is the served web root. + + ## Current Browser-Served Surface + +@@ -54,7 +56,7 @@ Broad active-reference search across browser roots, `src/`, `dev/scripts/`, and + | `legal/` | 13 | Footer/navigation route references and page links. | + | `learn/` | 9 | Learn route links and navigation. | + | `play/` | 7 | No root folder exists; review references manually before introducing a route. | +-| `src/` | 451 | Browser imports, server imports, tests, validation aliases, and current runtime/source modules. | ++| `src/` | 451 | Browser imports, server imports, tests, validation aliases, and legacy runtime/source modules before the browser-owned subset moved to `www/src/`. | + + The high `src/` count means the browser migration cannot be treated as static files only. Several browser-facing pages import modules from root-level `src/`, including account/admin/toolbox flows. + +@@ -103,7 +105,7 @@ Examples of current references that depend on root-level path relationships: + - `toolbox/toolRegistry.js` imports from `../src/shared/toolbox/tool-metadata-inventory.js`. + - `assets/toolbox/*/js/index.js` imports from `../../../../src/` or `../../../../toolbox/` in several tool flows. + +-These references can be preserved temporarily by serving compatibility paths from the repository root, but the final architecture should move browser-facing runtime modules into `www/` or an approved deployable browser module surface. ++These references are preserved by serving the browser-owned source modules from `www/src/` while keeping public `/src/...` URL compatibility. + + ## Current Local Web Server Root Behavior + +diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md new file mode 100644 -index 000000000..c36f2f15b +index 000000000..b45424059 --- /dev/null -+++ b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_branch-validation.md -@@ -0,0 +1,12 @@ -+# PR_26180_OWNER_017 Branch Validation ++++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_branch-validation.md +@@ -0,0 +1,9 @@ ++# PR_26180_OWNER_018-move-src-browser-to-www Branch Validation + -+| Check | Result | Evidence | -+|---|---:|---| -+| Current branch | PASS | `PR_26180_OWNER_017-src-dissection-and-demo-cleanup` | -+| Expected stacked base | PASS | Created from `PR_26180_OWNER_016-remove-empty-root-shells` | -+| Base branch for PR | PASS | `PR_26180_OWNER_016-remove-empty-root-shells` | -+| Project Instructions loaded | PASS | Repository Project Instructions version `2026.06.28.017` | -+| Branching policy loaded | PASS | `PROJECT_BRANCHING_POLICY.md` version `2026.06.28.002` | -+| Scope | PASS | Local demo artifact cleanup, `src/` file audit, governance reports only | -+| Runtime/API/database implementation changes | PASS | None | -+ -diff --git a/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_manual-validation-notes.md b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_manual-validation-notes.md ++| Check | Status | Evidence | ++| --- | --- | --- | ++| Current branch | PASS | `PR_26180_OWNER_018-move-src-browser-to-www` | ++| Expected stacked base | PASS | Created from `PR_26180_OWNER_017-src-dissection-and-demo-cleanup` workstream branch. | ++| Worktree scope | PASS | Staged changes are source relocation, reference updates, targeted tests, and governance/report artifacts. | ++| Reports path | PASS | `dev/reports/` | ++| ZIP path | PASS | `dev/workspace/zips/PR_26180_OWNER_018-move-src-browser-to-www_delta.zip` generated for this outcome. | +diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md new file mode 100644 -index 000000000..986e3187b +index 000000000..428998e73 --- /dev/null -+++ b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_manual-validation-notes.md -@@ -0,0 +1,11 @@ -+# PR_26180_OWNER_017 Manual Validation Notes -+ -+- Deleted the ignored local demo artifact `assets/DemoGame-26168-001.gfsp`. -+- Removed `assets/` after it became empty. -+- Confirmed `games/`, `learn/`, `toolbox/`, `tmp/`, and `test-results/` remain absent. -+- Confirmed no tracked legacy root files remain in the target set. -+- Confirmed all 596 tracked `src/` files are audited. -+- No `src/` files moved in this PR. -+- Runtime behavior is preserved. -+- ZIP output remains under `dev/workspace/zips/`. ++++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_manual-validation-notes.md +@@ -0,0 +1,6 @@ ++# PR_26180_OWNER_018-move-src-browser-to-www Manual Validation Notes + -diff --git a/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_report.md b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_report.md ++- No manual browser launch was required beyond targeted Playwright route smoke. ++- Public browser route compatibility was manually smoke-checked through `resolveStaticRouteTarget` for representative browser, toolbox, admin, and `/src/...` routes. ++- Product behavior is expected to remain unchanged because public URLs are preserved and moved files keep their relative browser module relationships under `www/src/`. ++- The guard self-test intentionally retains a legacy `src/shared` import string as a violation fixture; it was allowlisted in the path scan and not treated as an active dependency. +diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md new file mode 100644 -index 000000000..6733578b3 +index 000000000..c7f9301da --- /dev/null -+++ b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_report.md -@@ -0,0 +1,48 @@ -+# PR_26180_OWNER_017 src Dissection and Demo Cleanup Report ++++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_report.md +@@ -0,0 +1,39 @@ ++# PR_26180_OWNER_018-move-src-browser-to-www Report + +## Executive Summary + -+PR_26180_OWNER_017 removes the local ignored demo artifact `assets/DemoGame-26168-001.gfsp`, removes the now-empty `assets/` shell, and audits every tracked file under `src/`. -+ -+No tracked `src/` files are moved in this PR. The file-by-file audit assigns proposed destinations, but most files require scoped reference migrations to preserve runtime behavior. -+ -+## Demo Artifact Cleanup -+ -+- Deleted local ignored artifact: `assets/DemoGame-26168-001.gfsp`. -+- Removed `assets/` after the artifact deletion left the folder empty. -+- No tracked files were deleted. -+- No active `assets/DemoGame-26168-001.gfsp` path references remain outside reports/workspace. -+ -+Filename-only `DemoGame-26168-001.gfsp` references remain in Playwright tests as generated-download assertions. Those are not references to the deleted root file path. -+ -+## src Audit Summary ++Moved PR017-audited browser/www-owned legacy `src/` files into `www/src/` so public browser imports such as `/src/...` continue to resolve under the `www` web root. This PR does not move API/server-owned or dev-owned `src` files and does not change product behavior. + -+Tracked `src/` files audited: 596. ++## Scope Confirmation + -+The detailed file-by-file audit lives at: ++- Branch: `PR_26180_OWNER_018-move-src-browser-to-www` ++- Base workstream: `PR_26180_OWNER_017-src-dissection-and-demo-cleanup` ++- Current HEAD before commit: `f4be737bbfcccd0f04f5298963ac7573362df7ca` ++- Browser/www-owned files moved: 501 ++- Modified reference/test/governance files: 231 ++- Runtime behavior changes: None intended; public route/import URLs are preserved. ++- API/server-owned files moved: None. ++- Dev-owned files moved: None. + -+`dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_src-file-destination-audit.md` ++## Implementation Notes + -+## src Move Decision ++- Moved browser-owned `src/advanced`, `src/api` browser clients, `src/dev-runtime/admin` browser viewer files, `src/engine`, browser/shared helpers, toolbox browser modules, and browser tool helpers into `www/src/` according to the PR017 destination audit. ++- Updated active API/dev/test imports that load these browser-owned modules to point at `www/src/` filesystem paths. ++- Preserved public browser URLs such as `/src/engine/core/Engine.js`, `/src/api/admin-owner-navigation.js`, and `/src/dev-runtime/admin/notes.html` through the existing static web root compatibility layer. ++- Updated Project Instructions, repository structure docs, migration map, Project State, and Backlog to record the PR018 migration state. ++- Updated targeted tests to reflect the current encoded Admin Notes source path and current toolbox registry release-channel counts. + -+No `src/` files moved. ++## Files/Folders Moved + -+Reason: ++- `src/advanced/**` -> `www/src/advanced/**` ++- `src/api/**` browser API clients -> `www/src/api/**` ++- `src/dev-runtime/admin/**` browser viewer files -> `www/src/dev-runtime/admin/**` ++- `src/engine/**` browser/runtime engine modules -> `www/src/engine/**` ++- Browser-owned `src/shared/**` helper/toolbox modules -> `www/src/shared/**` ++- `src/tools/**` browser tool helpers -> `www/src/tools/**` + -+- `src/` content is actively referenced by `www/`, `api/`, `dev/tests/`, and `dev/tools/`. -+- Moving `src/` files requires scoped import/reference updates. -+- The PR request requires preserving runtime behavior. -+- Uncertain or mixed-ownership files must be documented before movement. ++## Remaining Source Buckets + -+## Proposed Follow-Up PRs -+ -+1. Browser API client migration: move `src/api/` browser clients to a browser-owned location. -+2. Engine runtime migration: move `src/engine/` to the final browser/runtime source layer. -+3. Shared contract/schema migration: split `src/shared/contracts/` and `src/shared/schemas/` into the API contract surface. -+4. Shared utility migration: split `src/shared/` browser/runtime utilities by actual import ownership. -+5. Legacy Admin Notes retirement: migrate or retire `src/dev-runtime/admin/`. -+ -+## Runtime/Product Impact -+ -+No runtime behavior changed. No product code changed. No API/database behavior changed. -+ -diff --git a/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_requirement-checklist.md b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_requirement-checklist.md ++- `src/shared/contracts/**`, `src/shared/schemas/**`, and `src/shared/projectDataStore/**` remain for PR019 API/server migration. ++- `src/dev-runtime/admin/.gitkeep` and any remaining dev/reference ownership remain for later scoped PRs. ++- `src/` is not retired in this PR. +diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md new file mode 100644 -index 000000000..a8a6c9d61 +index 000000000..2d6888956 --- /dev/null -+++ b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_requirement-checklist.md -@@ -0,0 +1,18 @@ -+# PR_26180_OWNER_017 Requirement Checklist -+ -+| Requirement | Result | Notes | -+|---|---:|---| -+| Base on `PR_26180_OWNER_016-remove-empty-root-shells` | PASS | Branch created from PR016. | -+| Delete `assets/DemoGame-26168-001.gfsp` | PASS | Local ignored file deleted. | -+| Remove `assets/` if empty after deletion | PASS | `assets/` removed after the demo file deletion. | -+| Audit every tracked file under `src/` | PASS | 596 tracked `src/` files audited in the detailed audit report. | -+| Decide destination for each `src/` file | PASS | Each audited file has proposed destination: `www/`, `api/`, `dev/`, or `archive/delete`. | -+| Do not bulk-move `src/` blindly | PASS | No `src/` files moved. | -+| Move only files with clear ownership | PASS | No source movement attempted because scoped reference updates are required. | -+| If uncertain, document and hard stop before moving | PASS | Uncertain/mixed ownership documented; movement deferred. | -+| Preserve runtime behavior | PASS | No runtime/product code moved or changed. | -+| `git diff --check` | PASS | Whitespace validation passed. | -+| `npm run validate:canonical-structure` | PASS | Canonical guardrail passed. | -+| Targeted path/reference scan | PASS | No active `assets/DemoGame...` path references remain. | -+| Targeted bootstrap check if paths move | PASS | Bootstrap check passed; no tracked startup paths moved. | -+ -diff --git a/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_src-file-destination-audit.md b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_src-file-destination-audit.md -new file mode 100644 -index 000000000..317575619 ---- /dev/null -+++ b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_src-file-destination-audit.md -@@ -0,0 +1,622 @@ -+# PR_26180_OWNER_017 src File Destination Audit -+ -+This audit covers every tracked file currently under `src/`. No `src/` file is moved by PR017 because source movement requires scoped reference updates and validation lanes to preserve runtime behavior. ++++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_requirement-checklist.md +@@ -0,0 +1,16 @@ ++# PR_26180_OWNER_018-move-src-browser-to-www Requirement Checklist + -+## Summary Counts -+ -+| Destination | Confidence | Files | -+|---|---:|---:| -+| api/ | low | 1 | -+| api/ | medium | 87 | -+| archive/delete | medium | 1 | -+| dev/ | high | 3 | -+| dev/ | medium | 3 | -+| www/ | low | 40 | -+| www/ | medium | 461 | -+ -+Total tracked src files audited: 596 -+ -+## Movement Decision -+ -+No `src/` files are moved in this PR. Files with medium or low confidence need focused follow-up migration PRs because active imports span `www/`, `api/`, `dev/tests/`, and `dev/tools/`. -+ -+## File-by-File Destination Decisions -+ -+| File | Proposed Destination | Confidence | Reason | -+|---|---|---:|---| -+| `src/advanced/promotion/createPromotionGate.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/constants.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/createWorldGameStateSystem.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/events.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/initialState.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/integration/registerWorldGameStateSystem.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/selectors.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/transitions.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/advanced/state/utils.js` | www/ | medium | Browser/game runtime advanced state capability; migrate with runtime reference updates. | -+| `src/api/admin-infrastructure-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/admin-invitations-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/admin-operations-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/admin-owner-navigation.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/admin-setup-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/admin-system-health-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/ai-credits-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/db-viewer-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/db-viewer-ui.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/game-journey-completion-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/legal-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/marketplace-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/memberships-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/owner-ai-credits-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/owner-memberships-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/platform-settings-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/public-config-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/server-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/session-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/api/toolbox-votes-api-client.js` | www/ | medium | Browser-facing API client or UI helper; keep outside top-level api/server application. | -+| `src/dev-runtime/admin/.gitkeep` | archive/delete | medium | Tracked placeholder; remove only after the owning compatibility folder is retired. | -+| `src/dev-runtime/admin/admin-notes-viewer.js` | www/ | medium | Legacy Admin Notes browser-viewer compatibility surface; migrate or retire in a scoped Admin Notes PR. | -+| `src/dev-runtime/admin/header-nav.local.html` | www/ | medium | Legacy Admin Notes browser-viewer compatibility surface; migrate or retire in a scoped Admin Notes PR. | -+| `src/dev-runtime/admin/notes.html` | www/ | medium | Legacy Admin Notes browser-viewer compatibility surface; migrate or retire in a scoped Admin Notes PR. | -+| `src/engine/README.md` | dev/ | high | Developer/source documentation belongs in the dev workspace when source layers migrate. | -+| `src/engine/ai/AIStateController.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ai/GridPathfinding.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ai/GroupBehaviors.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ai/PatrolSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ai/SteeringBehaviors.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/animation/AnimationController.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/assets/AssetLoaderSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/assets/AssetOptimizer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/assets/AssetRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/assets/ImageAssetLoader.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/assets/SpriteAtlas.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/AudioService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/FrequencyPlayer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/GaplessLoopPlayer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/HtmlAudioMediaBackend.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/InstrumentGridParser.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/MediaTrackService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/MidiPlayer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/MidiSourceMetadataParser.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/PlaylistManager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/PreviewInstrumentPacks.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/PreviewSynthEngine.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/SongSheetParser.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/SoundFontPreviewEngine.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/Synthesizer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/TextToSpeechDefaults.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/TextToSpeechEngine.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/audio/WebAudioToneBackend.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/automation/AutomatedTestRunner.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/automation/BenchmarkRunner.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/automation/CIValidationFlow.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/automation/RegressionPlaybackHarness.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/camera/Camera2D.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/camera/Camera3D.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/camera/CameraSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/camera/ZoneCameraSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/aabb.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/combat/Combat.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/hitboxCollision.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/hybrid.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/objectVector.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/polygon.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/collision/raster.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/components/Components.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/config/ConfigStore.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/core/Engine.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/core/FixedTicker.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/core/FrameClock.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/core/RuntimeMetrics.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/CombatDebugOverlay.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/DebugOverlayLayout.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/DebugPanel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/DebugTools.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/Minimap.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/PerformanceMetricsPanel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/StatsTracker.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/Validation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/commands/registerInspectorCommands.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/host/debugInspectorHost.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/registry/debugInspectorRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/shared/inspectorUtils.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/commands/networkDebugCommandPackBridge.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/registerDashboardCommands.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardHost.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardMetrics.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardProviders.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardRefreshModes.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardRenderer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/dashboard/serverDashboardViewModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/diagnostics/networkPromotionRecommendation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/panels/networkDebugPanelRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/panels/networkObservabilityPanels.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/providers/networkDebugProviderRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/shared/hostReadUtils.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/network/shared/networkDebugUtils.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/panels/PromotionGatePanel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/shared/debugCommandResultUtils.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dCamera.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dCollision.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dRenderStages.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dTransform.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/transformInspectorProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/providers/transformSummaryProvider.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/debug/standard/threeD/shared/threeDDebugUtils.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ecs/World.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/entity/Bounds.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/entity/Entity.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/entity/Transform.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/entity/Velocity.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/events/EventBus.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/fx/ParticleSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/game/GameModeState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/game/gameplayHooks.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/ActionInputDebugOverlay.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/ActionInputMap.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/ActionInputService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/GamepadHapticsService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/GamepadInputAdapter.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/GamepadInputClassifier.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/GamepadState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputCapabilityDescriptors.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputCaptureService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputCaptureSession.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputComboState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputContextService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputMap.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputMappingManifest.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/InputService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/KeyboardState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/MouseState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/NormalizedInputRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/input/PointerDragState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/interaction/InteractionSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/level/LevelLoader.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/localization/LocalizationService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/logging/ErrorBoundary.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/logging/Logger.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/memory/DisposableStore.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/memory/ObjectPool.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/bootstrap/HostServerBootstrap.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/bootstrap/NetworkingLayer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/client/ClientReconciliationStrategy.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/client/ClientReplicationApplicationLayer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/client/PredictionReconciler.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/client/RemoteInterpolationBuffer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/debug/NetworkDebugOverlay.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/replication/ReplicationMessageContract.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/replication/StateReplication.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/server/AuthoritativeInputIngestionContract.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/server/AuthoritativeServerRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/server/InterestManager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/server/RollbackDiagnostics.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/session/ChatPresenceLayer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/session/HandshakeSimulator.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/session/LobbySessionManager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/session/SessionLifecycleContract.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/transport/LoopbackTransport.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/transport/NetworkConditionSimulator.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/transport/Serializer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/network/transport/TransportContract.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/object-model/index.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/object-model/objectDefinitionSchema.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/object-model/objectDefinitionValidator.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/object-model/objectModelRegistry.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/paletteList.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/BrowserStorageService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/CompressionService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/CookieStorageService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/FilePersistenceService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/LocalStorageService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/SaveSlotManager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/SessionStorageService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/StorageService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/persistence/WorldSerializer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/physics/arcadeBody.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/physics/collision3d.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/physics/drag.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/physics/integration.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/physics/integration3d.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/physics/scene3d.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/prefabs/PrefabFactory.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/release/AccessibilityOptions.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/release/CrashRecoveryManager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/release/DeploymentProfiles.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/release/DistributionPackager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/release/ReleaseValidationChecklist.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/release/SettingsSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/CanvasRenderer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/LayeredRenderSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/ObjectVectorRuntimeAssetService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/ObjectVectorTransformService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/OrientationTransform.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/Renderer.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/ResolutionScaler.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/SpriteRenderSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/VectorDrawing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/WorldScreenTransform.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/rendering/WorldScreenTransformService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/replay/ReplayModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/replay/ReplaySystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/replay/ReplayTimeline.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/BrowserDownloadService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/FullscreenService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/MobileRuntimeTweaks.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/RuntimeMonitoringHooks.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/backgroundColor.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/backgroundImage.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2AbilitySystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2AnimationRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2AudioRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2CameraRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ChaseFleeBehavior.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2CheckpointSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ConfigDrivenProofScene.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ContainerSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2CraftingFoundation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2CustomExtensionsHookRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2DialogueSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2EconomyAndCurrency.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2EffectRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2EquipmentSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2InteractionSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2InventorySystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ItemAndLootSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ModifierStack.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ObjectiveSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2PathfindingBaseline.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2PatrolBehavior.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2PersistenceRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ProfileStateSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2ProjectileSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2QuestSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2SaveLoadValidation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2SaveStateModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2StateMachineRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2StatusEffectSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2UiRuntime.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2VendorSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/engineV2WeaponSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/firstManifestDrivenPlayableScene.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/fullscreenBezel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/gameImageConvention.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/manifestRuntimeParser.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/objectDefinitionReader.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/ruleDefinitionReader.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeActionSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeBehaviorComposition.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeCollisionProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeConditionSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeCooldownProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeDamageProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeEnvironmentEffects.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeEnvironmentForceInstantiation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeErrorReporting.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeEventSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeHealthModel.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeInputPipeline.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeLivesAndRespawn.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeMovementProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeMultiSceneLoading.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeObjectInstantiation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeObjectRecordFactory.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeOutcomeProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimePlayableLoop.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeRenderPipeline.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeRenderingBootstrap.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeRuleAttachment.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeSceneDefinitionSupport.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeScoringAndStateProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeSpawnDespawnProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeTerrainEffects.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeTerrainMaterialInstantiation.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeTickLoop.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/runtime/runtimeTriggerProcessing.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/scene/AttractModeController.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/scene/Scene.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/scene/SceneManager.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/scene/SceneTransition.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/scene/SceneTransitionController.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/scene/TransitionScene.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/security/DataIntegrityService.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/security/PacketValidator.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/security/PermissionGate.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/security/SessionTrustValidator.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/state/StateMachine.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/BounceSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/BoundsSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/CollectSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/CollisionResolutionSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/CollisionSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/InputControlSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/LifecycleSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/MovementSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/PhysicsSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/ProjectileSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/RenderSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/systems/SystemUtils.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/tilemap/TileMetadata.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/tilemap/Tilemap.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/tilemap/TilemapCollision.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/tilemap/TilemapRenderSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/CanvasDialogPrimitives.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/CanvasPopupInteractions.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/CanvasPopupState.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/UIFramework.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/assets/icons/pin-monocolor-filled.svg` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/assets/icons/pin-monocolor.svg` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/baseLayout.css` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/hubCommon.css` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/ui/spriteEditor.css` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/AchievementSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/CutsceneSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/DayNightCycle.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/EventScriptSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/QuestSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/SpawnSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/WeatherSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/engine/world/WorldStreamingSystem.js` | www/ | medium | Browser/game runtime engine module; migrate with engine import/reference updates. | -+| `src/shared/array/arrays.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/array/recordArrays.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/color/color.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/contracts/auditEventContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/backupSnapshotContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/collaborationRoleContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/creatorProfileContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/downloadGrantContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/entitlementContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/gameManifestContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/identityPermissionsContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/installReceiptContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/libraryItemContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/marketplaceListingContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/marketplaceTransactionBoundaryContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/migrationPlanContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/moderationQueueContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/notificationContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/organizationContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/projectContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/projectDataStoreContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/projectWorkspaceRuntimeContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/publishContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/releaseContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/replayContracts.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/restoreSnapshotContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/reviewRatingContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/sharedStateContracts.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/toolStateContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/aiAssistantContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/animationStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/assetManagerContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/assetPipelineContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/assetStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/audioSfxPlaygroundContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/codeStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/collisionInspectorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/gameDesignStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/inputMappingContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/inputStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/localizationStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/midiStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/objectVectorStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/paletteManagerContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/parallaxEditorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/particleStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/performanceProfilerContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/physicsSandboxContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/previewGeneratorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/publishStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/replayVisualizerContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/soundStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/spriteEditorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/stateInspectorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/storageInspectorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/textToSpeechContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/threeDAssetViewerContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/threeDCameraPathEditorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/threeDJsonPayloadContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/tileMapEditorContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/toolContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/toolContractsIndex.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/workspaceManagerContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/tools/worldVectorStudioContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/updateChannelContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/contracts/versionCompatibilityContract.js` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/debug/config.js` | dev/ | medium | Debug/dev-console support should be reviewed for dev-tooling ownership before movement. | -+| `src/shared/debug/network.js` | dev/ | medium | Debug/dev-console support should be reviewed for dev-tooling ownership before movement. | -+| `src/shared/debug/noopDevConsoleIntegration.js` | dev/ | medium | Debug/dev-console support should be reviewed for dev-tooling ownership before movement. | -+| `src/shared/game/highScores.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/game/initialsEntry.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/geometry/geometry.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/hash/hash.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/id/ids.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/json/clone.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/json/jsonIO.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/Random.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/RandomSeed.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/directions.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/geometry.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/numberNormalization.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/randomHelpers.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/scalars.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/vectorMath.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/math/vectorNormalize.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/noise/noise.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/number/numbers.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/object/objects.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/projectDataStore/inMemoryProjectDataStore.js` | api/ | low | Product data-store helper needs API/runtime ownership review before movement. | -+| `src/shared/runtime/registry.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/runtime/snapshotClone.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/schemas/README.md` | dev/ | high | Developer/source documentation belongs in the dev workspace when source layers migrate. | -+| `src/shared/schemas/game.manifest.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/samples/sample.tool-payload.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/3d-asset-viewer.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/3d-camera-path-editor.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/3d-json-payload.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/README.md` | dev/ | high | Developer/source documentation belongs in the dev workspace when source layers migrate. | -+| `src/shared/schemas/tools/asset-manager-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/asset-pipeline.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/audio-sfx-playground-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/collision-inspector-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/input-mapping-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/midi-studio-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/object-vector-studio-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/palette-browser.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/palette-manager-v2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/parallax-editor.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/performance-profiler.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/physics-sandbox.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/replay-visualizer.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/sprite-editor.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/state-inspector.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/svg-asset-studio.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/text2speech-V2.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/tile-map-editor.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/schemas/tools/vector-map-editor.schema.json` | api/ | medium | Shared data/API contract or schema; should be owned with the API contract surface after usage split. | -+| `src/shared/state/createPromotionStateSnapshot.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/state/getState.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/state/getStateVariantClassification.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/state/guards.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/state/normalization.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/state/selectors.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/string/commandText.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/string/fuzzyMatchScore.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/string/stringifyValue.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/string/strings.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/string/textWrap.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/text/text.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/time/time.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/toolbox/aiAuthoringAssistant.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/assetMarketplace.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/assetPipelineConverters.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/assetPipelineFoundation.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/assetPipelineValidationOutput.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/assetUsageIntegration.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/ciValidationPipeline.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/cloudRuntime.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/collaborationSystem.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/contractVersioning.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/debugInspectorData.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/debugInspectorTools.css` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/debugToolInteractionFlow.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/debugVisualizationLayer.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/devConsoleDebugOverlay.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/documentModeGuards.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/editor/EntityPlacementEditor.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/editor/LevelEditor.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/editor/TileMapEditor.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/editor/TimelineEditor.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/editorExperienceLayer.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/eventCommandUtils.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/gameTemplates.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/gameplaySystemLayer.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/hotReloadSystem.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/livePreviewSyncChannel.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/multiTargetExport.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/paletteDocumentContract.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/performanceBenchmarks.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/performanceProfiler.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/AssetImportPipeline.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/AudioPreprocessPipeline.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/BuildAssetManifestSystem.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/ContentMigrationSystem.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/ContentValidationPipeline.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/TexturePreprocessPipeline.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/assetErrorHandling.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/assetManifestLoader.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/assetPipelineTooling.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/runtimeAssetBinding.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/runtimeAssetLookup.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pipeline/runtimeAssetValidation.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/platformShell.css` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/platformShell.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/platformValidationSuite.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/pluginArchitecture.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/powerShell/find_dupes_called.ps1` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectAssetRegistry.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectAssetRemediation.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectAssetValidation.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectManifestContract.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectPackaging.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectSystem.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectSystemAdapters.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectSystemValueUtils.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectToolIntegration.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/projectVersioning.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/publishingPipeline.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/renderPipelineContract.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/runtimeAssetLoader.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/runtimeAssetSharedUtils.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/runtimeAssetValidationUtils.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/runtimeSceneLoaderHotReload.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/runtimeStreaming.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/schemaOnlyToolPresetValidation.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tool-metadata-inventory.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolBootContract.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolHostManifest.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolHostRuntime.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolHostSharedContext.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolLaunchSSoT.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolLaunchSSoTData.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolLoadDiagnostics.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/toolSampleCatalog.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tooling/AssetBrowser.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tooling/DeveloperConsole.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tooling/LiveTuningService.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tooling/PropertyEditor.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tooling/RuntimeInspector.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/tooling/SceneGraphViewer.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/uiSafeUtils.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/unifiedToolUxContract.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vector/vectorAssetBridge.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vector/vectorAssetContract.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vector/vectorGeometryMath.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vector/vectorRenderPrep.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vector/vectorSafeValueUtils.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vectorAssetSystem.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vectorGeometryRuntime.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vectorNativeTemplate.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/vectorTemplateSampleGame.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/toolbox/workspaceShell.js` | www/ | medium | Creator toolbox/shared pipeline module; migrate with toolbox import updates. | -+| `src/shared/types/typeGuards.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/validation/assert.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/shared/validation/invariant.js` | www/ | low | Shared runtime/browser utility; requires usage split before movement to preserve behavior. | -+| `src/tools/common/GameManifestLoader.js` | www/ | medium | Browser/tool helper module; migrate with toolbox/runtime import updates. | -+| `src/tools/common/WorkspaceDirtyNotifier.js` | www/ | medium | Browser/tool helper module; migrate with toolbox/runtime import updates. | -diff --git a/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_validation-report.md b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_validation-report.md ++| Requirement | Status | Evidence | ++| --- | --- | --- | ++| Use PR017 src destination audit as source of truth | PASS | Moved only audit-classified browser/www-owned source buckets. | ++| Move browser/www-owned src files into www/src | PASS | 501 staged renames into `www/src/`. | ++| Preserve public browser import URLs such as /src/... | PASS | Static route check resolves public `/src/...` URLs into `www/src/...`. | ++| Update references only where required | PASS | Active API/dev/test filesystem imports updated for moved browser modules. | ++| Do not move API/server-owned files | PASS | API/server-owned root `src/shared/contracts`, schemas, and project data store remain for PR019. | ++| Do not move dev-owned files | PASS | Dev-owned source remains for later PR020 scope. | ++| Do not change product behavior | PASS | Migration preserves public URLs and route behavior. | ++| Stop on ambiguous ownership | PASS | No ambiguous files were moved; remaining source buckets are documented for later PRs. | ++| Stop if browser file depends directly on api runtime internals | PASS | No direct browser-to-`api/` import introduced. | ++| Stop if preserving public URLs requires API/server behavior changes | PASS | Existing static web-root compatibility resolved routes without API behavior changes. | ++| Required reports under dev/reports | PASS | Report bundle generated. | ++| Required ZIP under dev/workspace/zips | PASS | `dev/workspace/zips/PR_26180_OWNER_018-move-src-browser-to-www_delta.zip` generated for this outcome. | +diff --git a/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md new file mode 100644 -index 000000000..69115430a +index 000000000..0488dbf3d --- /dev/null -+++ b/dev/reports/PR_26180_OWNER_017-src-dissection-and-demo-cleanup_validation-report.md -@@ -0,0 +1,15 @@ -+# PR_26180_OWNER_017 Validation Report ++++ b/dev/reports/PR_26180_OWNER_018-move-src-browser-to-www_validation-report.md +@@ -0,0 +1,14 @@ ++# PR_26180_OWNER_018-move-src-browser-to-www Validation Report + +| Validation | Result | Notes | -+|---|---:|---| -+| `git diff --check` | PASS | Whitespace check passed. | -+| `npm run validate:canonical-structure` | PASS | Blocking violations: 0. | -+| Targeted path/reference scan | PASS | No active `assets/DemoGame-26168-001.gfsp` path references remain outside reports/workspace. | -+| Tracked legacy root scan | PASS | No tracked `assets/`, `games/`, `learn/`, `toolbox/`, `tmp/`, or `test-results/` files remain. | -+| `src/` audit count | PASS | 596 tracked `src/` files audited. | -+| `node --test dev/tests/dev-runtime/TeamAwareBootstrap.test.mjs` | PASS | 12 tests passed. | -+ -+## Notes -+ -+A broad scan found filename-only `DemoGame-26168-001.gfsp` references in Playwright tests. Those references are generated-download assertions and do not point to the deleted root artifact path. -+ ++| --- | --- | --- | ++| Startup Validation | PASS | Loaded Project Instructions v2026.06.28.018 from repository; cached memory discarded. | ++| git diff --check | PASS | No whitespace errors. | ++| npm run validate:canonical-structure | PASS | Blocking violations: 0; approved legacy exceptions: 499. | ++| node ./dev/scripts/run-platform-validation-suite.mjs | PASS | 8/8 deterministic platform scenarios passed. | ++| Static route resolution smoke | PASS | /index.html, /toolbox/index.html, /admin/site-setup.html, /admin/admin-notes.html, and representative /src/... URLs resolve. | ++| Targeted active import scan | PASS | No active relative imports point to moved root src browser files; intentional guard self-test fixture allowlisted. | ++| Targeted Node tests | PASS | 11/11 targeted files passed; 37 assertions passed. | ++| npm run test:playwright:static | PASS | Static preflight report status PASS. | ++| Targeted Playwright route smoke | PASS | 18/18 tests passed for Admin Notes, Static Web Root Compatibility, and Toolbox route pages. | ++| Runtime/API/UI/database implementation changes | PASS | No API/server files moved; changes are migration references/tests/docs for browser-owned source relocation. | +diff --git a/dev/reports/asset_ownership_strategy_validation.txt b/dev/reports/asset_ownership_strategy_validation.txt +index 8d72dcf59..5612cc026 100644 +--- a/dev/reports/asset_ownership_strategy_validation.txt ++++ b/dev/reports/asset_ownership_strategy_validation.txt +@@ -9,7 +9,7 @@ Checks: + - Validated template ownership manifest: dev/archive/v1-v2/games/_template/assets/tools.manifest.json + - Archived sample has no inline asset path entries: dev/archive/v1-v2/samples/phase-15/1505/AssetBrowserScene.js + - Validated sample ownership path: dev/archive/v1-v2/samples/phase-15/1505/AssetBrowserScene.js +-- Validated tool demo ownership path: src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json ++- Validated tool demo ownership path: www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json + + Issues: + - none +diff --git a/dev/scripts/run-platform-validation-suite.mjs b/dev/scripts/run-platform-validation-suite.mjs +index 020c862f2..441012b5c 100644 +--- a/dev/scripts/run-platform-validation-suite.mjs ++++ b/dev/scripts/run-platform-validation-suite.mjs +@@ -1,5 +1,5 @@ +-import { runPlatformValidationSuite } from "../../src/shared/toolbox/platformValidationSuite.js"; +-import { runCiValidationPipeline } from "../../src/shared/toolbox/ciValidationPipeline.js"; ++import { runPlatformValidationSuite } from "../../www/src/shared/toolbox/platformValidationSuite.js"; ++import { runCiValidationPipeline } from "../../www/src/shared/toolbox/ciValidationPipeline.js"; + + const suiteResult = await runPlatformValidationSuite(); + const ciResult = await runCiValidationPipeline({ +diff --git a/dev/scripts/validate-asset-ownership-strategy.mjs b/dev/scripts/validate-asset-ownership-strategy.mjs +index 69c371973..f59305399 100644 +--- a/dev/scripts/validate-asset-ownership-strategy.mjs ++++ b/dev/scripts/validate-asset-ownership-strategy.mjs +@@ -17,7 +17,7 @@ const REGISTRY_PATH_CANDIDATES = [ + const ASTEROIDS_MANIFEST_PATH = "dev/archive/v1-v2/games/Asteroids/game.manifest.json"; + const TEMPLATE_MANIFEST_PATH = "dev/archive/v1-v2/games/_template/assets/tools.manifest.json"; + const SAMPLE_ASSET_BROWSER_SCENE_PATH = "dev/archive/v1-v2/samples/phase-15/1505/AssetBrowserScene.js"; +-const TOOL_DEMO_PROJECT_ASSETS_PATH = "src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json"; ++const TOOL_DEMO_PROJECT_ASSETS_PATH = "www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json"; + const REPORT_PATH = "dev/reports/asset_ownership_strategy_validation.txt"; + + function toRepoPath(value) { +@@ -66,7 +66,7 @@ function ownerPrefixForPath(repoPath) { + if (segments[0] === "tools" && segments.length >= 2) { + // keep demo ownership under the tool/demo root path depth + if (segments[1] === "shared" && segments.length >= 5 && segments[2] === "samples") { +- return `src/shared/toolbox/samples/${segments[3]}`; ++ return `www/src/shared/toolbox/samples/${segments[3]}`; + } + return `toolbox/${segments[1]}`; + } +@@ -199,7 +199,7 @@ export async function validateAssetOwnershipStrategy({ emitLogs = true } = {}) { + + const projectAssets = await readJson(TOOL_DEMO_PROJECT_ASSETS_PATH); + const toolDemoEntries = collectProjectAssetEntries(projectAssets); +- const toolDemoOwnerPrefix = "src/shared/toolbox/samples/project-asset-registry-demo"; ++ const toolDemoOwnerPrefix = "www/src/shared/toolbox/samples/project-asset-registry-demo"; + const seenPaths = new Set(); + for (const entry of toolDemoEntries) { + if (!entry.path) { +diff --git a/dev/scripts/validate-browser-env-agnostic.mjs b/dev/scripts/validate-browser-env-agnostic.mjs +index 239739aa7..cc5a28b7f 100644 +--- a/dev/scripts/validate-browser-env-agnostic.mjs ++++ b/dev/scripts/validate-browser-env-agnostic.mjs +@@ -317,10 +317,10 @@ async function validateProductServiceContract() { + requireSnippet(registryClient, "www/toolbox/tool-registry-api-client.js", "safeRequestServerApi(\"/toolbox/registry/snapshot\")", findings, "Toolbox registry must read through the server API service contract."); + rejectPattern(registryClient, "www/toolbox/tool-registry-api-client.js", providerLeakPattern, findings, "Toolbox registry client must not expose provider/environment implementation details."); + +- const votesClient = await readRequiredRepoFile("src/api/toolbox-votes-api-client.js", findings, "Toolbox votes API client is missing"); +- requireSnippet(votesClient, "src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/snapshot\")", findings, "Toolbox votes must read through the server API service contract."); +- requireSnippet(votesClient, "src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/cast\"", findings, "Toolbox votes must write through the server API service contract."); +- rejectPattern(votesClient, "src/api/toolbox-votes-api-client.js", providerLeakPattern, findings, "Toolbox votes client must not expose provider/environment implementation details."); ++ const votesClient = await readRequiredRepoFile("www/src/api/toolbox-votes-api-client.js", findings, "Toolbox votes API client is missing"); ++ requireSnippet(votesClient, "www/src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/snapshot\")", findings, "Toolbox votes must read through the server API service contract."); ++ requireSnippet(votesClient, "www/src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/cast\"", findings, "Toolbox votes must write through the server API service contract."); ++ rejectPattern(votesClient, "www/src/api/toolbox-votes-api-client.js", providerLeakPattern, findings, "Toolbox votes client must not expose provider/environment implementation details."); + + for (const filePath of productApiClientFiles) { + const contents = await readRequiredRepoFile(filePath, findings, "Product API client is missing"); +diff --git a/dev/scripts/validate-canonical-repository-structure.mjs b/dev/scripts/validate-canonical-repository-structure.mjs +index 405e2c5ea..da5a4805a 100644 +--- a/dev/scripts/validate-canonical-repository-structure.mjs ++++ b/dev/scripts/validate-canonical-repository-structure.mjs +@@ -14,13 +14,13 @@ export const APPROVED_LEGACY_JS_PATHS = Object.freeze(new Set([ + "www/toolbox/tool-registry-api-client.js", + "www/toolbox/toolRegistry.js", + "www/toolbox/tools-page-accordions.js", +- "src/engine/paletteList.js", ++ "www/src/engine/paletteList.js", + ])); + + export const APPROVED_LEGACY_CSS_PATHS = Object.freeze(new Set([ +- "src/engine/ui/baseLayout.css", +- "src/engine/ui/hubCommon.css", +- "src/engine/ui/spriteEditor.css", ++ "www/src/engine/ui/baseLayout.css", ++ "www/src/engine/ui/hubCommon.css", ++ "www/src/engine/ui/spriteEditor.css", + ])); + + export const APPROVED_LEGACY_TEST_SEGMENTS = Object.freeze(new Set([ +diff --git a/dev/scripts/validate-dev-runtime-boundary.mjs b/dev/scripts/validate-dev-runtime-boundary.mjs +index 51cefc332..4e9ab8b99 100644 +--- a/dev/scripts/validate-dev-runtime-boundary.mjs ++++ b/dev/scripts/validate-dev-runtime-boundary.mjs +@@ -13,8 +13,8 @@ const roots = [ + "www/marketplace", + "www/memberships", + "www/owner", +- "src/api", +- "src/engine", ++ "www/src/api", ++ "www/src/engine", + "www/toolbox", + ]; + const filePattern = /\.(html|js|mjs)$/; +diff --git a/dev/tests/ai/AIBehaviors.test.mjs b/dev/tests/ai/AIBehaviors.test.mjs +index 29bdb533d..b48c9ae4d 100644 +--- a/dev/tests/ai/AIBehaviors.test.mjs ++++ b/dev/tests/ai/AIBehaviors.test.mjs +@@ -5,11 +5,11 @@ David Quesenberry + AIBehaviors.test.mjs + */ + import assert from 'node:assert/strict'; +-import AIStateController from '../../../src/engine/ai/AIStateController.js'; +-import { advancePatrolRoute } from '../../../src/engine/ai/PatrolSystem.js'; +-import { computeGroupSteering } from '../../../src/engine/ai/GroupBehaviors.js'; +-import { findGridPath } from '../../../src/engine/ai/GridPathfinding.js'; +-import { stepChaseBehavior, stepEvadeBehavior } from '../../../src/engine/ai/SteeringBehaviors.js'; ++import AIStateController from '../../../www/src/engine/ai/AIStateController.js'; ++import { advancePatrolRoute } from '../../../www/src/engine/ai/PatrolSystem.js'; ++import { computeGroupSteering } from '../../../www/src/engine/ai/GroupBehaviors.js'; ++import { findGridPath } from '../../../www/src/engine/ai/GridPathfinding.js'; ++import { stepChaseBehavior, stepEvadeBehavior } from '../../../www/src/engine/ai/SteeringBehaviors.js'; + + export function run() { + const grid = [ +diff --git a/dev/tests/assets/AssetLoaderSystem.test.mjs b/dev/tests/assets/AssetLoaderSystem.test.mjs +index fd90e920b..1d6254e62 100644 +--- a/dev/tests/assets/AssetLoaderSystem.test.mjs ++++ b/dev/tests/assets/AssetLoaderSystem.test.mjs +@@ -5,9 +5,9 @@ David Quesenberry + AssetLoaderSystem.test.mjs + */ + import assert from 'node:assert/strict'; +-import AssetRegistry from '../../../src/engine/assets/AssetRegistry.js'; +-import ImageAssetLoader from '../../../src/engine/assets/ImageAssetLoader.js'; +-import AssetLoaderSystem from '../../../src/engine/assets/AssetLoaderSystem.js'; ++import AssetRegistry from '../../../www/src/engine/assets/AssetRegistry.js'; ++import ImageAssetLoader from '../../../www/src/engine/assets/ImageAssetLoader.js'; ++import AssetLoaderSystem from '../../../www/src/engine/assets/AssetLoaderSystem.js'; + + export async function run() { + const registry = new AssetRegistry(); +diff --git a/dev/tests/audio/AudioService.test.mjs b/dev/tests/audio/AudioService.test.mjs +index 9dc76ac42..bf6ef5e25 100644 +--- a/dev/tests/audio/AudioService.test.mjs ++++ b/dev/tests/audio/AudioService.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + AudioService.test.mjs + */ + import assert from 'node:assert/strict'; +-import AudioService from '../../../src/engine/audio/AudioService.js'; ++import AudioService from '../../../www/src/engine/audio/AudioService.js'; + + function createTarget() { + const listeners = new Map(); +diff --git a/dev/tests/combat/Combat.test.mjs b/dev/tests/combat/Combat.test.mjs +index 8c7e949af..538422c8a 100644 +--- a/dev/tests/combat/Combat.test.mjs ++++ b/dev/tests/combat/Combat.test.mjs +@@ -14,7 +14,7 @@ import { + startAttack, + updateAttackState, + updateCombatant, +-} from '../../../src/engine/combat/Combat.js'; ++} from '../../../www/src/engine/collision/combat/Combat.js'; + + export function run() { + const attacker = createCombatant({ x: 100, y: 100, width: 30, height: 30, facing: 1 }); +diff --git a/dev/tests/config/ConfigStore.test.mjs b/dev/tests/config/ConfigStore.test.mjs +index b79dd8d14..2d877f509 100644 +--- a/dev/tests/config/ConfigStore.test.mjs ++++ b/dev/tests/config/ConfigStore.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + ConfigStore.test.mjs + */ + import assert from 'node:assert/strict'; +-import ConfigStore from '../../../src/engine/config/ConfigStore.js'; ++import ConfigStore from '../../../www/src/engine/config/ConfigStore.js'; + + export function run() { + const store = new ConfigStore(); +diff --git a/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs b/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs +index 0c3067813..46786d2ce 100644 +--- a/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs ++++ b/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs +@@ -2,8 +2,8 @@ import assert from "node:assert/strict"; + import os from "node:os"; + import path from "node:path"; + import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; +-import Engine from "../../../src/engine/core/Engine.js"; +-import backgroundImage from "../../../src/engine/runtime/backgroundImage.js"; ++import Engine from "../../../www/src/engine/core/Engine.js"; ++import backgroundImage from "../../../www/src/engine/runtime/backgroundImage.js"; + import fullscreenBezel, { + chooseBestOpeningFit, + ensureBezelStretchConfigFile, +@@ -11,13 +11,13 @@ import fullscreenBezel, { + findTransparencyWindowFromEdges, + fitAspectRatio, + resolvePreferredFullscreenTarget +-} from "../../../src/engine/runtime/fullscreenBezel.js"; ++} from "../../../www/src/engine/runtime/fullscreenBezel.js"; + import { + resolveBezelStretchOverridePath, + resolveGameImageConventionPaths, + resolveManifestChromeAssetPaths, + resolveRuntimeAssetUrl +-} from "../../../src/engine/runtime/gameImageConvention.js"; ++} from "../../../www/src/engine/runtime/gameImageConvention.js"; + + const ASTEROIDS_BACKGROUND_RUNTIME_PATH = "/archive/v1-v2/games/Asteroids/assets/images/deluxe.png"; + const ASTEROIDS_BEZEL_RUNTIME_PATH = "/archive/v1-v2/games/Asteroids/assets/images/bezel.png"; +diff --git a/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs b/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs +index 561f5538c..3cf3a05d7 100644 +--- a/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs ++++ b/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs +@@ -5,17 +5,17 @@ David Quesenberry + Engine2DCapabilityCombinedFoundation.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import Scene from '../../../src/engine/scene/Scene.js'; +-import Camera2D from '../../../src/engine/camera/Camera2D.js'; +-import { followCameraTarget, worldRectToScreen } from '../../../src/engine/camera/CameraSystem.js'; +-import Tilemap from '../../../src/engine/tilemap/Tilemap.js'; +-import { renderTilemap } from '../../../src/engine/tilemap/TilemapRenderSystem.js'; +-import { isColliding } from '../../../src/engine/collision/aabb.js'; +-import { runHybridCollision } from '../../../src/engine/collision/hybrid.js'; +-import { moveRectWithTilemapCollision } from '../../../src/engine/systems/CollisionResolutionSystem.js'; +-import GameModeState from '../../../src/engine/game/GameModeState.js'; +-import { runIfGameplayMode } from '../../../src/engine/game/gameplayHooks.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import Scene from '../../../www/src/engine/scene/Scene.js'; ++import Camera2D from '../../../www/src/engine/camera/Camera2D.js'; ++import { followCameraTarget, worldRectToScreen } from '../../../www/src/engine/camera/CameraSystem.js'; ++import Tilemap from '../../../www/src/engine/tilemap/Tilemap.js'; ++import { renderTilemap } from '../../../www/src/engine/tilemap/TilemapRenderSystem.js'; ++import { isColliding } from '../../../www/src/engine/collision/aabb.js'; ++import { runHybridCollision } from '../../../www/src/engine/collision/hybrid.js'; ++import { moveRectWithTilemapCollision } from '../../../www/src/engine/systems/CollisionResolutionSystem.js'; ++import GameModeState from '../../../www/src/engine/game/GameModeState.js'; ++import { runIfGameplayMode } from '../../../www/src/engine/game/gameplayHooks.js'; + + function createCanvasHarness() { + const calls = []; +diff --git a/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs b/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs +index de3ff6724..af9700ed3 100644 +--- a/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs ++++ b/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs +@@ -5,9 +5,9 @@ + Engine3DPhysicsHookIsolation.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import Camera2D from '../../../src/engine/camera/Camera2D.js'; +-import { stepSceneBodies3D } from '../../../src/engine/physics/scene3d.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import Camera2D from '../../../www/src/engine/camera/Camera2D.js'; ++import { stepSceneBodies3D } from '../../../www/src/engine/physics/scene3d.js'; + + function createCanvas() { + const canvas = { +diff --git a/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs b/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs +index ddf7ea170..2c33a8a79 100644 +--- a/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs ++++ b/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs +@@ -5,28 +5,28 @@ David Quesenberry + EngineCoreBoundaryBaseline.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import FrameClock from '../../../src/engine/core/FrameClock.js'; +-import FixedTicker from '../../../src/engine/core/FixedTicker.js'; +-import RuntimeMetrics from '../../../src/engine/core/RuntimeMetrics.js'; +-import EventBus from '../../../src/engine/events/EventBus.js'; +-import Camera2D from '../../../src/engine/camera/Camera2D.js'; +-import Camera3D from '../../../src/engine/camera/Camera3D.js'; +-import { followCameraTarget, worldRectToScreen } from '../../../src/engine/camera/CameraSystem.js'; +-import Scene from '../../../src/engine/scene/Scene.js'; +-import SceneManager from '../../../src/engine/scene/SceneManager.js'; +-import CanvasRenderer from '../../../src/engine/rendering/CanvasRenderer.js'; +-import { renderByLayers } from '../../../src/engine/rendering/LayeredRenderSystem.js'; +-import InputService from '../../../src/engine/input/InputService.js'; +-import ActionInputService from '../../../src/engine/input/ActionInputService.js'; +-import { stepArcadeBody } from '../../../src/engine/physics/arcadeBody.js'; +-import { applyDrag } from '../../../src/engine/physics/drag.js'; +-import { integrateVelocity3D } from '../../../src/engine/physics/integration3d.js'; +-import { isAabbColliding3D, resolveAabbCollision3D } from '../../../src/engine/physics/collision3d.js'; +-import { stepSceneBodies3D } from '../../../src/engine/physics/scene3d.js'; +-import AudioService from '../../../src/engine/audio/AudioService.js'; +-import { moveEntities, moveEntities3D } from '../../../src/engine/systems/MovementSystem.js'; +-import { stepWorldPhysics3D } from '../../../src/engine/systems/PhysicsSystem.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import FrameClock from '../../../www/src/engine/core/FrameClock.js'; ++import FixedTicker from '../../../www/src/engine/core/FixedTicker.js'; ++import RuntimeMetrics from '../../../www/src/engine/core/RuntimeMetrics.js'; ++import EventBus from '../../../www/src/engine/events/EventBus.js'; ++import Camera2D from '../../../www/src/engine/camera/Camera2D.js'; ++import Camera3D from '../../../www/src/engine/camera/Camera3D.js'; ++import { followCameraTarget, worldRectToScreen } from '../../../www/src/engine/camera/CameraSystem.js'; ++import Scene from '../../../www/src/engine/scene/Scene.js'; ++import SceneManager from '../../../www/src/engine/scene/SceneManager.js'; ++import CanvasRenderer from '../../../www/src/engine/rendering/CanvasRenderer.js'; ++import { renderByLayers } from '../../../www/src/engine/rendering/LayeredRenderSystem.js'; ++import InputService from '../../../www/src/engine/input/InputService.js'; ++import ActionInputService from '../../../www/src/engine/input/ActionInputService.js'; ++import { stepArcadeBody } from '../../../www/src/engine/physics/arcadeBody.js'; ++import { applyDrag } from '../../../www/src/engine/physics/drag.js'; ++import { integrateVelocity3D } from '../../../www/src/engine/physics/integration3d.js'; ++import { isAabbColliding3D, resolveAabbCollision3D } from '../../../www/src/engine/physics/collision3d.js'; ++import { stepSceneBodies3D } from '../../../www/src/engine/physics/scene3d.js'; ++import AudioService from '../../../www/src/engine/audio/AudioService.js'; ++import { moveEntities, moveEntities3D } from '../../../www/src/engine/systems/MovementSystem.js'; ++import { stepWorldPhysics3D } from '../../../www/src/engine/systems/PhysicsSystem.js'; + + export function run() { + // Core boot/timing boundaries. +diff --git a/dev/tests/core/EngineFullscreen.test.mjs b/dev/tests/core/EngineFullscreen.test.mjs +index df7426007..605a02417 100644 +--- a/dev/tests/core/EngineFullscreen.test.mjs ++++ b/dev/tests/core/EngineFullscreen.test.mjs +@@ -5,8 +5,8 @@ + EngineFullscreen.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import FullscreenService from '../../../src/engine/runtime/FullscreenService.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import FullscreenService from '../../../www/src/engine/runtime/FullscreenService.js'; + + function createCanvas() { + const canvas = { +diff --git a/dev/tests/core/EngineSceneLifecycle.test.mjs b/dev/tests/core/EngineSceneLifecycle.test.mjs +index be895b9fc..f81890b80 100644 +--- a/dev/tests/core/EngineSceneLifecycle.test.mjs ++++ b/dev/tests/core/EngineSceneLifecycle.test.mjs +@@ -5,10 +5,10 @@ + EngineSceneLifecycle.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import SceneTransition from '../../../src/engine/scene/SceneTransition.js'; +-import TransitionScene from '../../../src/engine/scene/TransitionScene.js'; +-import Camera3D from '../../../src/engine/camera/Camera3D.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import SceneTransition from '../../../www/src/engine/scene/SceneTransition.js'; ++import TransitionScene from '../../../www/src/engine/scene/TransitionScene.js'; ++import Camera3D from '../../../www/src/engine/camera/Camera3D.js'; + + function createCanvas() { + const canvas = { +diff --git a/dev/tests/core/EngineTiming.test.mjs b/dev/tests/core/EngineTiming.test.mjs +index 4f3eb41e3..c4904cfbe 100644 +--- a/dev/tests/core/EngineTiming.test.mjs ++++ b/dev/tests/core/EngineTiming.test.mjs +@@ -5,9 +5,9 @@ + EngineTiming.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import FrameClock from '../../../src/engine/core/FrameClock.js'; +-import FixedTicker from '../../../src/engine/core/FixedTicker.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import FrameClock from '../../../www/src/engine/core/FrameClock.js'; ++import FixedTicker from '../../../www/src/engine/core/FixedTicker.js'; + + function createCanvas() { + const canvas = { +diff --git a/dev/tests/core/Section1FinalResidueStructure.test.mjs b/dev/tests/core/Section1FinalResidueStructure.test.mjs +index d061ca187..daad2ec44 100644 +--- a/dev/tests/core/Section1FinalResidueStructure.test.mjs ++++ b/dev/tests/core/Section1FinalResidueStructure.test.mjs +@@ -5,21 +5,21 @@ David Quesenberry + Section1FinalResidueStructure.test.mjs + */ + import assert from 'node:assert/strict'; +-import CanvasRenderer from '../../../src/engine/rendering/CanvasRenderer.js'; +-import ResolutionScaler from '../../../src/engine/rendering/ResolutionScaler.js'; +-import { renderByLayers } from '../../../src/engine/rendering/LayeredRenderSystem.js'; +-import { renderSpriteReadyEntities } from '../../../src/engine/rendering/SpriteRenderSystem.js'; +-import Scene from '../../../src/engine/scene/Scene.js'; +-import SceneManager from '../../../src/engine/scene/SceneManager.js'; +-import SceneTransition from '../../../src/engine/scene/SceneTransition.js'; +-import TransitionScene from '../../../src/engine/scene/TransitionScene.js'; +-import SceneTransitionController from '../../../src/engine/scene/SceneTransitionController.js'; +-import AttractModeController from '../../../src/engine/scene/AttractModeController.js'; +-import { DEFAULT_ATTRACT_CONFIG } from '../../../src/engine/scene/AttractModeController.js'; +-import { isColliding } from '../../../src/engine/collision/aabb.js'; +-import { applyDrag } from '../../../src/engine/physics/drag.js'; +-import { stepArcadeBody } from '../../../src/engine/physics/arcadeBody.js'; +-import { integrateVelocity2D } from '../../../src/engine/physics/integration.js'; ++import CanvasRenderer from '../../../www/src/engine/rendering/CanvasRenderer.js'; ++import ResolutionScaler from '../../../www/src/engine/rendering/ResolutionScaler.js'; ++import { renderByLayers } from '../../../www/src/engine/rendering/LayeredRenderSystem.js'; ++import { renderSpriteReadyEntities } from '../../../www/src/engine/rendering/SpriteRenderSystem.js'; ++import Scene from '../../../www/src/engine/scene/Scene.js'; ++import SceneManager from '../../../www/src/engine/scene/SceneManager.js'; ++import SceneTransition from '../../../www/src/engine/scene/SceneTransition.js'; ++import TransitionScene from '../../../www/src/engine/scene/TransitionScene.js'; ++import SceneTransitionController from '../../../www/src/engine/scene/SceneTransitionController.js'; ++import AttractModeController from '../../../www/src/engine/scene/AttractModeController.js'; ++import { DEFAULT_ATTRACT_CONFIG } from '../../../www/src/engine/scene/AttractModeController.js'; ++import { isColliding } from '../../../www/src/engine/collision/aabb.js'; ++import { applyDrag } from '../../../www/src/engine/physics/drag.js'; ++import { stepArcadeBody } from '../../../www/src/engine/physics/arcadeBody.js'; ++import { integrateVelocity2D } from '../../../www/src/engine/physics/integration.js'; + + assert.equal(typeof CanvasRenderer, 'function'); + assert.equal(typeof ResolutionScaler, 'function'); +diff --git a/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs b/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs +index c75f6c641..449c519db 100644 +--- a/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs ++++ b/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs +@@ -18,8 +18,8 @@ const productionRoots = [ + "www/admin", + "www/assets", + "www/owner", +- "src/engine", +- "src/shared", ++ "www/src/engine", ++ "www/src/shared", + "www/toolbox", + ]; + +@@ -32,7 +32,7 @@ const expectedDevNotes = [ + "dev/archive/legacy-docs-build/admin-notes/roadmap2MVP.txt", + "dev/archive/legacy-docs-build/admin-notes/sample.txt", + "dev/archive/legacy-docs-build/admin-notes/tools/index.txt", +- "src/dev-runtime/admin/notes.html", ++ "www/src/dev-runtime/admin/notes.html", + ]; + + const retiredProductionFiles = [ +@@ -149,9 +149,9 @@ test("Admin Notes dev files and local viewer entrypoint exist", () => { + }); + }); + +-test("Admin Notes browser viewer stays under src/dev-runtime/admin while server helpers live under api/admin", () => { ++test("Admin Notes browser viewer stays under www/src/dev-runtime/admin while server helpers live under api/admin", () => { + assert.equal( +- fs.existsSync(repoPath("src/dev-runtime/admin/admin-notes-viewer.js")), ++ fs.existsSync(repoPath("www/src/dev-runtime/admin/admin-notes-viewer.js")), + true, + "legacy Admin Notes viewer exists", + ); +@@ -166,14 +166,14 @@ test("Admin Notes browser viewer stays under src/dev-runtime/admin while server + "API Admin Notes local menu route helper exists", + ); + assert.equal( +- fs.existsSync(repoPath("src/dev-runtime/admin/header-nav.local.html")), ++ fs.existsSync(repoPath("www/src/dev-runtime/admin/header-nav.local.html")), + true, + "dev-runtime local header partial exists", + ); + }); + + test("Admin Notes local viewer page uses external dev-runtime JavaScript only", () => { +- const viewerSource = fs.readFileSync(repoPath("src/dev-runtime/admin/notes.html"), "utf8"); ++ const viewerSource = fs.readFileSync(repoPath("www/src/dev-runtime/admin/notes.html"), "utf8"); + assert.doesNotMatch(viewerSource, /]*\bsrc=)/i, "viewer page must not contain inline scripts"); + assert.doesNotMatch(viewerSource, / + const localHeaderPath = localAdminNotesHeaderPartialPath(repoRoot, headerPath); + const servedHeader = fs.readFileSync(localHeaderPath, "utf8"); + +- assert.equal(relativePath(localHeaderPath), "src/dev-runtime/admin/header-nav.local.html"); ++ assert.equal(relativePath(localHeaderPath), "www/src/dev-runtime/admin/header-nav.local.html"); + assert.doesNotMatch(servedHeader, /data-admin-notes-local-menu|data-admin-my-stuff-menu|data-admin-my-stuff-separator|Admin Notes/); + assert.doesNotMatch(servedHeader, new RegExp(ADMIN_NOTES_LOCAL_SOURCE_PATH.replace(/\//g, "\\/"))); + assert.doesNotMatch(servedHeader, new RegExp(ADMIN_NOTES_LOCAL_VIEWER_PATH.replace(/\//g, "\\/"))); +diff --git a/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs b/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs +index 82ee5db82..7349f4a47 100644 +--- a/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs ++++ b/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs +@@ -5,11 +5,12 @@ import assert from "node:assert/strict"; + import { + getAdminNavigationItems, + getOwnerNavigationItems, +-} from "../../../src/api/admin-owner-navigation.js"; ++} from "../../../www/src/api/admin-owner-navigation.js"; + + const ACTIVE_SCAN_ROOTS = Object.freeze([ + "api", + "src", ++ "www/src", + "www/account", + "www/admin", + "www/assets", +@@ -82,8 +83,8 @@ function assertActivePathExists(item) { + assert.equal(fs.existsSync(browserFilePath), true, `${item.label} active menu path should exist: ${browserFilePath}`); + } + +-test("server API client lives under src/api and active code does not reference src/engine/api", () => { +- assert.equal(fs.existsSync("src/api/server-api-client.js"), true); ++test("server API client lives under www/src/api and active code does not reference src/engine/api", () => { ++ assert.equal(fs.existsSync("www/src/api/server-api-client.js"), true); + assert.deepEqual(fs.existsSync("src/engine/api") ? fs.readdirSync("src/engine/api").sort() : [], []); + const offenders = activeTextSources() + .filter(({ source }) => /src\/engine\/api\/server-api-client|src\\engine\\api\\server-api-client|engine\/api\/server-api-client/.test(source)) +diff --git a/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs b/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs +index a2bdd03d6..790706acc 100644 +--- a/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs ++++ b/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs +@@ -6,7 +6,7 @@ import { createLocalApiRouter } from "../../../api/server/local-api-router.mjs"; + import { + getAdminNavigationItems, + getOwnerNavigationItems, +-} from "../../../src/api/admin-owner-navigation.js"; ++} from "../../../www/src/api/admin-owner-navigation.js"; + import { SEED_DB_KEYS } from "../../../api/seed/seed-db-keys.mjs"; + + const MOVED_API_CLIENTS = Object.freeze([ +@@ -80,11 +80,11 @@ async function apiJson(baseUrl, pathName, request = {}) { + return payload.data; + } + +-test("product and web API clients live under src/api while engine API keeps only shared server plumbing", () => { ++test("product and web API clients live under www/src/api while engine API keeps only shared server plumbing", () => { + assert.equal(fs.existsSync("src/engine/api"), false); +- assert.equal(fs.existsSync("src/api/server-api-client.js"), true); ++ assert.equal(fs.existsSync("www/src/api/server-api-client.js"), true); + MOVED_API_CLIENTS.forEach((fileName) => { +- assert.equal(fs.existsSync(`src/api/${fileName}`), true, `${fileName} should live under src/api`); ++ assert.equal(fs.existsSync(`www/src/api/${fileName}`), true, `${fileName} should live under www/src/api`); + assert.equal(fs.existsSync(`src/engine/api/${fileName}`), false, `${fileName} should not remain under src/engine/api`); + }); + }); +@@ -111,8 +111,8 @@ test("Admin and Owner navigation are shared and include present operational/busi + const payload = await apiJson(server.baseUrl, "/api/navigation/admin-menu"); + assert.deepEqual(payload.adminMainItems.map((item) => item.label), adminLabels); + assert.deepEqual(payload.ownerMenuItems.map((item) => item.label), ownerLabels); +- assert.equal(payload.ownership.adminMainItems, "src/api/admin-owner-navigation.js"); +- assert.equal(payload.ownership.ownerMenuItems, "src/api/admin-owner-navigation.js"); ++ assert.equal(payload.ownership.adminMainItems, "www/src/api/admin-owner-navigation.js"); ++ assert.equal(payload.ownership.ownerMenuItems, "www/src/api/admin-owner-navigation.js"); + } finally { + await server.close(); + } +@@ -153,7 +153,7 @@ test("API runtime boundary is documented for runtime implementation and not test + const source = fs.readFileSync("api/API_RUNTIME_BOUNDARY.md", "utf8"); + assert.match(source, /server\/API application runtime implementation/i); + assert.match(source, /not `dev\/tests\/dev-runtime`/); +- assert.match(source, /Browser pages, Theme V2 scripts, toolbox pages, and `src\/engine` runtime code must use declared API\/service contracts instead of importing `api\/` directly/); ++ assert.match(source, /Browser pages, Theme V2 scripts, toolbox pages, and `www\/src\/engine` runtime code must use declared API\/service contracts instead of importing `api\/` directly/); + }); + + test("Toolbox registry consumes shared metadata without importing dev-runtime", () => { +@@ -161,6 +161,6 @@ test("Toolbox registry consumes shared metadata without importing dev-runtime", + const devRuntimeShim = fs.readFileSync("api/guest-seeds/tool-metadata-inventory.js", "utf8"); + assert.match(registrySource, /src\/shared\/toolbox\/tool-metadata-inventory\.js/); + assert.doesNotMatch(registrySource, /src\/dev-runtime|src\\dev-runtime|dev-runtime\/guest-seeds/); +- assert.match(devRuntimeShim, /\.\.\/\.\.\/src\/shared\/toolbox\/tool-metadata-inventory\.js/); +- assert.equal(fs.existsSync("src/shared/toolbox/tool-metadata-inventory.js"), true); ++ assert.match(devRuntimeShim, /\.\.\/\.\.\/www\/src\/shared\/toolbox\/tool-metadata-inventory\.js/); ++ assert.equal(fs.existsSync("www/src/shared/toolbox/tool-metadata-inventory.js"), true); + }); +diff --git a/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs b/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs +index 0a3654781..881d4a4a9 100644 +--- a/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs ++++ b/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs +@@ -4,7 +4,7 @@ import { + clearPublicConfigCache, + getPublicConfigDiagnostics, + resolveServerApiUrl, +-} from "../../../src/api/public-config-client.js"; ++} from "../../../www/src/api/public-config-client.js"; + + function installMockBrowser(origin, responses) { + const calls = []; +diff --git a/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs b/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs +index c2f051d2d..d03e149de 100644 +--- a/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs ++++ b/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs +@@ -1,7 +1,7 @@ + import assert from "node:assert/strict"; + import test from "node:test"; + +-import { clearPublicConfigCache } from "../../../src/api/public-config-client.js"; ++import { clearPublicConfigCache } from "../../../www/src/api/public-config-client.js"; + import { + callServerToolFunction, + clearServerApiDiagnostics, +@@ -10,8 +10,8 @@ import { + requireServerApiData, + SERVER_DATA_BOUNDARY_RULE, + safeRequestServerApi, +-} from "../../../src/api/server-api-client.js"; +-import { logoutSessionUser } from "../../../src/api/session-api-client.js"; ++} from "../../../www/src/api/server-api-client.js"; ++import { logoutSessionUser } from "../../../www/src/api/session-api-client.js"; + + function installMockServerApi(routes) { + const calls = []; +diff --git a/dev/tests/engine/EngineV2AbilitySystem.test.mjs b/dev/tests/engine/EngineV2AbilitySystem.test.mjs +index 9bd282ce3..9b5835345 100644 +--- a/dev/tests/engine/EngineV2AbilitySystem.test.mjs ++++ b/dev/tests/engine/EngineV2AbilitySystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_ABILITY_ERRORS, + resolveEngineV2Abilities, +-} from "../../../src/engine/runtime/engineV2AbilitySystem.js"; ++} from "../../../www/src/engine/runtime/engineV2AbilitySystem.js"; + import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2AnimationRuntime.test.mjs b/dev/tests/engine/EngineV2AnimationRuntime.test.mjs +index 013126375..b263f7780 100644 +--- a/dev/tests/engine/EngineV2AnimationRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2AnimationRuntime.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_ANIMATION_ERRORS, + updateEngineV2Animations, +-} from "../../../src/engine/runtime/engineV2AnimationRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2AnimationRuntime.js"; + import { createEngineV2MediaRuntimeFixture } from "./EngineV2MediaRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2AudioRuntime.test.mjs b/dev/tests/engine/EngineV2AudioRuntime.test.mjs +index a866d4836..79bf7c3a4 100644 +--- a/dev/tests/engine/EngineV2AudioRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2AudioRuntime.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_AUDIO_ERRORS, + resolveEngineV2AudioRuntime, +-} from "../../../src/engine/runtime/engineV2AudioRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2AudioRuntime.js"; + import { createEngineV2MediaRuntimeFixture } from "./EngineV2MediaRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2CameraRuntime.test.mjs b/dev/tests/engine/EngineV2CameraRuntime.test.mjs +index 8e3e5e715..26718ec91 100644 +--- a/dev/tests/engine/EngineV2CameraRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2CameraRuntime.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_CAMERA_ERRORS, + resolveEngineV2Camera, +-} from "../../../src/engine/runtime/engineV2CameraRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2CameraRuntime.js"; + import { createEngineV2MediaRuntimeFixture } from "./EngineV2MediaRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs b/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs +index 0db3e3cab..f739592db 100644 +--- a/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs ++++ b/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_CHASE_FLEE_ERRORS, + resolveEngineV2ChaseFleeBehaviors, +-} from "../../../src/engine/runtime/engineV2ChaseFleeBehavior.js"; ++} from "../../../www/src/engine/runtime/engineV2ChaseFleeBehavior.js"; + import { createEngineV2AiBehaviorFixture } from "./EngineV2AiBehaviorFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2CheckpointSystem.test.mjs b/dev/tests/engine/EngineV2CheckpointSystem.test.mjs +index 7784fa77a..058699885 100644 +--- a/dev/tests/engine/EngineV2CheckpointSystem.test.mjs ++++ b/dev/tests/engine/EngineV2CheckpointSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_CHECKPOINT_ERRORS, + processEngineV2Checkpoints, +-} from "../../../src/engine/runtime/engineV2CheckpointSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2CheckpointSystem.js"; + import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs b/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs +index 53f56a970..930531612 100644 +--- a/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs ++++ b/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_PROOF_SCENE_ERRORS, + runEngineV2ConfigDrivenProofScene, +-} from "../../../src/engine/runtime/engineV2ConfigDrivenProofScene.js"; ++} from "../../../www/src/engine/runtime/engineV2ConfigDrivenProofScene.js"; + import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ContainerSystem.test.mjs b/dev/tests/engine/EngineV2ContainerSystem.test.mjs +index 0c38f90e1..d75489410 100644 +--- a/dev/tests/engine/EngineV2ContainerSystem.test.mjs ++++ b/dev/tests/engine/EngineV2ContainerSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_CONTAINER_ERRORS, + resolveEngineV2Containers, +-} from "../../../src/engine/runtime/engineV2ContainerSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2ContainerSystem.js"; + import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2CraftingFoundation.test.mjs b/dev/tests/engine/EngineV2CraftingFoundation.test.mjs +index c0014f2a2..6e48c5364 100644 +--- a/dev/tests/engine/EngineV2CraftingFoundation.test.mjs ++++ b/dev/tests/engine/EngineV2CraftingFoundation.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_CRAFTING_ERRORS, + resolveEngineV2Crafting, +-} from "../../../src/engine/runtime/engineV2CraftingFoundation.js"; ++} from "../../../www/src/engine/runtime/engineV2CraftingFoundation.js"; + import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs b/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs +index 4e20b69a8..658ebab27 100644 +--- a/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs +@@ -15,7 +15,7 @@ import { + dispatchEngineV2CustomExtensionHook, + registerEngineV2CustomExtensionHooks, + resolveEngineV2AdminCustomExtensionApprovalBoundary, +-} from "../../../src/engine/runtime/engineV2CustomExtensionsHookRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js"; + + function createExtensionDefinition(overrides = {}) { + return { +@@ -214,7 +214,7 @@ export function run() { + assert.equal(sourceFieldResult.valid, false); + assert.deepEqual(sourceFieldResult.errors.map((error) => error.code), [ENGINE_V2_CUSTOM_EXTENSION_ERRORS.FIELD_FORBIDDEN]); + +- const runtimeSource = fs.readFileSync("src/engine/runtime/engineV2CustomExtensionsHookRuntime.js", "utf8"); ++ const runtimeSource = fs.readFileSync("www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js", "utf8"); + assert.equal(/\beval\s*\(/.test(runtimeSource), false); + assert.equal(/\bnew\s+Function\b/.test(runtimeSource), false); + } +diff --git a/dev/tests/engine/EngineV2DialogueSystem.test.mjs b/dev/tests/engine/EngineV2DialogueSystem.test.mjs +index f355dfbe6..2d8fab621 100644 +--- a/dev/tests/engine/EngineV2DialogueSystem.test.mjs ++++ b/dev/tests/engine/EngineV2DialogueSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_DIALOGUE_ERRORS, + processEngineV2Dialogue, +-} from "../../../src/engine/runtime/engineV2DialogueSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2DialogueSystem.js"; + import { createEngineV2PlayerRuntimeFixture } from "./EngineV2PlayerRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs b/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs +index a1b029822..7cfaa20fb 100644 +--- a/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs ++++ b/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_ECONOMY_ERRORS, + resolveEngineV2EconomyAndCurrency, +-} from "../../../src/engine/runtime/engineV2EconomyAndCurrency.js"; ++} from "../../../www/src/engine/runtime/engineV2EconomyAndCurrency.js"; + import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2EffectRuntime.test.mjs b/dev/tests/engine/EngineV2EffectRuntime.test.mjs +index de15e110b..ec66bc500 100644 +--- a/dev/tests/engine/EngineV2EffectRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2EffectRuntime.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_EFFECT_ERRORS, + processEngineV2Effects, +-} from "../../../src/engine/runtime/engineV2EffectRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2EffectRuntime.js"; + import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2EquipmentSystem.test.mjs b/dev/tests/engine/EngineV2EquipmentSystem.test.mjs +index ffaaa6dbb..67b2ae883 100644 +--- a/dev/tests/engine/EngineV2EquipmentSystem.test.mjs ++++ b/dev/tests/engine/EngineV2EquipmentSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_EQUIPMENT_ERRORS, + resolveEngineV2Equipment, +-} from "../../../src/engine/runtime/engineV2EquipmentSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2EquipmentSystem.js"; + import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2InteractionSystem.test.mjs b/dev/tests/engine/EngineV2InteractionSystem.test.mjs +index 8f4b4a8c4..366ab40ce 100644 +--- a/dev/tests/engine/EngineV2InteractionSystem.test.mjs ++++ b/dev/tests/engine/EngineV2InteractionSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_INTERACTION_ERRORS, + resolveEngineV2Interactions, +-} from "../../../src/engine/runtime/engineV2InteractionSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2InteractionSystem.js"; + import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2InventorySystem.test.mjs b/dev/tests/engine/EngineV2InventorySystem.test.mjs +index c2ca3f6c8..4b622d87d 100644 +--- a/dev/tests/engine/EngineV2InventorySystem.test.mjs ++++ b/dev/tests/engine/EngineV2InventorySystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_INVENTORY_ERRORS, + resolveEngineV2Inventory, +-} from "../../../src/engine/runtime/engineV2InventorySystem.js"; ++} from "../../../www/src/engine/runtime/engineV2InventorySystem.js"; + import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs b/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs +index 6b4e6aff1..d0ca274d7 100644 +--- a/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs ++++ b/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_ITEM_LOOT_ERRORS, + resolveEngineV2ItemAndLoot, +-} from "../../../src/engine/runtime/engineV2ItemAndLootSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2ItemAndLootSystem.js"; + import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ModifierStack.test.mjs b/dev/tests/engine/EngineV2ModifierStack.test.mjs +index 4af797d3c..e80dd0ab7 100644 +--- a/dev/tests/engine/EngineV2ModifierStack.test.mjs ++++ b/dev/tests/engine/EngineV2ModifierStack.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_MODIFIER_ERRORS, + resolveEngineV2ModifierStack, +-} from "../../../src/engine/runtime/engineV2ModifierStack.js"; ++} from "../../../www/src/engine/runtime/engineV2ModifierStack.js"; + import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs b/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs +index 2f29495f1..2e2e499ae 100644 +--- a/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs ++++ b/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_OBJECTIVE_ERRORS, + processEngineV2Objectives, +-} from "../../../src/engine/runtime/engineV2ObjectiveSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2ObjectiveSystem.js"; + import { createEngineV2PlayerRuntimeFixture } from "./EngineV2PlayerRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs b/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs +index 120e6e500..15baf0c77 100644 +--- a/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs ++++ b/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_PATHFINDING_ERRORS, + resolveEngineV2PathRequests, +-} from "../../../src/engine/runtime/engineV2PathfindingBaseline.js"; ++} from "../../../www/src/engine/runtime/engineV2PathfindingBaseline.js"; + import { createEngineV2AiBehaviorFixture } from "./EngineV2AiBehaviorFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2PatrolBehavior.test.mjs b/dev/tests/engine/EngineV2PatrolBehavior.test.mjs +index 73403faf8..758fa8d4b 100644 +--- a/dev/tests/engine/EngineV2PatrolBehavior.test.mjs ++++ b/dev/tests/engine/EngineV2PatrolBehavior.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_PATROL_ERRORS, + updateEngineV2PatrolBehaviors, +-} from "../../../src/engine/runtime/engineV2PatrolBehavior.js"; ++} from "../../../www/src/engine/runtime/engineV2PatrolBehavior.js"; + import { createEngineV2AiBehaviorFixture } from "./EngineV2AiBehaviorFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs b/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs +index 4fb75e969..31a3d4709 100644 +--- a/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs +@@ -9,8 +9,8 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_PERSISTENCE_ERRORS, + processEngineV2Persistence, +-} from "../../../src/engine/runtime/engineV2PersistenceRuntime.js"; +-import { createEngineV2SaveState } from "../../../src/engine/runtime/engineV2SaveStateModel.js"; ++} from "../../../www/src/engine/runtime/engineV2PersistenceRuntime.js"; ++import { createEngineV2SaveState } from "../../../www/src/engine/runtime/engineV2SaveStateModel.js"; + import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs b/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs +index aadc7456d..5887c29dd 100644 +--- a/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs ++++ b/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_PROFILE_ERRORS, + processEngineV2ProfileState, +-} from "../../../src/engine/runtime/engineV2ProfileStateSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2ProfileStateSystem.js"; + import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2ProjectileSystem.test.mjs b/dev/tests/engine/EngineV2ProjectileSystem.test.mjs +index d69e97543..4b55765c2 100644 +--- a/dev/tests/engine/EngineV2ProjectileSystem.test.mjs ++++ b/dev/tests/engine/EngineV2ProjectileSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_PROJECTILE_ERRORS, + resolveEngineV2Projectiles, +-} from "../../../src/engine/runtime/engineV2ProjectileSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2ProjectileSystem.js"; + import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2QuestSystem.test.mjs b/dev/tests/engine/EngineV2QuestSystem.test.mjs +index aba557962..e93d67bcb 100644 +--- a/dev/tests/engine/EngineV2QuestSystem.test.mjs ++++ b/dev/tests/engine/EngineV2QuestSystem.test.mjs +@@ -6,11 +6,11 @@ EngineV2QuestSystem.test.mjs + */ + + import assert from "node:assert/strict"; +-import { processEngineV2Objectives } from "../../../src/engine/runtime/engineV2ObjectiveSystem.js"; ++import { processEngineV2Objectives } from "../../../www/src/engine/runtime/engineV2ObjectiveSystem.js"; + import { + ENGINE_V2_QUEST_ERRORS, + processEngineV2Quests, +-} from "../../../src/engine/runtime/engineV2QuestSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2QuestSystem.js"; + import { createEngineV2PlayerRuntimeFixture } from "./EngineV2PlayerRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs b/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs +index cb323bd44..bf13ac352 100644 +--- a/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs ++++ b/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_SAVE_LOAD_ERRORS, + validateEngineV2SaveLoadFlow, +-} from "../../../src/engine/runtime/engineV2SaveLoadValidation.js"; ++} from "../../../www/src/engine/runtime/engineV2SaveLoadValidation.js"; + import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2SaveStateModel.test.mjs b/dev/tests/engine/EngineV2SaveStateModel.test.mjs +index c841ab327..ebe06169d 100644 +--- a/dev/tests/engine/EngineV2SaveStateModel.test.mjs ++++ b/dev/tests/engine/EngineV2SaveStateModel.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_SAVE_STATE_ERRORS, + createEngineV2SaveState, +-} from "../../../src/engine/runtime/engineV2SaveStateModel.js"; ++} from "../../../www/src/engine/runtime/engineV2SaveStateModel.js"; + import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs b/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs +index b7ca10b6a..0a20b50d4 100644 +--- a/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_STATE_MACHINE_ERRORS, + processEngineV2StateMachineRuntime, +-} from "../../../src/engine/runtime/engineV2StateMachineRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2StateMachineRuntime.js"; + import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs b/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs +index 86e2f4f60..00fe32fec 100644 +--- a/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs ++++ b/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_STATUS_EFFECT_ERRORS, + processEngineV2StatusEffects, +-} from "../../../src/engine/runtime/engineV2StatusEffectSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2StatusEffectSystem.js"; + import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2UiRuntime.test.mjs b/dev/tests/engine/EngineV2UiRuntime.test.mjs +index 1559c392c..e48a55b50 100644 +--- a/dev/tests/engine/EngineV2UiRuntime.test.mjs ++++ b/dev/tests/engine/EngineV2UiRuntime.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_UI_ERRORS, + resolveEngineV2GameUi, +-} from "../../../src/engine/runtime/engineV2UiRuntime.js"; ++} from "../../../www/src/engine/runtime/engineV2UiRuntime.js"; + import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2VendorSystem.test.mjs b/dev/tests/engine/EngineV2VendorSystem.test.mjs +index 33702705c..c7fec7c63 100644 +--- a/dev/tests/engine/EngineV2VendorSystem.test.mjs ++++ b/dev/tests/engine/EngineV2VendorSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_VENDOR_ERRORS, + resolveEngineV2Vendor, +-} from "../../../src/engine/runtime/engineV2VendorSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2VendorSystem.js"; + import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/EngineV2WeaponSystem.test.mjs b/dev/tests/engine/EngineV2WeaponSystem.test.mjs +index 9c12a91ba..88d100446 100644 +--- a/dev/tests/engine/EngineV2WeaponSystem.test.mjs ++++ b/dev/tests/engine/EngineV2WeaponSystem.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + ENGINE_V2_WEAPON_ERRORS, + resolveEngineV2Weapons, +-} from "../../../src/engine/runtime/engineV2WeaponSystem.js"; ++} from "../../../www/src/engine/runtime/engineV2WeaponSystem.js"; + import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs b/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs +index 263b14994..d655db451 100644 +--- a/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs ++++ b/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + FIRST_MANIFEST_DRIVEN_SCENE_ERRORS, + createFirstManifestDrivenPlayableScene, +-} from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; ++} from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/HitboxCollisionContract.test.mjs b/dev/tests/engine/HitboxCollisionContract.test.mjs +index 829e55b34..6d095bc45 100644 +--- a/dev/tests/engine/HitboxCollisionContract.test.mjs ++++ b/dev/tests/engine/HitboxCollisionContract.test.mjs +@@ -5,7 +5,7 @@ import { + collisionTime, + normalizeBoundingBox, + sweptAabb, +-} from "../../../src/engine/collision/hitboxCollision.js"; ++} from "../../../www/src/engine/collision/hitboxCollision.js"; + + export function run() { + const normalized = normalizeBoundingBox({ height: -8, width: 10, x: 5, y: 12 }); +diff --git a/dev/tests/engine/ManifestRuntimeParser.test.mjs b/dev/tests/engine/ManifestRuntimeParser.test.mjs +index 61108e018..f3810f680 100644 +--- a/dev/tests/engine/ManifestRuntimeParser.test.mjs ++++ b/dev/tests/engine/ManifestRuntimeParser.test.mjs +@@ -9,7 +9,7 @@ import { + MANIFEST_RUNTIME_PARSER_ERRORS, + MANIFEST_RUNTIME_SCHEMA, + parseManifestRuntimePayload, +-} from "../../../src/engine/runtime/manifestRuntimeParser.js"; ++} from "../../../www/src/engine/runtime/manifestRuntimeParser.js"; + + export function createValidManifestRuntimePayload() { + return { +diff --git a/dev/tests/engine/ObjectDefinitionReader.test.mjs b/dev/tests/engine/ObjectDefinitionReader.test.mjs +index a66524a72..9743c450e 100644 +--- a/dev/tests/engine/ObjectDefinitionReader.test.mjs ++++ b/dev/tests/engine/ObjectDefinitionReader.test.mjs +@@ -11,7 +11,7 @@ import { + RUNTIME_OBJECT_TYPES, + isRuntimeObjectType, + readManifestObjectDefinitions, +-} from "../../../src/engine/runtime/objectDefinitionReader.js"; ++} from "../../../www/src/engine/runtime/objectDefinitionReader.js"; + + export function createObjectDefinitionManifest() { + return { +diff --git a/dev/tests/engine/ObjectModelContract.test.mjs b/dev/tests/engine/ObjectModelContract.test.mjs +index 874622cc6..ea0dac9cc 100644 +--- a/dev/tests/engine/ObjectModelContract.test.mjs ++++ b/dev/tests/engine/ObjectModelContract.test.mjs +@@ -14,7 +14,7 @@ import { + getObjectModelType, + validateObjectDefinition, + validateObjectDefinitionList, +-} from "../../../src/engine/object-model/index.js"; ++} from "../../../www/src/engine/object-model/index.js"; + + export function run() { + assert.deepEqual(OBJECT_MODEL_TYPE_LIST.map((objectType) => objectType.id), [ +diff --git a/dev/tests/engine/RuleDefinitionReader.test.mjs b/dev/tests/engine/RuleDefinitionReader.test.mjs +index 37198e78e..4321e9d76 100644 +--- a/dev/tests/engine/RuleDefinitionReader.test.mjs ++++ b/dev/tests/engine/RuleDefinitionReader.test.mjs +@@ -11,7 +11,7 @@ import { + RUNTIME_RULE_TYPES, + isRuntimeRuleType, + readManifestRuleDefinitions, +-} from "../../../src/engine/runtime/ruleDefinitionReader.js"; ++} from "../../../www/src/engine/runtime/ruleDefinitionReader.js"; + + export function createRuleDefinitionManifest() { + return { +diff --git a/dev/tests/engine/RuntimeActionSystem.test.mjs b/dev/tests/engine/RuntimeActionSystem.test.mjs +index eb71bef3d..6ea6c14ce 100644 +--- a/dev/tests/engine/RuntimeActionSystem.test.mjs ++++ b/dev/tests/engine/RuntimeActionSystem.test.mjs +@@ -6,13 +6,13 @@ RuntimeActionSystem.test.mjs + */ + + import assert from "node:assert/strict"; +-import { evaluateRuntimeConditions } from "../../../src/engine/runtime/runtimeConditionSystem.js"; +-import { publishRuntimeEvents } from "../../../src/engine/runtime/runtimeEventSystem.js"; ++import { evaluateRuntimeConditions } from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; ++import { publishRuntimeEvents } from "../../../www/src/engine/runtime/runtimeEventSystem.js"; + import { + RUNTIME_ACTION_ERRORS, + readManifestActionDefinitions, + resolveRuntimeActions, +-} from "../../../src/engine/runtime/runtimeActionSystem.js"; ++} from "../../../www/src/engine/runtime/runtimeActionSystem.js"; + import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeBehaviorComposition.test.mjs b/dev/tests/engine/RuntimeBehaviorComposition.test.mjs +index a9500251d..08e1d7d73 100644 +--- a/dev/tests/engine/RuntimeBehaviorComposition.test.mjs ++++ b/dev/tests/engine/RuntimeBehaviorComposition.test.mjs +@@ -8,12 +8,12 @@ import assert from "node:assert/strict"; + import { + RUNTIME_BEHAVIOR_COMPOSITION_ERRORS, + composeRuntimeBehavior, +-} from "../../../src/engine/runtime/runtimeBehaviorComposition.js"; +-import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; +-import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +-import { instantiateEnvironmentForces } from "../../../src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; +-import { instantiateRuntimeObjects } from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; +-import { instantiateTerrainMaterials } from "../../../src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; ++} from "../../../www/src/engine/runtime/runtimeBehaviorComposition.js"; ++import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; ++import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; ++import { instantiateEnvironmentForces } from "../../../www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; ++import { instantiateRuntimeObjects } from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; ++import { instantiateTerrainMaterials } from "../../../www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeCollisionProcessing.test.mjs b/dev/tests/engine/RuntimeCollisionProcessing.test.mjs +index 4e8517435..ff673343a 100644 +--- a/dev/tests/engine/RuntimeCollisionProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeCollisionProcessing.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_COLLISION_ERRORS, + processRuntimeCollisions, +-} from "../../../src/engine/runtime/runtimeCollisionProcessing.js"; ++} from "../../../www/src/engine/runtime/runtimeCollisionProcessing.js"; + + export function run() { + const terrainTiles = [ +diff --git a/dev/tests/engine/RuntimeConditionSystem.test.mjs b/dev/tests/engine/RuntimeConditionSystem.test.mjs +index 9def5948d..db313a89a 100644 +--- a/dev/tests/engine/RuntimeConditionSystem.test.mjs ++++ b/dev/tests/engine/RuntimeConditionSystem.test.mjs +@@ -10,7 +10,7 @@ import { + RUNTIME_CONDITION_ERRORS, + evaluateRuntimeConditions, + readManifestConditionDefinitions, +-} from "../../../src/engine/runtime/runtimeConditionSystem.js"; ++} from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; + import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeCooldownProcessing.test.mjs b/dev/tests/engine/RuntimeCooldownProcessing.test.mjs +index 3bd52c936..a89d79141 100644 +--- a/dev/tests/engine/RuntimeCooldownProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeCooldownProcessing.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_COOLDOWN_ERRORS, + processRuntimeCooldowns, +-} from "../../../src/engine/runtime/runtimeCooldownProcessing.js"; ++} from "../../../www/src/engine/runtime/runtimeCooldownProcessing.js"; + import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeDamageProcessing.test.mjs b/dev/tests/engine/RuntimeDamageProcessing.test.mjs +index 9f84cce68..d043562d7 100644 +--- a/dev/tests/engine/RuntimeDamageProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeDamageProcessing.test.mjs +@@ -6,11 +6,11 @@ RuntimeDamageProcessing.test.mjs + */ + + import assert from "node:assert/strict"; +-import { createRuntimeHealthRecords } from "../../../src/engine/runtime/runtimeHealthModel.js"; ++import { createRuntimeHealthRecords } from "../../../www/src/engine/runtime/runtimeHealthModel.js"; + import { + RUNTIME_DAMAGE_ERRORS, + processRuntimeDamage, +-} from "../../../src/engine/runtime/runtimeDamageProcessing.js"; ++} from "../../../www/src/engine/runtime/runtimeDamageProcessing.js"; + import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeDeterminismValidation.test.mjs b/dev/tests/engine/RuntimeDeterminismValidation.test.mjs +index 8c7f94121..fa086a78c 100644 +--- a/dev/tests/engine/RuntimeDeterminismValidation.test.mjs ++++ b/dev/tests/engine/RuntimeDeterminismValidation.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + RuntimeDeterminismValidation.test.mjs + */ + import assert from "node:assert/strict"; +-import { createFirstManifestDrivenPlayableScene } from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; ++import { createFirstManifestDrivenPlayableScene } from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs b/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs +index b6e001bd4..871a9fa40 100644 +--- a/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs ++++ b/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_ENVIRONMENT_EFFECT_ERRORS, + applyRuntimeEnvironmentEffects, +-} from "../../../src/engine/runtime/runtimeEnvironmentEffects.js"; ++} from "../../../www/src/engine/runtime/runtimeEnvironmentEffects.js"; + + export function run() { + const runtimeObjects = [ +diff --git a/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs b/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs +index 92b48bf5a..f6db4f2fb 100644 +--- a/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs ++++ b/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_ENVIRONMENT_FORCE_ERRORS, + instantiateEnvironmentForces, +-} from "../../../src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; ++} from "../../../www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeErrorReporting.test.mjs b/dev/tests/engine/RuntimeErrorReporting.test.mjs +index 7cce56505..4a3db8dbc 100644 +--- a/dev/tests/engine/RuntimeErrorReporting.test.mjs ++++ b/dev/tests/engine/RuntimeErrorReporting.test.mjs +@@ -9,7 +9,7 @@ import { + RUNTIME_ERROR_REPORTING_ERRORS, + RUNTIME_ERROR_REPORT_STAGE_LIST, + createRuntimeErrorReport, +-} from "../../../src/engine/runtime/runtimeErrorReporting.js"; ++} from "../../../www/src/engine/runtime/runtimeErrorReporting.js"; + + export function run() { + RUNTIME_ERROR_REPORT_STAGE_LIST.forEach((stage) => { +diff --git a/dev/tests/engine/RuntimeEventSystem.test.mjs b/dev/tests/engine/RuntimeEventSystem.test.mjs +index e047b1ab5..a1fdf1d8a 100644 +--- a/dev/tests/engine/RuntimeEventSystem.test.mjs ++++ b/dev/tests/engine/RuntimeEventSystem.test.mjs +@@ -6,11 +6,11 @@ RuntimeEventSystem.test.mjs + */ + + import assert from "node:assert/strict"; +-import { evaluateRuntimeConditions } from "../../../src/engine/runtime/runtimeConditionSystem.js"; ++import { evaluateRuntimeConditions } from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; + import { + RUNTIME_EVENT_ERRORS, + publishRuntimeEvents, +-} from "../../../src/engine/runtime/runtimeEventSystem.js"; ++} from "../../../www/src/engine/runtime/runtimeEventSystem.js"; + import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeHealthModel.test.mjs b/dev/tests/engine/RuntimeHealthModel.test.mjs +index 1fd73a459..4cdc446b2 100644 +--- a/dev/tests/engine/RuntimeHealthModel.test.mjs ++++ b/dev/tests/engine/RuntimeHealthModel.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_HEALTH_ERRORS, + createRuntimeHealthRecords, +-} from "../../../src/engine/runtime/runtimeHealthModel.js"; ++} from "../../../www/src/engine/runtime/runtimeHealthModel.js"; + import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeInputPipeline.test.mjs b/dev/tests/engine/RuntimeInputPipeline.test.mjs +index c24069a71..c5ace7d97 100644 +--- a/dev/tests/engine/RuntimeInputPipeline.test.mjs ++++ b/dev/tests/engine/RuntimeInputPipeline.test.mjs +@@ -9,7 +9,7 @@ import { + RUNTIME_INPUT_PIPELINE_ERRORS, + createRuntimeInputPipeline, + resolveRuntimeInputActions, +-} from "../../../src/engine/runtime/runtimeInputPipeline.js"; ++} from "../../../www/src/engine/runtime/runtimeInputPipeline.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs b/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs +index 73deb78a3..01905c12a 100644 +--- a/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs ++++ b/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_LIVES_RESPAWN_ERRORS, + processRuntimeLivesAndRespawn, +-} from "../../../src/engine/runtime/runtimeLivesAndRespawn.js"; ++} from "../../../www/src/engine/runtime/runtimeLivesAndRespawn.js"; + import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeLoaderValidation.test.mjs b/dev/tests/engine/RuntimeLoaderValidation.test.mjs +index 6df3243ee..e65980372 100644 +--- a/dev/tests/engine/RuntimeLoaderValidation.test.mjs ++++ b/dev/tests/engine/RuntimeLoaderValidation.test.mjs +@@ -8,15 +8,15 @@ import assert from "node:assert/strict"; + import { + MANIFEST_RUNTIME_PARSER_ERRORS, + parseManifestRuntimePayload, +-} from "../../../src/engine/runtime/manifestRuntimeParser.js"; ++} from "../../../www/src/engine/runtime/manifestRuntimeParser.js"; + import { + OBJECT_DEFINITION_READER_ERRORS, + readManifestObjectDefinitions, +-} from "../../../src/engine/runtime/objectDefinitionReader.js"; ++} from "../../../www/src/engine/runtime/objectDefinitionReader.js"; + import { + RULE_DEFINITION_READER_ERRORS, + readManifestRuleDefinitions, +-} from "../../../src/engine/runtime/ruleDefinitionReader.js"; ++} from "../../../www/src/engine/runtime/ruleDefinitionReader.js"; + import { createValidManifestRuntimePayload } from "./ManifestRuntimeParser.test.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs b/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs +index 749e64973..5ccf00459 100644 +--- a/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs ++++ b/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs +@@ -5,11 +5,11 @@ David Quesenberry + RuntimeManifestFixtureHardening.test.mjs + */ + import assert from "node:assert/strict"; +-import { createFirstManifestDrivenPlayableScene } from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; +-import { parseManifestRuntimePayload } from "../../../src/engine/runtime/manifestRuntimeParser.js"; +-import { createRuntimeInputPipeline } from "../../../src/engine/runtime/runtimeInputPipeline.js"; +-import { instantiateEnvironmentForces } from "../../../src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; +-import { instantiateTerrainMaterials } from "../../../src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; ++import { createFirstManifestDrivenPlayableScene } from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; ++import { parseManifestRuntimePayload } from "../../../www/src/engine/runtime/manifestRuntimeParser.js"; ++import { createRuntimeInputPipeline } from "../../../www/src/engine/runtime/runtimeInputPipeline.js"; ++import { instantiateEnvironmentForces } from "../../../www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; ++import { instantiateTerrainMaterials } from "../../../www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; + import { + createInvalidEngineFixtures, + createValidEngineFixture, +diff --git a/dev/tests/engine/RuntimeMovementProcessing.test.mjs b/dev/tests/engine/RuntimeMovementProcessing.test.mjs +index fd0d42775..26bd8922b 100644 +--- a/dev/tests/engine/RuntimeMovementProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeMovementProcessing.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_MOVEMENT_ERRORS, + processRuntimeMovement, +-} from "../../../src/engine/runtime/runtimeMovementProcessing.js"; ++} from "../../../www/src/engine/runtime/runtimeMovementProcessing.js"; + + export function run() { + const runtimeObjects = [ +diff --git a/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs b/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs +index c0dd56283..67f8b22cd 100644 +--- a/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs ++++ b/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs +@@ -10,7 +10,7 @@ import { + createRuntimeSceneRegistry, + loadRuntimeScene, + validateRuntimeSceneTransition, +-} from "../../../src/engine/runtime/runtimeMultiSceneLoading.js"; ++} from "../../../www/src/engine/runtime/runtimeMultiSceneLoading.js"; + import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs b/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs +index d888b5e43..9458ce13e 100644 +--- a/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs ++++ b/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs +@@ -9,7 +9,7 @@ import { + RUNTIME_OBJECT_RECORD_FACTORY_ERRORS, + RUNTIME_OBJECT_RECORD_FORBIDDEN_DEFAULT_FIELDS, + createRuntimeObjectRecord, +-} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; ++} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; + + export function run() { + assertErrorCodes( +diff --git a/dev/tests/engine/RuntimeObjectInstantiation.test.mjs b/dev/tests/engine/RuntimeObjectInstantiation.test.mjs +index 2a0f81bbf..78e14ff12 100644 +--- a/dev/tests/engine/RuntimeObjectInstantiation.test.mjs ++++ b/dev/tests/engine/RuntimeObjectInstantiation.test.mjs +@@ -8,9 +8,9 @@ import assert from "node:assert/strict"; + import { + RUNTIME_OBJECT_INSTANTIATION_ERRORS, + instantiateRuntimeObjects, +-} from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; +-import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; +-import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; ++} from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; ++import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; ++import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs b/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs +index 55f1536ad..08345d276 100644 +--- a/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs ++++ b/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs +@@ -5,13 +5,13 @@ David Quesenberry + RuntimeObjectRecordFactory.test.mjs + */ + import assert from "node:assert/strict"; +-import { RUNTIME_OBJECT_TYPE_LIST, readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; ++import { RUNTIME_OBJECT_TYPE_LIST, readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; + import { + RUNTIME_OBJECT_RECORD_FORBIDDEN_DEFAULT_FIELDS, + createRuntimeObjectRecord, + createRuntimeObjectRecords, + validateRuntimeObjectRecord, +-} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; ++} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; + import { createObjectDefinitionManifest } from "./ObjectDefinitionReader.test.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs b/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs +index a552aeb07..252e01520 100644 +--- a/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs ++++ b/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs +@@ -9,7 +9,7 @@ import { + RUNTIME_OBJECT_RECORD_FACTORY_ERRORS, + createRuntimeObjectRecord, + validateRuntimeObjectRecord, +-} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; ++} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; + + export function run() { + const manifestDefinition = Object.freeze({ +diff --git a/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs b/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs +index 2c8289313..5cc3ad76d 100644 +--- a/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs ++++ b/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs +@@ -5,12 +5,12 @@ David Quesenberry + RuntimeObjectTypeValidation.test.mjs + */ + import assert from "node:assert/strict"; +-import { RUNTIME_OBJECT_TYPE_LIST } from "../../../src/engine/runtime/objectDefinitionReader.js"; ++import { RUNTIME_OBJECT_TYPE_LIST } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; + import { + RUNTIME_OBJECT_RECORD_FACTORY_ERRORS, + createRuntimeObjectRecord, + isRuntimeObjectRecordType, +-} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; ++} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; + + export function run() { + RUNTIME_OBJECT_TYPE_LIST.forEach((objectType) => { +diff --git a/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs b/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs +index 23d7dbd4e..3dcdcb8cf 100644 +--- a/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs +@@ -9,7 +9,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_OUTCOME_ERRORS, + evaluateRuntimeOutcomes, +-} from "../../../src/engine/runtime/runtimeOutcomeProcessing.js"; ++} from "../../../www/src/engine/runtime/runtimeOutcomeProcessing.js"; + import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimePlayableLoop.test.mjs b/dev/tests/engine/RuntimePlayableLoop.test.mjs +index ee1c8ef48..02096c6e2 100644 +--- a/dev/tests/engine/RuntimePlayableLoop.test.mjs ++++ b/dev/tests/engine/RuntimePlayableLoop.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + RuntimePlayableLoop.test.mjs + */ + import assert from "node:assert/strict"; +-import { runRuntimePlayableFrame } from "../../../src/engine/runtime/runtimePlayableLoop.js"; ++import { runRuntimePlayableFrame } from "../../../www/src/engine/runtime/runtimePlayableLoop.js"; + + export function run() { + const world = Object.freeze({ +diff --git a/dev/tests/engine/RuntimePlayableSceneUat.test.mjs b/dev/tests/engine/RuntimePlayableSceneUat.test.mjs +index 54a9d3157..3277cfa95 100644 +--- a/dev/tests/engine/RuntimePlayableSceneUat.test.mjs ++++ b/dev/tests/engine/RuntimePlayableSceneUat.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + RuntimePlayableSceneUat.test.mjs + */ + import assert from "node:assert/strict"; +-import { createFirstManifestDrivenPlayableScene } from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; ++import { createFirstManifestDrivenPlayableScene } from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; + import { + createInvalidEngineFixtures, + createValidEngineFixture, +diff --git a/dev/tests/engine/RuntimeRenderPipeline.test.mjs b/dev/tests/engine/RuntimeRenderPipeline.test.mjs +index c822845ef..0f289c864 100644 +--- a/dev/tests/engine/RuntimeRenderPipeline.test.mjs ++++ b/dev/tests/engine/RuntimeRenderPipeline.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_RENDER_PIPELINE_ERRORS, + renderRuntimeFrame, +-} from "../../../src/engine/runtime/runtimeRenderPipeline.js"; ++} from "../../../www/src/engine/runtime/runtimeRenderPipeline.js"; + + export function run() { + const renderState = Object.freeze({ +diff --git a/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs b/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs +index 9762989c6..7510dd205 100644 +--- a/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs ++++ b/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_RENDERING_BOOTSTRAP_ERRORS, + createRuntimeRenderingBootstrap, +-} from "../../../src/engine/runtime/runtimeRenderingBootstrap.js"; ++} from "../../../www/src/engine/runtime/runtimeRenderingBootstrap.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeRuleAttachment.test.mjs b/dev/tests/engine/RuntimeRuleAttachment.test.mjs +index c1c9cd7f5..20b8d2838 100644 +--- a/dev/tests/engine/RuntimeRuleAttachment.test.mjs ++++ b/dev/tests/engine/RuntimeRuleAttachment.test.mjs +@@ -8,11 +8,11 @@ import assert from "node:assert/strict"; + import { + RUNTIME_RULE_ATTACHMENT_ERRORS, + attachRuntimeRules, +-} from "../../../src/engine/runtime/runtimeRuleAttachment.js"; +-import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; +-import { readManifestRuleDefinitions } from "../../../src/engine/runtime/ruleDefinitionReader.js"; +-import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +-import { instantiateRuntimeObjects } from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; ++} from "../../../www/src/engine/runtime/runtimeRuleAttachment.js"; ++import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; ++import { readManifestRuleDefinitions } from "../../../www/src/engine/runtime/ruleDefinitionReader.js"; ++import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; ++import { instantiateRuntimeObjects } from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs b/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs +index 95d68e7dd..ab5ee5d35 100644 +--- a/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs ++++ b/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_SCENE_DEFINITION_ERRORS, + readManifestSceneDefinitions, +-} from "../../../src/engine/runtime/runtimeSceneDefinitionSupport.js"; ++} from "../../../www/src/engine/runtime/runtimeSceneDefinitionSupport.js"; + import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs b/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs +index 76fa48ef3..ef66a3ebd 100644 +--- a/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs +@@ -8,8 +8,8 @@ import assert from "node:assert/strict"; + import { + RUNTIME_SCORING_STATE_ERRORS, + processRuntimeScoringAndState, +-} from "../../../src/engine/runtime/runtimeScoringAndStateProcessing.js"; +-import { readManifestSceneDefinitions } from "../../../src/engine/runtime/runtimeSceneDefinitionSupport.js"; ++} from "../../../www/src/engine/runtime/runtimeScoringAndStateProcessing.js"; ++import { readManifestSceneDefinitions } from "../../../www/src/engine/runtime/runtimeSceneDefinitionSupport.js"; + import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs b/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs +index d2a60d929..5283f361d 100644 +--- a/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs +@@ -5,14 +5,14 @@ David Quesenberry + RuntimeSpawnDespawnProcessing.test.mjs + */ + import assert from "node:assert/strict"; +-import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; +-import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +-import { instantiateRuntimeObjects } from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; ++import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; ++import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; ++import { instantiateRuntimeObjects } from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; + import { + RUNTIME_SPAWN_DESPAWN_ERRORS, + processRuntimeSpawnDespawn, +-} from "../../../src/engine/runtime/runtimeSpawnDespawnProcessing.js"; +-import { readManifestSceneDefinitions } from "../../../src/engine/runtime/runtimeSceneDefinitionSupport.js"; ++} from "../../../www/src/engine/runtime/runtimeSpawnDespawnProcessing.js"; ++import { readManifestSceneDefinitions } from "../../../www/src/engine/runtime/runtimeSceneDefinitionSupport.js"; + import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeTerrainEffects.test.mjs b/dev/tests/engine/RuntimeTerrainEffects.test.mjs +index 108eb451a..e608bf334 100644 +--- a/dev/tests/engine/RuntimeTerrainEffects.test.mjs ++++ b/dev/tests/engine/RuntimeTerrainEffects.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_TERRAIN_EFFECT_ERRORS, + applyRuntimeTerrainEffects, +-} from "../../../src/engine/runtime/runtimeTerrainEffects.js"; ++} from "../../../www/src/engine/runtime/runtimeTerrainEffects.js"; + + export function run() { + const runtimeObjects = [ +diff --git a/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs b/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs +index 35e700597..e4536c26d 100644 +--- a/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs ++++ b/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs +@@ -8,7 +8,7 @@ import assert from "node:assert/strict"; + import { + RUNTIME_TERRAIN_MATERIAL_ERRORS, + instantiateTerrainMaterials, +-} from "../../../src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; ++} from "../../../www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; + import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/RuntimeTickLoop.test.mjs b/dev/tests/engine/RuntimeTickLoop.test.mjs +index 3664ca702..b91ad2157 100644 +--- a/dev/tests/engine/RuntimeTickLoop.test.mjs ++++ b/dev/tests/engine/RuntimeTickLoop.test.mjs +@@ -9,7 +9,7 @@ import { + RUNTIME_TICK_LOOP_ERRORS, + advanceRuntimeTick, + createRuntimeTickLoop, +-} from "../../../src/engine/runtime/runtimeTickLoop.js"; ++} from "../../../www/src/engine/runtime/runtimeTickLoop.js"; + + export function run() { + const startResult = createRuntimeTickLoop({ fixedDeltaMs: 100 }); +diff --git a/dev/tests/engine/RuntimeTriggerProcessing.test.mjs b/dev/tests/engine/RuntimeTriggerProcessing.test.mjs +index 9b8996f8d..8bf06b86c 100644 +--- a/dev/tests/engine/RuntimeTriggerProcessing.test.mjs ++++ b/dev/tests/engine/RuntimeTriggerProcessing.test.mjs +@@ -6,11 +6,11 @@ RuntimeTriggerProcessing.test.mjs + */ + + import assert from "node:assert/strict"; +-import { RUNTIME_CONDITION_ERRORS } from "../../../src/engine/runtime/runtimeConditionSystem.js"; ++import { RUNTIME_CONDITION_ERRORS } from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; + import { + RUNTIME_TRIGGER_PROCESSING_ERRORS, + processRuntimeTriggers, +-} from "../../../src/engine/runtime/runtimeTriggerProcessing.js"; ++} from "../../../www/src/engine/runtime/runtimeTriggerProcessing.js"; + import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; + + export function run() { +diff --git a/dev/tests/engine/core/FixedTicker.test.mjs b/dev/tests/engine/core/FixedTicker.test.mjs +index 566633c2e..9b9859c8d 100644 +--- a/dev/tests/engine/core/FixedTicker.test.mjs ++++ b/dev/tests/engine/core/FixedTicker.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + FixedTicker.test.mjs + */ + import assert from "node:assert/strict"; +-import FixedTicker from "../../../../src/engine/core/FixedTicker.js"; ++import FixedTicker from "../../../../www/src/engine/core/FixedTicker.js"; + + export function run() { + const ticker = new FixedTicker({ stepMs: 10, maxCatchUpSteps: 3 }); +diff --git a/dev/tests/engine/core/FrameClock.test.mjs b/dev/tests/engine/core/FrameClock.test.mjs +index cdb1c68b6..a51d771a2 100644 +--- a/dev/tests/engine/core/FrameClock.test.mjs ++++ b/dev/tests/engine/core/FrameClock.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + FrameClock.test.mjs + */ + import assert from "node:assert/strict"; +-import FrameClock from "../../../../src/engine/core/FrameClock.js"; ++import FrameClock from "../../../../www/src/engine/core/FrameClock.js"; + + export function run() { + const clock = new FrameClock({ maxDeltaMs: 50 }); +diff --git a/dev/tests/engine/core/RuntimeMetrics.test.mjs b/dev/tests/engine/core/RuntimeMetrics.test.mjs +index be882226e..22723b684 100644 +--- a/dev/tests/engine/core/RuntimeMetrics.test.mjs ++++ b/dev/tests/engine/core/RuntimeMetrics.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + RuntimeMetrics.test.mjs + */ + import assert from 'node:assert/strict'; +-import RuntimeMetrics from '../../../../src/engine/core/RuntimeMetrics.js'; ++import RuntimeMetrics from '../../../../www/src/engine/core/RuntimeMetrics.js'; + + export function run() { + const metrics = new RuntimeMetrics({ sampleWindowSeconds: 0.25 }); +diff --git a/dev/tests/entity/Entity.test.mjs b/dev/tests/entity/Entity.test.mjs +index 9893e5353..4b3376bf2 100644 +--- a/dev/tests/entity/Entity.test.mjs ++++ b/dev/tests/entity/Entity.test.mjs +@@ -4,10 +4,10 @@ David Quesenberry + 03/21/2026 + Entity.test.mjs + */ +-import Entity from '../../../src/engine/entity/Entity.js'; +-import Transform from '../../../src/engine/entity/Transform.js'; +-import Velocity from '../../../src/engine/entity/Velocity.js'; +-import Bounds from '../../../src/engine/entity/Bounds.js'; ++import Entity from '../../../www/src/engine/entity/Entity.js'; ++import Transform from '../../../www/src/engine/entity/Transform.js'; ++import Velocity from '../../../www/src/engine/entity/Velocity.js'; ++import Bounds from '../../../www/src/engine/entity/Bounds.js'; + + function assert(condition, message) { + if (!condition) { +diff --git a/dev/tests/events/EventBus.test.mjs b/dev/tests/events/EventBus.test.mjs +index 17b48393d..2fc8595e7 100644 +--- a/dev/tests/events/EventBus.test.mjs ++++ b/dev/tests/events/EventBus.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + EventBus.test.mjs + */ + import assert from 'node:assert/strict'; +-import EventBus from '../../../src/engine/events/EventBus.js'; ++import EventBus from '../../../www/src/engine/events/EventBus.js'; + + export function run() { + const bus = new EventBus(); +diff --git a/dev/tests/events/EventBusNaming.test.mjs b/dev/tests/events/EventBusNaming.test.mjs +index f11de2e90..6636b45c4 100644 +--- a/dev/tests/events/EventBusNaming.test.mjs ++++ b/dev/tests/events/EventBusNaming.test.mjs +@@ -6,8 +6,8 @@ + */ + import assert from 'node:assert/strict'; + import { readdirSync, readFileSync } from 'node:fs'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import EventBus from '../../../src/engine/events/EventBus.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import EventBus from '../../../www/src/engine/events/EventBus.js'; + + function createCanvas() { + const canvas = { +@@ -66,13 +66,13 @@ function createEngine(overrides = {}) { + } + + export function run() { +- const eventFiles = readdirSync(new URL('../../../src/engine/events/', import.meta.url)); ++ const eventFiles = readdirSync(new URL('../../../www/src/engine/events/', import.meta.url)); + assert.equal(eventFiles.includes('EventBus.js'), true); + assert.equal(eventFiles.includes('eventBus.js'), false); + + [ +- '../../../src/engine/core/Engine.js', +- '../../../src/engine/events/index.js', ++ '../../../www/src/engine/core/Engine.js', ++ '../../../www/src/engine/events/EventBus.js', + '../../tests/events/EventBus.test.mjs', + '../../tests/world/WorldSystems.test.mjs', + ].forEach((relativePath) => { +diff --git a/dev/tests/final/DebugObservabilityMaturity.test.mjs b/dev/tests/final/DebugObservabilityMaturity.test.mjs +index bb5d207ed..ae47d0198 100644 +--- a/dev/tests/final/DebugObservabilityMaturity.test.mjs ++++ b/dev/tests/final/DebugObservabilityMaturity.test.mjs +@@ -5,12 +5,12 @@ David Quesenberry + DebugObservabilityMaturity.test.mjs + */ + import assert from "node:assert/strict"; +-import { drawPerformanceMetricsPanel } from "../../../src/engine/debug/PerformanceMetricsPanel.js"; +-import { create3dCollisionOverlaysPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; +-import { createCollisionOverlaysProvider } from '../../../src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; +-import { createAdvancedInspectorDebugPluginDefinition } from '../../../src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js'; +-import { createNetworkObservabilityPanels } from '../../../src/engine/debug/network/panels/networkObservabilityPanels.js'; +-import { drawActionInputDebugOverlay } from "../../../src/engine/input/ActionInputDebugOverlay.js"; ++import { drawPerformanceMetricsPanel } from "../../../www/src/engine/debug/PerformanceMetricsPanel.js"; ++import { create3dCollisionOverlaysPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; ++import { createCollisionOverlaysProvider } from '../../../www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; ++import { createAdvancedInspectorDebugPluginDefinition } from '../../../www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js'; ++import { createNetworkObservabilityPanels } from '../../../www/src/engine/debug/network/panels/networkObservabilityPanels.js'; ++import { drawActionInputDebugOverlay } from "../../../www/src/engine/input/ActionInputDebugOverlay.js"; + + function createRendererProbe() { + const texts = []; +diff --git a/dev/tests/final/DeveloperToolingSystems.test.mjs b/dev/tests/final/DeveloperToolingSystems.test.mjs +index ee0daefa4..d83ffb625 100644 +--- a/dev/tests/final/DeveloperToolingSystems.test.mjs ++++ b/dev/tests/final/DeveloperToolingSystems.test.mjs +@@ -5,12 +5,12 @@ David Quesenberry + DeveloperToolingSystems.test.mjs + */ + import assert from 'node:assert/strict'; +-import AssetBrowser from '../../../src/shared/toolbox/tooling/AssetBrowser.js'; +-import DeveloperConsole from '../../../src/shared/toolbox/tooling/DeveloperConsole.js'; +-import LiveTuningService from '../../../src/shared/toolbox/tooling/LiveTuningService.js'; +-import PropertyEditor from '../../../src/shared/toolbox/tooling/PropertyEditor.js'; +-import RuntimeInspector from '../../../src/shared/toolbox/tooling/RuntimeInspector.js'; +-import SceneGraphViewer from '../../../src/shared/toolbox/tooling/SceneGraphViewer.js'; ++import AssetBrowser from '../../../www/src/shared/toolbox/tooling/AssetBrowser.js'; ++import DeveloperConsole from '../../../www/src/shared/toolbox/tooling/DeveloperConsole.js'; ++import LiveTuningService from '../../../www/src/shared/toolbox/tooling/LiveTuningService.js'; ++import PropertyEditor from '../../../www/src/shared/toolbox/tooling/PropertyEditor.js'; ++import RuntimeInspector from '../../../www/src/shared/toolbox/tooling/RuntimeInspector.js'; ++import SceneGraphViewer from '../../../www/src/shared/toolbox/tooling/SceneGraphViewer.js'; + + export async function run() { + const consoleTool = new DeveloperConsole(); +diff --git a/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs b/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs +index 86ddff44c..df41b1e8a 100644 +--- a/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs ++++ b/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs +@@ -5,24 +5,24 @@ David Quesenberry + EditorAutomationSecurityPipeline.test.mjs + */ + import assert from 'node:assert/strict'; +-import LevelEditor from '../../../src/shared/toolbox/editor/LevelEditor.js'; +-import TileMapEditor from '../../../src/shared/toolbox/editor/TileMapEditor.js'; +-import EntityPlacementEditor from '../../../src/shared/toolbox/editor/EntityPlacementEditor.js'; +-import TimelineEditor from '../../../src/shared/toolbox/editor/TimelineEditor.js'; +-import AutomatedTestRunner from '../../../src/engine/automation/AutomatedTestRunner.js'; +-import RegressionPlaybackHarness from '../../../src/engine/automation/RegressionPlaybackHarness.js'; +-import BenchmarkRunner from '../../../src/engine/automation/BenchmarkRunner.js'; +-import CIValidationFlow from '../../../src/engine/automation/CIValidationFlow.js'; +-import PacketValidator from '../../../src/engine/security/PacketValidator.js'; +-import DataIntegrityService from '../../../src/engine/security/DataIntegrityService.js'; +-import PermissionGate from '../../../src/engine/security/PermissionGate.js'; +-import SessionTrustValidator from '../../../src/engine/security/SessionTrustValidator.js'; +-import AssetImportPipeline from '../../../src/shared/toolbox/pipeline/AssetImportPipeline.js'; +-import TexturePreprocessPipeline from '../../../src/shared/toolbox/pipeline/TexturePreprocessPipeline.js'; +-import AudioPreprocessPipeline from '../../../src/shared/toolbox/pipeline/AudioPreprocessPipeline.js'; +-import ContentMigrationSystem from '../../../src/shared/toolbox/pipeline/ContentMigrationSystem.js'; +-import BuildAssetManifestSystem from '../../../src/shared/toolbox/pipeline/BuildAssetManifestSystem.js'; +-import ContentValidationPipeline from '../../../src/shared/toolbox/pipeline/ContentValidationPipeline.js'; ++import LevelEditor from '../../../www/src/shared/toolbox/editor/LevelEditor.js'; ++import TileMapEditor from '../../../www/src/shared/toolbox/editor/TileMapEditor.js'; ++import EntityPlacementEditor from '../../../www/src/shared/toolbox/editor/EntityPlacementEditor.js'; ++import TimelineEditor from '../../../www/src/shared/toolbox/editor/TimelineEditor.js'; ++import AutomatedTestRunner from '../../../www/src/engine/automation/AutomatedTestRunner.js'; ++import RegressionPlaybackHarness from '../../../www/src/engine/automation/RegressionPlaybackHarness.js'; ++import BenchmarkRunner from '../../../www/src/engine/automation/BenchmarkRunner.js'; ++import CIValidationFlow from '../../../www/src/engine/automation/CIValidationFlow.js'; ++import PacketValidator from '../../../www/src/engine/security/PacketValidator.js'; ++import DataIntegrityService from '../../../www/src/engine/security/DataIntegrityService.js'; ++import PermissionGate from '../../../www/src/engine/security/PermissionGate.js'; ++import SessionTrustValidator from '../../../www/src/engine/security/SessionTrustValidator.js'; ++import AssetImportPipeline from '../../../www/src/shared/toolbox/pipeline/AssetImportPipeline.js'; ++import TexturePreprocessPipeline from '../../../www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js'; ++import AudioPreprocessPipeline from '../../../www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js'; ++import ContentMigrationSystem from '../../../www/src/shared/toolbox/pipeline/ContentMigrationSystem.js'; ++import BuildAssetManifestSystem from '../../../www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js'; ++import ContentValidationPipeline from '../../../www/src/shared/toolbox/pipeline/ContentValidationPipeline.js'; + + export async function run() { + const level = new LevelEditor({ width: 4, height: 3 }); +diff --git a/dev/tests/final/FinalSystems.test.mjs b/dev/tests/final/FinalSystems.test.mjs +index 40115de20..ef865333b 100644 +--- a/dev/tests/final/FinalSystems.test.mjs ++++ b/dev/tests/final/FinalSystems.test.mjs +@@ -5,10 +5,10 @@ David Quesenberry + FinalSystems.test.mjs + */ + import assert from 'node:assert/strict'; +-import { compressJson, decompressJson } from '../../../src/engine/persistence/CompressionService.js'; +-import ReplaySystem from '../../../src/engine/replay/ReplaySystem.js'; +-import AchievementSystem from '../../../src/engine/world/AchievementSystem.js'; +-import LocalizationService from '../../../src/engine/localization/LocalizationService.js'; ++import { compressJson, decompressJson } from '../../../www/src/engine/persistence/CompressionService.js'; ++import ReplaySystem from '../../../www/src/engine/replay/ReplaySystem.js'; ++import AchievementSystem from '../../../www/src/engine/world/AchievementSystem.js'; ++import LocalizationService from '../../../www/src/engine/localization/LocalizationService.js'; + + export function run() { + const compressed = compressJson({ hp: 3, coins: 12 }); +diff --git a/dev/tests/final/FullscreenService.test.mjs b/dev/tests/final/FullscreenService.test.mjs +index 8fbbb678e..6a1ad68a4 100644 +--- a/dev/tests/final/FullscreenService.test.mjs ++++ b/dev/tests/final/FullscreenService.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + FullscreenService.test.mjs + */ + import assert from 'node:assert/strict'; +-import FullscreenService from '../../../src/engine/runtime/FullscreenService.js'; ++import FullscreenService from '../../../www/src/engine/runtime/FullscreenService.js'; + + export async function run() { + let fullscreenElement = null; +diff --git a/dev/tests/final/MultiplayerNetworkingStack.test.mjs b/dev/tests/final/MultiplayerNetworkingStack.test.mjs +index a19f20284..c7a7ab622 100644 +--- a/dev/tests/final/MultiplayerNetworkingStack.test.mjs ++++ b/dev/tests/final/MultiplayerNetworkingStack.test.mjs +@@ -5,35 +5,35 @@ David Quesenberry + MultiplayerNetworkingStack.test.mjs + */ + import assert from 'node:assert/strict'; +-import AuthoritativeInputIngestionContract, { INPUT_INGESTION_REJECTION_CODES } from '../../../src/engine/network/server/AuthoritativeInputIngestionContract.js'; ++import AuthoritativeInputIngestionContract, { INPUT_INGESTION_REJECTION_CODES } from '../../../www/src/engine/network/server/AuthoritativeInputIngestionContract.js'; + import AuthoritativeServerRuntime, { + SERVER_RUNTIME_INGEST_REJECTION_CODES, + SERVER_RUNTIME_PHASES +-} from '../../../src/engine/network/server/AuthoritativeServerRuntime.js'; +-import ClientReplicationApplicationLayer from '../../../src/engine/network/client/ClientReplicationApplicationLayer.js'; +-import ClientReconciliationStrategy, { REPLICATION_IGNORE_REASONS } from '../../../src/engine/network/client/ClientReconciliationStrategy.js'; +-import ChatPresenceLayer from '../../../src/engine/network/session/ChatPresenceLayer.js'; +-import HandshakeSimulator, { getHandshakeContract } from '../../../src/engine/network/session/HandshakeSimulator.js'; +-import HostServerBootstrap from '../../../src/engine/network/bootstrap/HostServerBootstrap.js'; +-import InterestManager from '../../../src/engine/network/server/InterestManager.js'; +-import LoopbackTransport from '../../../src/engine/network/transport/LoopbackTransport.js'; +-import NetworkConditionSimulator from '../../../src/engine/network/transport/NetworkConditionSimulator.js'; +-import NetworkingLayer from '../../../src/engine/network/bootstrap/NetworkingLayer.js'; +-import PredictionReconciler from '../../../src/engine/network/client/PredictionReconciler.js'; ++} from '../../../www/src/engine/network/server/AuthoritativeServerRuntime.js'; ++import ClientReplicationApplicationLayer from '../../../www/src/engine/network/client/ClientReplicationApplicationLayer.js'; ++import ClientReconciliationStrategy, { REPLICATION_IGNORE_REASONS } from '../../../www/src/engine/network/client/ClientReconciliationStrategy.js'; ++import ChatPresenceLayer from '../../../www/src/engine/network/session/ChatPresenceLayer.js'; ++import HandshakeSimulator, { getHandshakeContract } from '../../../www/src/engine/network/session/HandshakeSimulator.js'; ++import HostServerBootstrap from '../../../www/src/engine/network/bootstrap/HostServerBootstrap.js'; ++import InterestManager from '../../../www/src/engine/network/server/InterestManager.js'; ++import LoopbackTransport from '../../../www/src/engine/network/transport/LoopbackTransport.js'; ++import NetworkConditionSimulator from '../../../www/src/engine/network/transport/NetworkConditionSimulator.js'; ++import NetworkingLayer from '../../../www/src/engine/network/bootstrap/NetworkingLayer.js'; ++import PredictionReconciler from '../../../www/src/engine/network/client/PredictionReconciler.js'; + import ReplicationMessageContract, { + REPLICATION_MESSAGE_REJECTION_CODES, + REPLICATION_SNAPSHOT_TYPES +-} from '../../../src/engine/network/replication/ReplicationMessageContract.js'; +-import RemoteInterpolationBuffer from '../../../src/engine/network/client/RemoteInterpolationBuffer.js'; +-import RollbackDiagnostics from '../../../src/engine/network/server/RollbackDiagnostics.js'; ++} from '../../../www/src/engine/network/replication/ReplicationMessageContract.js'; ++import RemoteInterpolationBuffer from '../../../www/src/engine/network/client/RemoteInterpolationBuffer.js'; ++import RollbackDiagnostics from '../../../www/src/engine/network/server/RollbackDiagnostics.js'; + import { + SESSION_STATES, + createSessionLifecycle, + getSessionLifecycleContract +-} from '../../../src/engine/network/session/SessionLifecycleContract.js'; +-import Serializer from '../../../src/engine/network/transport/Serializer.js'; +-import StateReplication from '../../../src/engine/network/replication/StateReplication.js'; +-import { getTransportContract } from '../../../src/engine/network/transport/TransportContract.js'; ++} from '../../../www/src/engine/network/session/SessionLifecycleContract.js'; ++import Serializer from '../../../www/src/engine/network/transport/Serializer.js'; ++import StateReplication from '../../../www/src/engine/network/replication/StateReplication.js'; ++import { getTransportContract } from '../../../www/src/engine/network/transport/TransportContract.js'; + + export async function run() { + const serializer = new Serializer({ version: 2 }); +diff --git a/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs b/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs +index 7f30b7fb7..7dbcf188c 100644 +--- a/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs ++++ b/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs +@@ -5,15 +5,15 @@ David Quesenberry + NetworkDebugAndServerDashboardCloseout.test.mjs + */ + import assert from "node:assert/strict"; +-import { createLatencyDiagnosticsModel } from '../../../src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js'; +-import { createReplicationDiagnosticsModel } from '../../../src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js'; +-import { createLatencyRttPanel, createReplicationStatePanel, createNetworkObservabilityPanels } from '../../../src/engine/debug/network/panels/networkObservabilityPanels.js'; +-import { createNetworkHelpCommand, createNetworkReplicationCommand, createNetworkStatusCommand, createNetworkCommandPack } from '../../../src/engine/debug/network/commands/networkDebugCommandPackBridge.js'; +-import { createReadOnlyNetworkProviders } from '../../../src/engine/debug/network/providers/networkDebugProviderRegistry.js'; +-import { createServerDashboardRegistry } from '../../../src/engine/debug/network/dashboard/serverDashboardRegistry.js'; +-import { createServerDashboardHost } from '../../../src/engine/debug/network/dashboard/serverDashboardHost.js'; +-import { createServerDashboardCommandPack } from '../../../src/engine/debug/network/dashboard/registerDashboardCommands.js'; +-import { createNetworkPromotionRecommendation } from '../../../src/engine/debug/network/diagnostics/networkPromotionRecommendation.js'; ++import { createLatencyDiagnosticsModel } from '../../../www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js'; ++import { createReplicationDiagnosticsModel } from '../../../www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js'; ++import { createLatencyRttPanel, createReplicationStatePanel, createNetworkObservabilityPanels } from '../../../www/src/engine/debug/network/panels/networkObservabilityPanels.js'; ++import { createNetworkHelpCommand, createNetworkReplicationCommand, createNetworkStatusCommand, createNetworkCommandPack } from '../../../www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js'; ++import { createReadOnlyNetworkProviders } from '../../../www/src/engine/debug/network/providers/networkDebugProviderRegistry.js'; ++import { createServerDashboardRegistry } from '../../../www/src/engine/debug/network/dashboard/serverDashboardRegistry.js'; ++import { createServerDashboardHost } from '../../../www/src/engine/debug/network/dashboard/serverDashboardHost.js'; ++import { createServerDashboardCommandPack } from '../../../www/src/engine/debug/network/dashboard/registerDashboardCommands.js'; ++import { createNetworkPromotionRecommendation } from '../../../www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js'; + + function createSampleSnapshot() { + return { +diff --git a/dev/tests/final/PlatformUxSystems.test.mjs b/dev/tests/final/PlatformUxSystems.test.mjs +index ad0acf088..d78fb8c78 100644 +--- a/dev/tests/final/PlatformUxSystems.test.mjs ++++ b/dev/tests/final/PlatformUxSystems.test.mjs +@@ -5,21 +5,21 @@ David Quesenberry + PlatformUxSystems.test.mjs + */ + import assert from 'node:assert/strict'; +-import AudioService from '../../../src/engine/audio/AudioService.js'; +-import MidiPlayer from '../../../src/engine/audio/MidiPlayer.js'; +-import FrequencyPlayer from '../../../src/engine/audio/FrequencyPlayer.js'; +-import Synthesizer from '../../../src/engine/audio/Synthesizer.js'; +-import MediaTrackService from '../../../src/engine/audio/MediaTrackService.js'; +-import PlaylistManager from '../../../src/engine/audio/PlaylistManager.js'; +-import ParticleSystem from '../../../src/engine/fx/ParticleSystem.js'; +-import UIFramework from '../../../src/engine/ui/UIFramework.js'; +-import InputContextService from '../../../src/engine/input/InputContextService.js'; +-import SceneTransitionController from '../../../src/engine/scene/SceneTransitionController.js'; +-import SaveSlotManager from '../../../src/engine/persistence/SaveSlotManager.js'; +-import StorageService from '../../../src/engine/persistence/StorageService.js'; +-import CookieStorageService from '../../../src/engine/persistence/CookieStorageService.js'; +-import Logger from '../../../src/engine/logging/Logger.js'; +-import ErrorBoundary from '../../../src/engine/logging/ErrorBoundary.js'; ++import AudioService from '../../../www/src/engine/audio/AudioService.js'; ++import MidiPlayer from '../../../www/src/engine/audio/MidiPlayer.js'; ++import FrequencyPlayer from '../../../www/src/engine/audio/FrequencyPlayer.js'; ++import Synthesizer from '../../../www/src/engine/audio/Synthesizer.js'; ++import MediaTrackService from '../../../www/src/engine/audio/MediaTrackService.js'; ++import PlaylistManager from '../../../www/src/engine/audio/PlaylistManager.js'; ++import ParticleSystem from '../../../www/src/engine/fx/ParticleSystem.js'; ++import UIFramework from '../../../www/src/engine/ui/UIFramework.js'; ++import InputContextService from '../../../www/src/engine/input/InputContextService.js'; ++import SceneTransitionController from '../../../www/src/engine/scene/SceneTransitionController.js'; ++import SaveSlotManager from '../../../www/src/engine/persistence/SaveSlotManager.js'; ++import StorageService from '../../../www/src/engine/persistence/StorageService.js'; ++import CookieStorageService from '../../../www/src/engine/persistence/CookieStorageService.js'; ++import Logger from '../../../www/src/engine/logging/Logger.js'; ++import ErrorBoundary from '../../../www/src/engine/logging/ErrorBoundary.js'; + + class MemoryStorage { + constructor() { +diff --git a/dev/tests/final/PrecisionCollisionSystems.test.mjs b/dev/tests/final/PrecisionCollisionSystems.test.mjs +index f54d4420c..6696bf874 100644 +--- a/dev/tests/final/PrecisionCollisionSystems.test.mjs ++++ b/dev/tests/final/PrecisionCollisionSystems.test.mjs +@@ -5,11 +5,11 @@ David Quesenberry + PrecisionCollisionSystems.test.mjs + */ + import assert from 'node:assert/strict'; +-import { transformPoints } from '../../../src/engine/rendering/VectorDrawing.js'; +-import { arePolygonsColliding, isPointInPolygon, getPolygonBounds } from '../../../src/engine/collision/polygon.js'; +-import { createRasterMask, areMasksColliding } from '../../../src/engine/collision/raster.js'; +-import { evaluateObjectVectorCollisionPair, getObjectVectorCollisionOutlinePoints, transformCollisionPoints } from '../../../src/engine/collision/objectVector.js'; +-import { runHybridCollision } from '../../../src/engine/collision/hybrid.js'; ++import { transformPoints } from '../../../www/src/engine/rendering/VectorDrawing.js'; ++import { arePolygonsColliding, isPointInPolygon, getPolygonBounds } from '../../../www/src/engine/collision/polygon.js'; ++import { createRasterMask, areMasksColliding } from '../../../www/src/engine/collision/raster.js'; ++import { evaluateObjectVectorCollisionPair, getObjectVectorCollisionOutlinePoints, transformCollisionPoints } from '../../../www/src/engine/collision/objectVector.js'; ++import { runHybridCollision } from '../../../www/src/engine/collision/hybrid.js'; + + export function run() { + const transformed = transformPoints( +@@ -130,7 +130,7 @@ export function run() { + }); + assert.equal(objectVectorHit.mode, 'vector'); + assert.equal(objectVectorHit.collided, true); +- assert.equal(objectVectorHit.enginePath, 'src/engine/collision/objectVector.js'); ++ assert.equal(objectVectorHit.enginePath, 'www/src/engine/collision/objectVector.js'); + assert.equal(getObjectVectorCollisionOutlinePoints(objectA).length, polyA.length); + const collisionTransform = transformCollisionPoints([{ x: 10, y: 0 }], { x: 4, y: 5, rotation: Math.PI / 2 }); + assert.equal(Math.abs(collisionTransform[0].x - 4) < 1e-9, true); +diff --git a/dev/tests/final/ReleaseReadinessSystems.test.mjs b/dev/tests/final/ReleaseReadinessSystems.test.mjs +index 0b6d03b35..20ddbb21c 100644 +--- a/dev/tests/final/ReleaseReadinessSystems.test.mjs ++++ b/dev/tests/final/ReleaseReadinessSystems.test.mjs +@@ -5,14 +5,14 @@ David Quesenberry + ReleaseReadinessSystems.test.mjs + */ + import assert from 'node:assert/strict'; +-import AccessibilityOptions from '../../../src/engine/release/AccessibilityOptions.js'; +-import CrashRecoveryManager from '../../../src/engine/release/CrashRecoveryManager.js'; +-import DeploymentProfiles from '../../../src/engine/release/DeploymentProfiles.js'; +-import DistributionPackager from '../../../src/engine/release/DistributionPackager.js'; +-import ReleaseValidationChecklist from '../../../src/engine/release/ReleaseValidationChecklist.js'; +-import SettingsSystem from '../../../src/engine/release/SettingsSystem.js'; +-import Logger from '../../../src/engine/logging/Logger.js'; +-import StorageService from '../../../src/engine/persistence/StorageService.js'; ++import AccessibilityOptions from '../../../www/src/engine/release/AccessibilityOptions.js'; ++import CrashRecoveryManager from '../../../www/src/engine/release/CrashRecoveryManager.js'; ++import DeploymentProfiles from '../../../www/src/engine/release/DeploymentProfiles.js'; ++import DistributionPackager from '../../../www/src/engine/release/DistributionPackager.js'; ++import ReleaseValidationChecklist from '../../../www/src/engine/release/ReleaseValidationChecklist.js'; ++import SettingsSystem from '../../../www/src/engine/release/SettingsSystem.js'; ++import Logger from '../../../www/src/engine/logging/Logger.js'; ++import StorageService from '../../../www/src/engine/persistence/StorageService.js'; + + class MemoryStorage { + constructor() { +diff --git a/dev/tests/fx/ParticleSystem.test.mjs b/dev/tests/fx/ParticleSystem.test.mjs +index cb59337ef..1df5846cc 100644 +--- a/dev/tests/fx/ParticleSystem.test.mjs ++++ b/dev/tests/fx/ParticleSystem.test.mjs +@@ -5,7 +5,7 @@ + ParticleSystem.test.mjs + */ + import assert from 'node:assert/strict'; +-import ParticleSystem from '../../../src/engine/fx/ParticleSystem.js'; ++import ParticleSystem from '../../../www/src/engine/fx/ParticleSystem.js'; + + function createSequenceRandom(values) { + let index = 0; +diff --git a/dev/tests/games/AsteroidsHardening.test.mjs b/dev/tests/games/AsteroidsHardening.test.mjs +index 6ee9a4714..6a01df9ff 100644 +--- a/dev/tests/games/AsteroidsHardening.test.mjs ++++ b/dev/tests/games/AsteroidsHardening.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + AsteroidsHardening.test.mjs + */ + import assert from 'node:assert/strict'; +-import { wrap } from '../../../src/shared/math/scalars.js'; ++import { wrap } from '../../../www/src/shared/math/scalars.js'; + import AsteroidsGameScene from '../../../games/Asteroids/game/AsteroidsGameScene.js'; + import AsteroidsSession from '../../../games/Asteroids/game/AsteroidsSession.js'; + import AsteroidsWorld from '../../../games/Asteroids/game/AsteroidsWorld.js'; +diff --git a/dev/tests/games/AsteroidsPlatformDemo.test.mjs b/dev/tests/games/AsteroidsPlatformDemo.test.mjs +index 0058b9092..5f42d1b19 100644 +--- a/dev/tests/games/AsteroidsPlatformDemo.test.mjs ++++ b/dev/tests/games/AsteroidsPlatformDemo.test.mjs +@@ -1,7 +1,7 @@ + import assert from 'node:assert/strict'; + import fs from 'node:fs'; + import { fileURLToPath } from 'node:url'; +-import ObjectVectorRuntimeAssetService from '../../../src/engine/rendering/ObjectVectorRuntimeAssetService.js'; ++import ObjectVectorRuntimeAssetService from '../../../www/src/engine/rendering/ObjectVectorRuntimeAssetService.js'; + import { + createAsteroidsTestGeometryProfiles, + loadAsteroidsManifest, +diff --git a/dev/tests/games/AsteroidsValidation.test.mjs b/dev/tests/games/AsteroidsValidation.test.mjs +index ad2f2c9b9..63fb358d8 100644 +--- a/dev/tests/games/AsteroidsValidation.test.mjs ++++ b/dev/tests/games/AsteroidsValidation.test.mjs +@@ -5,7 +5,7 @@ + AsteroidsValidation.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; + import AsteroidsGameScene from '../../../games/Asteroids/game/AsteroidsGameScene.js'; + import AsteroidsSession from '../../../games/Asteroids/game/AsteroidsSession.js'; + import AsteroidsWorld from '../../../games/Asteroids/game/AsteroidsWorld.js'; +diff --git a/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs b/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs +index af861e628..ad8ff90d6 100644 +--- a/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs ++++ b/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs +@@ -3,12 +3,12 @@ import { + createHotReloadCoordinator, + createWatcherBridge, + summarizeRuntimeSceneHotReload +-} from "../../../src/shared/toolbox/runtimeSceneLoaderHotReload.js"; ++} from "../../../www/src/shared/toolbox/runtimeSceneLoaderHotReload.js"; + import { + ASSET_DOCUMENT_TYPE, + COMPOSITION_DOCUMENT_TYPE, + RENDER_CONTRACT_VERSION +-} from "../../../src/shared/toolbox/renderPipelineContract.js"; ++} from "../../../www/src/shared/toolbox/renderPipelineContract.js"; + + function createAssetDocument(tool, docId, kind, path, zIndex = 0, itemOrder = [0]) { + return { +diff --git a/dev/tests/input/GamepadHapticsService.test.mjs b/dev/tests/input/GamepadHapticsService.test.mjs +index 1f3ffaa34..228d8f699 100644 +--- a/dev/tests/input/GamepadHapticsService.test.mjs ++++ b/dev/tests/input/GamepadHapticsService.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + GamepadHapticsService.test.mjs + */ + +-import GamepadHapticsService from '../../../src/engine/input/GamepadHapticsService.js'; ++import GamepadHapticsService from '../../../www/src/engine/input/GamepadHapticsService.js'; + + function assert(condition, message) { + if (!condition) { +diff --git a/dev/tests/input/GamepadInputAdapter.test.mjs b/dev/tests/input/GamepadInputAdapter.test.mjs +index e3a4e45db..16b0b7cf0 100644 +--- a/dev/tests/input/GamepadInputAdapter.test.mjs ++++ b/dev/tests/input/GamepadInputAdapter.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + GamepadInputAdapter.test.mjs + */ + import assert from 'node:assert/strict'; +-import GamepadInputAdapter from '../../../src/engine/input/GamepadInputAdapter.js'; ++import GamepadInputAdapter from '../../../www/src/engine/input/GamepadInputAdapter.js'; + + function createInputService({ + axes = [0, 0, 0, 0], +diff --git a/dev/tests/input/GamepadState.test.mjs b/dev/tests/input/GamepadState.test.mjs +index fbd3f8773..0eb05828f 100644 +--- a/dev/tests/input/GamepadState.test.mjs ++++ b/dev/tests/input/GamepadState.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + GamepadState.test.mjs + */ + import assert from 'node:assert/strict'; +-import GamepadState from '../../../src/engine/input/GamepadState.js'; ++import GamepadState from '../../../www/src/engine/input/GamepadState.js'; + + function testStoresMultipleConcurrentGamepads() { + const gamepads = new GamepadState(); +diff --git a/dev/tests/input/InputMap.test.mjs b/dev/tests/input/InputMap.test.mjs +index ecfc4ec07..dce7af42b 100644 +--- a/dev/tests/input/InputMap.test.mjs ++++ b/dev/tests/input/InputMap.test.mjs +@@ -4,7 +4,7 @@ David Quesenberry + 03/21/2026 + InputMap.test.mjs + */ +-import InputMap from '../../../src/engine/input/InputMap.js'; ++import InputMap from '../../../www/src/engine/input/InputMap.js'; + + function assert(condition, message) { + if (!condition) { +diff --git a/dev/tests/input/InputService.test.mjs b/dev/tests/input/InputService.test.mjs +index 6ad459693..b88942814 100644 +--- a/dev/tests/input/InputService.test.mjs ++++ b/dev/tests/input/InputService.test.mjs +@@ -4,8 +4,8 @@ David Quesenberry + 03/21/2026 + InputService.test.mjs + */ +-import InputService from '../../../src/engine/input/InputService.js'; +-import InputMap from '../../../src/engine/input/InputMap.js'; ++import InputService from '../../../www/src/engine/input/InputService.js'; ++import InputMap from '../../../www/src/engine/input/InputMap.js'; + + function assert(condition, message) { + if (!condition) { +diff --git a/dev/tests/input/KeyboardState.test.mjs b/dev/tests/input/KeyboardState.test.mjs +index 7f141c084..0febee36b 100644 +--- a/dev/tests/input/KeyboardState.test.mjs ++++ b/dev/tests/input/KeyboardState.test.mjs +@@ -4,7 +4,7 @@ David Quesenberry + 03/21/2026 + KeyboardState.test.mjs + */ +-import KeyboardState from '../../../src/engine/input/KeyboardState.js'; ++import KeyboardState from '../../../www/src/engine/input/KeyboardState.js'; + + function assert(condition, message) { + if (!condition) { +diff --git a/dev/tests/input/MouseState.test.mjs b/dev/tests/input/MouseState.test.mjs +index 9567d3c1e..a71b2be73 100644 +--- a/dev/tests/input/MouseState.test.mjs ++++ b/dev/tests/input/MouseState.test.mjs +@@ -4,7 +4,7 @@ David Quesenberry + 03/21/2026 + MouseState.test.mjs + */ +-import MouseState from '../../../src/engine/input/MouseState.js'; ++import MouseState from '../../../www/src/engine/input/MouseState.js'; + + function assert(condition, message) { + if (!condition) { +diff --git a/dev/tests/input/NormalizedInputRegistry.test.mjs b/dev/tests/input/NormalizedInputRegistry.test.mjs +index 7d4f306ae..bf97e8f05 100644 +--- a/dev/tests/input/NormalizedInputRegistry.test.mjs ++++ b/dev/tests/input/NormalizedInputRegistry.test.mjs +@@ -16,7 +16,7 @@ import { + resolveNormalizedInputProfile, + resolvePhysicalAxisNormalizedInput, + systemDefaultProfileForDevice, +-} from '../../../src/engine/input/NormalizedInputRegistry.js'; ++} from '../../../www/src/engine/input/NormalizedInputRegistry.js'; + + function testRegistryContainsPlayableNormalizedInputs() { + assert.deepEqual(normalizedInputOptions().map((option) => option.value), [ +diff --git a/dev/tests/persistence/StorageService.test.mjs b/dev/tests/persistence/StorageService.test.mjs +index 099960e4f..ffa3b365f 100644 +--- a/dev/tests/persistence/StorageService.test.mjs ++++ b/dev/tests/persistence/StorageService.test.mjs +@@ -5,8 +5,8 @@ + StorageService.test.mjs + */ + import assert from 'node:assert/strict'; +-import StorageService from '../../../src/engine/persistence/StorageService.js'; +-import SettingsSystem from '../../../src/engine/release/SettingsSystem.js'; ++import StorageService from '../../../www/src/engine/persistence/StorageService.js'; ++import SettingsSystem from '../../../www/src/engine/release/SettingsSystem.js'; + + function withBlockedLocalStorage(run) { + const originalDescriptor = Object.getOwnPropertyDescriptor(globalThis, 'localStorage'); +diff --git a/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs b/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs +index 363be32b3..51a246bb7 100644 +--- a/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs ++++ b/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs +@@ -168,7 +168,7 @@ test("Owner Notes route reads the shared admin-notes source", async ({ page }) = + ]); + + await page.getByRole("link", { name: "sample.txt" }).click(); +- await expect(page).toHaveURL(/\/owner\/notes\.html\?file=legacy-docs-build%2Fadmin-notes%2Fsample\.txt$/); ++ await expect(page).toHaveURL(/\/owner\/notes\.html\?file=dev%2Farchive%2Flegacy-docs-build%2Fadmin-notes%2Fsample\.txt$/); + await expect(page.locator("[data-admin-notes-title]")).toHaveText("sample.txt"); + await expect(page.locator("[data-admin-notes-content]")).toContainText("Capture admin-only project ideas here."); + await expect(page.locator("nav[aria-label='Admin tool pages'] a", { hasText: "Notes" })).toHaveCount(0); +@@ -203,7 +203,7 @@ test("Admin Notes viewer shows a visible missing-directory diagnostic", async ({ + expect(failures.consoleErrors).toHaveLength(1); + expect(failures.consoleErrors[0]).toContain("404"); + expect(failures.failedRequests).toEqual([ +- `404 ${failures.server.baseUrl}/api/dev/admin-notes/directory?folder=legacy-docs-build%2Fadmin-notes`, ++ `404 ${failures.server.baseUrl}/api/dev/admin-notes/directory?folder=dev%2Farchive%2Flegacy-docs-build%2Fadmin-notes`, + ]); + } finally { + await closeWithCoverage(page, failures); +diff --git a/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs b/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs +index 514084095..d23e8c161 100644 +--- a/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs ++++ b/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs +@@ -1477,14 +1477,14 @@ test("Controls split keeps shared engine input contracts in the account surface" + ]); + return { accountControls, controls }; + }); +- expect(sources.controls).toContain("../../src/engine/input/NormalizedInputRegistry.js"); +- expect(sources.controls).not.toContain("../../src/engine/input/InputService.js"); ++ expect(sources.controls).toContain("../../www/src/engine/input/NormalizedInputRegistry.js"); ++ expect(sources.controls).not.toContain("../../www/src/engine/input/InputService.js"); + expect(sources.controls).not.toContain("DEVICE_POLL_INTERVAL_MS"); + expect(sources.controls).not.toContain("GAME_CONTROL_PRESETS"); + expect(sources.controls).not.toContain("applyGameControlPreset"); +- expect(sources.accountControls).toContain("../src/engine/input/InputService.js"); +- expect(sources.accountControls).toContain("../src/engine/input/NormalizedInputRegistry.js"); +- expect(sources.accountControls).toContain("../src/engine/input/GamepadInputClassifier.js"); ++ expect(sources.accountControls).toContain("../www/src/engine/input/InputService.js"); ++ expect(sources.accountControls).toContain("../www/src/engine/input/NormalizedInputRegistry.js"); ++ expect(sources.accountControls).toContain("../www/src/engine/input/GamepadInputClassifier.js"); + expect(sources.accountControls).toContain("DEVICE_POLL_INTERVAL_MS"); + for (const source of [sources.controls, sources.accountControls]) { + expect(source).not.toMatch(/addEventListener\(\s*["']keydown/); +diff --git a/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs b/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs +index 648cfa758..53b2b3477 100644 +--- a/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs ++++ b/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs +@@ -564,10 +564,10 @@ test("toolbox index shows wireframe and beta tools while Planned remains opt-in" + await expect(page.locator("[data-toolbox-tool-name-link='Game Hub']")).toHaveAttribute("href", "/toolbox/game-hub/index.html"); + await expect(page.locator("[data-toolbox-tool-name-link='Text To Speech']")).toHaveAttribute("href", "/toolbox/text-to-speech/index.html"); + await expect(page.locator("[data-toolbox-tool-name-link='Publish']")).toHaveCount(0); +- await expect(page.locator("[data-tools-count]")).toHaveText("Tool Count: 15/43"); ++ await expect(page.locator("[data-tools-count]")).toHaveText("Tool Count: 16/43"); + await page.locator("[data-toolbox-status-filter='planned']").click(); + await expect(page.locator("[data-toolbox-status-filter='planned']")).toHaveAttribute("aria-pressed", "true"); +- await expect(page.locator("[data-toolbox-tool-card][data-toolbox-release-channel='planned']")).toHaveCount(27); ++ await expect(page.locator("[data-toolbox-tool-card][data-toolbox-release-channel='planned']")).toHaveCount(26); + await expect(page.locator("[data-toolbox-tool-card]")).toHaveCount(42); + await expect(page.locator("[data-tools-count]")).toHaveText("Tool Count: 42/43"); + await expect(page.locator("[data-toolbox-tool-name-link='AI Command Center']")).toBeVisible(); +@@ -641,8 +641,8 @@ test("toolbox status kickers, filters, card order, and voting controls work from + await page.goto(`${server.baseUrl}/toolbox/index.html`, { waitUntil: "networkidle" }); + + await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([ +- "Planned (27)", +- "Wireframe (4)", ++ "Planned (26)", ++ "Wireframe (5)", + "Beta (8)", + "Complete (3)", + "Deprecated (1)", +@@ -658,8 +658,8 @@ test("toolbox status kickers, filters, card order, and voting controls work from + + await page.locator("[data-tools-view='build-path']").click(); + await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([ +- "Planned (27)", +- "Wireframe (4)", ++ "Planned (26)", ++ "Wireframe (5)", + "Beta (8)", + "Complete (3)", + "Deprecated (1)", +@@ -1378,8 +1378,8 @@ test("toolbox Build Path status filters support multi-select registry-matched to + await expect(page.locator("[data-tools-sort='grouped']")).not.toHaveClass(/primary/); + + await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([ +- "Planned (27)", +- "Wireframe (4)", ++ "Planned (26)", ++ "Wireframe (5)", + "Beta (8)", + "Complete (3)", + "Deprecated (1)", +@@ -1391,14 +1391,14 @@ test("toolbox Build Path status filters support multi-select registry-matched to + + await page.locator("[data-toolbox-status-filter='planned']").click(); + await expectActiveFilters(["planned", "complete"]); +- await expectBuildPathChannels(["planned", "complete"], 30); ++ await expectBuildPathChannels(["planned", "complete"], 29); + await expect(page.locator("[data-build-path-tool='AI Command Center']")).toBeVisible(); + await expectBuildPathOrder("AI Command Center", registryById.get("ai-assistant").order); + await expectBuildPathOrder("Colors", registryById.get("colors").order); + + await page.locator("[data-toolbox-status-filter='complete']").click(); + await expectActiveFilters(["planned"]); +- await expectBuildPathChannels(["planned"], 27); ++ await expectBuildPathChannels(["planned"], 26); + await expect(page.locator("[data-build-path-tool='Colors']")).toHaveCount(0); + await expect(page.locator("[data-build-path-tool='AI Command Center']")).toBeVisible(); + +diff --git a/dev/tests/production/ProductionReadiness.test.mjs b/dev/tests/production/ProductionReadiness.test.mjs +index baef7a740..da954ed44 100644 +--- a/dev/tests/production/ProductionReadiness.test.mjs ++++ b/dev/tests/production/ProductionReadiness.test.mjs +@@ -5,11 +5,11 @@ David Quesenberry + ProductionReadiness.test.mjs + */ + import assert from 'node:assert/strict'; +-import ActionInputMap from '../../../src/engine/input/ActionInputMap.js'; +-import ActionInputService from '../../../src/engine/input/ActionInputService.js'; +-import ResolutionScaler from '../../../src/engine/rendering/ResolutionScaler.js'; +-import AssetOptimizer from '../../../src/engine/assets/AssetOptimizer.js'; +-import ObjectPool from '../../../src/engine/memory/ObjectPool.js'; ++import ActionInputMap from '../../../www/src/engine/input/ActionInputMap.js'; ++import ActionInputService from '../../../www/src/engine/input/ActionInputService.js'; ++import ResolutionScaler from '../../../www/src/engine/rendering/ResolutionScaler.js'; ++import AssetOptimizer from '../../../www/src/engine/assets/AssetOptimizer.js'; ++import ObjectPool from '../../../www/src/engine/memory/ObjectPool.js'; + + export async function run() { + const map = new ActionInputMap({ jump: ['Space'] }); +diff --git a/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs b/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs +index 3a7cbedcd..6efc9354c 100644 +--- a/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs ++++ b/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs +@@ -14,8 +14,8 @@ test("canonical repository structure guardrail accepts canonical paths and appro + "assets/theme-v2/js/admin-system-health.js", + "assets/theme-v2/css/theme.css", + "assets/toolbox/assets/js/assets-upload-worker.js", +- "src/engine/rendering/Renderer.js", +- "src/engine/ui/baseLayout.css", ++ "www/src/engine/rendering/Renderer.js", ++ "www/src/engine/ui/baseLayout.css", + "dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs", + "dev/tests/runtime/V2SessionValidation.test.mjs", + ]); +diff --git a/dev/tests/render/Renderer.test.mjs b/dev/tests/render/Renderer.test.mjs +index 688d23850..c8c0b8e54 100644 +--- a/dev/tests/render/Renderer.test.mjs ++++ b/dev/tests/render/Renderer.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + Renderer.test.mjs + */ + import assert from 'node:assert/strict'; +-import CanvasRenderer from '../../../src/engine/rendering/CanvasRenderer.js'; ++import CanvasRenderer from '../../../www/src/engine/rendering/CanvasRenderer.js'; + + function createFakeContext() { + const calls = []; +diff --git a/dev/tests/replay/ReplaySystem.test.mjs b/dev/tests/replay/ReplaySystem.test.mjs +index f00c98f73..da3deebfe 100644 +--- a/dev/tests/replay/ReplaySystem.test.mjs ++++ b/dev/tests/replay/ReplaySystem.test.mjs +@@ -5,7 +5,7 @@ + ReplaySystem.test.mjs + */ + import assert from 'node:assert/strict'; +-import ReplaySystem from '../../../src/engine/replay/ReplaySystem.js'; ++import ReplaySystem from '../../../www/src/engine/replay/ReplaySystem.js'; + + export function run() { + const replay = new ReplaySystem(); +diff --git a/dev/tests/replay/ReplayTimeline.test.mjs b/dev/tests/replay/ReplayTimeline.test.mjs +index a81253f40..43629fee2 100644 +--- a/dev/tests/replay/ReplayTimeline.test.mjs ++++ b/dev/tests/replay/ReplayTimeline.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + ReplayTimeline.test.mjs + */ + import assert from 'node:assert/strict'; +-import { ReplayTimeline } from '../../../src/engine/replay/ReplayTimeline.js'; ++import { ReplayTimeline } from '../../../www/src/engine/replay/ReplayTimeline.js'; + + export function run() { + const timeline = new ReplayTimeline({ maxFrames: 3 }); +diff --git a/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs b/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs +index 066ca8ae7..fffc278c6 100644 +--- a/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs ++++ b/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs +@@ -5,8 +5,8 @@ David Quesenberry + Phase19RuntimeLifecycleValidation.test.mjs + */ + import assert from 'node:assert/strict'; +-import Engine from '../../../src/engine/core/Engine.js'; +-import Logger from '../../../src/engine/logging/Logger.js'; ++import Engine from '../../../www/src/engine/core/Engine.js'; ++import Logger from '../../../www/src/engine/logging/Logger.js'; + + function createCanvas() { + const canvas = { +diff --git a/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs b/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs +index d6dacae08..0e0b4e57e 100644 +--- a/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs ++++ b/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs +@@ -5,8 +5,8 @@ David Quesenberry + RuntimeMonitoringHooks.test.mjs + */ + import assert from 'node:assert/strict'; +-import { createRuntimeMonitoringHooks } from '../../../src/engine/runtime/RuntimeMonitoringHooks.js'; +-import Logger from '../../../src/engine/logging/Logger.js'; ++import { createRuntimeMonitoringHooks } from '../../../www/src/engine/runtime/RuntimeMonitoringHooks.js'; ++import Logger from '../../../www/src/engine/logging/Logger.js'; + + function createWindowStub() { + const listeners = new Map(); +diff --git a/dev/tests/scenes/AttractModeController.test.mjs b/dev/tests/scenes/AttractModeController.test.mjs +index 532193eea..93efe8b18 100644 +--- a/dev/tests/scenes/AttractModeController.test.mjs ++++ b/dev/tests/scenes/AttractModeController.test.mjs +@@ -5,8 +5,8 @@ David Quesenberry + AttractModeController.test.mjs + */ + import assert from 'node:assert/strict'; +-import AttractModeController from '../../../src/engine/scene/AttractModeController.js'; +-import { DEFAULT_ATTRACT_CONFIG } from '../../../src/engine/scene/AttractModeController.js'; ++import AttractModeController from '../../../www/src/engine/scene/AttractModeController.js'; ++import { DEFAULT_ATTRACT_CONFIG } from '../../../www/src/engine/scene/AttractModeController.js'; + + function testIdleEnterAndPhaseCycle() { + const phases = []; +diff --git a/dev/tests/scenes/SceneManager.test.mjs b/dev/tests/scenes/SceneManager.test.mjs +index 03ddbb6e8..4f077056c 100644 +--- a/dev/tests/scenes/SceneManager.test.mjs ++++ b/dev/tests/scenes/SceneManager.test.mjs +@@ -5,8 +5,8 @@ David Quesenberry + SceneManager.test.mjs + */ + import assert from "node:assert/strict"; +-import Scene from "../../../src/engine/scene/Scene.js"; +-import SceneManager from "../../../src/engine/scene/SceneManager.js"; ++import Scene from "../../../www/src/engine/scene/Scene.js"; ++import SceneManager from "../../../www/src/engine/scene/SceneManager.js"; + + class TestScene extends Scene { + constructor(name, log) { +diff --git a/dev/tests/scenes/TransitionScene.test.mjs b/dev/tests/scenes/TransitionScene.test.mjs +index 3ea141ae0..6ada9e6d5 100644 +--- a/dev/tests/scenes/TransitionScene.test.mjs ++++ b/dev/tests/scenes/TransitionScene.test.mjs +@@ -5,8 +5,8 @@ + TransitionScene.test.mjs + */ + import assert from 'node:assert/strict'; +-import SceneTransition from '../../../src/engine/scene/SceneTransition.js'; +-import TransitionScene from '../../../src/engine/scene/TransitionScene.js'; ++import SceneTransition from '../../../www/src/engine/scene/SceneTransition.js'; ++import TransitionScene from '../../../www/src/engine/scene/TransitionScene.js'; + + function createRenderer(log) { + const renderer = { +diff --git a/dev/tests/shared/ColorFoundation.test.mjs b/dev/tests/shared/ColorFoundation.test.mjs +index 363a64475..012d27641 100644 +--- a/dev/tests/shared/ColorFoundation.test.mjs ++++ b/dev/tests/shared/ColorFoundation.test.mjs +@@ -16,7 +16,7 @@ import { + relativeLuminance, + rgbToHex, + rgbToHsl, +-} from "../../../src/shared/color/color.js"; ++} from "../../../www/src/shared/color/color.js"; + + export function run() { + assert.equal(clamp01(2), 1); +diff --git a/dev/tests/shared/GeometryFoundation.test.mjs b/dev/tests/shared/GeometryFoundation.test.mjs +index 971bc3d48..dbfde3419 100644 +--- a/dev/tests/shared/GeometryFoundation.test.mjs ++++ b/dev/tests/shared/GeometryFoundation.test.mjs +@@ -17,7 +17,7 @@ import { + scaleVector, + subtractVectors, + vector2, +-} from "../../../src/shared/geometry/geometry.js"; ++} from "../../../www/src/shared/geometry/geometry.js"; + + export function run() { + assert.equal(clamp(12, 0, 10), 10); +diff --git a/dev/tests/shared/GetStateVariantClassification.test.mjs b/dev/tests/shared/GetStateVariantClassification.test.mjs +index 47f5e3f92..f60397b93 100644 +--- a/dev/tests/shared/GetStateVariantClassification.test.mjs ++++ b/dev/tests/shared/GetStateVariantClassification.test.mjs +@@ -13,7 +13,7 @@ import { + classifyGetStateVariantLayer, + extractGetStateVariantNames, + bucketGetStateVariants, +-} from "../../../src/shared/state/getStateVariantClassification.js"; ++} from "../../../www/src/shared/state/getStateVariantClassification.js"; + + const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../.."); + const TARGET_ROOTS = ["src", "games", "samples", "tools"]; +diff --git a/dev/tests/shared/HashFoundation.test.mjs b/dev/tests/shared/HashFoundation.test.mjs +index 37b18b939..28199ee45 100644 +--- a/dev/tests/shared/HashFoundation.test.mjs ++++ b/dev/tests/shared/HashFoundation.test.mjs +@@ -12,7 +12,7 @@ import { + hashToUnitInterval, + hashValue32, + toStableHashString, +-} from "../../../src/shared/hash/hash.js"; ++} from "../../../www/src/shared/hash/hash.js"; + + export function run() { + assert.equal(hashString32("Game Foundry"), hashString32("Game Foundry")); +diff --git a/dev/tests/shared/NoiseFoundation.test.mjs b/dev/tests/shared/NoiseFoundation.test.mjs +index 3f0f6e07e..500408657 100644 +--- a/dev/tests/shared/NoiseFoundation.test.mjs ++++ b/dev/tests/shared/NoiseFoundation.test.mjs +@@ -11,7 +11,7 @@ import { + perlinNoise2D, + simplexNoise2D, + valueNoise2D, +-} from "../../../src/shared/noise/noise.js"; ++} from "../../../www/src/shared/noise/noise.js"; + + function assertInRange(value, min, max) { + assert.equal(Number.isFinite(value), true); +diff --git a/dev/tests/shared/Random.test.mjs b/dev/tests/shared/Random.test.mjs +index 8f486a656..4c7a11128 100644 +--- a/dev/tests/shared/Random.test.mjs ++++ b/dev/tests/shared/Random.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + Random.test.mjs + */ + import assert from "node:assert/strict"; +-import { Random } from "../../../src/shared/math/Random.js"; ++import { Random } from "../../../www/src/shared/math/Random.js"; + + const UUID_V4_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/; + +diff --git a/dev/tests/shared/RandomHelpers.test.mjs b/dev/tests/shared/RandomHelpers.test.mjs +index 52199708e..47633d612 100644 +--- a/dev/tests/shared/RandomHelpers.test.mjs ++++ b/dev/tests/shared/RandomHelpers.test.mjs +@@ -12,7 +12,7 @@ import { + pick, + shuffle, + weightedPick, +-} from "../../../src/shared/math/randomHelpers.js"; ++} from "../../../www/src/shared/math/randomHelpers.js"; + + function sequence(values) { + let index = 0; +diff --git a/dev/tests/shared/RandomSeed.test.mjs b/dev/tests/shared/RandomSeed.test.mjs +index 12806552a..191d5faa8 100644 +--- a/dev/tests/shared/RandomSeed.test.mjs ++++ b/dev/tests/shared/RandomSeed.test.mjs +@@ -5,7 +5,7 @@ David Quesenberry + RandomSeed.test.mjs + */ + import assert from "node:assert/strict"; +-import { RandomSeed } from "../../../src/shared/math/RandomSeed.js"; ++import { RandomSeed } from "../../../www/src/shared/math/RandomSeed.js"; + + function takeSequence(generator, count) { + return Array.from({ length: count }, () => generator.next()); +diff --git a/dev/tests/shared/SharedFoundationCombinedPass.test.mjs b/dev/tests/shared/SharedFoundationCombinedPass.test.mjs +index 3104f90f3..a08f5c4f1 100644 +--- a/dev/tests/shared/SharedFoundationCombinedPass.test.mjs ++++ b/dev/tests/shared/SharedFoundationCombinedPass.test.mjs +@@ -9,34 +9,34 @@ import { + ensureArray, + asArray, + asStringArray +-} from "../../../src/shared/array/arrays.js"; ++} from "../../../www/src/shared/array/arrays.js"; + import { + sanitizeText, + escapeHtml +-} from "../../../src/shared/string/strings.js"; ++} from "../../../www/src/shared/string/strings.js"; + import { + normalizeId, + createId, + createStableId, + isValidId, +-} from "../../../src/shared/id/ids.js"; ++} from "../../../www/src/shared/id/ids.js"; + import { + asPositiveInteger, + roundNumber, +-} from "../../../src/shared/math/numberNormalization.js"; ++} from "../../../www/src/shared/math/numberNormalization.js"; + import { + vectorFromAngle, +-} from "../../../src/shared/math/vectorMath.js"; ++} from "../../../www/src/shared/math/vectorMath.js"; + import { + safeNormalize, +-} from "../../../src/shared/math/vectorNormalize.js"; +-import { normalizeRecord } from "../../../src/shared/object/objects.js"; +-import { normalizeArray } from "../../../src/shared/array/arrays.js"; +-import { normalizeRecordArray } from "../../../src/shared/array/recordArrays.js"; +-import { safeJsonParse, safeJsonStringify, cloneJsonData } from "../../../src/shared/json/jsonIO.js"; +-import { isRecord } from "../../../src/shared/object/objects.js"; +-import { isFunction, isBoolean } from "../../../src/shared/types/typeGuards.js"; +-import { isNonEmptyString } from "../../../src/shared/string/strings.js"; ++} from "../../../www/src/shared/math/vectorNormalize.js"; ++import { normalizeRecord } from "../../../www/src/shared/object/objects.js"; ++import { normalizeArray } from "../../../www/src/shared/array/arrays.js"; ++import { normalizeRecordArray } from "../../../www/src/shared/array/recordArrays.js"; ++import { safeJsonParse, safeJsonStringify, cloneJsonData } from "../../../www/src/shared/json/jsonIO.js"; ++import { isRecord } from "../../../www/src/shared/object/objects.js"; ++import { isFunction, isBoolean } from "../../../www/src/shared/types/typeGuards.js"; ++import { isNonEmptyString } from "../../../www/src/shared/string/strings.js"; + import { + SHARED_PROMOTION_CONTRACT_ID, + SHARED_PROMOTION_CONTRACT_VERSION, +@@ -46,16 +46,16 @@ import { + import { + normalizePromotionStateInput, + createNormalizedPromotionSnapshot, +-} from "../../../src/shared/state/normalization.js"; ++} from "../../../www/src/shared/state/normalization.js"; + import { + isStateContainer, + isPromotionStateSnapshot, +-} from "../../../src/shared/state/guards.js"; ++} from "../../../www/src/shared/state/guards.js"; + import { + getSimulationState, + getReplayState, + getEditorState, +-} from "../../../src/shared/state/selectors.js"; ++} from "../../../www/src/shared/state/selectors.js"; + + export function run() { + assert.deepEqual(ensureArray(null), []); +diff --git a/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs b/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs +index 0f69666a0..a8fa822e1 100644 +--- a/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs ++++ b/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs +@@ -4,17 +4,17 @@ import { + sanitizeText, + normalizeString, + escapeHtml +-} from "../../../src/shared/string/strings.js"; ++} from "../../../www/src/shared/string/strings.js"; + import { + normalizeId, + createStableId, + isValidId +-} from "../../../src/shared/id/ids.js"; ++} from "../../../www/src/shared/id/ids.js"; + import { + isFiniteNumber, + asPositiveNumber, + toFiniteNumber +-} from "../../../src/shared/number/numbers.js"; ++} from "../../../www/src/shared/number/numbers.js"; + + export function run() { + assert.equal(sanitizeText(" hello "), "hello"); +diff --git a/dev/tests/shared/TextFoundation.test.mjs b/dev/tests/shared/TextFoundation.test.mjs +index 2c6098e7d..932970f66 100644 +--- a/dev/tests/shared/TextFoundation.test.mjs ++++ b/dev/tests/shared/TextFoundation.test.mjs +@@ -12,7 +12,7 @@ import { + toCamelCase, + toTitleCase, + truncate, +-} from "../../../src/shared/text/text.js"; ++} from "../../../www/src/shared/text/text.js"; + + export function run() { + assert.equal(normalizeWhitespace(" Alpha\n\tBeta Gamma "), "Alpha Beta Gamma"); +diff --git a/dev/tests/shared/TimeFoundation.test.mjs b/dev/tests/shared/TimeFoundation.test.mjs +index b9c96ce99..47cdc3c5f 100644 +--- a/dev/tests/shared/TimeFoundation.test.mjs ++++ b/dev/tests/shared/TimeFoundation.test.mjs +@@ -12,7 +12,7 @@ import { + throttle, + toIsoTimestamp, + toUnixMilliseconds, +-} from "../../../src/shared/time/time.js"; ++} from "../../../www/src/shared/time/time.js"; + + export async function run() { + assert.equal(formatDuration(500), "500ms"); +diff --git a/dev/tests/tools/AiAuthoringAssistant.test.mjs b/dev/tests/tools/AiAuthoringAssistant.test.mjs +index faa347a30..a9647bec5 100644 +--- a/dev/tests/tools/AiAuthoringAssistant.test.mjs ++++ b/dev/tests/tools/AiAuthoringAssistant.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildAiAuthoringAssistant, summarizeAiAuthoringAssistant } from "../../../src/shared/toolbox/aiAuthoringAssistant.js"; ++import { buildAiAuthoringAssistant, summarizeAiAuthoringAssistant } from "../../../www/src/shared/toolbox/aiAuthoringAssistant.js"; + + export async function run() { + const result = buildAiAuthoringAssistant({ +diff --git a/dev/tests/tools/AssetErrorHandlingStandard.test.mjs b/dev/tests/tools/AssetErrorHandlingStandard.test.mjs +index 3377c73d3..742aeab25 100644 +--- a/dev/tests/tools/AssetErrorHandlingStandard.test.mjs ++++ b/dev/tests/tools/AssetErrorHandlingStandard.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { createAssetError, appendAssetError, appendAssetErrors } from "../../../src/shared/toolbox/pipeline/assetErrorHandling.js"; ++import { createAssetError, appendAssetError, appendAssetErrors } from "../../../www/src/shared/toolbox/pipeline/assetErrorHandling.js"; + + export async function run() { + const normalized = createAssetError({ +diff --git a/dev/tests/tools/AssetManifestLoader.test.mjs b/dev/tests/tools/AssetManifestLoader.test.mjs +index 35225bede..4d193e1c0 100644 +--- a/dev/tests/tools/AssetManifestLoader.test.mjs ++++ b/dev/tests/tools/AssetManifestLoader.test.mjs +@@ -3,7 +3,7 @@ import { + discoverRuntimeAssets, + getAssetManifestRelativePath, + loadAssetManifest +-} from "../../../src/shared/toolbox/pipeline/assetManifestLoader.js"; ++} from "../../../www/src/shared/toolbox/pipeline/assetManifestLoader.js"; + + function normalizePath(value) { + return String(value || "").replace(/\\/g, "/"); +diff --git a/dev/tests/tools/AssetMarketplace.test.mjs b/dev/tests/tools/AssetMarketplace.test.mjs +index 147aff9b2..df244a491 100644 +--- a/dev/tests/tools/AssetMarketplace.test.mjs ++++ b/dev/tests/tools/AssetMarketplace.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildAssetMarketplace, summarizeAssetMarketplace } from "../../../src/shared/toolbox/assetMarketplace.js"; ++import { buildAssetMarketplace, summarizeAssetMarketplace } from "../../../www/src/shared/toolbox/assetMarketplace.js"; + + export async function run() { + const result = buildAssetMarketplace({ +diff --git a/dev/tests/tools/AssetPipelineTooling.test.mjs b/dev/tests/tools/AssetPipelineTooling.test.mjs +index b4f3e3571..92ba286ec 100644 +--- a/dev/tests/tools/AssetPipelineTooling.test.mjs ++++ b/dev/tests/tools/AssetPipelineTooling.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { runAssetPipelineTooling } from "../../../src/shared/toolbox/pipeline/assetPipelineTooling.js"; ++import { runAssetPipelineTooling } from "../../../www/src/shared/toolbox/pipeline/assetPipelineTooling.js"; + + export async function run() { + const ready = runAssetPipelineTooling({ +diff --git a/dev/tests/tools/AssetRemediationSystem.test.mjs b/dev/tests/tools/AssetRemediationSystem.test.mjs +index 3e8beea8c..f016620c5 100644 +--- a/dev/tests/tools/AssetRemediationSystem.test.mjs ++++ b/dev/tests/tools/AssetRemediationSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildProjectAssetRemediation, getPrimaryRemediationAction, summarizeProjectAssetRemediation } from "../../../src/shared/toolbox/projectAssetRemediation.js"; ++import { buildProjectAssetRemediation, getPrimaryRemediationAction, summarizeProjectAssetRemediation } from "../../../www/src/shared/toolbox/projectAssetRemediation.js"; + + export async function run() { + const registry = { +diff --git a/dev/tests/tools/AssetUsageIntegration.test.mjs b/dev/tests/tools/AssetUsageIntegration.test.mjs +index 51f956bbd..8ee08e7c4 100644 +--- a/dev/tests/tools/AssetUsageIntegration.test.mjs ++++ b/dev/tests/tools/AssetUsageIntegration.test.mjs +@@ -10,7 +10,7 @@ import { + readSharedPaletteHandoff, + writeSharedAssetHandoff, + writeSharedPaletteHandoff +-} from "../../../src/shared/toolbox/assetUsageIntegration.js"; ++} from "../../../www/src/shared/toolbox/assetUsageIntegration.js"; + + function createLocalStorageHarness() { + const store = new Map(); +diff --git a/dev/tests/tools/AssetValidationEngine.test.mjs b/dev/tests/tools/AssetValidationEngine.test.mjs +index 2bf43ab01..3945a9a35 100644 +--- a/dev/tests/tools/AssetValidationEngine.test.mjs ++++ b/dev/tests/tools/AssetValidationEngine.test.mjs +@@ -4,7 +4,7 @@ import { + hasBlockingAssetValidationFindings, + summarizeAssetValidation, + validateProjectAssetState +-} from "../../../src/shared/toolbox/projectAssetValidation.js"; ++} from "../../../www/src/shared/toolbox/projectAssetValidation.js"; + + export async function run() { + const validRegistry = { +diff --git a/dev/tests/tools/CameraDebugPanel.test.mjs b/dev/tests/tools/CameraDebugPanel.test.mjs +index fb0a45b73..7aec623d1 100644 +--- a/dev/tests/tools/CameraDebugPanel.test.mjs ++++ b/dev/tests/tools/CameraDebugPanel.test.mjs +@@ -5,8 +5,8 @@ David Quesenberry + CameraDebugPanel.test.mjs + */ + import assert from "node:assert/strict"; +-import { create3dCameraPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dCamera.js'; +-import { createCameraSummaryProvider } from '../../../src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js'; ++import { create3dCameraPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dCamera.js'; ++import { createCameraSummaryProvider } from '../../../www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js'; + + export async function run() { + const provider = createCameraSummaryProvider({ +diff --git a/dev/tests/tools/CiValidationPipeline.test.mjs b/dev/tests/tools/CiValidationPipeline.test.mjs +index fcb446270..cf44e170c 100644 +--- a/dev/tests/tools/CiValidationPipeline.test.mjs ++++ b/dev/tests/tools/CiValidationPipeline.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { runCiValidationPipeline, summarizeCiValidationPipeline } from "../../../src/shared/toolbox/ciValidationPipeline.js"; ++import { runCiValidationPipeline, summarizeCiValidationPipeline } from "../../../www/src/shared/toolbox/ciValidationPipeline.js"; + + export async function run() { + const result = await runCiValidationPipeline({ branch: "main", trigger: "pull_request" }); +diff --git a/dev/tests/tools/CloudRuntime.test.mjs b/dev/tests/tools/CloudRuntime.test.mjs +index 2f03972e5..9f33fa982 100644 +--- a/dev/tests/tools/CloudRuntime.test.mjs ++++ b/dev/tests/tools/CloudRuntime.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildCloudRuntime, summarizeCloudRuntime } from "../../../src/shared/toolbox/cloudRuntime.js"; ++import { buildCloudRuntime, summarizeCloudRuntime } from "../../../www/src/shared/toolbox/cloudRuntime.js"; + + export async function run() { + const result = buildCloudRuntime({ +diff --git a/dev/tests/tools/CollaborationSystem.test.mjs b/dev/tests/tools/CollaborationSystem.test.mjs +index 646a9fd17..d8a0d2fd9 100644 +--- a/dev/tests/tools/CollaborationSystem.test.mjs ++++ b/dev/tests/tools/CollaborationSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildCollaborationSystem, summarizeCollaborationSystem } from "../../../src/shared/toolbox/collaborationSystem.js"; ++import { buildCollaborationSystem, summarizeCollaborationSystem } from "../../../www/src/shared/toolbox/collaborationSystem.js"; + + export async function run() { + const result = buildCollaborationSystem({ +diff --git a/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs b/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs +index 487ed682e..8b4cb6c2f 100644 +--- a/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs ++++ b/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs +@@ -5,10 +5,10 @@ David Quesenberry + CollisionOverlaysDebugPanel.test.mjs + */ + import assert from "node:assert/strict"; +-import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +-import { PANEL_3D_COLLISION_OVERLAYS, create3dCollisionOverlaysPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; +-import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +-import { PROVIDER_3D_COLLISION_OVERLAYS, createCollisionOverlaysProvider } from '../../../src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; ++import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; ++import { PANEL_3D_COLLISION_OVERLAYS, create3dCollisionOverlaysPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; ++import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; ++import { PROVIDER_3D_COLLISION_OVERLAYS, createCollisionOverlaysProvider } from '../../../www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; + + export async function run() { + const provider = createCollisionOverlaysProvider({ +diff --git a/dev/tests/tools/DebugVisualizationLayer.test.mjs b/dev/tests/tools/DebugVisualizationLayer.test.mjs +index afa48febb..2b142bd5c 100644 +--- a/dev/tests/tools/DebugVisualizationLayer.test.mjs ++++ b/dev/tests/tools/DebugVisualizationLayer.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildDebugVisualizationLayer, summarizeDebugVisualizationLayer } from "../../../src/shared/toolbox/debugVisualizationLayer.js"; ++import { buildDebugVisualizationLayer, summarizeDebugVisualizationLayer } from "../../../www/src/shared/toolbox/debugVisualizationLayer.js"; + + export async function run() { + const result = buildDebugVisualizationLayer({ +diff --git a/dev/tests/tools/DevConsoleDebugOverlay.test.mjs b/dev/tests/tools/DevConsoleDebugOverlay.test.mjs +index e1e0906f2..8ea1a5f2d 100644 +--- a/dev/tests/tools/DevConsoleDebugOverlay.test.mjs ++++ b/dev/tests/tools/DevConsoleDebugOverlay.test.mjs +@@ -14,7 +14,7 @@ import { + getDevDiagnosticsContractVersionMetadata, + getDeterministicRenderOrder, + summarizeDevConsoleDebugOverlay +-} from "../../../src/shared/toolbox/devConsoleDebugOverlay.js"; ++} from "../../../www/src/shared/toolbox/devConsoleDebugOverlay.js"; + + export async function run() { + const metadata = getDevDiagnosticsContractVersionMetadata(); +diff --git a/dev/tests/tools/EditorExperienceLayer.test.mjs b/dev/tests/tools/EditorExperienceLayer.test.mjs +index 4c889b97b..6f407181f 100644 +--- a/dev/tests/tools/EditorExperienceLayer.test.mjs ++++ b/dev/tests/tools/EditorExperienceLayer.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildEditorExperienceLayer, summarizeEditorExperienceLayer } from "../../../src/shared/toolbox/editorExperienceLayer.js"; ++import { buildEditorExperienceLayer, summarizeEditorExperienceLayer } from "../../../www/src/shared/toolbox/editorExperienceLayer.js"; + + export async function run() { + const result = buildEditorExperienceLayer({ +diff --git a/dev/tests/tools/GameAssetManifestCoordinator.test.mjs b/dev/tests/tools/GameAssetManifestCoordinator.test.mjs +index 27f23a677..d4050dd2f 100644 +--- a/dev/tests/tools/GameAssetManifestCoordinator.test.mjs ++++ b/dev/tests/tools/GameAssetManifestCoordinator.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { coordinateGameAssetManifest } from "../../../src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; ++import { coordinateGameAssetManifest } from "../../../www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; + + export async function run() { + const coordinated = coordinateGameAssetManifest({ +diff --git a/dev/tests/tools/GameAssetManifestDiscovery.test.mjs b/dev/tests/tools/GameAssetManifestDiscovery.test.mjs +index be4b55705..9c7b03251 100644 +--- a/dev/tests/tools/GameAssetManifestDiscovery.test.mjs ++++ b/dev/tests/tools/GameAssetManifestDiscovery.test.mjs +@@ -4,8 +4,8 @@ import asteroidsGameManifest from "../../../dev/archive/v1-v2/games/Asteroids/ga + import { + discoverRuntimeAssetSourcesFromManifest, + validateGameAssetManifestStructure +-} from "../../../src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js"; +-import { createRuntimeManifestAssetLookup } from "../../../src/shared/toolbox/pipeline/runtimeAssetLookup.js"; ++} from "../../../www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js"; ++import { createRuntimeManifestAssetLookup } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetLookup.js"; + + export async function run() { + const asteroidsManifest = { +diff --git a/dev/tests/tools/GameTemplates.test.mjs b/dev/tests/tools/GameTemplates.test.mjs +index 2cf5b1bae..1f2bdeabc 100644 +--- a/dev/tests/tools/GameTemplates.test.mjs ++++ b/dev/tests/tools/GameTemplates.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildGameTemplates, summarizeGameTemplates } from "../../../src/shared/toolbox/gameTemplates.js"; ++import { buildGameTemplates, summarizeGameTemplates } from "../../../www/src/shared/toolbox/gameTemplates.js"; + + export async function run() { + const result = buildGameTemplates({ +diff --git a/dev/tests/tools/GameplaySystemLayer.test.mjs b/dev/tests/tools/GameplaySystemLayer.test.mjs +index 33ee734ea..ec648bcc2 100644 +--- a/dev/tests/tools/GameplaySystemLayer.test.mjs ++++ b/dev/tests/tools/GameplaySystemLayer.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildGameplaySystemLayer, summarizeGameplaySystemLayer } from "../../../src/shared/toolbox/gameplaySystemLayer.js"; ++import { buildGameplaySystemLayer, summarizeGameplaySystemLayer } from "../../../www/src/shared/toolbox/gameplaySystemLayer.js"; + + export async function run() { + const result = buildGameplaySystemLayer({ +diff --git a/dev/tests/tools/HotReloadSystem.test.mjs b/dev/tests/tools/HotReloadSystem.test.mjs +index 5f2349295..3bd3f6b0a 100644 +--- a/dev/tests/tools/HotReloadSystem.test.mjs ++++ b/dev/tests/tools/HotReloadSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { runHotReloadSystem, summarizeHotReloadSystem } from "../../../src/shared/toolbox/hotReloadSystem.js"; ++import { runHotReloadSystem, summarizeHotReloadSystem } from "../../../www/src/shared/toolbox/hotReloadSystem.js"; + + export async function run() { + const registry = { +diff --git a/dev/tests/tools/MultiTargetExport.test.mjs b/dev/tests/tools/MultiTargetExport.test.mjs +index 3f7e07170..10cac36c4 100644 +--- a/dev/tests/tools/MultiTargetExport.test.mjs ++++ b/dev/tests/tools/MultiTargetExport.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildMultiTargetExport, summarizeMultiTargetExport } from "../../../src/shared/toolbox/multiTargetExport.js"; ++import { buildMultiTargetExport, summarizeMultiTargetExport } from "../../../www/src/shared/toolbox/multiTargetExport.js"; + + export async function run() { + const registry = { +diff --git a/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs b/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs +index fe0f92027..d3ed25da6 100644 +--- a/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs ++++ b/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs +@@ -12,7 +12,7 @@ const ACTIVE_OBJECT_VECTOR_PATHS = Object.freeze([ + "games/Asteroids/flow", + "toolbox/workspace-manager-v2/js", + "toolbox/object-vector-studio-v2/js", +- "src/engine/rendering/ObjectVectorRuntimeAssetService.js" ++ "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js" + ]); + const DEPRECATED_VECTOR_MAPS_GUARD = "toolbox/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js"; + +diff --git a/dev/tests/tools/PerformanceBenchmarks.test.mjs b/dev/tests/tools/PerformanceBenchmarks.test.mjs +index 83df5460a..14192de60 100644 +--- a/dev/tests/tools/PerformanceBenchmarks.test.mjs ++++ b/dev/tests/tools/PerformanceBenchmarks.test.mjs +@@ -12,7 +12,7 @@ import { + createPerformanceBenchmarkSuite, + runPerformanceBenchmarkSuite, + summarizePerformanceBenchmarkSuite +-} from "../../../src/shared/toolbox/performanceBenchmarks.js"; ++} from "../../../www/src/shared/toolbox/performanceBenchmarks.js"; + + export async function run() { + const suite = createPerformanceBenchmarkSuite({ +diff --git a/dev/tests/tools/PerformanceProfiler.test.mjs b/dev/tests/tools/PerformanceProfiler.test.mjs +index d0986f5bf..9c4746060 100644 +--- a/dev/tests/tools/PerformanceProfiler.test.mjs ++++ b/dev/tests/tools/PerformanceProfiler.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildPerformanceProfiler, summarizePerformanceProfiler } from "../../../src/shared/toolbox/performanceProfiler.js"; ++import { buildPerformanceProfiler, summarizePerformanceProfiler } from "../../../www/src/shared/toolbox/performanceProfiler.js"; + + export async function run() { + const result = buildPerformanceProfiler({ +diff --git a/dev/tests/tools/PlatformValidationSuite.test.mjs b/dev/tests/tools/PlatformValidationSuite.test.mjs +index 041f75fe6..1881666ac 100644 +--- a/dev/tests/tools/PlatformValidationSuite.test.mjs ++++ b/dev/tests/tools/PlatformValidationSuite.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { runPlatformValidationSuite, summarizePlatformValidationSuite } from "../../../src/shared/toolbox/platformValidationSuite.js"; ++import { runPlatformValidationSuite, summarizePlatformValidationSuite } from "../../../www/src/shared/toolbox/platformValidationSuite.js"; + + export async function run() { + const first = await runPlatformValidationSuite(); +diff --git a/dev/tests/tools/PluginArchitectureSystem.test.mjs b/dev/tests/tools/PluginArchitectureSystem.test.mjs +index cd68338fc..aace0d0c4 100644 +--- a/dev/tests/tools/PluginArchitectureSystem.test.mjs ++++ b/dev/tests/tools/PluginArchitectureSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildPluginArchitecture, summarizePluginArchitecture } from "../../../src/shared/toolbox/pluginArchitecture.js"; ++import { buildPluginArchitecture, summarizePluginArchitecture } from "../../../www/src/shared/toolbox/pluginArchitecture.js"; + + export async function run() { + const hostPackageManifest = { +diff --git a/dev/tests/tools/ProjectPackagingSystem.test.mjs b/dev/tests/tools/ProjectPackagingSystem.test.mjs +index a5f7e251d..ba7d28f9a 100644 +--- a/dev/tests/tools/ProjectPackagingSystem.test.mjs ++++ b/dev/tests/tools/ProjectPackagingSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildProjectPackage, summarizeProjectPackaging } from "../../../src/shared/toolbox/projectPackaging.js"; ++import { buildProjectPackage, summarizeProjectPackaging } from "../../../www/src/shared/toolbox/projectPackaging.js"; + + export async function run() { + const registry = { +diff --git a/dev/tests/tools/ProjectToolDataContracts.test.mjs b/dev/tests/tools/ProjectToolDataContracts.test.mjs +index cfcc85326..59b8acd09 100644 +--- a/dev/tests/tools/ProjectToolDataContracts.test.mjs ++++ b/dev/tests/tools/ProjectToolDataContracts.test.mjs +@@ -4,7 +4,7 @@ import { + TOOL_DATA_CONTRACT_VERSION, + buildProjectToolIntegration, + validateToolStateContract +-} from "../../../src/shared/toolbox/projectToolIntegration.js"; ++} from "../../../www/src/shared/toolbox/projectToolIntegration.js"; + + export async function run() { + const validTileState = { +diff --git a/dev/tests/tools/ProjectVersioningSystem.test.mjs b/dev/tests/tools/ProjectVersioningSystem.test.mjs +index 96384801d..ee5f91444 100644 +--- a/dev/tests/tools/ProjectVersioningSystem.test.mjs ++++ b/dev/tests/tools/ProjectVersioningSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildProjectVersioning, summarizeProjectVersioning } from "../../../src/shared/toolbox/projectVersioning.js"; ++import { buildProjectVersioning, summarizeProjectVersioning } from "../../../www/src/shared/toolbox/projectVersioning.js"; + + export async function run() { + const compatible = buildProjectVersioning({ +diff --git a/dev/tests/tools/PublishingPipeline.test.mjs b/dev/tests/tools/PublishingPipeline.test.mjs +index b8dc523bf..6168c2361 100644 +--- a/dev/tests/tools/PublishingPipeline.test.mjs ++++ b/dev/tests/tools/PublishingPipeline.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { runPublishingPipeline, summarizePublishingPipeline } from "../../../src/shared/toolbox/publishingPipeline.js"; ++import { runPublishingPipeline, summarizePublishingPipeline } from "../../../www/src/shared/toolbox/publishingPipeline.js"; + + export async function run() { + const result = await runPublishingPipeline({ +diff --git a/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs b/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs +index 3e6d580fd..40788ff59 100644 +--- a/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs ++++ b/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs +@@ -13,7 +13,7 @@ import { + getRenderPipelineStageOrder, + runRenderContractRuntimePath, + summarizeRenderContractRuntimePath +-} from "../../../src/shared/toolbox/renderPipelineContract.js"; ++} from "../../../www/src/shared/toolbox/renderPipelineContract.js"; + + function createAsset(id, type, path) { + return { +diff --git a/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs b/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs +index f7f1cf039..1c34c1a7b 100644 +--- a/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs ++++ b/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs +@@ -5,10 +5,10 @@ David Quesenberry + RenderPipelineStagesDebugPanel.test.mjs + */ + import assert from "node:assert/strict"; +-import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +-import { PANEL_3D_RENDER_PIPELINE_STAGES, create3dRenderPipelineStagesPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js'; +-import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +-import { PROVIDER_3D_RENDER_PIPELINE_STAGES, createRenderPipelineStagesProvider } from '../../../src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js'; ++import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; ++import { PANEL_3D_RENDER_PIPELINE_STAGES, create3dRenderPipelineStagesPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js'; ++import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; ++import { PROVIDER_3D_RENDER_PIPELINE_STAGES, createRenderPipelineStagesProvider } from '../../../www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js'; + + export async function run() { + const provider = createRenderPipelineStagesProvider({ +diff --git a/dev/tests/tools/RuntimeAssetBinding.test.mjs b/dev/tests/tools/RuntimeAssetBinding.test.mjs +index 95082be5e..5f5c0f592 100644 +--- a/dev/tests/tools/RuntimeAssetBinding.test.mjs ++++ b/dev/tests/tools/RuntimeAssetBinding.test.mjs +@@ -1,6 +1,6 @@ + import assert from "node:assert/strict"; +-import { createRuntimeAssetBinding, resolveRuntimeAsset } from "../../../src/shared/toolbox/pipeline/runtimeAssetBinding.js"; +-import { coordinateGameAssetManifest } from "../../../src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; ++import { createRuntimeAssetBinding, resolveRuntimeAsset } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetBinding.js"; ++import { coordinateGameAssetManifest } from "../../../www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; + + export async function run() { + const coordinated = coordinateGameAssetManifest({ +diff --git a/dev/tests/tools/RuntimeAssetLoader.test.mjs b/dev/tests/tools/RuntimeAssetLoader.test.mjs +index 4a04985be..8f4555b63 100644 +--- a/dev/tests/tools/RuntimeAssetLoader.test.mjs ++++ b/dev/tests/tools/RuntimeAssetLoader.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { loadPackagedProjectRuntime, summarizeRuntimeAssetLoader } from "../../../src/shared/toolbox/runtimeAssetLoader.js"; ++import { loadPackagedProjectRuntime, summarizeRuntimeAssetLoader } from "../../../www/src/shared/toolbox/runtimeAssetLoader.js"; + + export async function run() { + const packageManifest = { +diff --git a/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs b/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs +index e1663f934..dc40c63bd 100644 +--- a/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs ++++ b/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { createRuntimeManifestAssetLookup, getRuntimeBindingDomain } from "../../../src/shared/toolbox/pipeline/runtimeAssetLookup.js"; ++import { createRuntimeManifestAssetLookup, getRuntimeBindingDomain } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetLookup.js"; + + export async function run() { + assert.equal(getRuntimeBindingDomain("vector.ship"), "vectors"); +diff --git a/dev/tests/tools/RuntimeAssetValidation.test.mjs b/dev/tests/tools/RuntimeAssetValidation.test.mjs +index af611d8ba..49b874cd0 100644 +--- a/dev/tests/tools/RuntimeAssetValidation.test.mjs ++++ b/dev/tests/tools/RuntimeAssetValidation.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { validateRuntimeResolvedAsset } from "../../../src/shared/toolbox/pipeline/runtimeAssetValidation.js"; ++import { validateRuntimeResolvedAsset } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetValidation.js"; + + export async function run() { + const validVector = validateRuntimeResolvedAsset({ +diff --git a/dev/tests/tools/RuntimeStreamingSystem.test.mjs b/dev/tests/tools/RuntimeStreamingSystem.test.mjs +index a3f5d6724..cfaf64347 100644 +--- a/dev/tests/tools/RuntimeStreamingSystem.test.mjs ++++ b/dev/tests/tools/RuntimeStreamingSystem.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildRuntimeStreamingManifest, loadRuntimeStreamingChunks, summarizeRuntimeStreaming } from "../../../src/shared/toolbox/runtimeStreaming.js"; ++import { buildRuntimeStreamingManifest, loadRuntimeStreamingChunks, summarizeRuntimeStreaming } from "../../../www/src/shared/toolbox/runtimeStreaming.js"; + + export async function run() { + const packageManifest = { +diff --git a/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs b/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs +index e8ef02ab8..a520421a6 100644 +--- a/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs ++++ b/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs +@@ -5,10 +5,10 @@ David Quesenberry + SceneGraphInspectorDebugPanel.test.mjs + */ + import assert from "node:assert/strict"; +-import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +-import { PANEL_3D_SCENE_GRAPH_INSPECTOR, create3dSceneGraphInspectorPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js'; +-import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +-import { PROVIDER_3D_SCENE_GRAPH_INSPECTOR, createSceneGraphInspectorProvider } from '../../../src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js'; ++import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; ++import { PANEL_3D_SCENE_GRAPH_INSPECTOR, create3dSceneGraphInspectorPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js'; ++import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; ++import { PROVIDER_3D_SCENE_GRAPH_INSPECTOR, createSceneGraphInspectorProvider } from '../../../www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js'; + + export async function run() { + const provider = createSceneGraphInspectorProvider({ +diff --git a/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs b/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs +index a62321d5e..eb58a9213 100644 +--- a/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs ++++ b/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs +@@ -17,7 +17,7 @@ function assertIncludesAll(relativePath, patterns) { + } + + export async function run() { +- assertIncludesAll("src/shared/toolbox/platformShell.css", [ ++ assertIncludesAll("www/src/shared/toolbox/platformShell.css", [ + /\.tools-platform-layout-grid/, + /\.tools-platform-control-cluster--primary/, + /\.tools-platform-control-cluster--workflow/, +diff --git a/dev/tests/tools/TransformInspectorDebugPanel.test.mjs b/dev/tests/tools/TransformInspectorDebugPanel.test.mjs +index ab523c486..7e62624cb 100644 +--- a/dev/tests/tools/TransformInspectorDebugPanel.test.mjs ++++ b/dev/tests/tools/TransformInspectorDebugPanel.test.mjs +@@ -5,10 +5,10 @@ David Quesenberry + TransformInspectorDebugPanel.test.mjs + */ + import assert from "node:assert/strict"; +-import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +-import { PANEL_3D_TRANSFORM_INSPECTOR, create3dTransformInspectorPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js'; +-import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +-import { PROVIDER_3D_TRANSFORM_INSPECTOR, createTransformInspectorProvider } from '../../../src/engine/debug/standard/threeD/providers/transformInspectorProvider.js'; ++import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; ++import { PANEL_3D_TRANSFORM_INSPECTOR, create3dTransformInspectorPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js'; ++import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; ++import { PROVIDER_3D_TRANSFORM_INSPECTOR, createTransformInspectorProvider } from '../../../www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js'; + + export async function run() { + const provider = createTransformInspectorProvider({ +diff --git a/dev/tests/tools/VectorAssetSystem.test.mjs b/dev/tests/tools/VectorAssetSystem.test.mjs +index 4dad9e634..c58b963d2 100644 +--- a/dev/tests/tools/VectorAssetSystem.test.mjs ++++ b/dev/tests/tools/VectorAssetSystem.test.mjs +@@ -1,10 +1,10 @@ + import assert from "node:assert/strict"; +-import { validateProjectAssetState } from "../../../src/shared/toolbox/projectAssetValidation.js"; +-import { buildProjectPackage } from "../../../src/shared/toolbox/projectPackaging.js"; +-import { loadPackagedProjectRuntime } from "../../../src/shared/toolbox/runtimeAssetLoader.js"; +-import { buildVectorAssetSystem, createVectorAssetSystemFixture } from "../../../src/shared/toolbox/vectorAssetSystem.js"; +-import { normalizeSvgToVectorAsset, summarizeVectorAssetDefinition } from "../../../src/shared/toolbox/vector/vectorAssetBridge.js"; +-import { VECTOR_ASSET_FORMAT } from "../../../src/shared/toolbox/vector/vectorAssetContract.js"; ++import { validateProjectAssetState } from "../../../www/src/shared/toolbox/projectAssetValidation.js"; ++import { buildProjectPackage } from "../../../www/src/shared/toolbox/projectPackaging.js"; ++import { loadPackagedProjectRuntime } from "../../../www/src/shared/toolbox/runtimeAssetLoader.js"; ++import { buildVectorAssetSystem, createVectorAssetSystemFixture } from "../../../www/src/shared/toolbox/vectorAssetSystem.js"; ++import { normalizeSvgToVectorAsset, summarizeVectorAssetDefinition } from "../../../www/src/shared/toolbox/vector/vectorAssetBridge.js"; ++import { VECTOR_ASSET_FORMAT } from "../../../www/src/shared/toolbox/vector/vectorAssetContract.js"; + + export async function run() { + const normalized = normalizeSvgToVectorAsset({ +diff --git a/dev/tests/tools/VectorGeometryRuntime.test.mjs b/dev/tests/tools/VectorGeometryRuntime.test.mjs +index 52a7b1d9d..417752f0c 100644 +--- a/dev/tests/tools/VectorGeometryRuntime.test.mjs ++++ b/dev/tests/tools/VectorGeometryRuntime.test.mjs +@@ -1,13 +1,13 @@ + import assert from "node:assert/strict"; +-import { loadPackagedProjectRuntime } from "../../../src/shared/toolbox/runtimeAssetLoader.js"; ++import { loadPackagedProjectRuntime } from "../../../www/src/shared/toolbox/runtimeAssetLoader.js"; + import { + inspectVectorGeometryRuntimeAsset, + prepareVectorGeometryRuntimeAsset, + summarizeVectorGeometryRuntime, + VECTOR_GEOMETRY_RUNTIME_POLICY +-} from "../../../src/shared/toolbox/vectorGeometryRuntime.js"; +-import { normalizeSvgToVectorAsset } from "../../../src/shared/toolbox/vector/vectorAssetBridge.js"; +-import { VECTOR_ASSET_FORMAT } from "../../../src/shared/toolbox/vector/vectorAssetContract.js"; ++} from "../../../www/src/shared/toolbox/vectorGeometryRuntime.js"; ++import { normalizeSvgToVectorAsset } from "../../../www/src/shared/toolbox/vector/vectorAssetBridge.js"; ++import { VECTOR_ASSET_FORMAT } from "../../../www/src/shared/toolbox/vector/vectorAssetContract.js"; + import { + computeBoundsFromPoints, + createPoint, +@@ -16,7 +16,7 @@ import { + scalePoint, + transformPoint, + translatePoint +-} from "../../../src/shared/toolbox/vector/vectorGeometryMath.js"; ++} from "../../../www/src/shared/toolbox/vector/vectorGeometryMath.js"; + + function createContractAsset() { + return { +diff --git a/dev/tests/tools/VectorNativeTemplate.test.mjs b/dev/tests/tools/VectorNativeTemplate.test.mjs +index a9fea5e08..f4a3f9b6a 100644 +--- a/dev/tests/tools/VectorNativeTemplate.test.mjs ++++ b/dev/tests/tools/VectorNativeTemplate.test.mjs +@@ -1,5 +1,5 @@ + import assert from "node:assert/strict"; +-import { buildVectorNativeTemplate, createVectorNativeTemplateDefinition, summarizeVectorNativeTemplate } from "../../../src/shared/toolbox/vectorNativeTemplate.js"; ++import { buildVectorNativeTemplate, createVectorNativeTemplateDefinition, summarizeVectorNativeTemplate } from "../../../www/src/shared/toolbox/vectorNativeTemplate.js"; + + export async function run() { + const definition = createVectorNativeTemplateDefinition(); +diff --git a/dev/tests/vector/VectorMath.test.mjs b/dev/tests/vector/VectorMath.test.mjs +index 776b44610..f7d493055 100644 +--- a/dev/tests/vector/VectorMath.test.mjs ++++ b/dev/tests/vector/VectorMath.test.mjs +@@ -5,7 +5,7 @@ + VectorMath.test.mjs + */ + import assert from 'node:assert/strict'; +-import { vectorFromAngle } from '../../../src/shared/math/vectorMath.js'; ++import { vectorFromAngle } from '../../../www/src/shared/math/vectorMath.js'; + + function assertClose(actual, expected, tolerance = 1e-9) { + assert.equal(Math.abs(actual - expected) <= tolerance, true); +diff --git a/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs b/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs +index a7e6f48d0..62874163e 100644 +--- a/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs ++++ b/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs +@@ -8,9 +8,9 @@ import assert from 'node:assert/strict'; + import { + WORLD_GAME_STATE_EVENT_TYPES, + WORLD_GAME_STATE_FEATURE_GATES +-} from '../../../src/advanced/state/constants.js'; +-import { createWorldGameStateSystem } from '../../../src/advanced/state/createWorldGameStateSystem.js'; +-import { registerWorldGameStateSystem } from '../../../src/advanced/state/integration/registerWorldGameStateSystem.js'; ++} from '../../../www/src/advanced/state/constants.js'; ++import { createWorldGameStateSystem } from '../../../www/src/advanced/state/createWorldGameStateSystem.js'; ++import { registerWorldGameStateSystem } from '../../../www/src/advanced/state/integration/registerWorldGameStateSystem.js'; + + function createEventPipeline() { + const listenersByType = new Map(); +diff --git a/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs b/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs +index 86421e098..ecb5ffab1 100644 +--- a/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs ++++ b/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs +@@ -5,9 +5,9 @@ David Quesenberry + WorldGameStateAuthoritativeScore.test.mjs + */ + import assert from 'node:assert/strict'; +-import { WORLD_GAME_STATE_FEATURE_GATES } from '../../../src/advanced/state/constants.js'; +-import { createWorldGameStateSystem } from '../../../src/advanced/state/createWorldGameStateSystem.js'; +-import { registerWorldGameStateSystem } from '../../../src/advanced/state/integration/registerWorldGameStateSystem.js'; ++import { WORLD_GAME_STATE_FEATURE_GATES } from '../../../www/src/advanced/state/constants.js'; ++import { createWorldGameStateSystem } from '../../../www/src/advanced/state/createWorldGameStateSystem.js'; ++import { registerWorldGameStateSystem } from '../../../www/src/advanced/state/integration/registerWorldGameStateSystem.js'; + + function createEventPipeline() { + const listenersByType = new Map(); +diff --git a/dev/tests/world/WorldGameStateSystem.test.mjs b/dev/tests/world/WorldGameStateSystem.test.mjs +index 89410ecfe..40a67eb02 100644 +--- a/dev/tests/world/WorldGameStateSystem.test.mjs ++++ b/dev/tests/world/WorldGameStateSystem.test.mjs +@@ -8,14 +8,14 @@ import assert from 'node:assert/strict'; + import { + WORLD_GAME_STATE_EVENT_TYPES, + WORLD_GAME_STATE_SYSTEM_ID +-} from '../../../src/advanced/state/constants.js'; +-import { createInitialWorldGameState } from '../../../src/advanced/state/initialState.js'; +-import { createObjectiveProgressMirrorConsumer } from '../../../src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js'; ++} from '../../../www/src/advanced/state/constants.js'; ++import { createInitialWorldGameState } from '../../../www/src/advanced/state/initialState.js'; ++import { createObjectiveProgressMirrorConsumer } from '../../../www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js'; + import { + createStateEventEnvelope as createStateContractEventEnvelope, +-} from '../../../src/advanced/state/events.js'; +-import { createWorldGameStateSystem } from '../../../src/advanced/state/createWorldGameStateSystem.js'; +-import { registerWorldGameStateSystem } from '../../../src/advanced/state/integration/registerWorldGameStateSystem.js'; ++} from '../../../www/src/advanced/state/events.js'; ++import { createWorldGameStateSystem } from '../../../www/src/advanced/state/createWorldGameStateSystem.js'; ++import { registerWorldGameStateSystem } from '../../../www/src/advanced/state/integration/registerWorldGameStateSystem.js'; + + function createLocalEventPipeline() { + const listenersByType = new Map(); +diff --git a/dev/tests/world/WorldSystems.test.mjs b/dev/tests/world/WorldSystems.test.mjs +index 3b9105850..5c67e7483 100644 +--- a/dev/tests/world/WorldSystems.test.mjs ++++ b/dev/tests/world/WorldSystems.test.mjs +@@ -5,14 +5,14 @@ David Quesenberry + WorldSystems.test.mjs + */ + import assert from 'node:assert/strict'; +-import EventBus from '../../../src/engine/events/EventBus.js'; +-import CutsceneSystem from '../../../src/engine/world/CutsceneSystem.js'; +-import DayNightCycle from '../../../src/engine/world/DayNightCycle.js'; +-import EventScriptSystem from '../../../src/engine/world/EventScriptSystem.js'; +-import QuestSystem from '../../../src/engine/world/QuestSystem.js'; +-import SpawnSystem from '../../../src/engine/world/SpawnSystem.js'; +-import WeatherSystem from '../../../src/engine/world/WeatherSystem.js'; +-import WorldStreamingSystem from '../../../src/engine/world/WorldStreamingSystem.js'; ++import EventBus from '../../../www/src/engine/events/EventBus.js'; ++import CutsceneSystem from '../../../www/src/engine/world/CutsceneSystem.js'; ++import DayNightCycle from '../../../www/src/engine/world/DayNightCycle.js'; ++import EventScriptSystem from '../../../www/src/engine/world/EventScriptSystem.js'; ++import QuestSystem from '../../../www/src/engine/world/QuestSystem.js'; ++import SpawnSystem from '../../../www/src/engine/world/SpawnSystem.js'; ++import WeatherSystem from '../../../www/src/engine/world/WeatherSystem.js'; ++import WorldStreamingSystem from '../../../www/src/engine/world/WorldStreamingSystem.js'; + + export function run() { + const quests = new QuestSystem([{ id: 'collect', required: 2 }]); +diff --git a/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js b/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js +index 8eb740336..1de3aded3 100644 +--- a/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js ++++ b/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js +@@ -5,7 +5,7 @@ David Quesenberry + debugMacroExecutor.js + */ + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; + + function parseCommandName(commandLine) { + const line = sanitizeText(commandLine); +diff --git a/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js b/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js +index 0d862a099..6178d2931 100644 +--- a/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js ++++ b/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js +@@ -5,8 +5,8 @@ David Quesenberry + debugMacroRegistry.js + */ + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { cloneJson } from "../../../../src/shared/json/clone.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { cloneJson } from "../../../../www/src/shared/json/clone.js"; + + function asStepArray(value) { + if (!Array.isArray(value)) { +diff --git a/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js b/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js +index 357f4d490..0734216c4 100644 +--- a/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js ++++ b/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js +@@ -5,9 +5,9 @@ David Quesenberry + debugPanelGroupRegistry.js + */ + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { asStringArray } from "../../../../src/shared/array/arrays.js"; +-import { cloneJson } from "../../../../src/shared/json/clone.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { asStringArray } from "../../../../www/src/shared/array/arrays.js"; ++import { cloneJson } from "../../../../www/src/shared/json/clone.js"; + + function normalizeGroupDescriptor(descriptor = {}) { + const groupId = sanitizeText(descriptor.groupId); +diff --git a/dev/tools/toolbox-dev/canvasDebugHudRenderer.js b/dev/tools/toolbox-dev/canvasDebugHudRenderer.js +index 691b1941b..530fbe50e 100644 +--- a/dev/tools/toolbox-dev/canvasDebugHudRenderer.js ++++ b/dev/tools/toolbox-dev/canvasDebugHudRenderer.js +@@ -5,7 +5,7 @@ David Quesenberry + canvasDebugHudRenderer.js + */ + +-import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; + + function toArrayLines(lines) { + return Array.isArray(lines) +diff --git a/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json b/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json +index 00919e7a3..c4a7df71b 100644 +--- a/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json ++++ b/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json +@@ -842,167 +842,167 @@ + "match": "rule:helper-fn-isPlainObject" + }, + { +- "file": "src/advanced/promotion/createPromotionGate.js", ++ "file": "www/src/advanced/promotion/createPromotionGate.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/promotion/createPromotionGate.js", ++ "file": "www/src/advanced/promotion/createPromotionGate.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/promotion/createPromotionGate.js", ++ "file": "www/src/advanced/promotion/createPromotionGate.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/promotion/createPromotionGate.js", ++ "file": "www/src/advanced/promotion/createPromotionGate.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/promotion/createPromotionGate.js", ++ "file": "www/src/advanced/promotion/createPromotionGate.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/promotion/createPromotionGate.js", ++ "file": "www/src/advanced/promotion/createPromotionGate.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/createWorldGameStateSystem.js", ++ "file": "www/src/advanced/state/createWorldGameStateSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/events.js", ++ "file": "www/src/advanced/state/events.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/events.js", ++ "file": "www/src/advanced/state/events.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/events.js", ++ "file": "www/src/advanced/state/events.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/initialState.js", ++ "file": "www/src/advanced/state/initialState.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/initialState.js", ++ "file": "www/src/advanced/state/initialState.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/transitions.js", ++ "file": "www/src/advanced/state/transitions.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/advanced/state/utils.js", ++ "file": "www/src/advanced/state/utils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/utils.js", ++ "file": "www/src/advanced/state/utils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/advanced/state/utils.js", ++ "file": "www/src/advanced/state/utils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/advanced/state/utils.js", ++ "file": "www/src/advanced/state/utils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, +@@ -1137,1967 +1137,1967 @@ + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/ai/GroupBehaviors.js", ++ "file": "www/src/engine/ai/GroupBehaviors.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/ai/GroupBehaviors.js", ++ "file": "www/src/engine/ai/GroupBehaviors.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/audio/MediaTrackService.js", ++ "file": "www/src/engine/audio/MediaTrackService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/PreviewSynthEngine.js", ++ "file": "www/src/engine/audio/PreviewSynthEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/PreviewSynthEngine.js", ++ "file": "www/src/engine/audio/PreviewSynthEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/PreviewSynthEngine.js", ++ "file": "www/src/engine/audio/PreviewSynthEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/PreviewSynthEngine.js", ++ "file": "www/src/engine/audio/PreviewSynthEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/PreviewSynthEngine.js", ++ "file": "www/src/engine/audio/PreviewSynthEngine.js", + "type": "renamed-helper-clone", + "match": "rule:renamed-helper-finiteNumber" + }, + { +- "file": "src/engine/audio/SongSheetParser.js", ++ "file": "www/src/engine/audio/SongSheetParser.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/SoundFontPreviewEngine.js", ++ "file": "www/src/engine/audio/SoundFontPreviewEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/SoundFontPreviewEngine.js", ++ "file": "www/src/engine/audio/SoundFontPreviewEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/SoundFontPreviewEngine.js", ++ "file": "www/src/engine/audio/SoundFontPreviewEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/SoundFontPreviewEngine.js", ++ "file": "www/src/engine/audio/SoundFontPreviewEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/SoundFontPreviewEngine.js", ++ "file": "www/src/engine/audio/SoundFontPreviewEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/SoundFontPreviewEngine.js", ++ "file": "www/src/engine/audio/SoundFontPreviewEngine.js", + "type": "renamed-helper-clone", + "match": "rule:renamed-helper-finiteNumber" + }, + { +- "file": "src/engine/audio/TextToSpeechEngine.js", ++ "file": "www/src/engine/audio/TextToSpeechEngine.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/audio/TextToSpeechEngine.js", ++ "file": "www/src/engine/audio/TextToSpeechEngine.js", + "type": "renamed-helper-clone", + "match": "rule:renamed-helper-finiteNumber" + }, + { +- "file": "src/engine/camera/Camera2D.js", ++ "file": "www/src/engine/camera/Camera2D.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/camera/Camera2D.js", ++ "file": "www/src/engine/camera/Camera2D.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/Camera3D.js", ++ "file": "www/src/engine/camera/Camera3D.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/camera/ZoneCameraSystem.js", ++ "file": "www/src/engine/camera/ZoneCameraSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/camera/ZoneCameraSystem.js", ++ "file": "www/src/engine/camera/ZoneCameraSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/collision/combat/Combat.js", ++ "file": "www/src/engine/collision/combat/Combat.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/collision/combat/Combat.js", ++ "file": "www/src/engine/collision/combat/Combat.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/collision/hitboxCollision.js", ++ "file": "www/src/engine/collision/hitboxCollision.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/collision/hitboxCollision.js", ++ "file": "www/src/engine/collision/hitboxCollision.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/collision/hitboxCollision.js", ++ "file": "www/src/engine/collision/hitboxCollision.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/collision/hitboxCollision.js", ++ "file": "www/src/engine/collision/hitboxCollision.js", + "type": "renamed-helper-clone", + "match": "rule:renamed-helper-finiteNumber" + }, + { +- "file": "src/engine/collision/objectVector.js", ++ "file": "www/src/engine/collision/objectVector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/collision/objectVector.js", ++ "file": "www/src/engine/collision/objectVector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/collision/objectVector.js", ++ "file": "www/src/engine/collision/objectVector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/collision/objectVector.js", ++ "file": "www/src/engine/collision/objectVector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/collision/objectVector.js", ++ "file": "www/src/engine/collision/objectVector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/collision/objectVector.js", ++ "file": "www/src/engine/collision/objectVector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/collision/polygon.js", ++ "file": "www/src/engine/collision/polygon.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/collision/polygon.js", ++ "file": "www/src/engine/collision/polygon.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/core/FixedTicker.js", ++ "file": "www/src/engine/core/FixedTicker.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/core/FixedTicker.js", ++ "file": "www/src/engine/core/FixedTicker.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/core/FrameClock.js", ++ "file": "www/src/engine/core/FrameClock.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/core/FrameClock.js", ++ "file": "www/src/engine/core/FrameClock.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/DebugOverlayLayout.js", ++ "file": "www/src/engine/debug/DebugOverlayLayout.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", ++ "file": "www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", ++ "file": "www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/commands/registerInspectorCommands.js", ++ "file": "www/src/engine/debug/inspectors/commands/registerInspectorCommands.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/commands/registerInspectorCommands.js", ++ "file": "www/src/engine/debug/inspectors/commands/registerInspectorCommands.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/commands/registerInspectorCommands.js", ++ "file": "www/src/engine/debug/inspectors/commands/registerInspectorCommands.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", ++ "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", ++ "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", ++ "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", ++ "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/registry/debugInspectorRegistry.js", ++ "file": "www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", ++ "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", ++ "file": "www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js", ++ "file": "www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/commands/networkDebugCommandPackBridge.js", ++ "file": "www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/registerDashboardCommands.js", ++ "file": "www/src/engine/debug/network/dashboard/registerDashboardCommands.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/registerDashboardCommands.js", ++ "file": "www/src/engine/debug/network/dashboard/registerDashboardCommands.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardHost.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardHost.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardMetrics.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardMetrics.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardMetrics.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardMetrics.js", + "type": "inline-helper-clone", + "match": "rule:inline-arrow-number-is-finite" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardMetrics.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardMetrics.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardProviders.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardProviders.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardRefreshModes.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardRegistry.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardRegistry.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardRenderer.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardRenderer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/dashboard/serverDashboardViewModel.js", ++ "file": "www/src/engine/debug/network/dashboard/serverDashboardViewModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js", ++ "file": "www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js", ++ "file": "www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/diagnostics/networkPromotionRecommendation.js", ++ "file": "www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js", ++ "file": "www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/panels/networkDebugPanelRegistry.js", ++ "file": "www/src/engine/debug/network/panels/networkDebugPanelRegistry.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/panels/networkObservabilityPanels.js", ++ "file": "www/src/engine/debug/network/panels/networkObservabilityPanels.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/providers/networkDebugProviderRegistry.js", ++ "file": "www/src/engine/debug/network/providers/networkDebugProviderRegistry.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/hostReadUtils.js", ++ "file": "www/src/engine/debug/network/shared/hostReadUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/hostReadUtils.js", ++ "file": "www/src/engine/debug/network/shared/hostReadUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/hostReadUtils.js", ++ "file": "www/src/engine/debug/network/shared/hostReadUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/network/shared/networkDebugUtils.js", ++ "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/panels/PromotionGatePanel.js", ++ "file": "www/src/engine/debug/panels/PromotionGatePanel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/panels/PromotionGatePanel.js", ++ "file": "www/src/engine/debug/panels/PromotionGatePanel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js", ++ "file": "www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dCollision.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dCollision.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dRenderStages.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dTransform.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransform.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", ++ "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/debug/standard/threeD/providers/transformSummaryProvider.js", ++ "file": "www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-4" + }, + { +- "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", ++ "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/GamepadHapticsService.js", ++ "file": "www/src/engine/input/GamepadHapticsService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/InputCaptureSession.js", ++ "file": "www/src/engine/input/InputCaptureSession.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/NormalizedInputRegistry.js", ++ "file": "www/src/engine/input/NormalizedInputRegistry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/NormalizedInputRegistry.js", ++ "file": "www/src/engine/input/NormalizedInputRegistry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/NormalizedInputRegistry.js", ++ "file": "www/src/engine/input/NormalizedInputRegistry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/PointerDragState.js", ++ "file": "www/src/engine/input/PointerDragState.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/PointerDragState.js", ++ "file": "www/src/engine/input/PointerDragState.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/PointerDragState.js", ++ "file": "www/src/engine/input/PointerDragState.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/input/PointerDragState.js", ++ "file": "www/src/engine/input/PointerDragState.js", + "type": "renamed-helper-clone", + "match": "rule:renamed-helper-finiteNumber" + }, + { +- "file": "src/engine/network/bootstrap/NetworkingLayer.js", ++ "file": "www/src/engine/network/bootstrap/NetworkingLayer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/bootstrap/NetworkingLayer.js", ++ "file": "www/src/engine/network/bootstrap/NetworkingLayer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/client/ClientReplicationApplicationLayer.js", ++ "file": "www/src/engine/network/client/ClientReplicationApplicationLayer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/client/ClientReplicationApplicationLayer.js", ++ "file": "www/src/engine/network/client/ClientReplicationApplicationLayer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/client/PredictionReconciler.js", ++ "file": "www/src/engine/network/client/PredictionReconciler.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/client/PredictionReconciler.js", ++ "file": "www/src/engine/network/client/PredictionReconciler.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/replication/ReplicationMessageContract.js", ++ "file": "www/src/engine/network/replication/ReplicationMessageContract.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/replication/ReplicationMessageContract.js", ++ "file": "www/src/engine/network/replication/ReplicationMessageContract.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/replication/ReplicationMessageContract.js", ++ "file": "www/src/engine/network/replication/ReplicationMessageContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/network/replication/ReplicationMessageContract.js", ++ "file": "www/src/engine/network/replication/ReplicationMessageContract.js", + "type": "local-helper-definition", + "match": "rule:helper-fn-isPlainObject" + }, + { +- "file": "src/engine/network/replication/StateReplication.js", ++ "file": "www/src/engine/network/replication/StateReplication.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/replication/StateReplication.js", ++ "file": "www/src/engine/network/replication/StateReplication.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", ++ "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", ++ "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", ++ "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", ++ "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", + "type": "local-helper-definition", + "match": "rule:helper-fn-isPlainObject" + }, + { +- "file": "src/engine/network/server/AuthoritativeServerRuntime.js", ++ "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/server/AuthoritativeServerRuntime.js", ++ "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/server/AuthoritativeServerRuntime.js", ++ "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/network/server/AuthoritativeServerRuntime.js", ++ "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/network/session/ChatPresenceLayer.js", ++ "file": "www/src/engine/network/session/ChatPresenceLayer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/session/ChatPresenceLayer.js", ++ "file": "www/src/engine/network/session/ChatPresenceLayer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/session/HandshakeSimulator.js", ++ "file": "www/src/engine/network/session/HandshakeSimulator.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/session/HandshakeSimulator.js", ++ "file": "www/src/engine/network/session/HandshakeSimulator.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/session/LobbySessionManager.js", ++ "file": "www/src/engine/network/session/LobbySessionManager.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/session/LobbySessionManager.js", ++ "file": "www/src/engine/network/session/LobbySessionManager.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/transport/LoopbackTransport.js", ++ "file": "www/src/engine/network/transport/LoopbackTransport.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/transport/LoopbackTransport.js", ++ "file": "www/src/engine/network/transport/LoopbackTransport.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/network/transport/Serializer.js", ++ "file": "www/src/engine/network/transport/Serializer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/network/transport/Serializer.js", ++ "file": "www/src/engine/network/transport/Serializer.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/physics/arcadeBody.js", ++ "file": "www/src/engine/physics/arcadeBody.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/physics/arcadeBody.js", ++ "file": "www/src/engine/physics/arcadeBody.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/physics/collision3d.js", ++ "file": "www/src/engine/physics/collision3d.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/physics/collision3d.js", ++ "file": "www/src/engine/physics/collision3d.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/physics/integration3d.js", ++ "file": "www/src/engine/physics/integration3d.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/physics/integration3d.js", ++ "file": "www/src/engine/physics/integration3d.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/release/SettingsSystem.js", ++ "file": "www/src/engine/release/SettingsSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/release/SettingsSystem.js", ++ "file": "www/src/engine/release/SettingsSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", ++ "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/ObjectVectorTransformService.js", ++ "file": "www/src/engine/rendering/ObjectVectorTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/WorldScreenTransformService.js", ++ "file": "www/src/engine/rendering/WorldScreenTransformService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/rendering/WorldScreenTransformService.js", ++ "file": "www/src/engine/rendering/WorldScreenTransformService.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/rendering/WorldScreenTransformService.js", ++ "file": "www/src/engine/rendering/WorldScreenTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/WorldScreenTransformService.js", ++ "file": "www/src/engine/rendering/WorldScreenTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/WorldScreenTransformService.js", ++ "file": "www/src/engine/rendering/WorldScreenTransformService.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/rendering/WorldScreenTransformService.js", ++ "file": "www/src/engine/rendering/WorldScreenTransformService.js", + "type": "renamed-helper-clone", + "match": "rule:renamed-helper-finiteNumber" + }, + { +- "file": "src/engine/replay/ReplayModel.js", ++ "file": "www/src/engine/replay/ReplayModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplayModel.js", ++ "file": "www/src/engine/replay/ReplayModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplayModel.js", ++ "file": "www/src/engine/replay/ReplayModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/replay/ReplayModel.js", ++ "file": "www/src/engine/replay/ReplayModel.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/replay/ReplayModel.js", ++ "file": "www/src/engine/replay/ReplayModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/replay/ReplaySystem.js", ++ "file": "www/src/engine/replay/ReplaySystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplaySystem.js", ++ "file": "www/src/engine/replay/ReplaySystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplaySystem.js", ++ "file": "www/src/engine/replay/ReplaySystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/replay/ReplaySystem.js", ++ "file": "www/src/engine/replay/ReplaySystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/replay/ReplayTimeline.js", ++ "file": "www/src/engine/replay/ReplayTimeline.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplayTimeline.js", ++ "file": "www/src/engine/replay/ReplayTimeline.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplayTimeline.js", ++ "file": "www/src/engine/replay/ReplayTimeline.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/replay/ReplayTimeline.js", ++ "file": "www/src/engine/replay/ReplayTimeline.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/replay/ReplayTimeline.js", ++ "file": "www/src/engine/replay/ReplayTimeline.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/replay/ReplayTimeline.js", ++ "file": "www/src/engine/replay/ReplayTimeline.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/runtime/engineV2AnimationRuntime.js", ++ "file": "www/src/engine/runtime/engineV2AnimationRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2AnimationRuntime.js", ++ "file": "www/src/engine/runtime/engineV2AnimationRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2AnimationRuntime.js", ++ "file": "www/src/engine/runtime/engineV2AnimationRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2AudioRuntime.js", ++ "file": "www/src/engine/runtime/engineV2AudioRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CameraRuntime.js", ++ "file": "www/src/engine/runtime/engineV2CameraRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", ++ "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", ++ "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", ++ "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", ++ "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CheckpointSystem.js", ++ "file": "www/src/engine/runtime/engineV2CheckpointSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2CheckpointSystem.js", ++ "file": "www/src/engine/runtime/engineV2CheckpointSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EconomyAndCurrency.js", ++ "file": "www/src/engine/runtime/engineV2EconomyAndCurrency.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EconomyAndCurrency.js", ++ "file": "www/src/engine/runtime/engineV2EconomyAndCurrency.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EconomyAndCurrency.js", ++ "file": "www/src/engine/runtime/engineV2EconomyAndCurrency.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EffectRuntime.js", ++ "file": "www/src/engine/runtime/engineV2EffectRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EffectRuntime.js", ++ "file": "www/src/engine/runtime/engineV2EffectRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EffectRuntime.js", ++ "file": "www/src/engine/runtime/engineV2EffectRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EffectRuntime.js", ++ "file": "www/src/engine/runtime/engineV2EffectRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EffectRuntime.js", ++ "file": "www/src/engine/runtime/engineV2EffectRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2EffectRuntime.js", ++ "file": "www/src/engine/runtime/engineV2EffectRuntime.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ModifierStack.js", ++ "file": "www/src/engine/runtime/engineV2ModifierStack.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ModifierStack.js", ++ "file": "www/src/engine/runtime/engineV2ModifierStack.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ModifierStack.js", ++ "file": "www/src/engine/runtime/engineV2ModifierStack.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ObjectiveSystem.js", ++ "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ObjectiveSystem.js", ++ "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ObjectiveSystem.js", ++ "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ObjectiveSystem.js", ++ "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ObjectiveSystem.js", ++ "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2PatrolBehavior.js", ++ "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProfileStateSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProfileStateSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProfileStateSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProfileStateSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2ProjectileSystem.js", ++ "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2StatusEffectSystem.js", ++ "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2VendorSystem.js", ++ "file": "www/src/engine/runtime/engineV2VendorSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/engineV2WeaponSystem.js", ++ "file": "www/src/engine/runtime/engineV2WeaponSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/fullscreenBezel.js", ++ "file": "www/src/engine/runtime/fullscreenBezel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/fullscreenBezel.js", ++ "file": "www/src/engine/runtime/fullscreenBezel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/fullscreenBezel.js", ++ "file": "www/src/engine/runtime/fullscreenBezel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/gameImageConvention.js", ++ "file": "www/src/engine/runtime/gameImageConvention.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/runtime/gameImageConvention.js", ++ "file": "www/src/engine/runtime/gameImageConvention.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/runtime/gameImageConvention.js", ++ "file": "www/src/engine/runtime/gameImageConvention.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/runtime/gameImageConvention.js", ++ "file": "www/src/engine/runtime/gameImageConvention.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/runtime/runtimeActionSystem.js", ++ "file": "www/src/engine/runtime/runtimeActionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeActionSystem.js", ++ "file": "www/src/engine/runtime/runtimeActionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeActionSystem.js", ++ "file": "www/src/engine/runtime/runtimeActionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeConditionSystem.js", ++ "file": "www/src/engine/runtime/runtimeConditionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeConditionSystem.js", ++ "file": "www/src/engine/runtime/runtimeConditionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeConditionSystem.js", ++ "file": "www/src/engine/runtime/runtimeConditionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeConditionSystem.js", ++ "file": "www/src/engine/runtime/runtimeConditionSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeCooldownProcessing.js", ++ "file": "www/src/engine/runtime/runtimeCooldownProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeCooldownProcessing.js", ++ "file": "www/src/engine/runtime/runtimeCooldownProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeCooldownProcessing.js", ++ "file": "www/src/engine/runtime/runtimeCooldownProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeDamageProcessing.js", ++ "file": "www/src/engine/runtime/runtimeDamageProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeDamageProcessing.js", ++ "file": "www/src/engine/runtime/runtimeDamageProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeDamageProcessing.js", ++ "file": "www/src/engine/runtime/runtimeDamageProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeDamageProcessing.js", ++ "file": "www/src/engine/runtime/runtimeDamageProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeDamageProcessing.js", ++ "file": "www/src/engine/runtime/runtimeDamageProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeEnvironmentEffects.js", ++ "file": "www/src/engine/runtime/runtimeEnvironmentEffects.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeEnvironmentEffects.js", ++ "file": "www/src/engine/runtime/runtimeEnvironmentEffects.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeEnvironmentForceInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeEnvironmentForceInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeEnvironmentForceInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeEventSystem.js", ++ "file": "www/src/engine/runtime/runtimeEventSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/runtime/runtimeEventSystem.js", ++ "file": "www/src/engine/runtime/runtimeEventSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeHealthModel.js", ++ "file": "www/src/engine/runtime/runtimeHealthModel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeInputPipeline.js", ++ "file": "www/src/engine/runtime/runtimeInputPipeline.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeInputPipeline.js", ++ "file": "www/src/engine/runtime/runtimeInputPipeline.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeLivesAndRespawn.js", ++ "file": "www/src/engine/runtime/runtimeLivesAndRespawn.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeLivesAndRespawn.js", ++ "file": "www/src/engine/runtime/runtimeLivesAndRespawn.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeMovementProcessing.js", ++ "file": "www/src/engine/runtime/runtimeMovementProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeMovementProcessing.js", ++ "file": "www/src/engine/runtime/runtimeMovementProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeMovementProcessing.js", ++ "file": "www/src/engine/runtime/runtimeMovementProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeObjectInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeObjectInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeObjectInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeObjectInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeObjectInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeOutcomeProcessing.js", ++ "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeOutcomeProcessing.js", ++ "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeOutcomeProcessing.js", ++ "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeOutcomeProcessing.js", ++ "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeOutcomeProcessing.js", ++ "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeScoringAndStateProcessing.js", ++ "file": "www/src/engine/runtime/runtimeScoringAndStateProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeScoringAndStateProcessing.js", ++ "file": "www/src/engine/runtime/runtimeScoringAndStateProcessing.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTerrainEffects.js", ++ "file": "www/src/engine/runtime/runtimeTerrainEffects.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTerrainEffects.js", ++ "file": "www/src/engine/runtime/runtimeTerrainEffects.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTerrainEffects.js", ++ "file": "www/src/engine/runtime/runtimeTerrainEffects.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTerrainMaterialInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTerrainMaterialInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTerrainMaterialInstantiation.js", ++ "file": "www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTickLoop.js", ++ "file": "www/src/engine/runtime/runtimeTickLoop.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTickLoop.js", ++ "file": "www/src/engine/runtime/runtimeTickLoop.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/runtime/runtimeTickLoop.js", ++ "file": "www/src/engine/runtime/runtimeTickLoop.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/engine/scene/SceneManager.js", ++ "file": "www/src/engine/scene/SceneManager.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/scene/SceneManager.js", ++ "file": "www/src/engine/scene/SceneManager.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/systems/BoundsSystem.js", ++ "file": "www/src/engine/systems/BoundsSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/systems/BoundsSystem.js", ++ "file": "www/src/engine/systems/BoundsSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/engine/systems/MovementSystem.js", ++ "file": "www/src/engine/systems/MovementSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/engine/systems/MovementSystem.js", ++ "file": "www/src/engine/systems/MovementSystem.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/shared/color/color.js", ++ "file": "www/src/shared/color/color.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, +@@ -3222,582 +3222,582 @@ + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/game/highScores.js", ++ "file": "www/src/shared/game/highScores.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/geometry/geometry.js", ++ "file": "www/src/shared/geometry/geometry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/geometry.js", ++ "file": "www/src/shared/math/geometry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/geometry.js", ++ "file": "www/src/shared/math/geometry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "local-helper-definition", + "match": "rule:helper-fn-asFiniteNumber" + }, + { +- "file": "src/shared/math/numberNormalization.js", ++ "file": "www/src/shared/math/numberNormalization.js", + "type": "local-helper-definition", + "match": "rule:helper-fn-asPositiveInteger" + }, + { +- "file": "src/shared/math/randomHelpers.js", ++ "file": "www/src/shared/math/randomHelpers.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/math/randomHelpers.js", ++ "file": "www/src/shared/math/randomHelpers.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/noise/noise.js", ++ "file": "www/src/shared/noise/noise.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/noise/noise.js", ++ "file": "www/src/shared/noise/noise.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/noise/noise.js", ++ "file": "www/src/shared/noise/noise.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/number/numbers.js", ++ "file": "www/src/shared/number/numbers.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/object/objects.js", ++ "file": "www/src/shared/object/objects.js", + "type": "local-helper-definition", + "match": "rule:helper-fn-isPlainObject" + }, + { +- "file": "src/shared/state/normalization.js", ++ "file": "www/src/shared/state/normalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/state/normalization.js", ++ "file": "www/src/shared/state/normalization.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/time/time.js", ++ "file": "www/src/shared/time/time.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/assetMarketplace.js", ++ "file": "www/src/shared/toolbox/assetMarketplace.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/assetMarketplace.js", ++ "file": "www/src/shared/toolbox/assetMarketplace.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/collaborationSystem.js", ++ "file": "www/src/shared/toolbox/collaborationSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/collaborationSystem.js", ++ "file": "www/src/shared/toolbox/collaborationSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/collaborationSystem.js", ++ "file": "www/src/shared/toolbox/collaborationSystem.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/debugVisualizationLayer.js", ++ "file": "www/src/shared/toolbox/debugVisualizationLayer.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/debugVisualizationLayer.js", ++ "file": "www/src/shared/toolbox/debugVisualizationLayer.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/debugVisualizationLayer.js", ++ "file": "www/src/shared/toolbox/debugVisualizationLayer.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/devConsoleDebugOverlay.js", ++ "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/documentModeGuards.js", ++ "file": "www/src/shared/toolbox/documentModeGuards.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/documentModeGuards.js", ++ "file": "www/src/shared/toolbox/documentModeGuards.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/livePreviewSyncChannel.js", ++ "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/livePreviewSyncChannel.js", ++ "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/livePreviewSyncChannel.js", ++ "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/livePreviewSyncChannel.js", ++ "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/paletteDocumentContract.js", ++ "file": "www/src/shared/toolbox/paletteDocumentContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/paletteDocumentContract.js", ++ "file": "www/src/shared/toolbox/paletteDocumentContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/paletteDocumentContract.js", ++ "file": "www/src/shared/toolbox/paletteDocumentContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/performanceBenchmarks.js", ++ "file": "www/src/shared/toolbox/performanceBenchmarks.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/performanceBenchmarks.js", ++ "file": "www/src/shared/toolbox/performanceBenchmarks.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/performanceBenchmarks.js", ++ "file": "www/src/shared/toolbox/performanceBenchmarks.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/performanceProfiler.js", ++ "file": "www/src/shared/toolbox/performanceProfiler.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/pluginArchitecture.js", ++ "file": "www/src/shared/toolbox/pluginArchitecture.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectAssetRegistry.js", ++ "file": "www/src/shared/toolbox/projectAssetRegistry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectAssetRegistry.js", ++ "file": "www/src/shared/toolbox/projectAssetRegistry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectAssetRegistry.js", ++ "file": "www/src/shared/toolbox/projectAssetRegistry.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectAssetValidation.js", ++ "file": "www/src/shared/toolbox/projectAssetValidation.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectPackaging.js", ++ "file": "www/src/shared/toolbox/projectPackaging.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectPackaging.js", ++ "file": "www/src/shared/toolbox/projectPackaging.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectPackaging.js", ++ "file": "www/src/shared/toolbox/projectPackaging.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectPackaging.js", ++ "file": "www/src/shared/toolbox/projectPackaging.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectSystemAdapters.js", ++ "file": "www/src/shared/toolbox/projectSystemAdapters.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectSystemAdapters.js", ++ "file": "www/src/shared/toolbox/projectSystemAdapters.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectSystemAdapters.js", ++ "file": "www/src/shared/toolbox/projectSystemAdapters.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectSystemAdapters.js", ++ "file": "www/src/shared/toolbox/projectSystemAdapters.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/projectVersioning.js", ++ "file": "www/src/shared/toolbox/projectVersioning.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/renderPipelineContract.js", ++ "file": "www/src/shared/toolbox/renderPipelineContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/runtimeAssetValidationUtils.js", ++ "file": "www/src/shared/toolbox/runtimeAssetValidationUtils.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/runtimeSceneLoaderHotReload.js", ++ "file": "www/src/shared/toolbox/runtimeSceneLoaderHotReload.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/toolLoadDiagnostics.js", ++ "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/toolLoadDiagnostics.js", ++ "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/toolLoadDiagnostics.js", ++ "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/toolLoadDiagnostics.js", ++ "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/toolLoadDiagnostics.js", ++ "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorAssetContract.js", ++ "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/toolbox/vector/vectorGeometryMath.js", ++ "file": "www/src/shared/toolbox/vector/vectorGeometryMath.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/shared/validation/assert.js", ++ "file": "www/src/shared/validation/assert.js", + "type": "inline-helper-clone", + "match": "rule:number-is-finite-usage" + }, + { +- "file": "src/tools/common/GameManifestLoader.js", ++ "file": "www/src/tools/common/GameManifestLoader.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/tools/common/GameManifestLoader.js", ++ "file": "www/src/tools/common/GameManifestLoader.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/tools/common/GameManifestLoader.js", ++ "file": "www/src/tools/common/GameManifestLoader.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/tools/common/GameManifestLoader.js", ++ "file": "www/src/tools/common/GameManifestLoader.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/tools/common/WorkspaceDirtyNotifier.js", ++ "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/tools/common/WorkspaceDirtyNotifier.js", ++ "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-1" + }, + { +- "file": "src/tools/common/WorkspaceDirtyNotifier.js", ++ "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, + { +- "file": "src/tools/common/WorkspaceDirtyNotifier.js", ++ "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", + "type": "direct-shared-relative-import", + "match": "rule:relative-shared-depth-2" + }, +diff --git a/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js b/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js +index d2ed4dc15..8cbe523ea 100644 +--- a/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js ++++ b/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js +@@ -12,9 +12,9 @@ import { + requireNoArgs + } from "./packUtils.js"; + import { createResult } from "./commandPackResultUtils.js"; +-import { getRuntimeAndRegistry } from "../../../../src/shared/runtime/registry.js"; ++import { getRuntimeAndRegistry } from "../../../../www/src/shared/runtime/registry.js"; + +-import { sanitizeText } from "../../../../src/shared/string/strings.js"; ++import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; + + function buildSnapshot(panelRegistry) { + const panels = panelRegistry.getOrderedPanels(true); +diff --git a/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js b/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js +index bca26dbc5..5eb4be228 100644 +--- a/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js ++++ b/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js +@@ -13,9 +13,9 @@ import { + standardDetails, + toLinePair + } from "./packUtils.js"; +-import { stringifyValue } from "../../../../src/shared/string/stringifyValue.js"; ++import { stringifyValue } from "../../../../www/src/shared/string/stringifyValue.js"; + +-import { sanitizeText } from "../../../../src/shared/string/strings.js"; ++import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; + + function asPositiveInt(value, fallback) { + const normalized = Number.isFinite(value) ? Math.floor(Number(value)) : fallback; +diff --git a/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js b/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js +index 030c4e9fd..848d0ab61 100644 +--- a/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js ++++ b/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js +@@ -14,7 +14,7 @@ import { + } from "./packUtils.js"; + import { createResult } from "./commandPackResultUtils.js"; + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; + + const macroRegistry = new DebugMacroRegistry(); + registerStandardDebugMacros(macroRegistry, "standard"); +diff --git a/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js b/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js +index 301d785da..fefb7043d 100644 +--- a/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js ++++ b/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js +@@ -11,9 +11,9 @@ import { + standardDetails, + toLinePair + } from "./packUtils.js"; +-import { getRuntimeAndRegistry } from "../../../../src/shared/runtime/registry.js"; ++import { getRuntimeAndRegistry } from "../../../../www/src/shared/runtime/registry.js"; + +-import { sanitizeText } from "../../../../src/shared/string/strings.js"; ++import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; + + function createFailedResult(title, lines, code, details = {}) { + return { +diff --git a/dev/tools/toolbox-dev/commandPacks/packUtils.js b/dev/tools/toolbox-dev/commandPacks/packUtils.js +index 12bd42b0f..6db0fe631 100644 +--- a/dev/tools/toolbox-dev/commandPacks/packUtils.js ++++ b/dev/tools/toolbox-dev/commandPacks/packUtils.js +@@ -5,8 +5,8 @@ David Quesenberry + packUtils.js + */ + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { isObject } from "../../../../src/shared/object/objects.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { isObject } from "../../../../www/src/shared/object/objects.js"; + + export function requireNoArgs({ args = [], commandName = "" } = {}) { + if (Array.isArray(args) && args.length > 0) { +diff --git a/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js b/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js +index cb332be06..cf5c7e04c 100644 +--- a/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js ++++ b/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js +@@ -7,10 +7,10 @@ presetCommandPack.js + + import { DebugPresetApplier } from "../presets/debugPresetApplier.js"; + import { DebugPresetRegistry } from "../presets/debugPresetRegistry.js"; +-import { registerAdvancedInspectorDebugPresets } from '../../../../src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js'; ++import { registerAdvancedInspectorDebugPresets } from '../../../../www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js'; + import { registerPresetCommands } from "../presets/registerPresetCommands.js"; + import { registerStandardDebugPresets } from "../presets/registerStandardDebugPresets.js"; +-import { registerStandard3dDebugPresets } from '../../../../src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js'; ++import { registerStandard3dDebugPresets } from '../../../../www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js'; + + export function createPresetCommandPack() { + const presetRegistry = new DebugPresetRegistry(); +diff --git a/dev/tools/toolbox-dev/devConsoleCommandRegistry.js b/dev/tools/toolbox-dev/devConsoleCommandRegistry.js +index 89a32c25b..d650ce115 100644 +--- a/dev/tools/toolbox-dev/devConsoleCommandRegistry.js ++++ b/dev/tools/toolbox-dev/devConsoleCommandRegistry.js +@@ -5,8 +5,8 @@ David Quesenberry + devConsoleCommandRegistry.js + */ + +-import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { isObject } from "../../../src/shared/object/objects.js"; ++import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { isObject } from "../../../www/src/shared/object/objects.js"; + + function toLines(lines) { + if (!Array.isArray(lines)) { +diff --git a/dev/tools/toolbox-dev/devConsoleIntegration.js b/dev/tools/toolbox-dev/devConsoleIntegration.js +index 2712ecc9f..25f0e3383 100644 +--- a/dev/tools/toolbox-dev/devConsoleIntegration.js ++++ b/dev/tools/toolbox-dev/devConsoleIntegration.js +@@ -22,13 +22,13 @@ import { createToggleCommandPack } from "./commandPacks/toggleCommandPack.js"; + import { createValidationCommandPack } from "./commandPacks/validationCommandPack.js"; + import { createInspectorStore } from "./inspectors/inspectorStore.js"; + import { createDebugPluginRegistry } from "./plugins/debugPluginSystem.js"; +-import { ensureArray } from "../../../src/shared/array/arrays.js"; +-import { cloneJson } from "../../../src/shared/json/clone.js"; ++import { ensureArray } from "../../../www/src/shared/array/arrays.js"; ++import { cloneJson } from "../../../www/src/shared/json/clone.js"; + + import { + createDiagnosticsCollector, + createDevConsoleDebugOverlayRuntime +-} from "../../../src/shared/toolbox/devConsoleDebugOverlay.js"; ++} from "../../../www/src/shared/toolbox/devConsoleDebugOverlay.js"; + + const DEFAULT_WORLD_STAGES = Object.freeze([ + "parallax", +@@ -58,8 +58,8 @@ const DEFAULT_PLUGIN_CAPABILITIES = Object.freeze([ + Object.freeze({ capabilityId: "debug.diagnostics.snapshot", version: "1.0.0" }) + ]); + +-import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { isObject } from "../../../src/shared/object/objects.js"; ++import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { isObject } from "../../../www/src/shared/object/objects.js"; + + function toContextSection(context, field) { + return isObject(context?.[field]) ? context[field] : {}; +diff --git a/dev/tools/toolbox-dev/inspectors/inspectorStore.js b/dev/tools/toolbox-dev/inspectors/inspectorStore.js +index e1cc322dd..362b283d5 100644 +--- a/dev/tools/toolbox-dev/inspectors/inspectorStore.js ++++ b/dev/tools/toolbox-dev/inspectors/inspectorStore.js +@@ -11,9 +11,9 @@ const DEFAULT_LIMITS = Object.freeze({ + eventStreamMax: 300 + }); + +-import { asArray, asObject, sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { isObject } from "../../../../src/shared/object/objects.js"; +-import { cloneJson } from "../../../../src/shared/json/clone.js"; ++import { asArray, asObject, sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { isObject } from "../../../../www/src/shared/object/objects.js"; ++import { cloneJson } from "../../../../www/src/shared/json/clone.js"; + + function asFinite(value, fallback = 0) { + return Number.isFinite(value) ? Number(value) : fallback; +diff --git a/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js b/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js +index 352ff9e23..cd9ff677a 100644 +--- a/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js ++++ b/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js +@@ -5,7 +5,7 @@ David Quesenberry + interactiveDevConsoleRenderer.js + */ + +-import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; + + function toLines(lines) { + if (!Array.isArray(lines)) { +diff --git a/dev/tools/toolbox-dev/plugins/debugPluginSystem.js b/dev/tools/toolbox-dev/plugins/debugPluginSystem.js +index ec7c6ec7a..44afa74c1 100644 +--- a/dev/tools/toolbox-dev/plugins/debugPluginSystem.js ++++ b/dev/tools/toolbox-dev/plugins/debugPluginSystem.js +@@ -5,9 +5,9 @@ David Quesenberry + debugPluginSystem.js + */ + +-import { asArray, asObject, sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { isObject } from "../../../../src/shared/object/objects.js"; +-import { cloneJson } from "../../../../src/shared/json/clone.js"; ++import { asArray, asObject, sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { isObject } from "../../../../www/src/shared/object/objects.js"; ++import { cloneJson } from "../../../../www/src/shared/json/clone.js"; + + function asPositiveInt(value, fallback) { + const normalized = Number.isFinite(value) ? Math.floor(Number(value)) : fallback; +diff --git a/dev/tools/toolbox-dev/presets/debugPresetApplier.js b/dev/tools/toolbox-dev/presets/debugPresetApplier.js +index b9ce0e261..bb298476a 100644 +--- a/dev/tools/toolbox-dev/presets/debugPresetApplier.js ++++ b/dev/tools/toolbox-dev/presets/debugPresetApplier.js +@@ -5,10 +5,10 @@ David Quesenberry + debugPresetApplier.js + */ + +-import { sanitizeText } from "../../../../src/shared/string/strings.js"; +-import { cloneJson } from "../../../../src/shared/json/clone.js"; +-import { getRuntimeAndRegistry } from "../../../../src/shared/runtime/registry.js"; +-import { toResult } from "../../../../src/engine/debug/shared/debugCommandResultUtils.js"; ++import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; ++import { cloneJson } from "../../../../www/src/shared/json/clone.js"; ++import { getRuntimeAndRegistry } from "../../../../www/src/shared/runtime/registry.js"; ++import { toResult } from "../../../../www/src/engine/debug/shared/debugCommandResultUtils.js"; + + function getAllPanels(panelRegistry) { + const panels = panelRegistry.getOrderedPanels(true); +diff --git a/dev/tools/toolbox-dev/presets/debugPresetRegistry.js b/dev/tools/toolbox-dev/presets/debugPresetRegistry.js +index de6477ef4..16d827ee1 100644 +--- a/dev/tools/toolbox-dev/presets/debugPresetRegistry.js ++++ b/dev/tools/toolbox-dev/presets/debugPresetRegistry.js +@@ -5,10 +5,10 @@ David Quesenberry + debugPresetRegistry.js + */ + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +-import { asStringArray } from "../../../../src/shared/array/arrays.js"; +-import { isObject } from "../../../../src/shared/object/objects.js"; +-import { cloneJson } from "../../../../src/shared/json/clone.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { asStringArray } from "../../../../www/src/shared/array/arrays.js"; ++import { isObject } from "../../../../www/src/shared/object/objects.js"; ++import { cloneJson } from "../../../../www/src/shared/json/clone.js"; + + function normalizePresetDescriptor(descriptor = {}) { + const presetId = sanitizeText(descriptor.presetId); +diff --git a/dev/tools/toolbox-dev/presets/registerPresetCommands.js b/dev/tools/toolbox-dev/presets/registerPresetCommands.js +index d86da600f..effed1a88 100644 +--- a/dev/tools/toolbox-dev/presets/registerPresetCommands.js ++++ b/dev/tools/toolbox-dev/presets/registerPresetCommands.js +@@ -10,7 +10,7 @@ import { + requireNoArgs + } from "../commandPacks/packUtils.js"; + +-import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; ++import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; + + function createCommandResult(status, title, lines, code, details = {}) { + return { +diff --git a/src/advanced/promotion/createPromotionGate.js b/www/src/advanced/promotion/createPromotionGate.js +similarity index 100% +rename from src/advanced/promotion/createPromotionGate.js +rename to www/src/advanced/promotion/createPromotionGate.js +diff --git a/src/advanced/state/constants.js b/www/src/advanced/state/constants.js +similarity index 100% +rename from src/advanced/state/constants.js +rename to www/src/advanced/state/constants.js +diff --git a/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js b/www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js +similarity index 100% +rename from src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js +rename to www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js +diff --git a/src/advanced/state/createWorldGameStateSystem.js b/www/src/advanced/state/createWorldGameStateSystem.js +similarity index 100% +rename from src/advanced/state/createWorldGameStateSystem.js +rename to www/src/advanced/state/createWorldGameStateSystem.js +diff --git a/src/advanced/state/events.js b/www/src/advanced/state/events.js +similarity index 100% +rename from src/advanced/state/events.js +rename to www/src/advanced/state/events.js +diff --git a/src/advanced/state/initialState.js b/www/src/advanced/state/initialState.js +similarity index 100% +rename from src/advanced/state/initialState.js +rename to www/src/advanced/state/initialState.js +diff --git a/src/advanced/state/integration/registerWorldGameStateSystem.js b/www/src/advanced/state/integration/registerWorldGameStateSystem.js +similarity index 100% +rename from src/advanced/state/integration/registerWorldGameStateSystem.js +rename to www/src/advanced/state/integration/registerWorldGameStateSystem.js +diff --git a/src/advanced/state/selectors.js b/www/src/advanced/state/selectors.js +similarity index 100% +rename from src/advanced/state/selectors.js +rename to www/src/advanced/state/selectors.js +diff --git a/src/advanced/state/transitions.js b/www/src/advanced/state/transitions.js +similarity index 100% +rename from src/advanced/state/transitions.js +rename to www/src/advanced/state/transitions.js +diff --git a/src/advanced/state/utils.js b/www/src/advanced/state/utils.js +similarity index 100% +rename from src/advanced/state/utils.js +rename to www/src/advanced/state/utils.js +diff --git a/src/api/admin-infrastructure-api-client.js b/www/src/api/admin-infrastructure-api-client.js +similarity index 100% +rename from src/api/admin-infrastructure-api-client.js +rename to www/src/api/admin-infrastructure-api-client.js +diff --git a/src/api/admin-invitations-api-client.js b/www/src/api/admin-invitations-api-client.js +similarity index 100% +rename from src/api/admin-invitations-api-client.js +rename to www/src/api/admin-invitations-api-client.js +diff --git a/src/api/admin-operations-api-client.js b/www/src/api/admin-operations-api-client.js +similarity index 100% +rename from src/api/admin-operations-api-client.js +rename to www/src/api/admin-operations-api-client.js +diff --git a/src/api/admin-owner-navigation.js b/www/src/api/admin-owner-navigation.js +similarity index 100% +rename from src/api/admin-owner-navigation.js +rename to www/src/api/admin-owner-navigation.js +diff --git a/src/api/admin-setup-api-client.js b/www/src/api/admin-setup-api-client.js +similarity index 100% +rename from src/api/admin-setup-api-client.js +rename to www/src/api/admin-setup-api-client.js +diff --git a/src/api/admin-system-health-api-client.js b/www/src/api/admin-system-health-api-client.js +similarity index 100% +rename from src/api/admin-system-health-api-client.js +rename to www/src/api/admin-system-health-api-client.js +diff --git a/src/api/ai-credits-api-client.js b/www/src/api/ai-credits-api-client.js +similarity index 100% +rename from src/api/ai-credits-api-client.js +rename to www/src/api/ai-credits-api-client.js +diff --git a/src/api/db-viewer-api-client.js b/www/src/api/db-viewer-api-client.js +similarity index 100% +rename from src/api/db-viewer-api-client.js +rename to www/src/api/db-viewer-api-client.js +diff --git a/src/api/db-viewer-ui.js b/www/src/api/db-viewer-ui.js +similarity index 100% +rename from src/api/db-viewer-ui.js +rename to www/src/api/db-viewer-ui.js +diff --git a/src/api/game-journey-completion-api-client.js b/www/src/api/game-journey-completion-api-client.js +similarity index 100% +rename from src/api/game-journey-completion-api-client.js +rename to www/src/api/game-journey-completion-api-client.js +diff --git a/src/api/legal-api-client.js b/www/src/api/legal-api-client.js +similarity index 100% +rename from src/api/legal-api-client.js +rename to www/src/api/legal-api-client.js +diff --git a/src/api/marketplace-api-client.js b/www/src/api/marketplace-api-client.js +similarity index 100% +rename from src/api/marketplace-api-client.js +rename to www/src/api/marketplace-api-client.js +diff --git a/src/api/memberships-api-client.js b/www/src/api/memberships-api-client.js +similarity index 100% +rename from src/api/memberships-api-client.js +rename to www/src/api/memberships-api-client.js +diff --git a/src/api/owner-ai-credits-api-client.js b/www/src/api/owner-ai-credits-api-client.js +similarity index 100% +rename from src/api/owner-ai-credits-api-client.js +rename to www/src/api/owner-ai-credits-api-client.js +diff --git a/src/api/owner-memberships-api-client.js b/www/src/api/owner-memberships-api-client.js +similarity index 100% +rename from src/api/owner-memberships-api-client.js +rename to www/src/api/owner-memberships-api-client.js +diff --git a/src/api/platform-settings-api-client.js b/www/src/api/platform-settings-api-client.js +similarity index 100% +rename from src/api/platform-settings-api-client.js +rename to www/src/api/platform-settings-api-client.js +diff --git a/src/api/public-config-client.js b/www/src/api/public-config-client.js +similarity index 100% +rename from src/api/public-config-client.js +rename to www/src/api/public-config-client.js +diff --git a/src/api/server-api-client.js b/www/src/api/server-api-client.js +similarity index 100% +rename from src/api/server-api-client.js +rename to www/src/api/server-api-client.js +diff --git a/src/api/session-api-client.js b/www/src/api/session-api-client.js +similarity index 100% +rename from src/api/session-api-client.js +rename to www/src/api/session-api-client.js +diff --git a/src/api/toolbox-votes-api-client.js b/www/src/api/toolbox-votes-api-client.js +similarity index 100% +rename from src/api/toolbox-votes-api-client.js +rename to www/src/api/toolbox-votes-api-client.js +diff --git a/src/dev-runtime/admin/admin-notes-viewer.js b/www/src/dev-runtime/admin/admin-notes-viewer.js +similarity index 100% +rename from src/dev-runtime/admin/admin-notes-viewer.js +rename to www/src/dev-runtime/admin/admin-notes-viewer.js +diff --git a/src/dev-runtime/admin/header-nav.local.html b/www/src/dev-runtime/admin/header-nav.local.html +similarity index 100% +rename from src/dev-runtime/admin/header-nav.local.html +rename to www/src/dev-runtime/admin/header-nav.local.html +diff --git a/src/dev-runtime/admin/notes.html b/www/src/dev-runtime/admin/notes.html +similarity index 100% +rename from src/dev-runtime/admin/notes.html +rename to www/src/dev-runtime/admin/notes.html +diff --git a/src/engine/ai/AIStateController.js b/www/src/engine/ai/AIStateController.js +similarity index 100% +rename from src/engine/ai/AIStateController.js +rename to www/src/engine/ai/AIStateController.js +diff --git a/src/engine/ai/GridPathfinding.js b/www/src/engine/ai/GridPathfinding.js +similarity index 100% +rename from src/engine/ai/GridPathfinding.js +rename to www/src/engine/ai/GridPathfinding.js +diff --git a/src/engine/ai/GroupBehaviors.js b/www/src/engine/ai/GroupBehaviors.js +similarity index 100% +rename from src/engine/ai/GroupBehaviors.js +rename to www/src/engine/ai/GroupBehaviors.js +diff --git a/src/engine/ai/PatrolSystem.js b/www/src/engine/ai/PatrolSystem.js +similarity index 100% +rename from src/engine/ai/PatrolSystem.js +rename to www/src/engine/ai/PatrolSystem.js +diff --git a/src/engine/ai/SteeringBehaviors.js b/www/src/engine/ai/SteeringBehaviors.js +similarity index 100% +rename from src/engine/ai/SteeringBehaviors.js +rename to www/src/engine/ai/SteeringBehaviors.js +diff --git a/src/engine/animation/AnimationController.js b/www/src/engine/animation/AnimationController.js +similarity index 100% +rename from src/engine/animation/AnimationController.js +rename to www/src/engine/animation/AnimationController.js +diff --git a/src/engine/assets/AssetLoaderSystem.js b/www/src/engine/assets/AssetLoaderSystem.js +similarity index 100% +rename from src/engine/assets/AssetLoaderSystem.js +rename to www/src/engine/assets/AssetLoaderSystem.js +diff --git a/src/engine/assets/AssetOptimizer.js b/www/src/engine/assets/AssetOptimizer.js +similarity index 100% +rename from src/engine/assets/AssetOptimizer.js +rename to www/src/engine/assets/AssetOptimizer.js +diff --git a/src/engine/assets/AssetRegistry.js b/www/src/engine/assets/AssetRegistry.js +similarity index 100% +rename from src/engine/assets/AssetRegistry.js +rename to www/src/engine/assets/AssetRegistry.js +diff --git a/src/engine/assets/ImageAssetLoader.js b/www/src/engine/assets/ImageAssetLoader.js +similarity index 100% +rename from src/engine/assets/ImageAssetLoader.js +rename to www/src/engine/assets/ImageAssetLoader.js +diff --git a/src/engine/assets/SpriteAtlas.js b/www/src/engine/assets/SpriteAtlas.js +similarity index 100% +rename from src/engine/assets/SpriteAtlas.js +rename to www/src/engine/assets/SpriteAtlas.js +diff --git a/src/engine/audio/AudioService.js b/www/src/engine/audio/AudioService.js +similarity index 100% +rename from src/engine/audio/AudioService.js +rename to www/src/engine/audio/AudioService.js +diff --git a/src/engine/audio/FrequencyPlayer.js b/www/src/engine/audio/FrequencyPlayer.js +similarity index 100% +rename from src/engine/audio/FrequencyPlayer.js +rename to www/src/engine/audio/FrequencyPlayer.js +diff --git a/src/engine/audio/GaplessLoopPlayer.js b/www/src/engine/audio/GaplessLoopPlayer.js +similarity index 100% +rename from src/engine/audio/GaplessLoopPlayer.js +rename to www/src/engine/audio/GaplessLoopPlayer.js +diff --git a/src/engine/audio/HtmlAudioMediaBackend.js b/www/src/engine/audio/HtmlAudioMediaBackend.js +similarity index 100% +rename from src/engine/audio/HtmlAudioMediaBackend.js +rename to www/src/engine/audio/HtmlAudioMediaBackend.js +diff --git a/src/engine/audio/InstrumentGridParser.js b/www/src/engine/audio/InstrumentGridParser.js +similarity index 100% +rename from src/engine/audio/InstrumentGridParser.js +rename to www/src/engine/audio/InstrumentGridParser.js +diff --git a/src/engine/audio/MediaTrackService.js b/www/src/engine/audio/MediaTrackService.js +similarity index 100% +rename from src/engine/audio/MediaTrackService.js +rename to www/src/engine/audio/MediaTrackService.js +diff --git a/src/engine/audio/MidiPlayer.js b/www/src/engine/audio/MidiPlayer.js +similarity index 100% +rename from src/engine/audio/MidiPlayer.js +rename to www/src/engine/audio/MidiPlayer.js +diff --git a/src/engine/audio/MidiSourceMetadataParser.js b/www/src/engine/audio/MidiSourceMetadataParser.js +similarity index 100% +rename from src/engine/audio/MidiSourceMetadataParser.js +rename to www/src/engine/audio/MidiSourceMetadataParser.js +diff --git a/src/engine/audio/PlaylistManager.js b/www/src/engine/audio/PlaylistManager.js +similarity index 100% +rename from src/engine/audio/PlaylistManager.js +rename to www/src/engine/audio/PlaylistManager.js +diff --git a/src/engine/audio/PreviewInstrumentPacks.js b/www/src/engine/audio/PreviewInstrumentPacks.js +similarity index 100% +rename from src/engine/audio/PreviewInstrumentPacks.js +rename to www/src/engine/audio/PreviewInstrumentPacks.js +diff --git a/src/engine/audio/PreviewSynthEngine.js b/www/src/engine/audio/PreviewSynthEngine.js +similarity index 100% +rename from src/engine/audio/PreviewSynthEngine.js +rename to www/src/engine/audio/PreviewSynthEngine.js +diff --git a/src/engine/audio/SongSheetParser.js b/www/src/engine/audio/SongSheetParser.js +similarity index 100% +rename from src/engine/audio/SongSheetParser.js +rename to www/src/engine/audio/SongSheetParser.js +diff --git a/src/engine/audio/SoundFontPreviewEngine.js b/www/src/engine/audio/SoundFontPreviewEngine.js +similarity index 100% +rename from src/engine/audio/SoundFontPreviewEngine.js +rename to www/src/engine/audio/SoundFontPreviewEngine.js +diff --git a/src/engine/audio/Synthesizer.js b/www/src/engine/audio/Synthesizer.js +similarity index 100% +rename from src/engine/audio/Synthesizer.js +rename to www/src/engine/audio/Synthesizer.js +diff --git a/src/engine/audio/TextToSpeechDefaults.js b/www/src/engine/audio/TextToSpeechDefaults.js +similarity index 100% +rename from src/engine/audio/TextToSpeechDefaults.js +rename to www/src/engine/audio/TextToSpeechDefaults.js +diff --git a/src/engine/audio/TextToSpeechEngine.js b/www/src/engine/audio/TextToSpeechEngine.js +similarity index 100% +rename from src/engine/audio/TextToSpeechEngine.js +rename to www/src/engine/audio/TextToSpeechEngine.js +diff --git a/src/engine/audio/WebAudioToneBackend.js b/www/src/engine/audio/WebAudioToneBackend.js +similarity index 100% +rename from src/engine/audio/WebAudioToneBackend.js +rename to www/src/engine/audio/WebAudioToneBackend.js +diff --git a/src/engine/automation/AutomatedTestRunner.js b/www/src/engine/automation/AutomatedTestRunner.js +similarity index 100% +rename from src/engine/automation/AutomatedTestRunner.js +rename to www/src/engine/automation/AutomatedTestRunner.js +diff --git a/src/engine/automation/BenchmarkRunner.js b/www/src/engine/automation/BenchmarkRunner.js +similarity index 100% +rename from src/engine/automation/BenchmarkRunner.js +rename to www/src/engine/automation/BenchmarkRunner.js +diff --git a/src/engine/automation/CIValidationFlow.js b/www/src/engine/automation/CIValidationFlow.js +similarity index 100% +rename from src/engine/automation/CIValidationFlow.js +rename to www/src/engine/automation/CIValidationFlow.js +diff --git a/src/engine/automation/RegressionPlaybackHarness.js b/www/src/engine/automation/RegressionPlaybackHarness.js +similarity index 100% +rename from src/engine/automation/RegressionPlaybackHarness.js +rename to www/src/engine/automation/RegressionPlaybackHarness.js +diff --git a/src/engine/camera/Camera2D.js b/www/src/engine/camera/Camera2D.js +similarity index 100% +rename from src/engine/camera/Camera2D.js +rename to www/src/engine/camera/Camera2D.js +diff --git a/src/engine/camera/Camera3D.js b/www/src/engine/camera/Camera3D.js +similarity index 100% +rename from src/engine/camera/Camera3D.js +rename to www/src/engine/camera/Camera3D.js +diff --git a/src/engine/camera/CameraSystem.js b/www/src/engine/camera/CameraSystem.js +similarity index 100% +rename from src/engine/camera/CameraSystem.js +rename to www/src/engine/camera/CameraSystem.js +diff --git a/src/engine/camera/ZoneCameraSystem.js b/www/src/engine/camera/ZoneCameraSystem.js +similarity index 100% +rename from src/engine/camera/ZoneCameraSystem.js +rename to www/src/engine/camera/ZoneCameraSystem.js +diff --git a/src/engine/collision/aabb.js b/www/src/engine/collision/aabb.js +similarity index 100% +rename from src/engine/collision/aabb.js +rename to www/src/engine/collision/aabb.js +diff --git a/src/engine/collision/combat/Combat.js b/www/src/engine/collision/combat/Combat.js +similarity index 100% +rename from src/engine/collision/combat/Combat.js +rename to www/src/engine/collision/combat/Combat.js +diff --git a/src/engine/collision/hitboxCollision.js b/www/src/engine/collision/hitboxCollision.js +similarity index 100% +rename from src/engine/collision/hitboxCollision.js +rename to www/src/engine/collision/hitboxCollision.js +diff --git a/src/engine/collision/hybrid.js b/www/src/engine/collision/hybrid.js +similarity index 100% +rename from src/engine/collision/hybrid.js +rename to www/src/engine/collision/hybrid.js +diff --git a/src/engine/collision/objectVector.js b/www/src/engine/collision/objectVector.js +similarity index 100% +rename from src/engine/collision/objectVector.js +rename to www/src/engine/collision/objectVector.js +diff --git a/src/engine/collision/polygon.js b/www/src/engine/collision/polygon.js +similarity index 100% +rename from src/engine/collision/polygon.js +rename to www/src/engine/collision/polygon.js +diff --git a/src/engine/collision/raster.js b/www/src/engine/collision/raster.js +similarity index 100% +rename from src/engine/collision/raster.js +rename to www/src/engine/collision/raster.js +diff --git a/src/engine/components/Components.js b/www/src/engine/components/Components.js +similarity index 100% +rename from src/engine/components/Components.js +rename to www/src/engine/components/Components.js +diff --git a/src/engine/config/ConfigStore.js b/www/src/engine/config/ConfigStore.js +similarity index 100% +rename from src/engine/config/ConfigStore.js +rename to www/src/engine/config/ConfigStore.js +diff --git a/src/engine/core/Engine.js b/www/src/engine/core/Engine.js +similarity index 100% +rename from src/engine/core/Engine.js +rename to www/src/engine/core/Engine.js +diff --git a/src/engine/core/FixedTicker.js b/www/src/engine/core/FixedTicker.js +similarity index 100% +rename from src/engine/core/FixedTicker.js +rename to www/src/engine/core/FixedTicker.js +diff --git a/src/engine/core/FrameClock.js b/www/src/engine/core/FrameClock.js +similarity index 100% +rename from src/engine/core/FrameClock.js +rename to www/src/engine/core/FrameClock.js +diff --git a/src/engine/core/RuntimeMetrics.js b/www/src/engine/core/RuntimeMetrics.js +similarity index 100% +rename from src/engine/core/RuntimeMetrics.js +rename to www/src/engine/core/RuntimeMetrics.js +diff --git a/src/engine/debug/CombatDebugOverlay.js b/www/src/engine/debug/CombatDebugOverlay.js +similarity index 100% +rename from src/engine/debug/CombatDebugOverlay.js +rename to www/src/engine/debug/CombatDebugOverlay.js +diff --git a/src/engine/debug/DebugOverlayLayout.js b/www/src/engine/debug/DebugOverlayLayout.js +similarity index 100% +rename from src/engine/debug/DebugOverlayLayout.js +rename to www/src/engine/debug/DebugOverlayLayout.js +diff --git a/src/engine/debug/DebugPanel.js b/www/src/engine/debug/DebugPanel.js +similarity index 100% +rename from src/engine/debug/DebugPanel.js +rename to www/src/engine/debug/DebugPanel.js +diff --git a/src/engine/debug/DebugTools.js b/www/src/engine/debug/DebugTools.js +similarity index 100% +rename from src/engine/debug/DebugTools.js +rename to www/src/engine/debug/DebugTools.js +diff --git a/src/engine/debug/Minimap.js b/www/src/engine/debug/Minimap.js +similarity index 100% +rename from src/engine/debug/Minimap.js +rename to www/src/engine/debug/Minimap.js +diff --git a/src/engine/debug/PerformanceMetricsPanel.js b/www/src/engine/debug/PerformanceMetricsPanel.js +similarity index 100% +rename from src/engine/debug/PerformanceMetricsPanel.js +rename to www/src/engine/debug/PerformanceMetricsPanel.js +diff --git a/src/engine/debug/StatsTracker.js b/www/src/engine/debug/StatsTracker.js +similarity index 100% +rename from src/engine/debug/StatsTracker.js +rename to www/src/engine/debug/StatsTracker.js +diff --git a/src/engine/debug/Validation.js b/www/src/engine/debug/Validation.js +similarity index 100% +rename from src/engine/debug/Validation.js +rename to www/src/engine/debug/Validation.js +diff --git a/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js b/www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js +similarity index 100% +rename from src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js +rename to www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js +diff --git a/src/engine/debug/inspectors/commands/registerInspectorCommands.js b/www/src/engine/debug/inspectors/commands/registerInspectorCommands.js +similarity index 100% +rename from src/engine/debug/inspectors/commands/registerInspectorCommands.js +rename to www/src/engine/debug/inspectors/commands/registerInspectorCommands.js +diff --git a/src/engine/debug/inspectors/host/debugInspectorHost.js b/www/src/engine/debug/inspectors/host/debugInspectorHost.js +similarity index 100% +rename from src/engine/debug/inspectors/host/debugInspectorHost.js +rename to www/src/engine/debug/inspectors/host/debugInspectorHost.js +diff --git a/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js b/www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js +similarity index 100% +rename from src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js +rename to www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js +diff --git a/src/engine/debug/inspectors/registry/debugInspectorRegistry.js b/www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js +similarity index 100% +rename from src/engine/debug/inspectors/registry/debugInspectorRegistry.js +rename to www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js +diff --git a/src/engine/debug/inspectors/shared/inspectorUtils.js b/www/src/engine/debug/inspectors/shared/inspectorUtils.js +similarity index 100% +rename from src/engine/debug/inspectors/shared/inspectorUtils.js +rename to www/src/engine/debug/inspectors/shared/inspectorUtils.js +diff --git a/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js +similarity index 100% +rename from src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js +rename to www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js +diff --git a/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js +similarity index 100% +rename from src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js +rename to www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js +diff --git a/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js +similarity index 100% +rename from src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js +rename to www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js +diff --git a/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js +similarity index 100% +rename from src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js +rename to www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js +diff --git a/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js +similarity index 100% +rename from src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js +rename to www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js +diff --git a/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js b/www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js +similarity index 100% +rename from src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js +rename to www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js +diff --git a/src/engine/debug/network/commands/networkDebugCommandPackBridge.js b/www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js +similarity index 100% +rename from src/engine/debug/network/commands/networkDebugCommandPackBridge.js +rename to www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js +diff --git a/src/engine/debug/network/dashboard/registerDashboardCommands.js b/www/src/engine/debug/network/dashboard/registerDashboardCommands.js +similarity index 100% +rename from src/engine/debug/network/dashboard/registerDashboardCommands.js +rename to www/src/engine/debug/network/dashboard/registerDashboardCommands.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardHost.js b/www/src/engine/debug/network/dashboard/serverDashboardHost.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardHost.js +rename to www/src/engine/debug/network/dashboard/serverDashboardHost.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardMetrics.js b/www/src/engine/debug/network/dashboard/serverDashboardMetrics.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardMetrics.js +rename to www/src/engine/debug/network/dashboard/serverDashboardMetrics.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardProviders.js b/www/src/engine/debug/network/dashboard/serverDashboardProviders.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardProviders.js +rename to www/src/engine/debug/network/dashboard/serverDashboardProviders.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js b/www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardRefreshModes.js +rename to www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardRegistry.js b/www/src/engine/debug/network/dashboard/serverDashboardRegistry.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardRegistry.js +rename to www/src/engine/debug/network/dashboard/serverDashboardRegistry.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardRenderer.js b/www/src/engine/debug/network/dashboard/serverDashboardRenderer.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardRenderer.js +rename to www/src/engine/debug/network/dashboard/serverDashboardRenderer.js +diff --git a/src/engine/debug/network/dashboard/serverDashboardViewModel.js b/www/src/engine/debug/network/dashboard/serverDashboardViewModel.js +similarity index 100% +rename from src/engine/debug/network/dashboard/serverDashboardViewModel.js +rename to www/src/engine/debug/network/dashboard/serverDashboardViewModel.js +diff --git a/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js b/www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js +similarity index 100% +rename from src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js +rename to www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js +diff --git a/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js b/www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js +similarity index 100% +rename from src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js +rename to www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js +diff --git a/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js b/www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js +similarity index 100% +rename from src/engine/debug/network/diagnostics/networkPromotionRecommendation.js +rename to www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js +diff --git a/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js b/www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js +similarity index 100% +rename from src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js +rename to www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js +diff --git a/src/engine/debug/network/panels/networkDebugPanelRegistry.js b/www/src/engine/debug/network/panels/networkDebugPanelRegistry.js +similarity index 100% +rename from src/engine/debug/network/panels/networkDebugPanelRegistry.js +rename to www/src/engine/debug/network/panels/networkDebugPanelRegistry.js +diff --git a/src/engine/debug/network/panels/networkObservabilityPanels.js b/www/src/engine/debug/network/panels/networkObservabilityPanels.js +similarity index 100% +rename from src/engine/debug/network/panels/networkObservabilityPanels.js +rename to www/src/engine/debug/network/panels/networkObservabilityPanels.js +diff --git a/src/engine/debug/network/providers/networkDebugProviderRegistry.js b/www/src/engine/debug/network/providers/networkDebugProviderRegistry.js +similarity index 100% +rename from src/engine/debug/network/providers/networkDebugProviderRegistry.js +rename to www/src/engine/debug/network/providers/networkDebugProviderRegistry.js +diff --git a/src/engine/debug/network/shared/hostReadUtils.js b/www/src/engine/debug/network/shared/hostReadUtils.js +similarity index 100% +rename from src/engine/debug/network/shared/hostReadUtils.js +rename to www/src/engine/debug/network/shared/hostReadUtils.js +diff --git a/src/engine/debug/network/shared/networkDebugUtils.js b/www/src/engine/debug/network/shared/networkDebugUtils.js +similarity index 100% +rename from src/engine/debug/network/shared/networkDebugUtils.js +rename to www/src/engine/debug/network/shared/networkDebugUtils.js +diff --git a/src/engine/debug/panels/PromotionGatePanel.js b/www/src/engine/debug/panels/PromotionGatePanel.js +similarity index 100% +rename from src/engine/debug/panels/PromotionGatePanel.js +rename to www/src/engine/debug/panels/PromotionGatePanel.js +diff --git a/src/engine/debug/shared/debugCommandResultUtils.js b/www/src/engine/debug/shared/debugCommandResultUtils.js +similarity index 100% +rename from src/engine/debug/shared/debugCommandResultUtils.js +rename to www/src/engine/debug/shared/debugCommandResultUtils.js +diff --git a/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js b/www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js +similarity index 100% +rename from src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js +rename to www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dCamera.js b/www/src/engine/debug/standard/threeD/panels/panel3dCamera.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dCamera.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dCamera.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dCollision.js b/www/src/engine/debug/standard/threeD/panels/panel3dCollision.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dCollision.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dCollision.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js b/www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js b/www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js b/www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dRenderStages.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js b/www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js b/www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dTransform.js b/www/src/engine/debug/standard/threeD/panels/panel3dTransform.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dTransform.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dTransform.js +diff --git a/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js b/www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js +rename to www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js +diff --git a/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js b/www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js +similarity index 100% +rename from src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js +rename to www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js +diff --git a/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js b/www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js +similarity index 100% +rename from src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js +rename to www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js +diff --git a/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js +rename to www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js b/www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js +rename to www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js +rename to www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js b/www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js +rename to www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js +diff --git a/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js b/www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js +rename to www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js +rename to www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js b/www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js +rename to www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js +rename to www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js b/www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/transformInspectorProvider.js +rename to www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js +diff --git a/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js +similarity index 100% +rename from src/engine/debug/standard/threeD/providers/transformSummaryProvider.js +rename to www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js +diff --git a/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js b/www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js +similarity index 100% +rename from src/engine/debug/standard/threeD/shared/threeDDebugUtils.js +rename to www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js +diff --git a/src/engine/ecs/World.js b/www/src/engine/ecs/World.js +similarity index 100% +rename from src/engine/ecs/World.js +rename to www/src/engine/ecs/World.js +diff --git a/src/engine/entity/Bounds.js b/www/src/engine/entity/Bounds.js +similarity index 100% +rename from src/engine/entity/Bounds.js +rename to www/src/engine/entity/Bounds.js +diff --git a/src/engine/entity/Entity.js b/www/src/engine/entity/Entity.js +similarity index 100% +rename from src/engine/entity/Entity.js +rename to www/src/engine/entity/Entity.js +diff --git a/src/engine/entity/Transform.js b/www/src/engine/entity/Transform.js +similarity index 100% +rename from src/engine/entity/Transform.js +rename to www/src/engine/entity/Transform.js +diff --git a/src/engine/entity/Velocity.js b/www/src/engine/entity/Velocity.js +similarity index 100% +rename from src/engine/entity/Velocity.js +rename to www/src/engine/entity/Velocity.js +diff --git a/src/engine/events/EventBus.js b/www/src/engine/events/EventBus.js +similarity index 100% +rename from src/engine/events/EventBus.js +rename to www/src/engine/events/EventBus.js +diff --git a/src/engine/fx/ParticleSystem.js b/www/src/engine/fx/ParticleSystem.js +similarity index 100% +rename from src/engine/fx/ParticleSystem.js +rename to www/src/engine/fx/ParticleSystem.js +diff --git a/src/engine/game/GameModeState.js b/www/src/engine/game/GameModeState.js +similarity index 100% +rename from src/engine/game/GameModeState.js +rename to www/src/engine/game/GameModeState.js +diff --git a/src/engine/game/gameplayHooks.js b/www/src/engine/game/gameplayHooks.js +similarity index 100% +rename from src/engine/game/gameplayHooks.js +rename to www/src/engine/game/gameplayHooks.js +diff --git a/src/engine/input/ActionInputDebugOverlay.js b/www/src/engine/input/ActionInputDebugOverlay.js +similarity index 100% +rename from src/engine/input/ActionInputDebugOverlay.js +rename to www/src/engine/input/ActionInputDebugOverlay.js +diff --git a/src/engine/input/ActionInputMap.js b/www/src/engine/input/ActionInputMap.js +similarity index 100% +rename from src/engine/input/ActionInputMap.js +rename to www/src/engine/input/ActionInputMap.js +diff --git a/src/engine/input/ActionInputService.js b/www/src/engine/input/ActionInputService.js +similarity index 100% +rename from src/engine/input/ActionInputService.js +rename to www/src/engine/input/ActionInputService.js +diff --git a/src/engine/input/GamepadHapticsService.js b/www/src/engine/input/GamepadHapticsService.js +similarity index 100% +rename from src/engine/input/GamepadHapticsService.js +rename to www/src/engine/input/GamepadHapticsService.js +diff --git a/src/engine/input/GamepadInputAdapter.js b/www/src/engine/input/GamepadInputAdapter.js +similarity index 100% +rename from src/engine/input/GamepadInputAdapter.js +rename to www/src/engine/input/GamepadInputAdapter.js +diff --git a/src/engine/input/GamepadInputClassifier.js b/www/src/engine/input/GamepadInputClassifier.js +similarity index 100% +rename from src/engine/input/GamepadInputClassifier.js +rename to www/src/engine/input/GamepadInputClassifier.js +diff --git a/src/engine/input/GamepadState.js b/www/src/engine/input/GamepadState.js +similarity index 100% +rename from src/engine/input/GamepadState.js +rename to www/src/engine/input/GamepadState.js +diff --git a/src/engine/input/InputCapabilityDescriptors.js b/www/src/engine/input/InputCapabilityDescriptors.js +similarity index 100% +rename from src/engine/input/InputCapabilityDescriptors.js +rename to www/src/engine/input/InputCapabilityDescriptors.js +diff --git a/src/engine/input/InputCaptureService.js b/www/src/engine/input/InputCaptureService.js +similarity index 100% +rename from src/engine/input/InputCaptureService.js +rename to www/src/engine/input/InputCaptureService.js +diff --git a/src/engine/input/InputCaptureSession.js b/www/src/engine/input/InputCaptureSession.js +similarity index 100% +rename from src/engine/input/InputCaptureSession.js +rename to www/src/engine/input/InputCaptureSession.js +diff --git a/src/engine/input/InputComboState.js b/www/src/engine/input/InputComboState.js +similarity index 100% +rename from src/engine/input/InputComboState.js +rename to www/src/engine/input/InputComboState.js +diff --git a/src/engine/input/InputContextService.js b/www/src/engine/input/InputContextService.js +similarity index 100% +rename from src/engine/input/InputContextService.js +rename to www/src/engine/input/InputContextService.js +diff --git a/src/engine/input/InputMap.js b/www/src/engine/input/InputMap.js +similarity index 100% +rename from src/engine/input/InputMap.js +rename to www/src/engine/input/InputMap.js +diff --git a/src/engine/input/InputMappingManifest.js b/www/src/engine/input/InputMappingManifest.js +similarity index 100% +rename from src/engine/input/InputMappingManifest.js +rename to www/src/engine/input/InputMappingManifest.js +diff --git a/src/engine/input/InputService.js b/www/src/engine/input/InputService.js +similarity index 100% +rename from src/engine/input/InputService.js +rename to www/src/engine/input/InputService.js +diff --git a/src/engine/input/KeyboardState.js b/www/src/engine/input/KeyboardState.js +similarity index 100% +rename from src/engine/input/KeyboardState.js +rename to www/src/engine/input/KeyboardState.js +diff --git a/src/engine/input/MouseState.js b/www/src/engine/input/MouseState.js +similarity index 100% +rename from src/engine/input/MouseState.js +rename to www/src/engine/input/MouseState.js +diff --git a/src/engine/input/NormalizedInputRegistry.js b/www/src/engine/input/NormalizedInputRegistry.js +similarity index 100% +rename from src/engine/input/NormalizedInputRegistry.js +rename to www/src/engine/input/NormalizedInputRegistry.js +diff --git a/src/engine/input/PointerDragState.js b/www/src/engine/input/PointerDragState.js +similarity index 100% +rename from src/engine/input/PointerDragState.js +rename to www/src/engine/input/PointerDragState.js +diff --git a/src/engine/interaction/InteractionSystem.js b/www/src/engine/interaction/InteractionSystem.js +similarity index 100% +rename from src/engine/interaction/InteractionSystem.js +rename to www/src/engine/interaction/InteractionSystem.js +diff --git a/src/engine/level/LevelLoader.js b/www/src/engine/level/LevelLoader.js +similarity index 100% +rename from src/engine/level/LevelLoader.js +rename to www/src/engine/level/LevelLoader.js +diff --git a/src/engine/localization/LocalizationService.js b/www/src/engine/localization/LocalizationService.js +similarity index 100% +rename from src/engine/localization/LocalizationService.js +rename to www/src/engine/localization/LocalizationService.js +diff --git a/src/engine/logging/ErrorBoundary.js b/www/src/engine/logging/ErrorBoundary.js +similarity index 100% +rename from src/engine/logging/ErrorBoundary.js +rename to www/src/engine/logging/ErrorBoundary.js +diff --git a/src/engine/logging/Logger.js b/www/src/engine/logging/Logger.js +similarity index 100% +rename from src/engine/logging/Logger.js +rename to www/src/engine/logging/Logger.js +diff --git a/src/engine/memory/DisposableStore.js b/www/src/engine/memory/DisposableStore.js +similarity index 100% +rename from src/engine/memory/DisposableStore.js +rename to www/src/engine/memory/DisposableStore.js +diff --git a/src/engine/memory/ObjectPool.js b/www/src/engine/memory/ObjectPool.js +similarity index 100% +rename from src/engine/memory/ObjectPool.js +rename to www/src/engine/memory/ObjectPool.js +diff --git a/src/engine/network/bootstrap/HostServerBootstrap.js b/www/src/engine/network/bootstrap/HostServerBootstrap.js +similarity index 100% +rename from src/engine/network/bootstrap/HostServerBootstrap.js +rename to www/src/engine/network/bootstrap/HostServerBootstrap.js +diff --git a/src/engine/network/bootstrap/NetworkingLayer.js b/www/src/engine/network/bootstrap/NetworkingLayer.js +similarity index 100% +rename from src/engine/network/bootstrap/NetworkingLayer.js +rename to www/src/engine/network/bootstrap/NetworkingLayer.js +diff --git a/src/engine/network/client/ClientReconciliationStrategy.js b/www/src/engine/network/client/ClientReconciliationStrategy.js +similarity index 100% +rename from src/engine/network/client/ClientReconciliationStrategy.js +rename to www/src/engine/network/client/ClientReconciliationStrategy.js +diff --git a/src/engine/network/client/ClientReplicationApplicationLayer.js b/www/src/engine/network/client/ClientReplicationApplicationLayer.js +similarity index 100% +rename from src/engine/network/client/ClientReplicationApplicationLayer.js +rename to www/src/engine/network/client/ClientReplicationApplicationLayer.js +diff --git a/src/engine/network/client/PredictionReconciler.js b/www/src/engine/network/client/PredictionReconciler.js +similarity index 100% +rename from src/engine/network/client/PredictionReconciler.js +rename to www/src/engine/network/client/PredictionReconciler.js +diff --git a/src/engine/network/client/RemoteInterpolationBuffer.js b/www/src/engine/network/client/RemoteInterpolationBuffer.js +similarity index 100% +rename from src/engine/network/client/RemoteInterpolationBuffer.js +rename to www/src/engine/network/client/RemoteInterpolationBuffer.js +diff --git a/src/engine/network/debug/NetworkDebugOverlay.js b/www/src/engine/network/debug/NetworkDebugOverlay.js +similarity index 100% +rename from src/engine/network/debug/NetworkDebugOverlay.js +rename to www/src/engine/network/debug/NetworkDebugOverlay.js +diff --git a/src/engine/network/replication/ReplicationMessageContract.js b/www/src/engine/network/replication/ReplicationMessageContract.js +similarity index 100% +rename from src/engine/network/replication/ReplicationMessageContract.js +rename to www/src/engine/network/replication/ReplicationMessageContract.js +diff --git a/src/engine/network/replication/StateReplication.js b/www/src/engine/network/replication/StateReplication.js +similarity index 100% +rename from src/engine/network/replication/StateReplication.js +rename to www/src/engine/network/replication/StateReplication.js +diff --git a/src/engine/network/server/AuthoritativeInputIngestionContract.js b/www/src/engine/network/server/AuthoritativeInputIngestionContract.js +similarity index 100% +rename from src/engine/network/server/AuthoritativeInputIngestionContract.js +rename to www/src/engine/network/server/AuthoritativeInputIngestionContract.js +diff --git a/src/engine/network/server/AuthoritativeServerRuntime.js b/www/src/engine/network/server/AuthoritativeServerRuntime.js +similarity index 100% +rename from src/engine/network/server/AuthoritativeServerRuntime.js +rename to www/src/engine/network/server/AuthoritativeServerRuntime.js +diff --git a/src/engine/network/server/InterestManager.js b/www/src/engine/network/server/InterestManager.js +similarity index 100% +rename from src/engine/network/server/InterestManager.js +rename to www/src/engine/network/server/InterestManager.js +diff --git a/src/engine/network/server/RollbackDiagnostics.js b/www/src/engine/network/server/RollbackDiagnostics.js +similarity index 100% +rename from src/engine/network/server/RollbackDiagnostics.js +rename to www/src/engine/network/server/RollbackDiagnostics.js +diff --git a/src/engine/network/session/ChatPresenceLayer.js b/www/src/engine/network/session/ChatPresenceLayer.js +similarity index 100% +rename from src/engine/network/session/ChatPresenceLayer.js +rename to www/src/engine/network/session/ChatPresenceLayer.js +diff --git a/src/engine/network/session/HandshakeSimulator.js b/www/src/engine/network/session/HandshakeSimulator.js +similarity index 100% +rename from src/engine/network/session/HandshakeSimulator.js +rename to www/src/engine/network/session/HandshakeSimulator.js +diff --git a/src/engine/network/session/LobbySessionManager.js b/www/src/engine/network/session/LobbySessionManager.js +similarity index 100% +rename from src/engine/network/session/LobbySessionManager.js +rename to www/src/engine/network/session/LobbySessionManager.js +diff --git a/src/engine/network/session/SessionLifecycleContract.js b/www/src/engine/network/session/SessionLifecycleContract.js +similarity index 100% +rename from src/engine/network/session/SessionLifecycleContract.js +rename to www/src/engine/network/session/SessionLifecycleContract.js +diff --git a/src/engine/network/transport/LoopbackTransport.js b/www/src/engine/network/transport/LoopbackTransport.js +similarity index 100% +rename from src/engine/network/transport/LoopbackTransport.js +rename to www/src/engine/network/transport/LoopbackTransport.js +diff --git a/src/engine/network/transport/NetworkConditionSimulator.js b/www/src/engine/network/transport/NetworkConditionSimulator.js +similarity index 100% +rename from src/engine/network/transport/NetworkConditionSimulator.js +rename to www/src/engine/network/transport/NetworkConditionSimulator.js +diff --git a/src/engine/network/transport/Serializer.js b/www/src/engine/network/transport/Serializer.js +similarity index 100% +rename from src/engine/network/transport/Serializer.js +rename to www/src/engine/network/transport/Serializer.js +diff --git a/src/engine/network/transport/TransportContract.js b/www/src/engine/network/transport/TransportContract.js +similarity index 100% +rename from src/engine/network/transport/TransportContract.js +rename to www/src/engine/network/transport/TransportContract.js +diff --git a/src/engine/object-model/index.js b/www/src/engine/object-model/index.js +similarity index 100% +rename from src/engine/object-model/index.js +rename to www/src/engine/object-model/index.js +diff --git a/src/engine/object-model/objectDefinitionSchema.js b/www/src/engine/object-model/objectDefinitionSchema.js +similarity index 100% +rename from src/engine/object-model/objectDefinitionSchema.js +rename to www/src/engine/object-model/objectDefinitionSchema.js +diff --git a/src/engine/object-model/objectDefinitionValidator.js b/www/src/engine/object-model/objectDefinitionValidator.js +similarity index 100% +rename from src/engine/object-model/objectDefinitionValidator.js +rename to www/src/engine/object-model/objectDefinitionValidator.js +diff --git a/src/engine/object-model/objectModelRegistry.js b/www/src/engine/object-model/objectModelRegistry.js +similarity index 100% +rename from src/engine/object-model/objectModelRegistry.js +rename to www/src/engine/object-model/objectModelRegistry.js +diff --git a/src/engine/paletteList.js b/www/src/engine/paletteList.js +similarity index 100% +rename from src/engine/paletteList.js +rename to www/src/engine/paletteList.js +diff --git a/src/engine/persistence/BrowserStorageService.js b/www/src/engine/persistence/BrowserStorageService.js +similarity index 100% +rename from src/engine/persistence/BrowserStorageService.js +rename to www/src/engine/persistence/BrowserStorageService.js +diff --git a/src/engine/persistence/CompressionService.js b/www/src/engine/persistence/CompressionService.js +similarity index 100% +rename from src/engine/persistence/CompressionService.js +rename to www/src/engine/persistence/CompressionService.js +diff --git a/src/engine/persistence/CookieStorageService.js b/www/src/engine/persistence/CookieStorageService.js +similarity index 100% +rename from src/engine/persistence/CookieStorageService.js +rename to www/src/engine/persistence/CookieStorageService.js +diff --git a/src/engine/persistence/FilePersistenceService.js b/www/src/engine/persistence/FilePersistenceService.js +similarity index 100% +rename from src/engine/persistence/FilePersistenceService.js +rename to www/src/engine/persistence/FilePersistenceService.js +diff --git a/src/engine/persistence/LocalStorageService.js b/www/src/engine/persistence/LocalStorageService.js +similarity index 100% +rename from src/engine/persistence/LocalStorageService.js +rename to www/src/engine/persistence/LocalStorageService.js +diff --git a/src/engine/persistence/SaveSlotManager.js b/www/src/engine/persistence/SaveSlotManager.js +similarity index 100% +rename from src/engine/persistence/SaveSlotManager.js +rename to www/src/engine/persistence/SaveSlotManager.js +diff --git a/src/engine/persistence/SessionStorageService.js b/www/src/engine/persistence/SessionStorageService.js +similarity index 100% +rename from src/engine/persistence/SessionStorageService.js +rename to www/src/engine/persistence/SessionStorageService.js +diff --git a/src/engine/persistence/StorageService.js b/www/src/engine/persistence/StorageService.js +similarity index 100% +rename from src/engine/persistence/StorageService.js +rename to www/src/engine/persistence/StorageService.js +diff --git a/src/engine/persistence/WorldSerializer.js b/www/src/engine/persistence/WorldSerializer.js +similarity index 100% +rename from src/engine/persistence/WorldSerializer.js +rename to www/src/engine/persistence/WorldSerializer.js +diff --git a/src/engine/physics/arcadeBody.js b/www/src/engine/physics/arcadeBody.js +similarity index 100% +rename from src/engine/physics/arcadeBody.js +rename to www/src/engine/physics/arcadeBody.js +diff --git a/src/engine/physics/collision3d.js b/www/src/engine/physics/collision3d.js +similarity index 100% +rename from src/engine/physics/collision3d.js +rename to www/src/engine/physics/collision3d.js +diff --git a/src/engine/physics/drag.js b/www/src/engine/physics/drag.js +similarity index 100% +rename from src/engine/physics/drag.js +rename to www/src/engine/physics/drag.js +diff --git a/src/engine/physics/integration.js b/www/src/engine/physics/integration.js +similarity index 100% +rename from src/engine/physics/integration.js +rename to www/src/engine/physics/integration.js +diff --git a/src/engine/physics/integration3d.js b/www/src/engine/physics/integration3d.js +similarity index 100% +rename from src/engine/physics/integration3d.js +rename to www/src/engine/physics/integration3d.js +diff --git a/src/engine/physics/scene3d.js b/www/src/engine/physics/scene3d.js +similarity index 100% +rename from src/engine/physics/scene3d.js +rename to www/src/engine/physics/scene3d.js +diff --git a/src/engine/prefabs/PrefabFactory.js b/www/src/engine/prefabs/PrefabFactory.js +similarity index 100% +rename from src/engine/prefabs/PrefabFactory.js +rename to www/src/engine/prefabs/PrefabFactory.js +diff --git a/src/engine/release/AccessibilityOptions.js b/www/src/engine/release/AccessibilityOptions.js +similarity index 100% +rename from src/engine/release/AccessibilityOptions.js +rename to www/src/engine/release/AccessibilityOptions.js +diff --git a/src/engine/release/CrashRecoveryManager.js b/www/src/engine/release/CrashRecoveryManager.js +similarity index 100% +rename from src/engine/release/CrashRecoveryManager.js +rename to www/src/engine/release/CrashRecoveryManager.js +diff --git a/src/engine/release/DeploymentProfiles.js b/www/src/engine/release/DeploymentProfiles.js +similarity index 100% +rename from src/engine/release/DeploymentProfiles.js +rename to www/src/engine/release/DeploymentProfiles.js +diff --git a/src/engine/release/DistributionPackager.js b/www/src/engine/release/DistributionPackager.js +similarity index 100% +rename from src/engine/release/DistributionPackager.js +rename to www/src/engine/release/DistributionPackager.js +diff --git a/src/engine/release/ReleaseValidationChecklist.js b/www/src/engine/release/ReleaseValidationChecklist.js +similarity index 100% +rename from src/engine/release/ReleaseValidationChecklist.js +rename to www/src/engine/release/ReleaseValidationChecklist.js +diff --git a/src/engine/release/SettingsSystem.js b/www/src/engine/release/SettingsSystem.js +similarity index 100% +rename from src/engine/release/SettingsSystem.js +rename to www/src/engine/release/SettingsSystem.js +diff --git a/src/engine/rendering/CanvasRenderer.js b/www/src/engine/rendering/CanvasRenderer.js +similarity index 100% +rename from src/engine/rendering/CanvasRenderer.js +rename to www/src/engine/rendering/CanvasRenderer.js +diff --git a/src/engine/rendering/LayeredRenderSystem.js b/www/src/engine/rendering/LayeredRenderSystem.js +similarity index 100% +rename from src/engine/rendering/LayeredRenderSystem.js +rename to www/src/engine/rendering/LayeredRenderSystem.js +diff --git a/src/engine/rendering/ObjectVectorRuntimeAssetService.js b/www/src/engine/rendering/ObjectVectorRuntimeAssetService.js +similarity index 100% +rename from src/engine/rendering/ObjectVectorRuntimeAssetService.js +rename to www/src/engine/rendering/ObjectVectorRuntimeAssetService.js +diff --git a/src/engine/rendering/ObjectVectorTransformService.js b/www/src/engine/rendering/ObjectVectorTransformService.js +similarity index 100% +rename from src/engine/rendering/ObjectVectorTransformService.js +rename to www/src/engine/rendering/ObjectVectorTransformService.js +diff --git a/src/engine/rendering/OrientationTransform.js b/www/src/engine/rendering/OrientationTransform.js +similarity index 100% +rename from src/engine/rendering/OrientationTransform.js +rename to www/src/engine/rendering/OrientationTransform.js +diff --git a/src/engine/rendering/Renderer.js b/www/src/engine/rendering/Renderer.js +similarity index 100% +rename from src/engine/rendering/Renderer.js +rename to www/src/engine/rendering/Renderer.js +diff --git a/src/engine/rendering/ResolutionScaler.js b/www/src/engine/rendering/ResolutionScaler.js +similarity index 100% +rename from src/engine/rendering/ResolutionScaler.js +rename to www/src/engine/rendering/ResolutionScaler.js +diff --git a/src/engine/rendering/SpriteRenderSystem.js b/www/src/engine/rendering/SpriteRenderSystem.js +similarity index 100% +rename from src/engine/rendering/SpriteRenderSystem.js +rename to www/src/engine/rendering/SpriteRenderSystem.js +diff --git a/src/engine/rendering/VectorDrawing.js b/www/src/engine/rendering/VectorDrawing.js +similarity index 100% +rename from src/engine/rendering/VectorDrawing.js +rename to www/src/engine/rendering/VectorDrawing.js +diff --git a/src/engine/rendering/WorldScreenTransform.js b/www/src/engine/rendering/WorldScreenTransform.js +similarity index 100% +rename from src/engine/rendering/WorldScreenTransform.js +rename to www/src/engine/rendering/WorldScreenTransform.js +diff --git a/src/engine/rendering/WorldScreenTransformService.js b/www/src/engine/rendering/WorldScreenTransformService.js +similarity index 100% +rename from src/engine/rendering/WorldScreenTransformService.js +rename to www/src/engine/rendering/WorldScreenTransformService.js +diff --git a/src/engine/replay/ReplayModel.js b/www/src/engine/replay/ReplayModel.js +similarity index 100% +rename from src/engine/replay/ReplayModel.js +rename to www/src/engine/replay/ReplayModel.js +diff --git a/src/engine/replay/ReplaySystem.js b/www/src/engine/replay/ReplaySystem.js +similarity index 100% +rename from src/engine/replay/ReplaySystem.js +rename to www/src/engine/replay/ReplaySystem.js +diff --git a/src/engine/replay/ReplayTimeline.js b/www/src/engine/replay/ReplayTimeline.js +similarity index 100% +rename from src/engine/replay/ReplayTimeline.js +rename to www/src/engine/replay/ReplayTimeline.js +diff --git a/src/engine/runtime/BrowserDownloadService.js b/www/src/engine/runtime/BrowserDownloadService.js +similarity index 100% +rename from src/engine/runtime/BrowserDownloadService.js +rename to www/src/engine/runtime/BrowserDownloadService.js +diff --git a/src/engine/runtime/FullscreenService.js b/www/src/engine/runtime/FullscreenService.js +similarity index 100% +rename from src/engine/runtime/FullscreenService.js +rename to www/src/engine/runtime/FullscreenService.js +diff --git a/src/engine/runtime/MobileRuntimeTweaks.js b/www/src/engine/runtime/MobileRuntimeTweaks.js +similarity index 100% +rename from src/engine/runtime/MobileRuntimeTweaks.js +rename to www/src/engine/runtime/MobileRuntimeTweaks.js +diff --git a/src/engine/runtime/RuntimeMonitoringHooks.js b/www/src/engine/runtime/RuntimeMonitoringHooks.js +similarity index 100% +rename from src/engine/runtime/RuntimeMonitoringHooks.js +rename to www/src/engine/runtime/RuntimeMonitoringHooks.js +diff --git a/src/engine/runtime/backgroundColor.js b/www/src/engine/runtime/backgroundColor.js +similarity index 100% +rename from src/engine/runtime/backgroundColor.js +rename to www/src/engine/runtime/backgroundColor.js +diff --git a/src/engine/runtime/backgroundImage.js b/www/src/engine/runtime/backgroundImage.js +similarity index 100% +rename from src/engine/runtime/backgroundImage.js +rename to www/src/engine/runtime/backgroundImage.js +diff --git a/src/engine/runtime/engineV2AbilitySystem.js b/www/src/engine/runtime/engineV2AbilitySystem.js +similarity index 100% +rename from src/engine/runtime/engineV2AbilitySystem.js +rename to www/src/engine/runtime/engineV2AbilitySystem.js +diff --git a/src/engine/runtime/engineV2AnimationRuntime.js b/www/src/engine/runtime/engineV2AnimationRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2AnimationRuntime.js +rename to www/src/engine/runtime/engineV2AnimationRuntime.js +diff --git a/src/engine/runtime/engineV2AudioRuntime.js b/www/src/engine/runtime/engineV2AudioRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2AudioRuntime.js +rename to www/src/engine/runtime/engineV2AudioRuntime.js +diff --git a/src/engine/runtime/engineV2CameraRuntime.js b/www/src/engine/runtime/engineV2CameraRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2CameraRuntime.js +rename to www/src/engine/runtime/engineV2CameraRuntime.js +diff --git a/src/engine/runtime/engineV2ChaseFleeBehavior.js b/www/src/engine/runtime/engineV2ChaseFleeBehavior.js +similarity index 100% +rename from src/engine/runtime/engineV2ChaseFleeBehavior.js +rename to www/src/engine/runtime/engineV2ChaseFleeBehavior.js +diff --git a/src/engine/runtime/engineV2CheckpointSystem.js b/www/src/engine/runtime/engineV2CheckpointSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2CheckpointSystem.js +rename to www/src/engine/runtime/engineV2CheckpointSystem.js +diff --git a/src/engine/runtime/engineV2ConfigDrivenProofScene.js b/www/src/engine/runtime/engineV2ConfigDrivenProofScene.js +similarity index 100% +rename from src/engine/runtime/engineV2ConfigDrivenProofScene.js +rename to www/src/engine/runtime/engineV2ConfigDrivenProofScene.js +diff --git a/src/engine/runtime/engineV2ContainerSystem.js b/www/src/engine/runtime/engineV2ContainerSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2ContainerSystem.js +rename to www/src/engine/runtime/engineV2ContainerSystem.js +diff --git a/src/engine/runtime/engineV2CraftingFoundation.js b/www/src/engine/runtime/engineV2CraftingFoundation.js +similarity index 100% +rename from src/engine/runtime/engineV2CraftingFoundation.js +rename to www/src/engine/runtime/engineV2CraftingFoundation.js +diff --git a/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js b/www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2CustomExtensionsHookRuntime.js +rename to www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js +diff --git a/src/engine/runtime/engineV2DialogueSystem.js b/www/src/engine/runtime/engineV2DialogueSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2DialogueSystem.js +rename to www/src/engine/runtime/engineV2DialogueSystem.js +diff --git a/src/engine/runtime/engineV2EconomyAndCurrency.js b/www/src/engine/runtime/engineV2EconomyAndCurrency.js +similarity index 100% +rename from src/engine/runtime/engineV2EconomyAndCurrency.js +rename to www/src/engine/runtime/engineV2EconomyAndCurrency.js +diff --git a/src/engine/runtime/engineV2EffectRuntime.js b/www/src/engine/runtime/engineV2EffectRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2EffectRuntime.js +rename to www/src/engine/runtime/engineV2EffectRuntime.js +diff --git a/src/engine/runtime/engineV2EquipmentSystem.js b/www/src/engine/runtime/engineV2EquipmentSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2EquipmentSystem.js +rename to www/src/engine/runtime/engineV2EquipmentSystem.js +diff --git a/src/engine/runtime/engineV2InteractionSystem.js b/www/src/engine/runtime/engineV2InteractionSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2InteractionSystem.js +rename to www/src/engine/runtime/engineV2InteractionSystem.js +diff --git a/src/engine/runtime/engineV2InventorySystem.js b/www/src/engine/runtime/engineV2InventorySystem.js +similarity index 100% +rename from src/engine/runtime/engineV2InventorySystem.js +rename to www/src/engine/runtime/engineV2InventorySystem.js +diff --git a/src/engine/runtime/engineV2ItemAndLootSystem.js b/www/src/engine/runtime/engineV2ItemAndLootSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2ItemAndLootSystem.js +rename to www/src/engine/runtime/engineV2ItemAndLootSystem.js +diff --git a/src/engine/runtime/engineV2ModifierStack.js b/www/src/engine/runtime/engineV2ModifierStack.js +similarity index 100% +rename from src/engine/runtime/engineV2ModifierStack.js +rename to www/src/engine/runtime/engineV2ModifierStack.js +diff --git a/src/engine/runtime/engineV2ObjectiveSystem.js b/www/src/engine/runtime/engineV2ObjectiveSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2ObjectiveSystem.js +rename to www/src/engine/runtime/engineV2ObjectiveSystem.js +diff --git a/src/engine/runtime/engineV2PathfindingBaseline.js b/www/src/engine/runtime/engineV2PathfindingBaseline.js +similarity index 100% +rename from src/engine/runtime/engineV2PathfindingBaseline.js +rename to www/src/engine/runtime/engineV2PathfindingBaseline.js +diff --git a/src/engine/runtime/engineV2PatrolBehavior.js b/www/src/engine/runtime/engineV2PatrolBehavior.js +similarity index 100% +rename from src/engine/runtime/engineV2PatrolBehavior.js +rename to www/src/engine/runtime/engineV2PatrolBehavior.js +diff --git a/src/engine/runtime/engineV2PersistenceRuntime.js b/www/src/engine/runtime/engineV2PersistenceRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2PersistenceRuntime.js +rename to www/src/engine/runtime/engineV2PersistenceRuntime.js +diff --git a/src/engine/runtime/engineV2ProfileStateSystem.js b/www/src/engine/runtime/engineV2ProfileStateSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2ProfileStateSystem.js +rename to www/src/engine/runtime/engineV2ProfileStateSystem.js +diff --git a/src/engine/runtime/engineV2ProjectileSystem.js b/www/src/engine/runtime/engineV2ProjectileSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2ProjectileSystem.js +rename to www/src/engine/runtime/engineV2ProjectileSystem.js +diff --git a/src/engine/runtime/engineV2QuestSystem.js b/www/src/engine/runtime/engineV2QuestSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2QuestSystem.js +rename to www/src/engine/runtime/engineV2QuestSystem.js +diff --git a/src/engine/runtime/engineV2SaveLoadValidation.js b/www/src/engine/runtime/engineV2SaveLoadValidation.js +similarity index 100% +rename from src/engine/runtime/engineV2SaveLoadValidation.js +rename to www/src/engine/runtime/engineV2SaveLoadValidation.js +diff --git a/src/engine/runtime/engineV2SaveStateModel.js b/www/src/engine/runtime/engineV2SaveStateModel.js +similarity index 100% +rename from src/engine/runtime/engineV2SaveStateModel.js +rename to www/src/engine/runtime/engineV2SaveStateModel.js +diff --git a/src/engine/runtime/engineV2StateMachineRuntime.js b/www/src/engine/runtime/engineV2StateMachineRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2StateMachineRuntime.js +rename to www/src/engine/runtime/engineV2StateMachineRuntime.js +diff --git a/src/engine/runtime/engineV2StatusEffectSystem.js b/www/src/engine/runtime/engineV2StatusEffectSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2StatusEffectSystem.js +rename to www/src/engine/runtime/engineV2StatusEffectSystem.js +diff --git a/src/engine/runtime/engineV2UiRuntime.js b/www/src/engine/runtime/engineV2UiRuntime.js +similarity index 100% +rename from src/engine/runtime/engineV2UiRuntime.js +rename to www/src/engine/runtime/engineV2UiRuntime.js +diff --git a/src/engine/runtime/engineV2VendorSystem.js b/www/src/engine/runtime/engineV2VendorSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2VendorSystem.js +rename to www/src/engine/runtime/engineV2VendorSystem.js +diff --git a/src/engine/runtime/engineV2WeaponSystem.js b/www/src/engine/runtime/engineV2WeaponSystem.js +similarity index 100% +rename from src/engine/runtime/engineV2WeaponSystem.js +rename to www/src/engine/runtime/engineV2WeaponSystem.js +diff --git a/src/engine/runtime/firstManifestDrivenPlayableScene.js b/www/src/engine/runtime/firstManifestDrivenPlayableScene.js +similarity index 100% +rename from src/engine/runtime/firstManifestDrivenPlayableScene.js +rename to www/src/engine/runtime/firstManifestDrivenPlayableScene.js +diff --git a/src/engine/runtime/fullscreenBezel.js b/www/src/engine/runtime/fullscreenBezel.js +similarity index 100% +rename from src/engine/runtime/fullscreenBezel.js +rename to www/src/engine/runtime/fullscreenBezel.js +diff --git a/src/engine/runtime/gameImageConvention.js b/www/src/engine/runtime/gameImageConvention.js +similarity index 100% +rename from src/engine/runtime/gameImageConvention.js +rename to www/src/engine/runtime/gameImageConvention.js +diff --git a/src/engine/runtime/manifestRuntimeParser.js b/www/src/engine/runtime/manifestRuntimeParser.js +similarity index 100% +rename from src/engine/runtime/manifestRuntimeParser.js +rename to www/src/engine/runtime/manifestRuntimeParser.js +diff --git a/src/engine/runtime/objectDefinitionReader.js b/www/src/engine/runtime/objectDefinitionReader.js +similarity index 100% +rename from src/engine/runtime/objectDefinitionReader.js +rename to www/src/engine/runtime/objectDefinitionReader.js +diff --git a/src/engine/runtime/ruleDefinitionReader.js b/www/src/engine/runtime/ruleDefinitionReader.js +similarity index 100% +rename from src/engine/runtime/ruleDefinitionReader.js +rename to www/src/engine/runtime/ruleDefinitionReader.js +diff --git a/src/engine/runtime/runtimeActionSystem.js b/www/src/engine/runtime/runtimeActionSystem.js +similarity index 100% +rename from src/engine/runtime/runtimeActionSystem.js +rename to www/src/engine/runtime/runtimeActionSystem.js +diff --git a/src/engine/runtime/runtimeBehaviorComposition.js b/www/src/engine/runtime/runtimeBehaviorComposition.js +similarity index 100% +rename from src/engine/runtime/runtimeBehaviorComposition.js +rename to www/src/engine/runtime/runtimeBehaviorComposition.js +diff --git a/src/engine/runtime/runtimeCollisionProcessing.js b/www/src/engine/runtime/runtimeCollisionProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeCollisionProcessing.js +rename to www/src/engine/runtime/runtimeCollisionProcessing.js +diff --git a/src/engine/runtime/runtimeConditionSystem.js b/www/src/engine/runtime/runtimeConditionSystem.js +similarity index 100% +rename from src/engine/runtime/runtimeConditionSystem.js +rename to www/src/engine/runtime/runtimeConditionSystem.js +diff --git a/src/engine/runtime/runtimeCooldownProcessing.js b/www/src/engine/runtime/runtimeCooldownProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeCooldownProcessing.js +rename to www/src/engine/runtime/runtimeCooldownProcessing.js +diff --git a/src/engine/runtime/runtimeDamageProcessing.js b/www/src/engine/runtime/runtimeDamageProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeDamageProcessing.js +rename to www/src/engine/runtime/runtimeDamageProcessing.js +diff --git a/src/engine/runtime/runtimeEnvironmentEffects.js b/www/src/engine/runtime/runtimeEnvironmentEffects.js +similarity index 100% +rename from src/engine/runtime/runtimeEnvironmentEffects.js +rename to www/src/engine/runtime/runtimeEnvironmentEffects.js +diff --git a/src/engine/runtime/runtimeEnvironmentForceInstantiation.js b/www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js +similarity index 100% +rename from src/engine/runtime/runtimeEnvironmentForceInstantiation.js +rename to www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js +diff --git a/src/engine/runtime/runtimeErrorReporting.js b/www/src/engine/runtime/runtimeErrorReporting.js +similarity index 100% +rename from src/engine/runtime/runtimeErrorReporting.js +rename to www/src/engine/runtime/runtimeErrorReporting.js +diff --git a/src/engine/runtime/runtimeEventSystem.js b/www/src/engine/runtime/runtimeEventSystem.js +similarity index 100% +rename from src/engine/runtime/runtimeEventSystem.js +rename to www/src/engine/runtime/runtimeEventSystem.js +diff --git a/src/engine/runtime/runtimeHealthModel.js b/www/src/engine/runtime/runtimeHealthModel.js +similarity index 100% +rename from src/engine/runtime/runtimeHealthModel.js +rename to www/src/engine/runtime/runtimeHealthModel.js +diff --git a/src/engine/runtime/runtimeInputPipeline.js b/www/src/engine/runtime/runtimeInputPipeline.js +similarity index 100% +rename from src/engine/runtime/runtimeInputPipeline.js +rename to www/src/engine/runtime/runtimeInputPipeline.js +diff --git a/src/engine/runtime/runtimeLivesAndRespawn.js b/www/src/engine/runtime/runtimeLivesAndRespawn.js +similarity index 100% +rename from src/engine/runtime/runtimeLivesAndRespawn.js +rename to www/src/engine/runtime/runtimeLivesAndRespawn.js +diff --git a/src/engine/runtime/runtimeMovementProcessing.js b/www/src/engine/runtime/runtimeMovementProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeMovementProcessing.js +rename to www/src/engine/runtime/runtimeMovementProcessing.js +diff --git a/src/engine/runtime/runtimeMultiSceneLoading.js b/www/src/engine/runtime/runtimeMultiSceneLoading.js +similarity index 100% +rename from src/engine/runtime/runtimeMultiSceneLoading.js +rename to www/src/engine/runtime/runtimeMultiSceneLoading.js +diff --git a/src/engine/runtime/runtimeObjectInstantiation.js b/www/src/engine/runtime/runtimeObjectInstantiation.js +similarity index 100% +rename from src/engine/runtime/runtimeObjectInstantiation.js +rename to www/src/engine/runtime/runtimeObjectInstantiation.js +diff --git a/src/engine/runtime/runtimeObjectRecordFactory.js b/www/src/engine/runtime/runtimeObjectRecordFactory.js +similarity index 100% +rename from src/engine/runtime/runtimeObjectRecordFactory.js +rename to www/src/engine/runtime/runtimeObjectRecordFactory.js +diff --git a/src/engine/runtime/runtimeOutcomeProcessing.js b/www/src/engine/runtime/runtimeOutcomeProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeOutcomeProcessing.js +rename to www/src/engine/runtime/runtimeOutcomeProcessing.js +diff --git a/src/engine/runtime/runtimePlayableLoop.js b/www/src/engine/runtime/runtimePlayableLoop.js +similarity index 100% +rename from src/engine/runtime/runtimePlayableLoop.js +rename to www/src/engine/runtime/runtimePlayableLoop.js +diff --git a/src/engine/runtime/runtimeRenderPipeline.js b/www/src/engine/runtime/runtimeRenderPipeline.js +similarity index 100% +rename from src/engine/runtime/runtimeRenderPipeline.js +rename to www/src/engine/runtime/runtimeRenderPipeline.js +diff --git a/src/engine/runtime/runtimeRenderingBootstrap.js b/www/src/engine/runtime/runtimeRenderingBootstrap.js +similarity index 100% +rename from src/engine/runtime/runtimeRenderingBootstrap.js +rename to www/src/engine/runtime/runtimeRenderingBootstrap.js +diff --git a/src/engine/runtime/runtimeRuleAttachment.js b/www/src/engine/runtime/runtimeRuleAttachment.js +similarity index 100% +rename from src/engine/runtime/runtimeRuleAttachment.js +rename to www/src/engine/runtime/runtimeRuleAttachment.js +diff --git a/src/engine/runtime/runtimeSceneDefinitionSupport.js b/www/src/engine/runtime/runtimeSceneDefinitionSupport.js +similarity index 100% +rename from src/engine/runtime/runtimeSceneDefinitionSupport.js +rename to www/src/engine/runtime/runtimeSceneDefinitionSupport.js +diff --git a/src/engine/runtime/runtimeScoringAndStateProcessing.js b/www/src/engine/runtime/runtimeScoringAndStateProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeScoringAndStateProcessing.js +rename to www/src/engine/runtime/runtimeScoringAndStateProcessing.js +diff --git a/src/engine/runtime/runtimeSpawnDespawnProcessing.js b/www/src/engine/runtime/runtimeSpawnDespawnProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeSpawnDespawnProcessing.js +rename to www/src/engine/runtime/runtimeSpawnDespawnProcessing.js +diff --git a/src/engine/runtime/runtimeTerrainEffects.js b/www/src/engine/runtime/runtimeTerrainEffects.js +similarity index 100% +rename from src/engine/runtime/runtimeTerrainEffects.js +rename to www/src/engine/runtime/runtimeTerrainEffects.js +diff --git a/src/engine/runtime/runtimeTerrainMaterialInstantiation.js b/www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js +similarity index 100% +rename from src/engine/runtime/runtimeTerrainMaterialInstantiation.js +rename to www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js +diff --git a/src/engine/runtime/runtimeTickLoop.js b/www/src/engine/runtime/runtimeTickLoop.js +similarity index 100% +rename from src/engine/runtime/runtimeTickLoop.js +rename to www/src/engine/runtime/runtimeTickLoop.js +diff --git a/src/engine/runtime/runtimeTriggerProcessing.js b/www/src/engine/runtime/runtimeTriggerProcessing.js +similarity index 100% +rename from src/engine/runtime/runtimeTriggerProcessing.js +rename to www/src/engine/runtime/runtimeTriggerProcessing.js +diff --git a/src/engine/scene/AttractModeController.js b/www/src/engine/scene/AttractModeController.js +similarity index 100% +rename from src/engine/scene/AttractModeController.js +rename to www/src/engine/scene/AttractModeController.js +diff --git a/src/engine/scene/Scene.js b/www/src/engine/scene/Scene.js +similarity index 100% +rename from src/engine/scene/Scene.js +rename to www/src/engine/scene/Scene.js +diff --git a/src/engine/scene/SceneManager.js b/www/src/engine/scene/SceneManager.js +similarity index 100% +rename from src/engine/scene/SceneManager.js +rename to www/src/engine/scene/SceneManager.js +diff --git a/src/engine/scene/SceneTransition.js b/www/src/engine/scene/SceneTransition.js +similarity index 100% +rename from src/engine/scene/SceneTransition.js +rename to www/src/engine/scene/SceneTransition.js +diff --git a/src/engine/scene/SceneTransitionController.js b/www/src/engine/scene/SceneTransitionController.js +similarity index 100% +rename from src/engine/scene/SceneTransitionController.js +rename to www/src/engine/scene/SceneTransitionController.js +diff --git a/src/engine/scene/TransitionScene.js b/www/src/engine/scene/TransitionScene.js +similarity index 100% +rename from src/engine/scene/TransitionScene.js +rename to www/src/engine/scene/TransitionScene.js +diff --git a/src/engine/security/DataIntegrityService.js b/www/src/engine/security/DataIntegrityService.js +similarity index 100% +rename from src/engine/security/DataIntegrityService.js +rename to www/src/engine/security/DataIntegrityService.js +diff --git a/src/engine/security/PacketValidator.js b/www/src/engine/security/PacketValidator.js +similarity index 100% +rename from src/engine/security/PacketValidator.js +rename to www/src/engine/security/PacketValidator.js +diff --git a/src/engine/security/PermissionGate.js b/www/src/engine/security/PermissionGate.js +similarity index 100% +rename from src/engine/security/PermissionGate.js +rename to www/src/engine/security/PermissionGate.js +diff --git a/src/engine/security/SessionTrustValidator.js b/www/src/engine/security/SessionTrustValidator.js +similarity index 100% +rename from src/engine/security/SessionTrustValidator.js +rename to www/src/engine/security/SessionTrustValidator.js +diff --git a/src/engine/state/StateMachine.js b/www/src/engine/state/StateMachine.js +similarity index 100% +rename from src/engine/state/StateMachine.js +rename to www/src/engine/state/StateMachine.js +diff --git a/src/engine/systems/BounceSystem.js b/www/src/engine/systems/BounceSystem.js +similarity index 100% +rename from src/engine/systems/BounceSystem.js +rename to www/src/engine/systems/BounceSystem.js +diff --git a/src/engine/systems/BoundsSystem.js b/www/src/engine/systems/BoundsSystem.js +similarity index 100% +rename from src/engine/systems/BoundsSystem.js +rename to www/src/engine/systems/BoundsSystem.js +diff --git a/src/engine/systems/CollectSystem.js b/www/src/engine/systems/CollectSystem.js +similarity index 100% +rename from src/engine/systems/CollectSystem.js +rename to www/src/engine/systems/CollectSystem.js +diff --git a/src/engine/systems/CollisionResolutionSystem.js b/www/src/engine/systems/CollisionResolutionSystem.js +similarity index 100% +rename from src/engine/systems/CollisionResolutionSystem.js +rename to www/src/engine/systems/CollisionResolutionSystem.js +diff --git a/src/engine/systems/CollisionSystem.js b/www/src/engine/systems/CollisionSystem.js +similarity index 100% +rename from src/engine/systems/CollisionSystem.js +rename to www/src/engine/systems/CollisionSystem.js +diff --git a/src/engine/systems/InputControlSystem.js b/www/src/engine/systems/InputControlSystem.js +similarity index 100% +rename from src/engine/systems/InputControlSystem.js +rename to www/src/engine/systems/InputControlSystem.js +diff --git a/src/engine/systems/LifecycleSystem.js b/www/src/engine/systems/LifecycleSystem.js +similarity index 100% +rename from src/engine/systems/LifecycleSystem.js +rename to www/src/engine/systems/LifecycleSystem.js +diff --git a/src/engine/systems/MovementSystem.js b/www/src/engine/systems/MovementSystem.js +similarity index 100% +rename from src/engine/systems/MovementSystem.js +rename to www/src/engine/systems/MovementSystem.js +diff --git a/src/engine/systems/PhysicsSystem.js b/www/src/engine/systems/PhysicsSystem.js +similarity index 100% +rename from src/engine/systems/PhysicsSystem.js +rename to www/src/engine/systems/PhysicsSystem.js +diff --git a/src/engine/systems/ProjectileSystem.js b/www/src/engine/systems/ProjectileSystem.js +similarity index 100% +rename from src/engine/systems/ProjectileSystem.js +rename to www/src/engine/systems/ProjectileSystem.js +diff --git a/src/engine/systems/RenderSystem.js b/www/src/engine/systems/RenderSystem.js +similarity index 100% +rename from src/engine/systems/RenderSystem.js +rename to www/src/engine/systems/RenderSystem.js +diff --git a/src/engine/systems/SystemUtils.js b/www/src/engine/systems/SystemUtils.js +similarity index 100% +rename from src/engine/systems/SystemUtils.js +rename to www/src/engine/systems/SystemUtils.js +diff --git a/src/engine/tilemap/TileMetadata.js b/www/src/engine/tilemap/TileMetadata.js +similarity index 100% +rename from src/engine/tilemap/TileMetadata.js +rename to www/src/engine/tilemap/TileMetadata.js +diff --git a/src/engine/tilemap/Tilemap.js b/www/src/engine/tilemap/Tilemap.js +similarity index 100% +rename from src/engine/tilemap/Tilemap.js +rename to www/src/engine/tilemap/Tilemap.js +diff --git a/src/engine/tilemap/TilemapCollision.js b/www/src/engine/tilemap/TilemapCollision.js +similarity index 100% +rename from src/engine/tilemap/TilemapCollision.js +rename to www/src/engine/tilemap/TilemapCollision.js +diff --git a/src/engine/tilemap/TilemapRenderSystem.js b/www/src/engine/tilemap/TilemapRenderSystem.js +similarity index 100% +rename from src/engine/tilemap/TilemapRenderSystem.js +rename to www/src/engine/tilemap/TilemapRenderSystem.js +diff --git a/src/engine/ui/CanvasDialogPrimitives.js b/www/src/engine/ui/CanvasDialogPrimitives.js +similarity index 100% +rename from src/engine/ui/CanvasDialogPrimitives.js +rename to www/src/engine/ui/CanvasDialogPrimitives.js +diff --git a/src/engine/ui/CanvasPopupInteractions.js b/www/src/engine/ui/CanvasPopupInteractions.js +similarity index 100% +rename from src/engine/ui/CanvasPopupInteractions.js +rename to www/src/engine/ui/CanvasPopupInteractions.js +diff --git a/src/engine/ui/CanvasPopupState.js b/www/src/engine/ui/CanvasPopupState.js +similarity index 100% +rename from src/engine/ui/CanvasPopupState.js +rename to www/src/engine/ui/CanvasPopupState.js +diff --git a/src/engine/ui/UIFramework.js b/www/src/engine/ui/UIFramework.js +similarity index 100% +rename from src/engine/ui/UIFramework.js +rename to www/src/engine/ui/UIFramework.js +diff --git a/src/engine/ui/assets/icons/pin-monocolor-filled.svg b/www/src/engine/ui/assets/icons/pin-monocolor-filled.svg +similarity index 100% +rename from src/engine/ui/assets/icons/pin-monocolor-filled.svg +rename to www/src/engine/ui/assets/icons/pin-monocolor-filled.svg +diff --git a/src/engine/ui/assets/icons/pin-monocolor.svg b/www/src/engine/ui/assets/icons/pin-monocolor.svg +similarity index 100% +rename from src/engine/ui/assets/icons/pin-monocolor.svg +rename to www/src/engine/ui/assets/icons/pin-monocolor.svg +diff --git a/src/engine/ui/baseLayout.css b/www/src/engine/ui/baseLayout.css +similarity index 100% +rename from src/engine/ui/baseLayout.css +rename to www/src/engine/ui/baseLayout.css +diff --git a/src/engine/ui/hubCommon.css b/www/src/engine/ui/hubCommon.css +similarity index 100% +rename from src/engine/ui/hubCommon.css +rename to www/src/engine/ui/hubCommon.css +diff --git a/src/engine/ui/spriteEditor.css b/www/src/engine/ui/spriteEditor.css +similarity index 100% +rename from src/engine/ui/spriteEditor.css +rename to www/src/engine/ui/spriteEditor.css +diff --git a/src/engine/world/AchievementSystem.js b/www/src/engine/world/AchievementSystem.js +similarity index 100% +rename from src/engine/world/AchievementSystem.js +rename to www/src/engine/world/AchievementSystem.js +diff --git a/src/engine/world/CutsceneSystem.js b/www/src/engine/world/CutsceneSystem.js +similarity index 100% +rename from src/engine/world/CutsceneSystem.js +rename to www/src/engine/world/CutsceneSystem.js +diff --git a/src/engine/world/DayNightCycle.js b/www/src/engine/world/DayNightCycle.js +similarity index 100% +rename from src/engine/world/DayNightCycle.js +rename to www/src/engine/world/DayNightCycle.js +diff --git a/src/engine/world/EventScriptSystem.js b/www/src/engine/world/EventScriptSystem.js +similarity index 100% +rename from src/engine/world/EventScriptSystem.js +rename to www/src/engine/world/EventScriptSystem.js +diff --git a/src/engine/world/QuestSystem.js b/www/src/engine/world/QuestSystem.js +similarity index 100% +rename from src/engine/world/QuestSystem.js +rename to www/src/engine/world/QuestSystem.js +diff --git a/src/engine/world/SpawnSystem.js b/www/src/engine/world/SpawnSystem.js +similarity index 100% +rename from src/engine/world/SpawnSystem.js +rename to www/src/engine/world/SpawnSystem.js +diff --git a/src/engine/world/WeatherSystem.js b/www/src/engine/world/WeatherSystem.js +similarity index 100% +rename from src/engine/world/WeatherSystem.js +rename to www/src/engine/world/WeatherSystem.js +diff --git a/src/engine/world/WorldStreamingSystem.js b/www/src/engine/world/WorldStreamingSystem.js +similarity index 100% +rename from src/engine/world/WorldStreamingSystem.js +rename to www/src/engine/world/WorldStreamingSystem.js +diff --git a/src/shared/array/arrays.js b/www/src/shared/array/arrays.js +similarity index 100% +rename from src/shared/array/arrays.js +rename to www/src/shared/array/arrays.js +diff --git a/src/shared/array/recordArrays.js b/www/src/shared/array/recordArrays.js +similarity index 100% +rename from src/shared/array/recordArrays.js +rename to www/src/shared/array/recordArrays.js +diff --git a/src/shared/color/color.js b/www/src/shared/color/color.js +similarity index 100% +rename from src/shared/color/color.js +rename to www/src/shared/color/color.js +diff --git a/src/shared/game/highScores.js b/www/src/shared/game/highScores.js +similarity index 100% +rename from src/shared/game/highScores.js +rename to www/src/shared/game/highScores.js +diff --git a/src/shared/game/initialsEntry.js b/www/src/shared/game/initialsEntry.js +similarity index 100% +rename from src/shared/game/initialsEntry.js +rename to www/src/shared/game/initialsEntry.js +diff --git a/src/shared/geometry/geometry.js b/www/src/shared/geometry/geometry.js +similarity index 100% +rename from src/shared/geometry/geometry.js +rename to www/src/shared/geometry/geometry.js +diff --git a/src/shared/hash/hash.js b/www/src/shared/hash/hash.js +similarity index 100% +rename from src/shared/hash/hash.js +rename to www/src/shared/hash/hash.js +diff --git a/src/shared/id/ids.js b/www/src/shared/id/ids.js +similarity index 100% +rename from src/shared/id/ids.js +rename to www/src/shared/id/ids.js +diff --git a/src/shared/json/clone.js b/www/src/shared/json/clone.js +similarity index 100% +rename from src/shared/json/clone.js +rename to www/src/shared/json/clone.js +diff --git a/src/shared/json/jsonIO.js b/www/src/shared/json/jsonIO.js +similarity index 100% +rename from src/shared/json/jsonIO.js +rename to www/src/shared/json/jsonIO.js +diff --git a/src/shared/math/Random.js b/www/src/shared/math/Random.js +similarity index 100% +rename from src/shared/math/Random.js +rename to www/src/shared/math/Random.js +diff --git a/src/shared/math/RandomSeed.js b/www/src/shared/math/RandomSeed.js +similarity index 100% +rename from src/shared/math/RandomSeed.js +rename to www/src/shared/math/RandomSeed.js +diff --git a/src/shared/math/directions.js b/www/src/shared/math/directions.js +similarity index 100% +rename from src/shared/math/directions.js +rename to www/src/shared/math/directions.js +diff --git a/src/shared/math/geometry.js b/www/src/shared/math/geometry.js +similarity index 100% +rename from src/shared/math/geometry.js +rename to www/src/shared/math/geometry.js +diff --git a/src/shared/math/numberNormalization.js b/www/src/shared/math/numberNormalization.js +similarity index 100% +rename from src/shared/math/numberNormalization.js +rename to www/src/shared/math/numberNormalization.js +diff --git a/src/shared/math/randomHelpers.js b/www/src/shared/math/randomHelpers.js +similarity index 100% +rename from src/shared/math/randomHelpers.js +rename to www/src/shared/math/randomHelpers.js +diff --git a/src/shared/math/scalars.js b/www/src/shared/math/scalars.js +similarity index 100% +rename from src/shared/math/scalars.js +rename to www/src/shared/math/scalars.js +diff --git a/src/shared/math/vectorMath.js b/www/src/shared/math/vectorMath.js +similarity index 100% +rename from src/shared/math/vectorMath.js +rename to www/src/shared/math/vectorMath.js +diff --git a/src/shared/math/vectorNormalize.js b/www/src/shared/math/vectorNormalize.js +similarity index 100% +rename from src/shared/math/vectorNormalize.js +rename to www/src/shared/math/vectorNormalize.js +diff --git a/src/shared/noise/noise.js b/www/src/shared/noise/noise.js +similarity index 100% +rename from src/shared/noise/noise.js +rename to www/src/shared/noise/noise.js +diff --git a/src/shared/number/numbers.js b/www/src/shared/number/numbers.js +similarity index 100% +rename from src/shared/number/numbers.js +rename to www/src/shared/number/numbers.js +diff --git a/src/shared/object/objects.js b/www/src/shared/object/objects.js +similarity index 100% +rename from src/shared/object/objects.js +rename to www/src/shared/object/objects.js +diff --git a/src/shared/runtime/registry.js b/www/src/shared/runtime/registry.js +similarity index 100% +rename from src/shared/runtime/registry.js +rename to www/src/shared/runtime/registry.js +diff --git a/src/shared/runtime/snapshotClone.js b/www/src/shared/runtime/snapshotClone.js +similarity index 100% +rename from src/shared/runtime/snapshotClone.js +rename to www/src/shared/runtime/snapshotClone.js +diff --git a/src/shared/state/createPromotionStateSnapshot.js b/www/src/shared/state/createPromotionStateSnapshot.js +similarity index 100% +rename from src/shared/state/createPromotionStateSnapshot.js +rename to www/src/shared/state/createPromotionStateSnapshot.js +diff --git a/src/shared/state/getState.js b/www/src/shared/state/getState.js +similarity index 100% +rename from src/shared/state/getState.js +rename to www/src/shared/state/getState.js +diff --git a/src/shared/state/getStateVariantClassification.js b/www/src/shared/state/getStateVariantClassification.js +similarity index 100% +rename from src/shared/state/getStateVariantClassification.js +rename to www/src/shared/state/getStateVariantClassification.js +diff --git a/src/shared/state/guards.js b/www/src/shared/state/guards.js +similarity index 100% +rename from src/shared/state/guards.js +rename to www/src/shared/state/guards.js +diff --git a/src/shared/state/normalization.js b/www/src/shared/state/normalization.js +similarity index 100% +rename from src/shared/state/normalization.js +rename to www/src/shared/state/normalization.js +diff --git a/src/shared/state/selectors.js b/www/src/shared/state/selectors.js +similarity index 100% +rename from src/shared/state/selectors.js +rename to www/src/shared/state/selectors.js +diff --git a/src/shared/string/commandText.js b/www/src/shared/string/commandText.js +similarity index 100% +rename from src/shared/string/commandText.js +rename to www/src/shared/string/commandText.js +diff --git a/src/shared/string/fuzzyMatchScore.js b/www/src/shared/string/fuzzyMatchScore.js +similarity index 100% +rename from src/shared/string/fuzzyMatchScore.js +rename to www/src/shared/string/fuzzyMatchScore.js +diff --git a/src/shared/string/stringifyValue.js b/www/src/shared/string/stringifyValue.js +similarity index 100% +rename from src/shared/string/stringifyValue.js +rename to www/src/shared/string/stringifyValue.js +diff --git a/src/shared/string/strings.js b/www/src/shared/string/strings.js +similarity index 100% +rename from src/shared/string/strings.js +rename to www/src/shared/string/strings.js +diff --git a/src/shared/string/textWrap.js b/www/src/shared/string/textWrap.js +similarity index 100% +rename from src/shared/string/textWrap.js +rename to www/src/shared/string/textWrap.js +diff --git a/src/shared/text/text.js b/www/src/shared/text/text.js +similarity index 100% +rename from src/shared/text/text.js +rename to www/src/shared/text/text.js +diff --git a/src/shared/time/time.js b/www/src/shared/time/time.js +similarity index 100% +rename from src/shared/time/time.js +rename to www/src/shared/time/time.js +diff --git a/src/shared/toolbox/aiAuthoringAssistant.js b/www/src/shared/toolbox/aiAuthoringAssistant.js +similarity index 100% +rename from src/shared/toolbox/aiAuthoringAssistant.js +rename to www/src/shared/toolbox/aiAuthoringAssistant.js +diff --git a/src/shared/toolbox/assetMarketplace.js b/www/src/shared/toolbox/assetMarketplace.js +similarity index 100% +rename from src/shared/toolbox/assetMarketplace.js +rename to www/src/shared/toolbox/assetMarketplace.js +diff --git a/src/shared/toolbox/assetPipelineConverters.js b/www/src/shared/toolbox/assetPipelineConverters.js +similarity index 100% +rename from src/shared/toolbox/assetPipelineConverters.js +rename to www/src/shared/toolbox/assetPipelineConverters.js +diff --git a/src/shared/toolbox/assetPipelineFoundation.js b/www/src/shared/toolbox/assetPipelineFoundation.js +similarity index 100% +rename from src/shared/toolbox/assetPipelineFoundation.js +rename to www/src/shared/toolbox/assetPipelineFoundation.js +diff --git a/src/shared/toolbox/assetPipelineValidationOutput.js b/www/src/shared/toolbox/assetPipelineValidationOutput.js +similarity index 100% +rename from src/shared/toolbox/assetPipelineValidationOutput.js +rename to www/src/shared/toolbox/assetPipelineValidationOutput.js +diff --git a/src/shared/toolbox/assetUsageIntegration.js b/www/src/shared/toolbox/assetUsageIntegration.js +similarity index 100% +rename from src/shared/toolbox/assetUsageIntegration.js +rename to www/src/shared/toolbox/assetUsageIntegration.js +diff --git a/src/shared/toolbox/ciValidationPipeline.js b/www/src/shared/toolbox/ciValidationPipeline.js +similarity index 100% +rename from src/shared/toolbox/ciValidationPipeline.js +rename to www/src/shared/toolbox/ciValidationPipeline.js +diff --git a/src/shared/toolbox/cloudRuntime.js b/www/src/shared/toolbox/cloudRuntime.js +similarity index 100% +rename from src/shared/toolbox/cloudRuntime.js +rename to www/src/shared/toolbox/cloudRuntime.js +diff --git a/src/shared/toolbox/collaborationSystem.js b/www/src/shared/toolbox/collaborationSystem.js +similarity index 100% +rename from src/shared/toolbox/collaborationSystem.js +rename to www/src/shared/toolbox/collaborationSystem.js +diff --git a/src/shared/toolbox/contractVersioning.js b/www/src/shared/toolbox/contractVersioning.js +similarity index 100% +rename from src/shared/toolbox/contractVersioning.js +rename to www/src/shared/toolbox/contractVersioning.js +diff --git a/src/shared/toolbox/debugInspectorData.js b/www/src/shared/toolbox/debugInspectorData.js +similarity index 100% +rename from src/shared/toolbox/debugInspectorData.js +rename to www/src/shared/toolbox/debugInspectorData.js +diff --git a/src/shared/toolbox/debugInspectorTools.css b/www/src/shared/toolbox/debugInspectorTools.css +similarity index 100% +rename from src/shared/toolbox/debugInspectorTools.css +rename to www/src/shared/toolbox/debugInspectorTools.css +diff --git a/src/shared/toolbox/debugToolInteractionFlow.js b/www/src/shared/toolbox/debugToolInteractionFlow.js +similarity index 100% +rename from src/shared/toolbox/debugToolInteractionFlow.js +rename to www/src/shared/toolbox/debugToolInteractionFlow.js +diff --git a/src/shared/toolbox/debugVisualizationLayer.js b/www/src/shared/toolbox/debugVisualizationLayer.js +similarity index 100% +rename from src/shared/toolbox/debugVisualizationLayer.js +rename to www/src/shared/toolbox/debugVisualizationLayer.js +diff --git a/src/shared/toolbox/devConsoleDebugOverlay.js b/www/src/shared/toolbox/devConsoleDebugOverlay.js +similarity index 100% +rename from src/shared/toolbox/devConsoleDebugOverlay.js +rename to www/src/shared/toolbox/devConsoleDebugOverlay.js +diff --git a/src/shared/toolbox/documentModeGuards.js b/www/src/shared/toolbox/documentModeGuards.js +similarity index 100% +rename from src/shared/toolbox/documentModeGuards.js +rename to www/src/shared/toolbox/documentModeGuards.js +diff --git a/src/shared/toolbox/editor/EntityPlacementEditor.js b/www/src/shared/toolbox/editor/EntityPlacementEditor.js +similarity index 100% +rename from src/shared/toolbox/editor/EntityPlacementEditor.js +rename to www/src/shared/toolbox/editor/EntityPlacementEditor.js +diff --git a/src/shared/toolbox/editor/LevelEditor.js b/www/src/shared/toolbox/editor/LevelEditor.js +similarity index 100% +rename from src/shared/toolbox/editor/LevelEditor.js +rename to www/src/shared/toolbox/editor/LevelEditor.js +diff --git a/src/shared/toolbox/editor/TileMapEditor.js b/www/src/shared/toolbox/editor/TileMapEditor.js +similarity index 100% +rename from src/shared/toolbox/editor/TileMapEditor.js +rename to www/src/shared/toolbox/editor/TileMapEditor.js +diff --git a/src/shared/toolbox/editor/TimelineEditor.js b/www/src/shared/toolbox/editor/TimelineEditor.js +similarity index 100% +rename from src/shared/toolbox/editor/TimelineEditor.js +rename to www/src/shared/toolbox/editor/TimelineEditor.js +diff --git a/src/shared/toolbox/editorExperienceLayer.js b/www/src/shared/toolbox/editorExperienceLayer.js +similarity index 100% +rename from src/shared/toolbox/editorExperienceLayer.js +rename to www/src/shared/toolbox/editorExperienceLayer.js +diff --git a/src/shared/toolbox/eventCommandUtils.js b/www/src/shared/toolbox/eventCommandUtils.js +similarity index 100% +rename from src/shared/toolbox/eventCommandUtils.js +rename to www/src/shared/toolbox/eventCommandUtils.js +diff --git a/src/shared/toolbox/gameTemplates.js b/www/src/shared/toolbox/gameTemplates.js +similarity index 100% +rename from src/shared/toolbox/gameTemplates.js +rename to www/src/shared/toolbox/gameTemplates.js +diff --git a/src/shared/toolbox/gameplaySystemLayer.js b/www/src/shared/toolbox/gameplaySystemLayer.js +similarity index 100% +rename from src/shared/toolbox/gameplaySystemLayer.js +rename to www/src/shared/toolbox/gameplaySystemLayer.js +diff --git a/src/shared/toolbox/hotReloadSystem.js b/www/src/shared/toolbox/hotReloadSystem.js +similarity index 100% +rename from src/shared/toolbox/hotReloadSystem.js +rename to www/src/shared/toolbox/hotReloadSystem.js +diff --git a/src/shared/toolbox/livePreviewSyncChannel.js b/www/src/shared/toolbox/livePreviewSyncChannel.js +similarity index 100% +rename from src/shared/toolbox/livePreviewSyncChannel.js +rename to www/src/shared/toolbox/livePreviewSyncChannel.js +diff --git a/src/shared/toolbox/multiTargetExport.js b/www/src/shared/toolbox/multiTargetExport.js +similarity index 100% +rename from src/shared/toolbox/multiTargetExport.js +rename to www/src/shared/toolbox/multiTargetExport.js +diff --git a/src/shared/toolbox/paletteDocumentContract.js b/www/src/shared/toolbox/paletteDocumentContract.js +similarity index 100% +rename from src/shared/toolbox/paletteDocumentContract.js +rename to www/src/shared/toolbox/paletteDocumentContract.js +diff --git a/src/shared/toolbox/performanceBenchmarks.js b/www/src/shared/toolbox/performanceBenchmarks.js +similarity index 100% +rename from src/shared/toolbox/performanceBenchmarks.js +rename to www/src/shared/toolbox/performanceBenchmarks.js +diff --git a/src/shared/toolbox/performanceProfiler.js b/www/src/shared/toolbox/performanceProfiler.js +similarity index 100% +rename from src/shared/toolbox/performanceProfiler.js +rename to www/src/shared/toolbox/performanceProfiler.js +diff --git a/src/shared/toolbox/pipeline/AssetImportPipeline.js b/www/src/shared/toolbox/pipeline/AssetImportPipeline.js +similarity index 100% +rename from src/shared/toolbox/pipeline/AssetImportPipeline.js +rename to www/src/shared/toolbox/pipeline/AssetImportPipeline.js +diff --git a/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js b/www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js +similarity index 100% +rename from src/shared/toolbox/pipeline/AudioPreprocessPipeline.js +rename to www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js +diff --git a/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js b/www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js +similarity index 100% +rename from src/shared/toolbox/pipeline/BuildAssetManifestSystem.js +rename to www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js +diff --git a/src/shared/toolbox/pipeline/ContentMigrationSystem.js b/www/src/shared/toolbox/pipeline/ContentMigrationSystem.js +similarity index 100% +rename from src/shared/toolbox/pipeline/ContentMigrationSystem.js +rename to www/src/shared/toolbox/pipeline/ContentMigrationSystem.js +diff --git a/src/shared/toolbox/pipeline/ContentValidationPipeline.js b/www/src/shared/toolbox/pipeline/ContentValidationPipeline.js +similarity index 100% +rename from src/shared/toolbox/pipeline/ContentValidationPipeline.js +rename to www/src/shared/toolbox/pipeline/ContentValidationPipeline.js +diff --git a/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js b/www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js +similarity index 100% +rename from src/shared/toolbox/pipeline/TexturePreprocessPipeline.js +rename to www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js +diff --git a/src/shared/toolbox/pipeline/assetErrorHandling.js b/www/src/shared/toolbox/pipeline/assetErrorHandling.js +similarity index 100% +rename from src/shared/toolbox/pipeline/assetErrorHandling.js +rename to www/src/shared/toolbox/pipeline/assetErrorHandling.js +diff --git a/src/shared/toolbox/pipeline/assetManifestLoader.js b/www/src/shared/toolbox/pipeline/assetManifestLoader.js +similarity index 100% +rename from src/shared/toolbox/pipeline/assetManifestLoader.js +rename to www/src/shared/toolbox/pipeline/assetManifestLoader.js +diff --git a/src/shared/toolbox/pipeline/assetPipelineTooling.js b/www/src/shared/toolbox/pipeline/assetPipelineTooling.js +similarity index 100% +rename from src/shared/toolbox/pipeline/assetPipelineTooling.js +rename to www/src/shared/toolbox/pipeline/assetPipelineTooling.js +diff --git a/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js b/www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js +similarity index 100% +rename from src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js +rename to www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js +diff --git a/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js b/www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js +similarity index 100% +rename from src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js +rename to www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js +diff --git a/src/shared/toolbox/pipeline/runtimeAssetBinding.js b/www/src/shared/toolbox/pipeline/runtimeAssetBinding.js +similarity index 100% +rename from src/shared/toolbox/pipeline/runtimeAssetBinding.js +rename to www/src/shared/toolbox/pipeline/runtimeAssetBinding.js +diff --git a/src/shared/toolbox/pipeline/runtimeAssetLookup.js b/www/src/shared/toolbox/pipeline/runtimeAssetLookup.js +similarity index 100% +rename from src/shared/toolbox/pipeline/runtimeAssetLookup.js +rename to www/src/shared/toolbox/pipeline/runtimeAssetLookup.js +diff --git a/src/shared/toolbox/pipeline/runtimeAssetValidation.js b/www/src/shared/toolbox/pipeline/runtimeAssetValidation.js +similarity index 100% +rename from src/shared/toolbox/pipeline/runtimeAssetValidation.js +rename to www/src/shared/toolbox/pipeline/runtimeAssetValidation.js +diff --git a/src/shared/toolbox/platformShell.css b/www/src/shared/toolbox/platformShell.css +similarity index 100% +rename from src/shared/toolbox/platformShell.css +rename to www/src/shared/toolbox/platformShell.css +diff --git a/src/shared/toolbox/platformShell.js b/www/src/shared/toolbox/platformShell.js +similarity index 100% +rename from src/shared/toolbox/platformShell.js +rename to www/src/shared/toolbox/platformShell.js +diff --git a/src/shared/toolbox/platformValidationSuite.js b/www/src/shared/toolbox/platformValidationSuite.js +similarity index 100% +rename from src/shared/toolbox/platformValidationSuite.js +rename to www/src/shared/toolbox/platformValidationSuite.js +diff --git a/src/shared/toolbox/pluginArchitecture.js b/www/src/shared/toolbox/pluginArchitecture.js +similarity index 100% +rename from src/shared/toolbox/pluginArchitecture.js +rename to www/src/shared/toolbox/pluginArchitecture.js +diff --git a/src/shared/toolbox/powerShell/find_dupes_called.ps1 b/www/src/shared/toolbox/powerShell/find_dupes_called.ps1 +similarity index 100% +rename from src/shared/toolbox/powerShell/find_dupes_called.ps1 +rename to www/src/shared/toolbox/powerShell/find_dupes_called.ps1 +diff --git a/src/shared/toolbox/projectAssetRegistry.js b/www/src/shared/toolbox/projectAssetRegistry.js +similarity index 100% +rename from src/shared/toolbox/projectAssetRegistry.js +rename to www/src/shared/toolbox/projectAssetRegistry.js +diff --git a/src/shared/toolbox/projectAssetRemediation.js b/www/src/shared/toolbox/projectAssetRemediation.js +similarity index 100% +rename from src/shared/toolbox/projectAssetRemediation.js +rename to www/src/shared/toolbox/projectAssetRemediation.js +diff --git a/src/shared/toolbox/projectAssetValidation.js b/www/src/shared/toolbox/projectAssetValidation.js +similarity index 100% +rename from src/shared/toolbox/projectAssetValidation.js +rename to www/src/shared/toolbox/projectAssetValidation.js +diff --git a/src/shared/toolbox/projectManifestContract.js b/www/src/shared/toolbox/projectManifestContract.js +similarity index 100% +rename from src/shared/toolbox/projectManifestContract.js +rename to www/src/shared/toolbox/projectManifestContract.js +diff --git a/src/shared/toolbox/projectPackaging.js b/www/src/shared/toolbox/projectPackaging.js +similarity index 100% +rename from src/shared/toolbox/projectPackaging.js +rename to www/src/shared/toolbox/projectPackaging.js +diff --git a/src/shared/toolbox/projectSystem.js b/www/src/shared/toolbox/projectSystem.js +similarity index 100% +rename from src/shared/toolbox/projectSystem.js +rename to www/src/shared/toolbox/projectSystem.js +diff --git a/src/shared/toolbox/projectSystemAdapters.js b/www/src/shared/toolbox/projectSystemAdapters.js +similarity index 100% +rename from src/shared/toolbox/projectSystemAdapters.js +rename to www/src/shared/toolbox/projectSystemAdapters.js +diff --git a/src/shared/toolbox/projectSystemValueUtils.js b/www/src/shared/toolbox/projectSystemValueUtils.js +similarity index 100% +rename from src/shared/toolbox/projectSystemValueUtils.js +rename to www/src/shared/toolbox/projectSystemValueUtils.js +diff --git a/src/shared/toolbox/projectToolIntegration.js b/www/src/shared/toolbox/projectToolIntegration.js +similarity index 100% +rename from src/shared/toolbox/projectToolIntegration.js +rename to www/src/shared/toolbox/projectToolIntegration.js +diff --git a/src/shared/toolbox/projectVersioning.js b/www/src/shared/toolbox/projectVersioning.js +similarity index 100% +rename from src/shared/toolbox/projectVersioning.js +rename to www/src/shared/toolbox/projectVersioning.js +diff --git a/src/shared/toolbox/publishingPipeline.js b/www/src/shared/toolbox/publishingPipeline.js +similarity index 100% +rename from src/shared/toolbox/publishingPipeline.js +rename to www/src/shared/toolbox/publishingPipeline.js +diff --git a/src/shared/toolbox/renderPipelineContract.js b/www/src/shared/toolbox/renderPipelineContract.js +similarity index 100% +rename from src/shared/toolbox/renderPipelineContract.js +rename to www/src/shared/toolbox/renderPipelineContract.js +diff --git a/src/shared/toolbox/runtimeAssetLoader.js b/www/src/shared/toolbox/runtimeAssetLoader.js +similarity index 100% +rename from src/shared/toolbox/runtimeAssetLoader.js +rename to www/src/shared/toolbox/runtimeAssetLoader.js +diff --git a/src/shared/toolbox/runtimeAssetSharedUtils.js b/www/src/shared/toolbox/runtimeAssetSharedUtils.js +similarity index 100% +rename from src/shared/toolbox/runtimeAssetSharedUtils.js +rename to www/src/shared/toolbox/runtimeAssetSharedUtils.js +diff --git a/src/shared/toolbox/runtimeAssetValidationUtils.js b/www/src/shared/toolbox/runtimeAssetValidationUtils.js +similarity index 100% +rename from src/shared/toolbox/runtimeAssetValidationUtils.js +rename to www/src/shared/toolbox/runtimeAssetValidationUtils.js +diff --git a/src/shared/toolbox/runtimeSceneLoaderHotReload.js b/www/src/shared/toolbox/runtimeSceneLoaderHotReload.js +similarity index 100% +rename from src/shared/toolbox/runtimeSceneLoaderHotReload.js +rename to www/src/shared/toolbox/runtimeSceneLoaderHotReload.js +diff --git a/src/shared/toolbox/runtimeStreaming.js b/www/src/shared/toolbox/runtimeStreaming.js +similarity index 100% +rename from src/shared/toolbox/runtimeStreaming.js +rename to www/src/shared/toolbox/runtimeStreaming.js +diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg +similarity index 100% +rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg +rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg +diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json +similarity index 100% +rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json +rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json +diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json +similarity index 100% +rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json +rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json +diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json +similarity index 100% +rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json +rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json +diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png +similarity index 100% +rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png +rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png +diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +similarity index 70% +rename from src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +rename to www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +index 652f0f4a4..b0bfa2447 100644 +--- a/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json ++++ b/www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +@@ -7,7 +7,7 @@ + }, + "version": 1, + "projectId": "mario-style-learning-level", +- "basePath": "src/shared/toolbox/samples/project-asset-registry-demo", ++ "basePath": "www/src/shared/toolbox/samples/project-asset-registry-demo", + "palettes": [ + { + "id": "palette.crayola032", +@@ -21,7 +21,7 @@ + { + "id": "sprite.hero-idle", + "name": "Hero Idle", +- "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json", ++ "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json", + "paletteId": "palette.crayola032", + "sourceTool": "sprite-editor" + } +@@ -30,7 +30,7 @@ + { + "id": "tileset.overworld-main", + "name": "Overworld Main", +- "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png", ++ "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png", + "tileWidth": 24, + "tileHeight": 24, + "sourceTool": "tile-map-editor" +@@ -40,7 +40,7 @@ + { + "id": "image.parallax-clouds", + "name": "Parallax Clouds", +- "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg", ++ "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg", + "sourceTool": "parallax-editor" + } + ], +@@ -48,7 +48,7 @@ + { + "id": "parallax.sky-clouds", + "name": "Sky Clouds", +- "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json", ++ "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json", + "imageId": "image.parallax-clouds", + "sourceTool": "parallax-editor" + } +diff --git a/src/shared/toolbox/schemaOnlyToolPresetValidation.js b/www/src/shared/toolbox/schemaOnlyToolPresetValidation.js +similarity index 100% +rename from src/shared/toolbox/schemaOnlyToolPresetValidation.js +rename to www/src/shared/toolbox/schemaOnlyToolPresetValidation.js +diff --git a/src/shared/toolbox/tool-metadata-inventory.js b/www/src/shared/toolbox/tool-metadata-inventory.js +similarity index 100% +rename from src/shared/toolbox/tool-metadata-inventory.js +rename to www/src/shared/toolbox/tool-metadata-inventory.js +diff --git a/src/shared/toolbox/toolBootContract.js b/www/src/shared/toolbox/toolBootContract.js +similarity index 100% +rename from src/shared/toolbox/toolBootContract.js +rename to www/src/shared/toolbox/toolBootContract.js +diff --git a/src/shared/toolbox/toolHostManifest.js b/www/src/shared/toolbox/toolHostManifest.js +similarity index 100% +rename from src/shared/toolbox/toolHostManifest.js +rename to www/src/shared/toolbox/toolHostManifest.js +diff --git a/src/shared/toolbox/toolHostRuntime.js b/www/src/shared/toolbox/toolHostRuntime.js +similarity index 100% +rename from src/shared/toolbox/toolHostRuntime.js +rename to www/src/shared/toolbox/toolHostRuntime.js +diff --git a/src/shared/toolbox/toolHostSharedContext.js b/www/src/shared/toolbox/toolHostSharedContext.js +similarity index 100% +rename from src/shared/toolbox/toolHostSharedContext.js +rename to www/src/shared/toolbox/toolHostSharedContext.js +diff --git a/src/shared/toolbox/toolLaunchSSoT.js b/www/src/shared/toolbox/toolLaunchSSoT.js +similarity index 100% +rename from src/shared/toolbox/toolLaunchSSoT.js +rename to www/src/shared/toolbox/toolLaunchSSoT.js +diff --git a/src/shared/toolbox/toolLaunchSSoTData.js b/www/src/shared/toolbox/toolLaunchSSoTData.js +similarity index 100% +rename from src/shared/toolbox/toolLaunchSSoTData.js +rename to www/src/shared/toolbox/toolLaunchSSoTData.js +diff --git a/src/shared/toolbox/toolLoadDiagnostics.js b/www/src/shared/toolbox/toolLoadDiagnostics.js +similarity index 100% +rename from src/shared/toolbox/toolLoadDiagnostics.js +rename to www/src/shared/toolbox/toolLoadDiagnostics.js +diff --git a/src/shared/toolbox/toolSampleCatalog.js b/www/src/shared/toolbox/toolSampleCatalog.js +similarity index 100% +rename from src/shared/toolbox/toolSampleCatalog.js +rename to www/src/shared/toolbox/toolSampleCatalog.js +diff --git a/src/shared/toolbox/tooling/AssetBrowser.js b/www/src/shared/toolbox/tooling/AssetBrowser.js +similarity index 100% +rename from src/shared/toolbox/tooling/AssetBrowser.js +rename to www/src/shared/toolbox/tooling/AssetBrowser.js +diff --git a/src/shared/toolbox/tooling/DeveloperConsole.js b/www/src/shared/toolbox/tooling/DeveloperConsole.js +similarity index 100% +rename from src/shared/toolbox/tooling/DeveloperConsole.js +rename to www/src/shared/toolbox/tooling/DeveloperConsole.js +diff --git a/src/shared/toolbox/tooling/LiveTuningService.js b/www/src/shared/toolbox/tooling/LiveTuningService.js +similarity index 100% +rename from src/shared/toolbox/tooling/LiveTuningService.js +rename to www/src/shared/toolbox/tooling/LiveTuningService.js +diff --git a/src/shared/toolbox/tooling/PropertyEditor.js b/www/src/shared/toolbox/tooling/PropertyEditor.js +similarity index 100% +rename from src/shared/toolbox/tooling/PropertyEditor.js +rename to www/src/shared/toolbox/tooling/PropertyEditor.js +diff --git a/src/shared/toolbox/tooling/RuntimeInspector.js b/www/src/shared/toolbox/tooling/RuntimeInspector.js +similarity index 100% +rename from src/shared/toolbox/tooling/RuntimeInspector.js +rename to www/src/shared/toolbox/tooling/RuntimeInspector.js +diff --git a/src/shared/toolbox/tooling/SceneGraphViewer.js b/www/src/shared/toolbox/tooling/SceneGraphViewer.js +similarity index 100% +rename from src/shared/toolbox/tooling/SceneGraphViewer.js +rename to www/src/shared/toolbox/tooling/SceneGraphViewer.js +diff --git a/src/shared/toolbox/uiSafeUtils.js b/www/src/shared/toolbox/uiSafeUtils.js +similarity index 100% +rename from src/shared/toolbox/uiSafeUtils.js +rename to www/src/shared/toolbox/uiSafeUtils.js +diff --git a/src/shared/toolbox/unifiedToolUxContract.js b/www/src/shared/toolbox/unifiedToolUxContract.js +similarity index 100% +rename from src/shared/toolbox/unifiedToolUxContract.js +rename to www/src/shared/toolbox/unifiedToolUxContract.js +diff --git a/src/shared/toolbox/vector/vectorAssetBridge.js b/www/src/shared/toolbox/vector/vectorAssetBridge.js +similarity index 100% +rename from src/shared/toolbox/vector/vectorAssetBridge.js +rename to www/src/shared/toolbox/vector/vectorAssetBridge.js +diff --git a/src/shared/toolbox/vector/vectorAssetContract.js b/www/src/shared/toolbox/vector/vectorAssetContract.js +similarity index 100% +rename from src/shared/toolbox/vector/vectorAssetContract.js +rename to www/src/shared/toolbox/vector/vectorAssetContract.js +diff --git a/src/shared/toolbox/vector/vectorGeometryMath.js b/www/src/shared/toolbox/vector/vectorGeometryMath.js +similarity index 100% +rename from src/shared/toolbox/vector/vectorGeometryMath.js +rename to www/src/shared/toolbox/vector/vectorGeometryMath.js +diff --git a/src/shared/toolbox/vector/vectorRenderPrep.js b/www/src/shared/toolbox/vector/vectorRenderPrep.js +similarity index 100% +rename from src/shared/toolbox/vector/vectorRenderPrep.js +rename to www/src/shared/toolbox/vector/vectorRenderPrep.js +diff --git a/src/shared/toolbox/vector/vectorSafeValueUtils.js b/www/src/shared/toolbox/vector/vectorSafeValueUtils.js +similarity index 100% +rename from src/shared/toolbox/vector/vectorSafeValueUtils.js +rename to www/src/shared/toolbox/vector/vectorSafeValueUtils.js +diff --git a/src/shared/toolbox/vectorAssetSystem.js b/www/src/shared/toolbox/vectorAssetSystem.js +similarity index 100% +rename from src/shared/toolbox/vectorAssetSystem.js +rename to www/src/shared/toolbox/vectorAssetSystem.js +diff --git a/src/shared/toolbox/vectorGeometryRuntime.js b/www/src/shared/toolbox/vectorGeometryRuntime.js +similarity index 100% +rename from src/shared/toolbox/vectorGeometryRuntime.js +rename to www/src/shared/toolbox/vectorGeometryRuntime.js +diff --git a/src/shared/toolbox/vectorNativeTemplate.js b/www/src/shared/toolbox/vectorNativeTemplate.js +similarity index 100% +rename from src/shared/toolbox/vectorNativeTemplate.js +rename to www/src/shared/toolbox/vectorNativeTemplate.js +diff --git a/src/shared/toolbox/vectorTemplateSampleGame.js b/www/src/shared/toolbox/vectorTemplateSampleGame.js +similarity index 100% +rename from src/shared/toolbox/vectorTemplateSampleGame.js +rename to www/src/shared/toolbox/vectorTemplateSampleGame.js +diff --git a/src/shared/toolbox/workspaceShell.js b/www/src/shared/toolbox/workspaceShell.js +similarity index 100% +rename from src/shared/toolbox/workspaceShell.js +rename to www/src/shared/toolbox/workspaceShell.js +diff --git a/src/shared/types/typeGuards.js b/www/src/shared/types/typeGuards.js +similarity index 100% +rename from src/shared/types/typeGuards.js +rename to www/src/shared/types/typeGuards.js +diff --git a/src/shared/validation/assert.js b/www/src/shared/validation/assert.js +similarity index 100% +rename from src/shared/validation/assert.js +rename to www/src/shared/validation/assert.js +diff --git a/src/shared/validation/invariant.js b/www/src/shared/validation/invariant.js +similarity index 100% +rename from src/shared/validation/invariant.js +rename to www/src/shared/validation/invariant.js +diff --git a/src/tools/common/GameManifestLoader.js b/www/src/tools/common/GameManifestLoader.js +similarity index 100% +rename from src/tools/common/GameManifestLoader.js +rename to www/src/tools/common/GameManifestLoader.js +diff --git a/src/tools/common/WorkspaceDirtyNotifier.js b/www/src/tools/common/WorkspaceDirtyNotifier.js +similarity index 100% +rename from src/tools/common/WorkspaceDirtyNotifier.js +rename to www/src/tools/common/WorkspaceDirtyNotifier.js diff --git a/dev/scripts/run-platform-validation-suite.mjs b/dev/scripts/run-platform-validation-suite.mjs index 020c862f2..441012b5c 100644 --- a/dev/scripts/run-platform-validation-suite.mjs +++ b/dev/scripts/run-platform-validation-suite.mjs @@ -1,5 +1,5 @@ -import { runPlatformValidationSuite } from "../../src/shared/toolbox/platformValidationSuite.js"; -import { runCiValidationPipeline } from "../../src/shared/toolbox/ciValidationPipeline.js"; +import { runPlatformValidationSuite } from "../../www/src/shared/toolbox/platformValidationSuite.js"; +import { runCiValidationPipeline } from "../../www/src/shared/toolbox/ciValidationPipeline.js"; const suiteResult = await runPlatformValidationSuite(); const ciResult = await runCiValidationPipeline({ diff --git a/dev/scripts/validate-asset-ownership-strategy.mjs b/dev/scripts/validate-asset-ownership-strategy.mjs index 69c371973..f59305399 100644 --- a/dev/scripts/validate-asset-ownership-strategy.mjs +++ b/dev/scripts/validate-asset-ownership-strategy.mjs @@ -17,7 +17,7 @@ const REGISTRY_PATH_CANDIDATES = [ const ASTEROIDS_MANIFEST_PATH = "dev/archive/v1-v2/games/Asteroids/game.manifest.json"; const TEMPLATE_MANIFEST_PATH = "dev/archive/v1-v2/games/_template/assets/tools.manifest.json"; const SAMPLE_ASSET_BROWSER_SCENE_PATH = "dev/archive/v1-v2/samples/phase-15/1505/AssetBrowserScene.js"; -const TOOL_DEMO_PROJECT_ASSETS_PATH = "src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json"; +const TOOL_DEMO_PROJECT_ASSETS_PATH = "www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json"; const REPORT_PATH = "dev/reports/asset_ownership_strategy_validation.txt"; function toRepoPath(value) { @@ -66,7 +66,7 @@ function ownerPrefixForPath(repoPath) { if (segments[0] === "tools" && segments.length >= 2) { // keep demo ownership under the tool/demo root path depth if (segments[1] === "shared" && segments.length >= 5 && segments[2] === "samples") { - return `src/shared/toolbox/samples/${segments[3]}`; + return `www/src/shared/toolbox/samples/${segments[3]}`; } return `toolbox/${segments[1]}`; } @@ -199,7 +199,7 @@ export async function validateAssetOwnershipStrategy({ emitLogs = true } = {}) { const projectAssets = await readJson(TOOL_DEMO_PROJECT_ASSETS_PATH); const toolDemoEntries = collectProjectAssetEntries(projectAssets); - const toolDemoOwnerPrefix = "src/shared/toolbox/samples/project-asset-registry-demo"; + const toolDemoOwnerPrefix = "www/src/shared/toolbox/samples/project-asset-registry-demo"; const seenPaths = new Set(); for (const entry of toolDemoEntries) { if (!entry.path) { diff --git a/dev/scripts/validate-browser-env-agnostic.mjs b/dev/scripts/validate-browser-env-agnostic.mjs index 239739aa7..cc5a28b7f 100644 --- a/dev/scripts/validate-browser-env-agnostic.mjs +++ b/dev/scripts/validate-browser-env-agnostic.mjs @@ -317,10 +317,10 @@ async function validateProductServiceContract() { requireSnippet(registryClient, "www/toolbox/tool-registry-api-client.js", "safeRequestServerApi(\"/toolbox/registry/snapshot\")", findings, "Toolbox registry must read through the server API service contract."); rejectPattern(registryClient, "www/toolbox/tool-registry-api-client.js", providerLeakPattern, findings, "Toolbox registry client must not expose provider/environment implementation details."); - const votesClient = await readRequiredRepoFile("src/api/toolbox-votes-api-client.js", findings, "Toolbox votes API client is missing"); - requireSnippet(votesClient, "src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/snapshot\")", findings, "Toolbox votes must read through the server API service contract."); - requireSnippet(votesClient, "src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/cast\"", findings, "Toolbox votes must write through the server API service contract."); - rejectPattern(votesClient, "src/api/toolbox-votes-api-client.js", providerLeakPattern, findings, "Toolbox votes client must not expose provider/environment implementation details."); + const votesClient = await readRequiredRepoFile("www/src/api/toolbox-votes-api-client.js", findings, "Toolbox votes API client is missing"); + requireSnippet(votesClient, "www/src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/snapshot\")", findings, "Toolbox votes must read through the server API service contract."); + requireSnippet(votesClient, "www/src/api/toolbox-votes-api-client.js", "safeRequestServerApi(\"/toolbox/votes/cast\"", findings, "Toolbox votes must write through the server API service contract."); + rejectPattern(votesClient, "www/src/api/toolbox-votes-api-client.js", providerLeakPattern, findings, "Toolbox votes client must not expose provider/environment implementation details."); for (const filePath of productApiClientFiles) { const contents = await readRequiredRepoFile(filePath, findings, "Product API client is missing"); diff --git a/dev/scripts/validate-canonical-repository-structure.mjs b/dev/scripts/validate-canonical-repository-structure.mjs index 405e2c5ea..da5a4805a 100644 --- a/dev/scripts/validate-canonical-repository-structure.mjs +++ b/dev/scripts/validate-canonical-repository-structure.mjs @@ -14,13 +14,13 @@ export const APPROVED_LEGACY_JS_PATHS = Object.freeze(new Set([ "www/toolbox/tool-registry-api-client.js", "www/toolbox/toolRegistry.js", "www/toolbox/tools-page-accordions.js", - "src/engine/paletteList.js", + "www/src/engine/paletteList.js", ])); export const APPROVED_LEGACY_CSS_PATHS = Object.freeze(new Set([ - "src/engine/ui/baseLayout.css", - "src/engine/ui/hubCommon.css", - "src/engine/ui/spriteEditor.css", + "www/src/engine/ui/baseLayout.css", + "www/src/engine/ui/hubCommon.css", + "www/src/engine/ui/spriteEditor.css", ])); export const APPROVED_LEGACY_TEST_SEGMENTS = Object.freeze(new Set([ diff --git a/dev/scripts/validate-dev-runtime-boundary.mjs b/dev/scripts/validate-dev-runtime-boundary.mjs index 51cefc332..4e9ab8b99 100644 --- a/dev/scripts/validate-dev-runtime-boundary.mjs +++ b/dev/scripts/validate-dev-runtime-boundary.mjs @@ -13,8 +13,8 @@ const roots = [ "www/marketplace", "www/memberships", "www/owner", - "src/api", - "src/engine", + "www/src/api", + "www/src/engine", "www/toolbox", ]; const filePattern = /\.(html|js|mjs)$/; diff --git a/dev/tests/ai/AIBehaviors.test.mjs b/dev/tests/ai/AIBehaviors.test.mjs index 29bdb533d..b48c9ae4d 100644 --- a/dev/tests/ai/AIBehaviors.test.mjs +++ b/dev/tests/ai/AIBehaviors.test.mjs @@ -5,11 +5,11 @@ David Quesenberry AIBehaviors.test.mjs */ import assert from 'node:assert/strict'; -import AIStateController from '../../../src/engine/ai/AIStateController.js'; -import { advancePatrolRoute } from '../../../src/engine/ai/PatrolSystem.js'; -import { computeGroupSteering } from '../../../src/engine/ai/GroupBehaviors.js'; -import { findGridPath } from '../../../src/engine/ai/GridPathfinding.js'; -import { stepChaseBehavior, stepEvadeBehavior } from '../../../src/engine/ai/SteeringBehaviors.js'; +import AIStateController from '../../../www/src/engine/ai/AIStateController.js'; +import { advancePatrolRoute } from '../../../www/src/engine/ai/PatrolSystem.js'; +import { computeGroupSteering } from '../../../www/src/engine/ai/GroupBehaviors.js'; +import { findGridPath } from '../../../www/src/engine/ai/GridPathfinding.js'; +import { stepChaseBehavior, stepEvadeBehavior } from '../../../www/src/engine/ai/SteeringBehaviors.js'; export function run() { const grid = [ diff --git a/dev/tests/assets/AssetLoaderSystem.test.mjs b/dev/tests/assets/AssetLoaderSystem.test.mjs index fd90e920b..1d6254e62 100644 --- a/dev/tests/assets/AssetLoaderSystem.test.mjs +++ b/dev/tests/assets/AssetLoaderSystem.test.mjs @@ -5,9 +5,9 @@ David Quesenberry AssetLoaderSystem.test.mjs */ import assert from 'node:assert/strict'; -import AssetRegistry from '../../../src/engine/assets/AssetRegistry.js'; -import ImageAssetLoader from '../../../src/engine/assets/ImageAssetLoader.js'; -import AssetLoaderSystem from '../../../src/engine/assets/AssetLoaderSystem.js'; +import AssetRegistry from '../../../www/src/engine/assets/AssetRegistry.js'; +import ImageAssetLoader from '../../../www/src/engine/assets/ImageAssetLoader.js'; +import AssetLoaderSystem from '../../../www/src/engine/assets/AssetLoaderSystem.js'; export async function run() { const registry = new AssetRegistry(); diff --git a/dev/tests/audio/AudioService.test.mjs b/dev/tests/audio/AudioService.test.mjs index 9dc76ac42..bf6ef5e25 100644 --- a/dev/tests/audio/AudioService.test.mjs +++ b/dev/tests/audio/AudioService.test.mjs @@ -5,7 +5,7 @@ David Quesenberry AudioService.test.mjs */ import assert from 'node:assert/strict'; -import AudioService from '../../../src/engine/audio/AudioService.js'; +import AudioService from '../../../www/src/engine/audio/AudioService.js'; function createTarget() { const listeners = new Map(); diff --git a/dev/tests/combat/Combat.test.mjs b/dev/tests/combat/Combat.test.mjs index 8c7e949af..538422c8a 100644 --- a/dev/tests/combat/Combat.test.mjs +++ b/dev/tests/combat/Combat.test.mjs @@ -14,7 +14,7 @@ import { startAttack, updateAttackState, updateCombatant, -} from '../../../src/engine/combat/Combat.js'; +} from '../../../www/src/engine/collision/combat/Combat.js'; export function run() { const attacker = createCombatant({ x: 100, y: 100, width: 30, height: 30, facing: 1 }); diff --git a/dev/tests/config/ConfigStore.test.mjs b/dev/tests/config/ConfigStore.test.mjs index b79dd8d14..2d877f509 100644 --- a/dev/tests/config/ConfigStore.test.mjs +++ b/dev/tests/config/ConfigStore.test.mjs @@ -5,7 +5,7 @@ David Quesenberry ConfigStore.test.mjs */ import assert from 'node:assert/strict'; -import ConfigStore from '../../../src/engine/config/ConfigStore.js'; +import ConfigStore from '../../../www/src/engine/config/ConfigStore.js'; export function run() { const store = new ConfigStore(); diff --git a/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs b/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs index 0c3067813..46786d2ce 100644 --- a/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs +++ b/dev/tests/core/BackgroundImageAndFullscreenBezel.test.mjs @@ -2,8 +2,8 @@ import assert from "node:assert/strict"; import os from "node:os"; import path from "node:path"; import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; -import Engine from "../../../src/engine/core/Engine.js"; -import backgroundImage from "../../../src/engine/runtime/backgroundImage.js"; +import Engine from "../../../www/src/engine/core/Engine.js"; +import backgroundImage from "../../../www/src/engine/runtime/backgroundImage.js"; import fullscreenBezel, { chooseBestOpeningFit, ensureBezelStretchConfigFile, @@ -11,13 +11,13 @@ import fullscreenBezel, { findTransparencyWindowFromEdges, fitAspectRatio, resolvePreferredFullscreenTarget -} from "../../../src/engine/runtime/fullscreenBezel.js"; +} from "../../../www/src/engine/runtime/fullscreenBezel.js"; import { resolveBezelStretchOverridePath, resolveGameImageConventionPaths, resolveManifestChromeAssetPaths, resolveRuntimeAssetUrl -} from "../../../src/engine/runtime/gameImageConvention.js"; +} from "../../../www/src/engine/runtime/gameImageConvention.js"; const ASTEROIDS_BACKGROUND_RUNTIME_PATH = "/archive/v1-v2/games/Asteroids/assets/images/deluxe.png"; const ASTEROIDS_BEZEL_RUNTIME_PATH = "/archive/v1-v2/games/Asteroids/assets/images/bezel.png"; diff --git a/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs b/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs index 561f5538c..3cf3a05d7 100644 --- a/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs +++ b/dev/tests/core/Engine2DCapabilityCombinedFoundation.test.mjs @@ -5,17 +5,17 @@ David Quesenberry Engine2DCapabilityCombinedFoundation.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import Scene from '../../../src/engine/scene/Scene.js'; -import Camera2D from '../../../src/engine/camera/Camera2D.js'; -import { followCameraTarget, worldRectToScreen } from '../../../src/engine/camera/CameraSystem.js'; -import Tilemap from '../../../src/engine/tilemap/Tilemap.js'; -import { renderTilemap } from '../../../src/engine/tilemap/TilemapRenderSystem.js'; -import { isColliding } from '../../../src/engine/collision/aabb.js'; -import { runHybridCollision } from '../../../src/engine/collision/hybrid.js'; -import { moveRectWithTilemapCollision } from '../../../src/engine/systems/CollisionResolutionSystem.js'; -import GameModeState from '../../../src/engine/game/GameModeState.js'; -import { runIfGameplayMode } from '../../../src/engine/game/gameplayHooks.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import Scene from '../../../www/src/engine/scene/Scene.js'; +import Camera2D from '../../../www/src/engine/camera/Camera2D.js'; +import { followCameraTarget, worldRectToScreen } from '../../../www/src/engine/camera/CameraSystem.js'; +import Tilemap from '../../../www/src/engine/tilemap/Tilemap.js'; +import { renderTilemap } from '../../../www/src/engine/tilemap/TilemapRenderSystem.js'; +import { isColliding } from '../../../www/src/engine/collision/aabb.js'; +import { runHybridCollision } from '../../../www/src/engine/collision/hybrid.js'; +import { moveRectWithTilemapCollision } from '../../../www/src/engine/systems/CollisionResolutionSystem.js'; +import GameModeState from '../../../www/src/engine/game/GameModeState.js'; +import { runIfGameplayMode } from '../../../www/src/engine/game/gameplayHooks.js'; function createCanvasHarness() { const calls = []; diff --git a/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs b/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs index de3ff6724..af9700ed3 100644 --- a/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs +++ b/dev/tests/core/Engine3DPhysicsHookIsolation.test.mjs @@ -5,9 +5,9 @@ Engine3DPhysicsHookIsolation.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import Camera2D from '../../../src/engine/camera/Camera2D.js'; -import { stepSceneBodies3D } from '../../../src/engine/physics/scene3d.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import Camera2D from '../../../www/src/engine/camera/Camera2D.js'; +import { stepSceneBodies3D } from '../../../www/src/engine/physics/scene3d.js'; function createCanvas() { const canvas = { diff --git a/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs b/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs index ddf7ea170..2c33a8a79 100644 --- a/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs +++ b/dev/tests/core/EngineCoreBoundaryBaseline.test.mjs @@ -5,28 +5,28 @@ David Quesenberry EngineCoreBoundaryBaseline.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import FrameClock from '../../../src/engine/core/FrameClock.js'; -import FixedTicker from '../../../src/engine/core/FixedTicker.js'; -import RuntimeMetrics from '../../../src/engine/core/RuntimeMetrics.js'; -import EventBus from '../../../src/engine/events/EventBus.js'; -import Camera2D from '../../../src/engine/camera/Camera2D.js'; -import Camera3D from '../../../src/engine/camera/Camera3D.js'; -import { followCameraTarget, worldRectToScreen } from '../../../src/engine/camera/CameraSystem.js'; -import Scene from '../../../src/engine/scene/Scene.js'; -import SceneManager from '../../../src/engine/scene/SceneManager.js'; -import CanvasRenderer from '../../../src/engine/rendering/CanvasRenderer.js'; -import { renderByLayers } from '../../../src/engine/rendering/LayeredRenderSystem.js'; -import InputService from '../../../src/engine/input/InputService.js'; -import ActionInputService from '../../../src/engine/input/ActionInputService.js'; -import { stepArcadeBody } from '../../../src/engine/physics/arcadeBody.js'; -import { applyDrag } from '../../../src/engine/physics/drag.js'; -import { integrateVelocity3D } from '../../../src/engine/physics/integration3d.js'; -import { isAabbColliding3D, resolveAabbCollision3D } from '../../../src/engine/physics/collision3d.js'; -import { stepSceneBodies3D } from '../../../src/engine/physics/scene3d.js'; -import AudioService from '../../../src/engine/audio/AudioService.js'; -import { moveEntities, moveEntities3D } from '../../../src/engine/systems/MovementSystem.js'; -import { stepWorldPhysics3D } from '../../../src/engine/systems/PhysicsSystem.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import FrameClock from '../../../www/src/engine/core/FrameClock.js'; +import FixedTicker from '../../../www/src/engine/core/FixedTicker.js'; +import RuntimeMetrics from '../../../www/src/engine/core/RuntimeMetrics.js'; +import EventBus from '../../../www/src/engine/events/EventBus.js'; +import Camera2D from '../../../www/src/engine/camera/Camera2D.js'; +import Camera3D from '../../../www/src/engine/camera/Camera3D.js'; +import { followCameraTarget, worldRectToScreen } from '../../../www/src/engine/camera/CameraSystem.js'; +import Scene from '../../../www/src/engine/scene/Scene.js'; +import SceneManager from '../../../www/src/engine/scene/SceneManager.js'; +import CanvasRenderer from '../../../www/src/engine/rendering/CanvasRenderer.js'; +import { renderByLayers } from '../../../www/src/engine/rendering/LayeredRenderSystem.js'; +import InputService from '../../../www/src/engine/input/InputService.js'; +import ActionInputService from '../../../www/src/engine/input/ActionInputService.js'; +import { stepArcadeBody } from '../../../www/src/engine/physics/arcadeBody.js'; +import { applyDrag } from '../../../www/src/engine/physics/drag.js'; +import { integrateVelocity3D } from '../../../www/src/engine/physics/integration3d.js'; +import { isAabbColliding3D, resolveAabbCollision3D } from '../../../www/src/engine/physics/collision3d.js'; +import { stepSceneBodies3D } from '../../../www/src/engine/physics/scene3d.js'; +import AudioService from '../../../www/src/engine/audio/AudioService.js'; +import { moveEntities, moveEntities3D } from '../../../www/src/engine/systems/MovementSystem.js'; +import { stepWorldPhysics3D } from '../../../www/src/engine/systems/PhysicsSystem.js'; export function run() { // Core boot/timing boundaries. diff --git a/dev/tests/core/EngineFullscreen.test.mjs b/dev/tests/core/EngineFullscreen.test.mjs index df7426007..605a02417 100644 --- a/dev/tests/core/EngineFullscreen.test.mjs +++ b/dev/tests/core/EngineFullscreen.test.mjs @@ -5,8 +5,8 @@ EngineFullscreen.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import FullscreenService from '../../../src/engine/runtime/FullscreenService.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import FullscreenService from '../../../www/src/engine/runtime/FullscreenService.js'; function createCanvas() { const canvas = { diff --git a/dev/tests/core/EngineSceneLifecycle.test.mjs b/dev/tests/core/EngineSceneLifecycle.test.mjs index be895b9fc..f81890b80 100644 --- a/dev/tests/core/EngineSceneLifecycle.test.mjs +++ b/dev/tests/core/EngineSceneLifecycle.test.mjs @@ -5,10 +5,10 @@ EngineSceneLifecycle.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import SceneTransition from '../../../src/engine/scene/SceneTransition.js'; -import TransitionScene from '../../../src/engine/scene/TransitionScene.js'; -import Camera3D from '../../../src/engine/camera/Camera3D.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import SceneTransition from '../../../www/src/engine/scene/SceneTransition.js'; +import TransitionScene from '../../../www/src/engine/scene/TransitionScene.js'; +import Camera3D from '../../../www/src/engine/camera/Camera3D.js'; function createCanvas() { const canvas = { diff --git a/dev/tests/core/EngineTiming.test.mjs b/dev/tests/core/EngineTiming.test.mjs index 4f3eb41e3..c4904cfbe 100644 --- a/dev/tests/core/EngineTiming.test.mjs +++ b/dev/tests/core/EngineTiming.test.mjs @@ -5,9 +5,9 @@ EngineTiming.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import FrameClock from '../../../src/engine/core/FrameClock.js'; -import FixedTicker from '../../../src/engine/core/FixedTicker.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import FrameClock from '../../../www/src/engine/core/FrameClock.js'; +import FixedTicker from '../../../www/src/engine/core/FixedTicker.js'; function createCanvas() { const canvas = { diff --git a/dev/tests/core/Section1FinalResidueStructure.test.mjs b/dev/tests/core/Section1FinalResidueStructure.test.mjs index d061ca187..daad2ec44 100644 --- a/dev/tests/core/Section1FinalResidueStructure.test.mjs +++ b/dev/tests/core/Section1FinalResidueStructure.test.mjs @@ -5,21 +5,21 @@ David Quesenberry Section1FinalResidueStructure.test.mjs */ import assert from 'node:assert/strict'; -import CanvasRenderer from '../../../src/engine/rendering/CanvasRenderer.js'; -import ResolutionScaler from '../../../src/engine/rendering/ResolutionScaler.js'; -import { renderByLayers } from '../../../src/engine/rendering/LayeredRenderSystem.js'; -import { renderSpriteReadyEntities } from '../../../src/engine/rendering/SpriteRenderSystem.js'; -import Scene from '../../../src/engine/scene/Scene.js'; -import SceneManager from '../../../src/engine/scene/SceneManager.js'; -import SceneTransition from '../../../src/engine/scene/SceneTransition.js'; -import TransitionScene from '../../../src/engine/scene/TransitionScene.js'; -import SceneTransitionController from '../../../src/engine/scene/SceneTransitionController.js'; -import AttractModeController from '../../../src/engine/scene/AttractModeController.js'; -import { DEFAULT_ATTRACT_CONFIG } from '../../../src/engine/scene/AttractModeController.js'; -import { isColliding } from '../../../src/engine/collision/aabb.js'; -import { applyDrag } from '../../../src/engine/physics/drag.js'; -import { stepArcadeBody } from '../../../src/engine/physics/arcadeBody.js'; -import { integrateVelocity2D } from '../../../src/engine/physics/integration.js'; +import CanvasRenderer from '../../../www/src/engine/rendering/CanvasRenderer.js'; +import ResolutionScaler from '../../../www/src/engine/rendering/ResolutionScaler.js'; +import { renderByLayers } from '../../../www/src/engine/rendering/LayeredRenderSystem.js'; +import { renderSpriteReadyEntities } from '../../../www/src/engine/rendering/SpriteRenderSystem.js'; +import Scene from '../../../www/src/engine/scene/Scene.js'; +import SceneManager from '../../../www/src/engine/scene/SceneManager.js'; +import SceneTransition from '../../../www/src/engine/scene/SceneTransition.js'; +import TransitionScene from '../../../www/src/engine/scene/TransitionScene.js'; +import SceneTransitionController from '../../../www/src/engine/scene/SceneTransitionController.js'; +import AttractModeController from '../../../www/src/engine/scene/AttractModeController.js'; +import { DEFAULT_ATTRACT_CONFIG } from '../../../www/src/engine/scene/AttractModeController.js'; +import { isColliding } from '../../../www/src/engine/collision/aabb.js'; +import { applyDrag } from '../../../www/src/engine/physics/drag.js'; +import { stepArcadeBody } from '../../../www/src/engine/physics/arcadeBody.js'; +import { integrateVelocity2D } from '../../../www/src/engine/physics/integration.js'; assert.equal(typeof CanvasRenderer, 'function'); assert.equal(typeof ResolutionScaler, 'function'); diff --git a/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs b/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs index c75f6c641..449c519db 100644 --- a/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs +++ b/dev/tests/dev-runtime/AdminNotesBoundary.test.mjs @@ -18,8 +18,8 @@ const productionRoots = [ "www/admin", "www/assets", "www/owner", - "src/engine", - "src/shared", + "www/src/engine", + "www/src/shared", "www/toolbox", ]; @@ -32,7 +32,7 @@ const expectedDevNotes = [ "dev/archive/legacy-docs-build/admin-notes/roadmap2MVP.txt", "dev/archive/legacy-docs-build/admin-notes/sample.txt", "dev/archive/legacy-docs-build/admin-notes/tools/index.txt", - "src/dev-runtime/admin/notes.html", + "www/src/dev-runtime/admin/notes.html", ]; const retiredProductionFiles = [ @@ -149,9 +149,9 @@ test("Admin Notes dev files and local viewer entrypoint exist", () => { }); }); -test("Admin Notes browser viewer stays under src/dev-runtime/admin while server helpers live under api/admin", () => { +test("Admin Notes browser viewer stays under www/src/dev-runtime/admin while server helpers live under api/admin", () => { assert.equal( - fs.existsSync(repoPath("src/dev-runtime/admin/admin-notes-viewer.js")), + fs.existsSync(repoPath("www/src/dev-runtime/admin/admin-notes-viewer.js")), true, "legacy Admin Notes viewer exists", ); @@ -166,14 +166,14 @@ test("Admin Notes browser viewer stays under src/dev-runtime/admin while server "API Admin Notes local menu route helper exists", ); assert.equal( - fs.existsSync(repoPath("src/dev-runtime/admin/header-nav.local.html")), + fs.existsSync(repoPath("www/src/dev-runtime/admin/header-nav.local.html")), true, "dev-runtime local header partial exists", ); }); test("Admin Notes local viewer page uses external dev-runtime JavaScript only", () => { - const viewerSource = fs.readFileSync(repoPath("src/dev-runtime/admin/notes.html"), "utf8"); + const viewerSource = fs.readFileSync(repoPath("www/src/dev-runtime/admin/notes.html"), "utf8"); assert.doesNotMatch(viewerSource, /]*\bsrc=)/i, "viewer page must not contain inline scripts"); assert.doesNotMatch(viewerSource, / const localHeaderPath = localAdminNotesHeaderPartialPath(repoRoot, headerPath); const servedHeader = fs.readFileSync(localHeaderPath, "utf8"); - assert.equal(relativePath(localHeaderPath), "src/dev-runtime/admin/header-nav.local.html"); + assert.equal(relativePath(localHeaderPath), "www/src/dev-runtime/admin/header-nav.local.html"); assert.doesNotMatch(servedHeader, /data-admin-notes-local-menu|data-admin-my-stuff-menu|data-admin-my-stuff-separator|Admin Notes/); assert.doesNotMatch(servedHeader, new RegExp(ADMIN_NOTES_LOCAL_SOURCE_PATH.replace(/\//g, "\\/"))); assert.doesNotMatch(servedHeader, new RegExp(ADMIN_NOTES_LOCAL_VIEWER_PATH.replace(/\//g, "\\/"))); diff --git a/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs b/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs index 82ee5db82..7349f4a47 100644 --- a/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs +++ b/dev/tests/dev-runtime/ApiMenuPathCleanup.test.mjs @@ -5,11 +5,12 @@ import assert from "node:assert/strict"; import { getAdminNavigationItems, getOwnerNavigationItems, -} from "../../../src/api/admin-owner-navigation.js"; +} from "../../../www/src/api/admin-owner-navigation.js"; const ACTIVE_SCAN_ROOTS = Object.freeze([ "api", "src", + "www/src", "www/account", "www/admin", "www/assets", @@ -82,8 +83,8 @@ function assertActivePathExists(item) { assert.equal(fs.existsSync(browserFilePath), true, `${item.label} active menu path should exist: ${browserFilePath}`); } -test("server API client lives under src/api and active code does not reference src/engine/api", () => { - assert.equal(fs.existsSync("src/api/server-api-client.js"), true); +test("server API client lives under www/src/api and active code does not reference src/engine/api", () => { + assert.equal(fs.existsSync("www/src/api/server-api-client.js"), true); assert.deepEqual(fs.existsSync("src/engine/api") ? fs.readdirSync("src/engine/api").sort() : [], []); const offenders = activeTextSources() .filter(({ source }) => /src\/engine\/api\/server-api-client|src\\engine\\api\\server-api-client|engine\/api\/server-api-client/.test(source)) diff --git a/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs b/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs index a2bdd03d6..790706acc 100644 --- a/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs +++ b/dev/tests/dev-runtime/ArchitectureCleanupApiNavInvitations.test.mjs @@ -6,7 +6,7 @@ import { createLocalApiRouter } from "../../../api/server/local-api-router.mjs"; import { getAdminNavigationItems, getOwnerNavigationItems, -} from "../../../src/api/admin-owner-navigation.js"; +} from "../../../www/src/api/admin-owner-navigation.js"; import { SEED_DB_KEYS } from "../../../api/seed/seed-db-keys.mjs"; const MOVED_API_CLIENTS = Object.freeze([ @@ -80,11 +80,11 @@ async function apiJson(baseUrl, pathName, request = {}) { return payload.data; } -test("product and web API clients live under src/api while engine API keeps only shared server plumbing", () => { +test("product and web API clients live under www/src/api while engine API keeps only shared server plumbing", () => { assert.equal(fs.existsSync("src/engine/api"), false); - assert.equal(fs.existsSync("src/api/server-api-client.js"), true); + assert.equal(fs.existsSync("www/src/api/server-api-client.js"), true); MOVED_API_CLIENTS.forEach((fileName) => { - assert.equal(fs.existsSync(`src/api/${fileName}`), true, `${fileName} should live under src/api`); + assert.equal(fs.existsSync(`www/src/api/${fileName}`), true, `${fileName} should live under www/src/api`); assert.equal(fs.existsSync(`src/engine/api/${fileName}`), false, `${fileName} should not remain under src/engine/api`); }); }); @@ -111,8 +111,8 @@ test("Admin and Owner navigation are shared and include present operational/busi const payload = await apiJson(server.baseUrl, "/api/navigation/admin-menu"); assert.deepEqual(payload.adminMainItems.map((item) => item.label), adminLabels); assert.deepEqual(payload.ownerMenuItems.map((item) => item.label), ownerLabels); - assert.equal(payload.ownership.adminMainItems, "src/api/admin-owner-navigation.js"); - assert.equal(payload.ownership.ownerMenuItems, "src/api/admin-owner-navigation.js"); + assert.equal(payload.ownership.adminMainItems, "www/src/api/admin-owner-navigation.js"); + assert.equal(payload.ownership.ownerMenuItems, "www/src/api/admin-owner-navigation.js"); } finally { await server.close(); } @@ -153,7 +153,7 @@ test("API runtime boundary is documented for runtime implementation and not test const source = fs.readFileSync("api/API_RUNTIME_BOUNDARY.md", "utf8"); assert.match(source, /server\/API application runtime implementation/i); assert.match(source, /not `dev\/tests\/dev-runtime`/); - assert.match(source, /Browser pages, Theme V2 scripts, toolbox pages, and `src\/engine` runtime code must use declared API\/service contracts instead of importing `api\/` directly/); + assert.match(source, /Browser pages, Theme V2 scripts, toolbox pages, and `www\/src\/engine` runtime code must use declared API\/service contracts instead of importing `api\/` directly/); }); test("Toolbox registry consumes shared metadata without importing dev-runtime", () => { @@ -161,6 +161,6 @@ test("Toolbox registry consumes shared metadata without importing dev-runtime", const devRuntimeShim = fs.readFileSync("api/guest-seeds/tool-metadata-inventory.js", "utf8"); assert.match(registrySource, /src\/shared\/toolbox\/tool-metadata-inventory\.js/); assert.doesNotMatch(registrySource, /src\/dev-runtime|src\\dev-runtime|dev-runtime\/guest-seeds/); - assert.match(devRuntimeShim, /\.\.\/\.\.\/src\/shared\/toolbox\/tool-metadata-inventory\.js/); - assert.equal(fs.existsSync("src/shared/toolbox/tool-metadata-inventory.js"), true); + assert.match(devRuntimeShim, /\.\.\/\.\.\/www\/src\/shared\/toolbox\/tool-metadata-inventory\.js/); + assert.equal(fs.existsSync("www/src/shared/toolbox/tool-metadata-inventory.js"), true); }); diff --git a/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs b/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs index 0a3654781..881d4a4a9 100644 --- a/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs +++ b/dev/tests/dev-runtime/PublicApiUrlClient.test.mjs @@ -4,7 +4,7 @@ import { clearPublicConfigCache, getPublicConfigDiagnostics, resolveServerApiUrl, -} from "../../../src/api/public-config-client.js"; +} from "../../../www/src/api/public-config-client.js"; function installMockBrowser(origin, responses) { const calls = []; diff --git a/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs b/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs index c2f051d2d..d03e149de 100644 --- a/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs +++ b/dev/tests/dev-runtime/ServerApiClientStandardization.test.mjs @@ -1,7 +1,7 @@ import assert from "node:assert/strict"; import test from "node:test"; -import { clearPublicConfigCache } from "../../../src/api/public-config-client.js"; +import { clearPublicConfigCache } from "../../../www/src/api/public-config-client.js"; import { callServerToolFunction, clearServerApiDiagnostics, @@ -10,8 +10,8 @@ import { requireServerApiData, SERVER_DATA_BOUNDARY_RULE, safeRequestServerApi, -} from "../../../src/api/server-api-client.js"; -import { logoutSessionUser } from "../../../src/api/session-api-client.js"; +} from "../../../www/src/api/server-api-client.js"; +import { logoutSessionUser } from "../../../www/src/api/session-api-client.js"; function installMockServerApi(routes) { const calls = []; diff --git a/dev/tests/engine/EngineV2AbilitySystem.test.mjs b/dev/tests/engine/EngineV2AbilitySystem.test.mjs index 9bd282ce3..9b5835345 100644 --- a/dev/tests/engine/EngineV2AbilitySystem.test.mjs +++ b/dev/tests/engine/EngineV2AbilitySystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_ABILITY_ERRORS, resolveEngineV2Abilities, -} from "../../../src/engine/runtime/engineV2AbilitySystem.js"; +} from "../../../www/src/engine/runtime/engineV2AbilitySystem.js"; import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2AnimationRuntime.test.mjs b/dev/tests/engine/EngineV2AnimationRuntime.test.mjs index 013126375..b263f7780 100644 --- a/dev/tests/engine/EngineV2AnimationRuntime.test.mjs +++ b/dev/tests/engine/EngineV2AnimationRuntime.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_ANIMATION_ERRORS, updateEngineV2Animations, -} from "../../../src/engine/runtime/engineV2AnimationRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2AnimationRuntime.js"; import { createEngineV2MediaRuntimeFixture } from "./EngineV2MediaRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2AudioRuntime.test.mjs b/dev/tests/engine/EngineV2AudioRuntime.test.mjs index a866d4836..79bf7c3a4 100644 --- a/dev/tests/engine/EngineV2AudioRuntime.test.mjs +++ b/dev/tests/engine/EngineV2AudioRuntime.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_AUDIO_ERRORS, resolveEngineV2AudioRuntime, -} from "../../../src/engine/runtime/engineV2AudioRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2AudioRuntime.js"; import { createEngineV2MediaRuntimeFixture } from "./EngineV2MediaRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2CameraRuntime.test.mjs b/dev/tests/engine/EngineV2CameraRuntime.test.mjs index 8e3e5e715..26718ec91 100644 --- a/dev/tests/engine/EngineV2CameraRuntime.test.mjs +++ b/dev/tests/engine/EngineV2CameraRuntime.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_CAMERA_ERRORS, resolveEngineV2Camera, -} from "../../../src/engine/runtime/engineV2CameraRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2CameraRuntime.js"; import { createEngineV2MediaRuntimeFixture } from "./EngineV2MediaRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs b/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs index 0db3e3cab..f739592db 100644 --- a/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs +++ b/dev/tests/engine/EngineV2ChaseFleeBehavior.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_CHASE_FLEE_ERRORS, resolveEngineV2ChaseFleeBehaviors, -} from "../../../src/engine/runtime/engineV2ChaseFleeBehavior.js"; +} from "../../../www/src/engine/runtime/engineV2ChaseFleeBehavior.js"; import { createEngineV2AiBehaviorFixture } from "./EngineV2AiBehaviorFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2CheckpointSystem.test.mjs b/dev/tests/engine/EngineV2CheckpointSystem.test.mjs index 7784fa77a..058699885 100644 --- a/dev/tests/engine/EngineV2CheckpointSystem.test.mjs +++ b/dev/tests/engine/EngineV2CheckpointSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_CHECKPOINT_ERRORS, processEngineV2Checkpoints, -} from "../../../src/engine/runtime/engineV2CheckpointSystem.js"; +} from "../../../www/src/engine/runtime/engineV2CheckpointSystem.js"; import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs b/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs index 53f56a970..930531612 100644 --- a/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs +++ b/dev/tests/engine/EngineV2ConfigDrivenProofScene.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_PROOF_SCENE_ERRORS, runEngineV2ConfigDrivenProofScene, -} from "../../../src/engine/runtime/engineV2ConfigDrivenProofScene.js"; +} from "../../../www/src/engine/runtime/engineV2ConfigDrivenProofScene.js"; import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ContainerSystem.test.mjs b/dev/tests/engine/EngineV2ContainerSystem.test.mjs index 0c38f90e1..d75489410 100644 --- a/dev/tests/engine/EngineV2ContainerSystem.test.mjs +++ b/dev/tests/engine/EngineV2ContainerSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_CONTAINER_ERRORS, resolveEngineV2Containers, -} from "../../../src/engine/runtime/engineV2ContainerSystem.js"; +} from "../../../www/src/engine/runtime/engineV2ContainerSystem.js"; import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2CraftingFoundation.test.mjs b/dev/tests/engine/EngineV2CraftingFoundation.test.mjs index c0014f2a2..6e48c5364 100644 --- a/dev/tests/engine/EngineV2CraftingFoundation.test.mjs +++ b/dev/tests/engine/EngineV2CraftingFoundation.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_CRAFTING_ERRORS, resolveEngineV2Crafting, -} from "../../../src/engine/runtime/engineV2CraftingFoundation.js"; +} from "../../../www/src/engine/runtime/engineV2CraftingFoundation.js"; import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs b/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs index 4e20b69a8..658ebab27 100644 --- a/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs +++ b/dev/tests/engine/EngineV2CustomExtensionsHookRuntime.test.mjs @@ -15,7 +15,7 @@ import { dispatchEngineV2CustomExtensionHook, registerEngineV2CustomExtensionHooks, resolveEngineV2AdminCustomExtensionApprovalBoundary, -} from "../../../src/engine/runtime/engineV2CustomExtensionsHookRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js"; function createExtensionDefinition(overrides = {}) { return { @@ -214,7 +214,7 @@ export function run() { assert.equal(sourceFieldResult.valid, false); assert.deepEqual(sourceFieldResult.errors.map((error) => error.code), [ENGINE_V2_CUSTOM_EXTENSION_ERRORS.FIELD_FORBIDDEN]); - const runtimeSource = fs.readFileSync("src/engine/runtime/engineV2CustomExtensionsHookRuntime.js", "utf8"); + const runtimeSource = fs.readFileSync("www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js", "utf8"); assert.equal(/\beval\s*\(/.test(runtimeSource), false); assert.equal(/\bnew\s+Function\b/.test(runtimeSource), false); } diff --git a/dev/tests/engine/EngineV2DialogueSystem.test.mjs b/dev/tests/engine/EngineV2DialogueSystem.test.mjs index f355dfbe6..2d8fab621 100644 --- a/dev/tests/engine/EngineV2DialogueSystem.test.mjs +++ b/dev/tests/engine/EngineV2DialogueSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_DIALOGUE_ERRORS, processEngineV2Dialogue, -} from "../../../src/engine/runtime/engineV2DialogueSystem.js"; +} from "../../../www/src/engine/runtime/engineV2DialogueSystem.js"; import { createEngineV2PlayerRuntimeFixture } from "./EngineV2PlayerRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs b/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs index a1b029822..7cfaa20fb 100644 --- a/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs +++ b/dev/tests/engine/EngineV2EconomyAndCurrency.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_ECONOMY_ERRORS, resolveEngineV2EconomyAndCurrency, -} from "../../../src/engine/runtime/engineV2EconomyAndCurrency.js"; +} from "../../../www/src/engine/runtime/engineV2EconomyAndCurrency.js"; import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2EffectRuntime.test.mjs b/dev/tests/engine/EngineV2EffectRuntime.test.mjs index de15e110b..ec66bc500 100644 --- a/dev/tests/engine/EngineV2EffectRuntime.test.mjs +++ b/dev/tests/engine/EngineV2EffectRuntime.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_EFFECT_ERRORS, processEngineV2Effects, -} from "../../../src/engine/runtime/engineV2EffectRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2EffectRuntime.js"; import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2EquipmentSystem.test.mjs b/dev/tests/engine/EngineV2EquipmentSystem.test.mjs index ffaaa6dbb..67b2ae883 100644 --- a/dev/tests/engine/EngineV2EquipmentSystem.test.mjs +++ b/dev/tests/engine/EngineV2EquipmentSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_EQUIPMENT_ERRORS, resolveEngineV2Equipment, -} from "../../../src/engine/runtime/engineV2EquipmentSystem.js"; +} from "../../../www/src/engine/runtime/engineV2EquipmentSystem.js"; import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2InteractionSystem.test.mjs b/dev/tests/engine/EngineV2InteractionSystem.test.mjs index 8f4b4a8c4..366ab40ce 100644 --- a/dev/tests/engine/EngineV2InteractionSystem.test.mjs +++ b/dev/tests/engine/EngineV2InteractionSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_INTERACTION_ERRORS, resolveEngineV2Interactions, -} from "../../../src/engine/runtime/engineV2InteractionSystem.js"; +} from "../../../www/src/engine/runtime/engineV2InteractionSystem.js"; import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2InventorySystem.test.mjs b/dev/tests/engine/EngineV2InventorySystem.test.mjs index c2ca3f6c8..4b622d87d 100644 --- a/dev/tests/engine/EngineV2InventorySystem.test.mjs +++ b/dev/tests/engine/EngineV2InventorySystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_INVENTORY_ERRORS, resolveEngineV2Inventory, -} from "../../../src/engine/runtime/engineV2InventorySystem.js"; +} from "../../../www/src/engine/runtime/engineV2InventorySystem.js"; import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs b/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs index 6b4e6aff1..d0ca274d7 100644 --- a/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs +++ b/dev/tests/engine/EngineV2ItemAndLootSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_ITEM_LOOT_ERRORS, resolveEngineV2ItemAndLoot, -} from "../../../src/engine/runtime/engineV2ItemAndLootSystem.js"; +} from "../../../www/src/engine/runtime/engineV2ItemAndLootSystem.js"; import { createEngineV2PossessionRuntimeFixture } from "./EngineV2PossessionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ModifierStack.test.mjs b/dev/tests/engine/EngineV2ModifierStack.test.mjs index 4af797d3c..e80dd0ab7 100644 --- a/dev/tests/engine/EngineV2ModifierStack.test.mjs +++ b/dev/tests/engine/EngineV2ModifierStack.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_MODIFIER_ERRORS, resolveEngineV2ModifierStack, -} from "../../../src/engine/runtime/engineV2ModifierStack.js"; +} from "../../../www/src/engine/runtime/engineV2ModifierStack.js"; import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs b/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs index 2f29495f1..2e2e499ae 100644 --- a/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs +++ b/dev/tests/engine/EngineV2ObjectiveSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_OBJECTIVE_ERRORS, processEngineV2Objectives, -} from "../../../src/engine/runtime/engineV2ObjectiveSystem.js"; +} from "../../../www/src/engine/runtime/engineV2ObjectiveSystem.js"; import { createEngineV2PlayerRuntimeFixture } from "./EngineV2PlayerRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs b/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs index 120e6e500..15baf0c77 100644 --- a/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs +++ b/dev/tests/engine/EngineV2PathfindingBaseline.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_PATHFINDING_ERRORS, resolveEngineV2PathRequests, -} from "../../../src/engine/runtime/engineV2PathfindingBaseline.js"; +} from "../../../www/src/engine/runtime/engineV2PathfindingBaseline.js"; import { createEngineV2AiBehaviorFixture } from "./EngineV2AiBehaviorFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2PatrolBehavior.test.mjs b/dev/tests/engine/EngineV2PatrolBehavior.test.mjs index 73403faf8..758fa8d4b 100644 --- a/dev/tests/engine/EngineV2PatrolBehavior.test.mjs +++ b/dev/tests/engine/EngineV2PatrolBehavior.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_PATROL_ERRORS, updateEngineV2PatrolBehaviors, -} from "../../../src/engine/runtime/engineV2PatrolBehavior.js"; +} from "../../../www/src/engine/runtime/engineV2PatrolBehavior.js"; import { createEngineV2AiBehaviorFixture } from "./EngineV2AiBehaviorFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs b/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs index 4fb75e969..31a3d4709 100644 --- a/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs +++ b/dev/tests/engine/EngineV2PersistenceRuntime.test.mjs @@ -9,8 +9,8 @@ import assert from "node:assert/strict"; import { ENGINE_V2_PERSISTENCE_ERRORS, processEngineV2Persistence, -} from "../../../src/engine/runtime/engineV2PersistenceRuntime.js"; -import { createEngineV2SaveState } from "../../../src/engine/runtime/engineV2SaveStateModel.js"; +} from "../../../www/src/engine/runtime/engineV2PersistenceRuntime.js"; +import { createEngineV2SaveState } from "../../../www/src/engine/runtime/engineV2SaveStateModel.js"; import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs b/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs index aadc7456d..5887c29dd 100644 --- a/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs +++ b/dev/tests/engine/EngineV2ProfileStateSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_PROFILE_ERRORS, processEngineV2ProfileState, -} from "../../../src/engine/runtime/engineV2ProfileStateSystem.js"; +} from "../../../www/src/engine/runtime/engineV2ProfileStateSystem.js"; import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2ProjectileSystem.test.mjs b/dev/tests/engine/EngineV2ProjectileSystem.test.mjs index d69e97543..4b55765c2 100644 --- a/dev/tests/engine/EngineV2ProjectileSystem.test.mjs +++ b/dev/tests/engine/EngineV2ProjectileSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_PROJECTILE_ERRORS, resolveEngineV2Projectiles, -} from "../../../src/engine/runtime/engineV2ProjectileSystem.js"; +} from "../../../www/src/engine/runtime/engineV2ProjectileSystem.js"; import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2QuestSystem.test.mjs b/dev/tests/engine/EngineV2QuestSystem.test.mjs index aba557962..e93d67bcb 100644 --- a/dev/tests/engine/EngineV2QuestSystem.test.mjs +++ b/dev/tests/engine/EngineV2QuestSystem.test.mjs @@ -6,11 +6,11 @@ EngineV2QuestSystem.test.mjs */ import assert from "node:assert/strict"; -import { processEngineV2Objectives } from "../../../src/engine/runtime/engineV2ObjectiveSystem.js"; +import { processEngineV2Objectives } from "../../../www/src/engine/runtime/engineV2ObjectiveSystem.js"; import { ENGINE_V2_QUEST_ERRORS, processEngineV2Quests, -} from "../../../src/engine/runtime/engineV2QuestSystem.js"; +} from "../../../www/src/engine/runtime/engineV2QuestSystem.js"; import { createEngineV2PlayerRuntimeFixture } from "./EngineV2PlayerRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs b/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs index cb323bd44..bf13ac352 100644 --- a/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs +++ b/dev/tests/engine/EngineV2SaveLoadValidation.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_SAVE_LOAD_ERRORS, validateEngineV2SaveLoadFlow, -} from "../../../src/engine/runtime/engineV2SaveLoadValidation.js"; +} from "../../../www/src/engine/runtime/engineV2SaveLoadValidation.js"; import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2SaveStateModel.test.mjs b/dev/tests/engine/EngineV2SaveStateModel.test.mjs index c841ab327..ebe06169d 100644 --- a/dev/tests/engine/EngineV2SaveStateModel.test.mjs +++ b/dev/tests/engine/EngineV2SaveStateModel.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_SAVE_STATE_ERRORS, createEngineV2SaveState, -} from "../../../src/engine/runtime/engineV2SaveStateModel.js"; +} from "../../../www/src/engine/runtime/engineV2SaveStateModel.js"; import { createEngineV2PersistenceRuntimeFixture } from "./EngineV2PersistenceRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs b/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs index b7ca10b6a..0a20b50d4 100644 --- a/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs +++ b/dev/tests/engine/EngineV2StateMachineRuntime.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_STATE_MACHINE_ERRORS, processEngineV2StateMachineRuntime, -} from "../../../src/engine/runtime/engineV2StateMachineRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2StateMachineRuntime.js"; import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs b/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs index 86e2f4f60..00fe32fec 100644 --- a/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs +++ b/dev/tests/engine/EngineV2StatusEffectSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_STATUS_EFFECT_ERRORS, processEngineV2StatusEffects, -} from "../../../src/engine/runtime/engineV2StatusEffectSystem.js"; +} from "../../../www/src/engine/runtime/engineV2StatusEffectSystem.js"; import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2UiRuntime.test.mjs b/dev/tests/engine/EngineV2UiRuntime.test.mjs index 1559c392c..e48a55b50 100644 --- a/dev/tests/engine/EngineV2UiRuntime.test.mjs +++ b/dev/tests/engine/EngineV2UiRuntime.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_UI_ERRORS, resolveEngineV2GameUi, -} from "../../../src/engine/runtime/engineV2UiRuntime.js"; +} from "../../../www/src/engine/runtime/engineV2UiRuntime.js"; import { createEngineV2FeatureCompleteFixture } from "./EngineV2FeatureCompleteFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2VendorSystem.test.mjs b/dev/tests/engine/EngineV2VendorSystem.test.mjs index 33702705c..c7fec7c63 100644 --- a/dev/tests/engine/EngineV2VendorSystem.test.mjs +++ b/dev/tests/engine/EngineV2VendorSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_VENDOR_ERRORS, resolveEngineV2Vendor, -} from "../../../src/engine/runtime/engineV2VendorSystem.js"; +} from "../../../www/src/engine/runtime/engineV2VendorSystem.js"; import { createEngineV2InteractionRuntimeFixture } from "./EngineV2InteractionRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/EngineV2WeaponSystem.test.mjs b/dev/tests/engine/EngineV2WeaponSystem.test.mjs index 9c12a91ba..88d100446 100644 --- a/dev/tests/engine/EngineV2WeaponSystem.test.mjs +++ b/dev/tests/engine/EngineV2WeaponSystem.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { ENGINE_V2_WEAPON_ERRORS, resolveEngineV2Weapons, -} from "../../../src/engine/runtime/engineV2WeaponSystem.js"; +} from "../../../www/src/engine/runtime/engineV2WeaponSystem.js"; import { createEngineV2CombatRuntimeFixture } from "./EngineV2CombatRuntimeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs b/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs index 263b14994..d655db451 100644 --- a/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs +++ b/dev/tests/engine/FirstManifestDrivenPlayableScene.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { FIRST_MANIFEST_DRIVEN_SCENE_ERRORS, createFirstManifestDrivenPlayableScene, -} from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; +} from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/HitboxCollisionContract.test.mjs b/dev/tests/engine/HitboxCollisionContract.test.mjs index 829e55b34..6d095bc45 100644 --- a/dev/tests/engine/HitboxCollisionContract.test.mjs +++ b/dev/tests/engine/HitboxCollisionContract.test.mjs @@ -5,7 +5,7 @@ import { collisionTime, normalizeBoundingBox, sweptAabb, -} from "../../../src/engine/collision/hitboxCollision.js"; +} from "../../../www/src/engine/collision/hitboxCollision.js"; export function run() { const normalized = normalizeBoundingBox({ height: -8, width: 10, x: 5, y: 12 }); diff --git a/dev/tests/engine/ManifestRuntimeParser.test.mjs b/dev/tests/engine/ManifestRuntimeParser.test.mjs index 61108e018..f3810f680 100644 --- a/dev/tests/engine/ManifestRuntimeParser.test.mjs +++ b/dev/tests/engine/ManifestRuntimeParser.test.mjs @@ -9,7 +9,7 @@ import { MANIFEST_RUNTIME_PARSER_ERRORS, MANIFEST_RUNTIME_SCHEMA, parseManifestRuntimePayload, -} from "../../../src/engine/runtime/manifestRuntimeParser.js"; +} from "../../../www/src/engine/runtime/manifestRuntimeParser.js"; export function createValidManifestRuntimePayload() { return { diff --git a/dev/tests/engine/ObjectDefinitionReader.test.mjs b/dev/tests/engine/ObjectDefinitionReader.test.mjs index a66524a72..9743c450e 100644 --- a/dev/tests/engine/ObjectDefinitionReader.test.mjs +++ b/dev/tests/engine/ObjectDefinitionReader.test.mjs @@ -11,7 +11,7 @@ import { RUNTIME_OBJECT_TYPES, isRuntimeObjectType, readManifestObjectDefinitions, -} from "../../../src/engine/runtime/objectDefinitionReader.js"; +} from "../../../www/src/engine/runtime/objectDefinitionReader.js"; export function createObjectDefinitionManifest() { return { diff --git a/dev/tests/engine/ObjectModelContract.test.mjs b/dev/tests/engine/ObjectModelContract.test.mjs index 874622cc6..ea0dac9cc 100644 --- a/dev/tests/engine/ObjectModelContract.test.mjs +++ b/dev/tests/engine/ObjectModelContract.test.mjs @@ -14,7 +14,7 @@ import { getObjectModelType, validateObjectDefinition, validateObjectDefinitionList, -} from "../../../src/engine/object-model/index.js"; +} from "../../../www/src/engine/object-model/index.js"; export function run() { assert.deepEqual(OBJECT_MODEL_TYPE_LIST.map((objectType) => objectType.id), [ diff --git a/dev/tests/engine/RuleDefinitionReader.test.mjs b/dev/tests/engine/RuleDefinitionReader.test.mjs index 37198e78e..4321e9d76 100644 --- a/dev/tests/engine/RuleDefinitionReader.test.mjs +++ b/dev/tests/engine/RuleDefinitionReader.test.mjs @@ -11,7 +11,7 @@ import { RUNTIME_RULE_TYPES, isRuntimeRuleType, readManifestRuleDefinitions, -} from "../../../src/engine/runtime/ruleDefinitionReader.js"; +} from "../../../www/src/engine/runtime/ruleDefinitionReader.js"; export function createRuleDefinitionManifest() { return { diff --git a/dev/tests/engine/RuntimeActionSystem.test.mjs b/dev/tests/engine/RuntimeActionSystem.test.mjs index eb71bef3d..6ea6c14ce 100644 --- a/dev/tests/engine/RuntimeActionSystem.test.mjs +++ b/dev/tests/engine/RuntimeActionSystem.test.mjs @@ -6,13 +6,13 @@ RuntimeActionSystem.test.mjs */ import assert from "node:assert/strict"; -import { evaluateRuntimeConditions } from "../../../src/engine/runtime/runtimeConditionSystem.js"; -import { publishRuntimeEvents } from "../../../src/engine/runtime/runtimeEventSystem.js"; +import { evaluateRuntimeConditions } from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; +import { publishRuntimeEvents } from "../../../www/src/engine/runtime/runtimeEventSystem.js"; import { RUNTIME_ACTION_ERRORS, readManifestActionDefinitions, resolveRuntimeActions, -} from "../../../src/engine/runtime/runtimeActionSystem.js"; +} from "../../../www/src/engine/runtime/runtimeActionSystem.js"; import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeBehaviorComposition.test.mjs b/dev/tests/engine/RuntimeBehaviorComposition.test.mjs index a9500251d..08e1d7d73 100644 --- a/dev/tests/engine/RuntimeBehaviorComposition.test.mjs +++ b/dev/tests/engine/RuntimeBehaviorComposition.test.mjs @@ -8,12 +8,12 @@ import assert from "node:assert/strict"; import { RUNTIME_BEHAVIOR_COMPOSITION_ERRORS, composeRuntimeBehavior, -} from "../../../src/engine/runtime/runtimeBehaviorComposition.js"; -import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; -import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; -import { instantiateEnvironmentForces } from "../../../src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; -import { instantiateRuntimeObjects } from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; -import { instantiateTerrainMaterials } from "../../../src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; +} from "../../../www/src/engine/runtime/runtimeBehaviorComposition.js"; +import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; +import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; +import { instantiateEnvironmentForces } from "../../../www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; +import { instantiateRuntimeObjects } from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; +import { instantiateTerrainMaterials } from "../../../www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeCollisionProcessing.test.mjs b/dev/tests/engine/RuntimeCollisionProcessing.test.mjs index 4e8517435..ff673343a 100644 --- a/dev/tests/engine/RuntimeCollisionProcessing.test.mjs +++ b/dev/tests/engine/RuntimeCollisionProcessing.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_COLLISION_ERRORS, processRuntimeCollisions, -} from "../../../src/engine/runtime/runtimeCollisionProcessing.js"; +} from "../../../www/src/engine/runtime/runtimeCollisionProcessing.js"; export function run() { const terrainTiles = [ diff --git a/dev/tests/engine/RuntimeConditionSystem.test.mjs b/dev/tests/engine/RuntimeConditionSystem.test.mjs index 9def5948d..db313a89a 100644 --- a/dev/tests/engine/RuntimeConditionSystem.test.mjs +++ b/dev/tests/engine/RuntimeConditionSystem.test.mjs @@ -10,7 +10,7 @@ import { RUNTIME_CONDITION_ERRORS, evaluateRuntimeConditions, readManifestConditionDefinitions, -} from "../../../src/engine/runtime/runtimeConditionSystem.js"; +} from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeCooldownProcessing.test.mjs b/dev/tests/engine/RuntimeCooldownProcessing.test.mjs index 3bd52c936..a89d79141 100644 --- a/dev/tests/engine/RuntimeCooldownProcessing.test.mjs +++ b/dev/tests/engine/RuntimeCooldownProcessing.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { RUNTIME_COOLDOWN_ERRORS, processRuntimeCooldowns, -} from "../../../src/engine/runtime/runtimeCooldownProcessing.js"; +} from "../../../www/src/engine/runtime/runtimeCooldownProcessing.js"; import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeDamageProcessing.test.mjs b/dev/tests/engine/RuntimeDamageProcessing.test.mjs index 9f84cce68..d043562d7 100644 --- a/dev/tests/engine/RuntimeDamageProcessing.test.mjs +++ b/dev/tests/engine/RuntimeDamageProcessing.test.mjs @@ -6,11 +6,11 @@ RuntimeDamageProcessing.test.mjs */ import assert from "node:assert/strict"; -import { createRuntimeHealthRecords } from "../../../src/engine/runtime/runtimeHealthModel.js"; +import { createRuntimeHealthRecords } from "../../../www/src/engine/runtime/runtimeHealthModel.js"; import { RUNTIME_DAMAGE_ERRORS, processRuntimeDamage, -} from "../../../src/engine/runtime/runtimeDamageProcessing.js"; +} from "../../../www/src/engine/runtime/runtimeDamageProcessing.js"; import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeDeterminismValidation.test.mjs b/dev/tests/engine/RuntimeDeterminismValidation.test.mjs index 8c7f94121..fa086a78c 100644 --- a/dev/tests/engine/RuntimeDeterminismValidation.test.mjs +++ b/dev/tests/engine/RuntimeDeterminismValidation.test.mjs @@ -5,7 +5,7 @@ David Quesenberry RuntimeDeterminismValidation.test.mjs */ import assert from "node:assert/strict"; -import { createFirstManifestDrivenPlayableScene } from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; +import { createFirstManifestDrivenPlayableScene } from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs b/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs index b6e001bd4..871a9fa40 100644 --- a/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs +++ b/dev/tests/engine/RuntimeEnvironmentEffects.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_ENVIRONMENT_EFFECT_ERRORS, applyRuntimeEnvironmentEffects, -} from "../../../src/engine/runtime/runtimeEnvironmentEffects.js"; +} from "../../../www/src/engine/runtime/runtimeEnvironmentEffects.js"; export function run() { const runtimeObjects = [ diff --git a/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs b/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs index 92b48bf5a..f6db4f2fb 100644 --- a/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs +++ b/dev/tests/engine/RuntimeEnvironmentForceInstantiation.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_ENVIRONMENT_FORCE_ERRORS, instantiateEnvironmentForces, -} from "../../../src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; +} from "../../../www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeErrorReporting.test.mjs b/dev/tests/engine/RuntimeErrorReporting.test.mjs index 7cce56505..4a3db8dbc 100644 --- a/dev/tests/engine/RuntimeErrorReporting.test.mjs +++ b/dev/tests/engine/RuntimeErrorReporting.test.mjs @@ -9,7 +9,7 @@ import { RUNTIME_ERROR_REPORTING_ERRORS, RUNTIME_ERROR_REPORT_STAGE_LIST, createRuntimeErrorReport, -} from "../../../src/engine/runtime/runtimeErrorReporting.js"; +} from "../../../www/src/engine/runtime/runtimeErrorReporting.js"; export function run() { RUNTIME_ERROR_REPORT_STAGE_LIST.forEach((stage) => { diff --git a/dev/tests/engine/RuntimeEventSystem.test.mjs b/dev/tests/engine/RuntimeEventSystem.test.mjs index e047b1ab5..a1fdf1d8a 100644 --- a/dev/tests/engine/RuntimeEventSystem.test.mjs +++ b/dev/tests/engine/RuntimeEventSystem.test.mjs @@ -6,11 +6,11 @@ RuntimeEventSystem.test.mjs */ import assert from "node:assert/strict"; -import { evaluateRuntimeConditions } from "../../../src/engine/runtime/runtimeConditionSystem.js"; +import { evaluateRuntimeConditions } from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; import { RUNTIME_EVENT_ERRORS, publishRuntimeEvents, -} from "../../../src/engine/runtime/runtimeEventSystem.js"; +} from "../../../www/src/engine/runtime/runtimeEventSystem.js"; import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeHealthModel.test.mjs b/dev/tests/engine/RuntimeHealthModel.test.mjs index 1fd73a459..4cdc446b2 100644 --- a/dev/tests/engine/RuntimeHealthModel.test.mjs +++ b/dev/tests/engine/RuntimeHealthModel.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { RUNTIME_HEALTH_ERRORS, createRuntimeHealthRecords, -} from "../../../src/engine/runtime/runtimeHealthModel.js"; +} from "../../../www/src/engine/runtime/runtimeHealthModel.js"; import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeInputPipeline.test.mjs b/dev/tests/engine/RuntimeInputPipeline.test.mjs index c24069a71..c5ace7d97 100644 --- a/dev/tests/engine/RuntimeInputPipeline.test.mjs +++ b/dev/tests/engine/RuntimeInputPipeline.test.mjs @@ -9,7 +9,7 @@ import { RUNTIME_INPUT_PIPELINE_ERRORS, createRuntimeInputPipeline, resolveRuntimeInputActions, -} from "../../../src/engine/runtime/runtimeInputPipeline.js"; +} from "../../../www/src/engine/runtime/runtimeInputPipeline.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs b/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs index 73deb78a3..01905c12a 100644 --- a/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs +++ b/dev/tests/engine/RuntimeLivesAndRespawn.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { RUNTIME_LIVES_RESPAWN_ERRORS, processRuntimeLivesAndRespawn, -} from "../../../src/engine/runtime/runtimeLivesAndRespawn.js"; +} from "../../../www/src/engine/runtime/runtimeLivesAndRespawn.js"; import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeLoaderValidation.test.mjs b/dev/tests/engine/RuntimeLoaderValidation.test.mjs index 6df3243ee..e65980372 100644 --- a/dev/tests/engine/RuntimeLoaderValidation.test.mjs +++ b/dev/tests/engine/RuntimeLoaderValidation.test.mjs @@ -8,15 +8,15 @@ import assert from "node:assert/strict"; import { MANIFEST_RUNTIME_PARSER_ERRORS, parseManifestRuntimePayload, -} from "../../../src/engine/runtime/manifestRuntimeParser.js"; +} from "../../../www/src/engine/runtime/manifestRuntimeParser.js"; import { OBJECT_DEFINITION_READER_ERRORS, readManifestObjectDefinitions, -} from "../../../src/engine/runtime/objectDefinitionReader.js"; +} from "../../../www/src/engine/runtime/objectDefinitionReader.js"; import { RULE_DEFINITION_READER_ERRORS, readManifestRuleDefinitions, -} from "../../../src/engine/runtime/ruleDefinitionReader.js"; +} from "../../../www/src/engine/runtime/ruleDefinitionReader.js"; import { createValidManifestRuntimePayload } from "./ManifestRuntimeParser.test.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs b/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs index 749e64973..5ccf00459 100644 --- a/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs +++ b/dev/tests/engine/RuntimeManifestFixtureHardening.test.mjs @@ -5,11 +5,11 @@ David Quesenberry RuntimeManifestFixtureHardening.test.mjs */ import assert from "node:assert/strict"; -import { createFirstManifestDrivenPlayableScene } from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; -import { parseManifestRuntimePayload } from "../../../src/engine/runtime/manifestRuntimeParser.js"; -import { createRuntimeInputPipeline } from "../../../src/engine/runtime/runtimeInputPipeline.js"; -import { instantiateEnvironmentForces } from "../../../src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; -import { instantiateTerrainMaterials } from "../../../src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; +import { createFirstManifestDrivenPlayableScene } from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; +import { parseManifestRuntimePayload } from "../../../www/src/engine/runtime/manifestRuntimeParser.js"; +import { createRuntimeInputPipeline } from "../../../www/src/engine/runtime/runtimeInputPipeline.js"; +import { instantiateEnvironmentForces } from "../../../www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js"; +import { instantiateTerrainMaterials } from "../../../www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; import { createInvalidEngineFixtures, createValidEngineFixture, diff --git a/dev/tests/engine/RuntimeMovementProcessing.test.mjs b/dev/tests/engine/RuntimeMovementProcessing.test.mjs index fd0d42775..26bd8922b 100644 --- a/dev/tests/engine/RuntimeMovementProcessing.test.mjs +++ b/dev/tests/engine/RuntimeMovementProcessing.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_MOVEMENT_ERRORS, processRuntimeMovement, -} from "../../../src/engine/runtime/runtimeMovementProcessing.js"; +} from "../../../www/src/engine/runtime/runtimeMovementProcessing.js"; export function run() { const runtimeObjects = [ diff --git a/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs b/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs index c0dd56283..67f8b22cd 100644 --- a/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs +++ b/dev/tests/engine/RuntimeMultiSceneLoading.test.mjs @@ -10,7 +10,7 @@ import { createRuntimeSceneRegistry, loadRuntimeScene, validateRuntimeSceneTransition, -} from "../../../src/engine/runtime/runtimeMultiSceneLoading.js"; +} from "../../../www/src/engine/runtime/runtimeMultiSceneLoading.js"; import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs b/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs index d888b5e43..9458ce13e 100644 --- a/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs +++ b/dev/tests/engine/RuntimeObjectDefaultRejection.test.mjs @@ -9,7 +9,7 @@ import { RUNTIME_OBJECT_RECORD_FACTORY_ERRORS, RUNTIME_OBJECT_RECORD_FORBIDDEN_DEFAULT_FIELDS, createRuntimeObjectRecord, -} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; export function run() { assertErrorCodes( diff --git a/dev/tests/engine/RuntimeObjectInstantiation.test.mjs b/dev/tests/engine/RuntimeObjectInstantiation.test.mjs index 2a0f81bbf..78e14ff12 100644 --- a/dev/tests/engine/RuntimeObjectInstantiation.test.mjs +++ b/dev/tests/engine/RuntimeObjectInstantiation.test.mjs @@ -8,9 +8,9 @@ import assert from "node:assert/strict"; import { RUNTIME_OBJECT_INSTANTIATION_ERRORS, instantiateRuntimeObjects, -} from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; -import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; -import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +} from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; +import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; +import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs b/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs index 55f1536ad..08345d276 100644 --- a/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs +++ b/dev/tests/engine/RuntimeObjectRecordFactory.test.mjs @@ -5,13 +5,13 @@ David Quesenberry RuntimeObjectRecordFactory.test.mjs */ import assert from "node:assert/strict"; -import { RUNTIME_OBJECT_TYPE_LIST, readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; +import { RUNTIME_OBJECT_TYPE_LIST, readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; import { RUNTIME_OBJECT_RECORD_FORBIDDEN_DEFAULT_FIELDS, createRuntimeObjectRecord, createRuntimeObjectRecords, validateRuntimeObjectRecord, -} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; import { createObjectDefinitionManifest } from "./ObjectDefinitionReader.test.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs b/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs index a552aeb07..252e01520 100644 --- a/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs +++ b/dev/tests/engine/RuntimeObjectRecordValidation.test.mjs @@ -9,7 +9,7 @@ import { RUNTIME_OBJECT_RECORD_FACTORY_ERRORS, createRuntimeObjectRecord, validateRuntimeObjectRecord, -} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; export function run() { const manifestDefinition = Object.freeze({ diff --git a/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs b/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs index 2c8289313..5cc3ad76d 100644 --- a/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs +++ b/dev/tests/engine/RuntimeObjectTypeValidation.test.mjs @@ -5,12 +5,12 @@ David Quesenberry RuntimeObjectTypeValidation.test.mjs */ import assert from "node:assert/strict"; -import { RUNTIME_OBJECT_TYPE_LIST } from "../../../src/engine/runtime/objectDefinitionReader.js"; +import { RUNTIME_OBJECT_TYPE_LIST } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; import { RUNTIME_OBJECT_RECORD_FACTORY_ERRORS, createRuntimeObjectRecord, isRuntimeObjectRecordType, -} from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; +} from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; export function run() { RUNTIME_OBJECT_TYPE_LIST.forEach((objectType) => { diff --git a/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs b/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs index 23d7dbd4e..3dcdcb8cf 100644 --- a/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs +++ b/dev/tests/engine/RuntimeOutcomeProcessing.test.mjs @@ -9,7 +9,7 @@ import assert from "node:assert/strict"; import { RUNTIME_OUTCOME_ERRORS, evaluateRuntimeOutcomes, -} from "../../../src/engine/runtime/runtimeOutcomeProcessing.js"; +} from "../../../www/src/engine/runtime/runtimeOutcomeProcessing.js"; import { createRuntimeHealthOutcomeFixture } from "./RuntimeHealthOutcomeFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimePlayableLoop.test.mjs b/dev/tests/engine/RuntimePlayableLoop.test.mjs index ee1c8ef48..02096c6e2 100644 --- a/dev/tests/engine/RuntimePlayableLoop.test.mjs +++ b/dev/tests/engine/RuntimePlayableLoop.test.mjs @@ -5,7 +5,7 @@ David Quesenberry RuntimePlayableLoop.test.mjs */ import assert from "node:assert/strict"; -import { runRuntimePlayableFrame } from "../../../src/engine/runtime/runtimePlayableLoop.js"; +import { runRuntimePlayableFrame } from "../../../www/src/engine/runtime/runtimePlayableLoop.js"; export function run() { const world = Object.freeze({ diff --git a/dev/tests/engine/RuntimePlayableSceneUat.test.mjs b/dev/tests/engine/RuntimePlayableSceneUat.test.mjs index 54a9d3157..3277cfa95 100644 --- a/dev/tests/engine/RuntimePlayableSceneUat.test.mjs +++ b/dev/tests/engine/RuntimePlayableSceneUat.test.mjs @@ -5,7 +5,7 @@ David Quesenberry RuntimePlayableSceneUat.test.mjs */ import assert from "node:assert/strict"; -import { createFirstManifestDrivenPlayableScene } from "../../../src/engine/runtime/firstManifestDrivenPlayableScene.js"; +import { createFirstManifestDrivenPlayableScene } from "../../../www/src/engine/runtime/firstManifestDrivenPlayableScene.js"; import { createInvalidEngineFixtures, createValidEngineFixture, diff --git a/dev/tests/engine/RuntimeRenderPipeline.test.mjs b/dev/tests/engine/RuntimeRenderPipeline.test.mjs index c822845ef..0f289c864 100644 --- a/dev/tests/engine/RuntimeRenderPipeline.test.mjs +++ b/dev/tests/engine/RuntimeRenderPipeline.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_RENDER_PIPELINE_ERRORS, renderRuntimeFrame, -} from "../../../src/engine/runtime/runtimeRenderPipeline.js"; +} from "../../../www/src/engine/runtime/runtimeRenderPipeline.js"; export function run() { const renderState = Object.freeze({ diff --git a/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs b/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs index 9762989c6..7510dd205 100644 --- a/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs +++ b/dev/tests/engine/RuntimeRenderingBootstrap.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_RENDERING_BOOTSTRAP_ERRORS, createRuntimeRenderingBootstrap, -} from "../../../src/engine/runtime/runtimeRenderingBootstrap.js"; +} from "../../../www/src/engine/runtime/runtimeRenderingBootstrap.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeRuleAttachment.test.mjs b/dev/tests/engine/RuntimeRuleAttachment.test.mjs index c1c9cd7f5..20b8d2838 100644 --- a/dev/tests/engine/RuntimeRuleAttachment.test.mjs +++ b/dev/tests/engine/RuntimeRuleAttachment.test.mjs @@ -8,11 +8,11 @@ import assert from "node:assert/strict"; import { RUNTIME_RULE_ATTACHMENT_ERRORS, attachRuntimeRules, -} from "../../../src/engine/runtime/runtimeRuleAttachment.js"; -import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; -import { readManifestRuleDefinitions } from "../../../src/engine/runtime/ruleDefinitionReader.js"; -import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; -import { instantiateRuntimeObjects } from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; +} from "../../../www/src/engine/runtime/runtimeRuleAttachment.js"; +import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; +import { readManifestRuleDefinitions } from "../../../www/src/engine/runtime/ruleDefinitionReader.js"; +import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; +import { instantiateRuntimeObjects } from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs b/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs index 95d68e7dd..ab5ee5d35 100644 --- a/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs +++ b/dev/tests/engine/RuntimeSceneDefinitionSupport.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_SCENE_DEFINITION_ERRORS, readManifestSceneDefinitions, -} from "../../../src/engine/runtime/runtimeSceneDefinitionSupport.js"; +} from "../../../www/src/engine/runtime/runtimeSceneDefinitionSupport.js"; import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs b/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs index 76fa48ef3..ef66a3ebd 100644 --- a/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs +++ b/dev/tests/engine/RuntimeScoringAndStateProcessing.test.mjs @@ -8,8 +8,8 @@ import assert from "node:assert/strict"; import { RUNTIME_SCORING_STATE_ERRORS, processRuntimeScoringAndState, -} from "../../../src/engine/runtime/runtimeScoringAndStateProcessing.js"; -import { readManifestSceneDefinitions } from "../../../src/engine/runtime/runtimeSceneDefinitionSupport.js"; +} from "../../../www/src/engine/runtime/runtimeScoringAndStateProcessing.js"; +import { readManifestSceneDefinitions } from "../../../www/src/engine/runtime/runtimeSceneDefinitionSupport.js"; import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs b/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs index d2a60d929..5283f361d 100644 --- a/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs +++ b/dev/tests/engine/RuntimeSpawnDespawnProcessing.test.mjs @@ -5,14 +5,14 @@ David Quesenberry RuntimeSpawnDespawnProcessing.test.mjs */ import assert from "node:assert/strict"; -import { readManifestObjectDefinitions } from "../../../src/engine/runtime/objectDefinitionReader.js"; -import { createRuntimeObjectRecords } from "../../../src/engine/runtime/runtimeObjectRecordFactory.js"; -import { instantiateRuntimeObjects } from "../../../src/engine/runtime/runtimeObjectInstantiation.js"; +import { readManifestObjectDefinitions } from "../../../www/src/engine/runtime/objectDefinitionReader.js"; +import { createRuntimeObjectRecords } from "../../../www/src/engine/runtime/runtimeObjectRecordFactory.js"; +import { instantiateRuntimeObjects } from "../../../www/src/engine/runtime/runtimeObjectInstantiation.js"; import { RUNTIME_SPAWN_DESPAWN_ERRORS, processRuntimeSpawnDespawn, -} from "../../../src/engine/runtime/runtimeSpawnDespawnProcessing.js"; -import { readManifestSceneDefinitions } from "../../../src/engine/runtime/runtimeSceneDefinitionSupport.js"; +} from "../../../www/src/engine/runtime/runtimeSpawnDespawnProcessing.js"; +import { readManifestSceneDefinitions } from "../../../www/src/engine/runtime/runtimeSceneDefinitionSupport.js"; import { createRuntimeGameplayLoopManifest } from "./RuntimeGameplayLoopFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeTerrainEffects.test.mjs b/dev/tests/engine/RuntimeTerrainEffects.test.mjs index 108eb451a..e608bf334 100644 --- a/dev/tests/engine/RuntimeTerrainEffects.test.mjs +++ b/dev/tests/engine/RuntimeTerrainEffects.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_TERRAIN_EFFECT_ERRORS, applyRuntimeTerrainEffects, -} from "../../../src/engine/runtime/runtimeTerrainEffects.js"; +} from "../../../www/src/engine/runtime/runtimeTerrainEffects.js"; export function run() { const runtimeObjects = [ diff --git a/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs b/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs index 35e700597..e4536c26d 100644 --- a/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs +++ b/dev/tests/engine/RuntimeTerrainMaterialInstantiation.test.mjs @@ -8,7 +8,7 @@ import assert from "node:assert/strict"; import { RUNTIME_TERRAIN_MATERIAL_ERRORS, instantiateTerrainMaterials, -} from "../../../src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; +} from "../../../www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js"; import { createManifestDrivenRuntimeFixture } from "./RuntimeManifestDrivenFixture.mjs"; export function run() { diff --git a/dev/tests/engine/RuntimeTickLoop.test.mjs b/dev/tests/engine/RuntimeTickLoop.test.mjs index 3664ca702..b91ad2157 100644 --- a/dev/tests/engine/RuntimeTickLoop.test.mjs +++ b/dev/tests/engine/RuntimeTickLoop.test.mjs @@ -9,7 +9,7 @@ import { RUNTIME_TICK_LOOP_ERRORS, advanceRuntimeTick, createRuntimeTickLoop, -} from "../../../src/engine/runtime/runtimeTickLoop.js"; +} from "../../../www/src/engine/runtime/runtimeTickLoop.js"; export function run() { const startResult = createRuntimeTickLoop({ fixedDeltaMs: 100 }); diff --git a/dev/tests/engine/RuntimeTriggerProcessing.test.mjs b/dev/tests/engine/RuntimeTriggerProcessing.test.mjs index 9b8996f8d..8bf06b86c 100644 --- a/dev/tests/engine/RuntimeTriggerProcessing.test.mjs +++ b/dev/tests/engine/RuntimeTriggerProcessing.test.mjs @@ -6,11 +6,11 @@ RuntimeTriggerProcessing.test.mjs */ import assert from "node:assert/strict"; -import { RUNTIME_CONDITION_ERRORS } from "../../../src/engine/runtime/runtimeConditionSystem.js"; +import { RUNTIME_CONDITION_ERRORS } from "../../../www/src/engine/runtime/runtimeConditionSystem.js"; import { RUNTIME_TRIGGER_PROCESSING_ERRORS, processRuntimeTriggers, -} from "../../../src/engine/runtime/runtimeTriggerProcessing.js"; +} from "../../../www/src/engine/runtime/runtimeTriggerProcessing.js"; import { createRuntimeGameRuleFixture } from "./RuntimeGameRuleFixture.mjs"; export function run() { diff --git a/dev/tests/engine/core/FixedTicker.test.mjs b/dev/tests/engine/core/FixedTicker.test.mjs index 566633c2e..9b9859c8d 100644 --- a/dev/tests/engine/core/FixedTicker.test.mjs +++ b/dev/tests/engine/core/FixedTicker.test.mjs @@ -5,7 +5,7 @@ David Quesenberry FixedTicker.test.mjs */ import assert from "node:assert/strict"; -import FixedTicker from "../../../../src/engine/core/FixedTicker.js"; +import FixedTicker from "../../../../www/src/engine/core/FixedTicker.js"; export function run() { const ticker = new FixedTicker({ stepMs: 10, maxCatchUpSteps: 3 }); diff --git a/dev/tests/engine/core/FrameClock.test.mjs b/dev/tests/engine/core/FrameClock.test.mjs index cdb1c68b6..a51d771a2 100644 --- a/dev/tests/engine/core/FrameClock.test.mjs +++ b/dev/tests/engine/core/FrameClock.test.mjs @@ -5,7 +5,7 @@ David Quesenberry FrameClock.test.mjs */ import assert from "node:assert/strict"; -import FrameClock from "../../../../src/engine/core/FrameClock.js"; +import FrameClock from "../../../../www/src/engine/core/FrameClock.js"; export function run() { const clock = new FrameClock({ maxDeltaMs: 50 }); diff --git a/dev/tests/engine/core/RuntimeMetrics.test.mjs b/dev/tests/engine/core/RuntimeMetrics.test.mjs index be882226e..22723b684 100644 --- a/dev/tests/engine/core/RuntimeMetrics.test.mjs +++ b/dev/tests/engine/core/RuntimeMetrics.test.mjs @@ -5,7 +5,7 @@ David Quesenberry RuntimeMetrics.test.mjs */ import assert from 'node:assert/strict'; -import RuntimeMetrics from '../../../../src/engine/core/RuntimeMetrics.js'; +import RuntimeMetrics from '../../../../www/src/engine/core/RuntimeMetrics.js'; export function run() { const metrics = new RuntimeMetrics({ sampleWindowSeconds: 0.25 }); diff --git a/dev/tests/entity/Entity.test.mjs b/dev/tests/entity/Entity.test.mjs index 9893e5353..4b3376bf2 100644 --- a/dev/tests/entity/Entity.test.mjs +++ b/dev/tests/entity/Entity.test.mjs @@ -4,10 +4,10 @@ David Quesenberry 03/21/2026 Entity.test.mjs */ -import Entity from '../../../src/engine/entity/Entity.js'; -import Transform from '../../../src/engine/entity/Transform.js'; -import Velocity from '../../../src/engine/entity/Velocity.js'; -import Bounds from '../../../src/engine/entity/Bounds.js'; +import Entity from '../../../www/src/engine/entity/Entity.js'; +import Transform from '../../../www/src/engine/entity/Transform.js'; +import Velocity from '../../../www/src/engine/entity/Velocity.js'; +import Bounds from '../../../www/src/engine/entity/Bounds.js'; function assert(condition, message) { if (!condition) { diff --git a/dev/tests/events/EventBus.test.mjs b/dev/tests/events/EventBus.test.mjs index 17b48393d..2fc8595e7 100644 --- a/dev/tests/events/EventBus.test.mjs +++ b/dev/tests/events/EventBus.test.mjs @@ -5,7 +5,7 @@ David Quesenberry EventBus.test.mjs */ import assert from 'node:assert/strict'; -import EventBus from '../../../src/engine/events/EventBus.js'; +import EventBus from '../../../www/src/engine/events/EventBus.js'; export function run() { const bus = new EventBus(); diff --git a/dev/tests/events/EventBusNaming.test.mjs b/dev/tests/events/EventBusNaming.test.mjs index f11de2e90..6636b45c4 100644 --- a/dev/tests/events/EventBusNaming.test.mjs +++ b/dev/tests/events/EventBusNaming.test.mjs @@ -6,8 +6,8 @@ */ import assert from 'node:assert/strict'; import { readdirSync, readFileSync } from 'node:fs'; -import Engine from '../../../src/engine/core/Engine.js'; -import EventBus from '../../../src/engine/events/EventBus.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import EventBus from '../../../www/src/engine/events/EventBus.js'; function createCanvas() { const canvas = { @@ -66,13 +66,13 @@ function createEngine(overrides = {}) { } export function run() { - const eventFiles = readdirSync(new URL('../../../src/engine/events/', import.meta.url)); + const eventFiles = readdirSync(new URL('../../../www/src/engine/events/', import.meta.url)); assert.equal(eventFiles.includes('EventBus.js'), true); assert.equal(eventFiles.includes('eventBus.js'), false); [ - '../../../src/engine/core/Engine.js', - '../../../src/engine/events/index.js', + '../../../www/src/engine/core/Engine.js', + '../../../www/src/engine/events/EventBus.js', '../../tests/events/EventBus.test.mjs', '../../tests/world/WorldSystems.test.mjs', ].forEach((relativePath) => { diff --git a/dev/tests/final/DebugObservabilityMaturity.test.mjs b/dev/tests/final/DebugObservabilityMaturity.test.mjs index bb5d207ed..ae47d0198 100644 --- a/dev/tests/final/DebugObservabilityMaturity.test.mjs +++ b/dev/tests/final/DebugObservabilityMaturity.test.mjs @@ -5,12 +5,12 @@ David Quesenberry DebugObservabilityMaturity.test.mjs */ import assert from "node:assert/strict"; -import { drawPerformanceMetricsPanel } from "../../../src/engine/debug/PerformanceMetricsPanel.js"; -import { create3dCollisionOverlaysPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; -import { createCollisionOverlaysProvider } from '../../../src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; -import { createAdvancedInspectorDebugPluginDefinition } from '../../../src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js'; -import { createNetworkObservabilityPanels } from '../../../src/engine/debug/network/panels/networkObservabilityPanels.js'; -import { drawActionInputDebugOverlay } from "../../../src/engine/input/ActionInputDebugOverlay.js"; +import { drawPerformanceMetricsPanel } from "../../../www/src/engine/debug/PerformanceMetricsPanel.js"; +import { create3dCollisionOverlaysPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; +import { createCollisionOverlaysProvider } from '../../../www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; +import { createAdvancedInspectorDebugPluginDefinition } from '../../../www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js'; +import { createNetworkObservabilityPanels } from '../../../www/src/engine/debug/network/panels/networkObservabilityPanels.js'; +import { drawActionInputDebugOverlay } from "../../../www/src/engine/input/ActionInputDebugOverlay.js"; function createRendererProbe() { const texts = []; diff --git a/dev/tests/final/DeveloperToolingSystems.test.mjs b/dev/tests/final/DeveloperToolingSystems.test.mjs index ee0daefa4..d83ffb625 100644 --- a/dev/tests/final/DeveloperToolingSystems.test.mjs +++ b/dev/tests/final/DeveloperToolingSystems.test.mjs @@ -5,12 +5,12 @@ David Quesenberry DeveloperToolingSystems.test.mjs */ import assert from 'node:assert/strict'; -import AssetBrowser from '../../../src/shared/toolbox/tooling/AssetBrowser.js'; -import DeveloperConsole from '../../../src/shared/toolbox/tooling/DeveloperConsole.js'; -import LiveTuningService from '../../../src/shared/toolbox/tooling/LiveTuningService.js'; -import PropertyEditor from '../../../src/shared/toolbox/tooling/PropertyEditor.js'; -import RuntimeInspector from '../../../src/shared/toolbox/tooling/RuntimeInspector.js'; -import SceneGraphViewer from '../../../src/shared/toolbox/tooling/SceneGraphViewer.js'; +import AssetBrowser from '../../../www/src/shared/toolbox/tooling/AssetBrowser.js'; +import DeveloperConsole from '../../../www/src/shared/toolbox/tooling/DeveloperConsole.js'; +import LiveTuningService from '../../../www/src/shared/toolbox/tooling/LiveTuningService.js'; +import PropertyEditor from '../../../www/src/shared/toolbox/tooling/PropertyEditor.js'; +import RuntimeInspector from '../../../www/src/shared/toolbox/tooling/RuntimeInspector.js'; +import SceneGraphViewer from '../../../www/src/shared/toolbox/tooling/SceneGraphViewer.js'; export async function run() { const consoleTool = new DeveloperConsole(); diff --git a/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs b/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs index 86ddff44c..df41b1e8a 100644 --- a/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs +++ b/dev/tests/final/EditorAutomationSecurityPipeline.test.mjs @@ -5,24 +5,24 @@ David Quesenberry EditorAutomationSecurityPipeline.test.mjs */ import assert from 'node:assert/strict'; -import LevelEditor from '../../../src/shared/toolbox/editor/LevelEditor.js'; -import TileMapEditor from '../../../src/shared/toolbox/editor/TileMapEditor.js'; -import EntityPlacementEditor from '../../../src/shared/toolbox/editor/EntityPlacementEditor.js'; -import TimelineEditor from '../../../src/shared/toolbox/editor/TimelineEditor.js'; -import AutomatedTestRunner from '../../../src/engine/automation/AutomatedTestRunner.js'; -import RegressionPlaybackHarness from '../../../src/engine/automation/RegressionPlaybackHarness.js'; -import BenchmarkRunner from '../../../src/engine/automation/BenchmarkRunner.js'; -import CIValidationFlow from '../../../src/engine/automation/CIValidationFlow.js'; -import PacketValidator from '../../../src/engine/security/PacketValidator.js'; -import DataIntegrityService from '../../../src/engine/security/DataIntegrityService.js'; -import PermissionGate from '../../../src/engine/security/PermissionGate.js'; -import SessionTrustValidator from '../../../src/engine/security/SessionTrustValidator.js'; -import AssetImportPipeline from '../../../src/shared/toolbox/pipeline/AssetImportPipeline.js'; -import TexturePreprocessPipeline from '../../../src/shared/toolbox/pipeline/TexturePreprocessPipeline.js'; -import AudioPreprocessPipeline from '../../../src/shared/toolbox/pipeline/AudioPreprocessPipeline.js'; -import ContentMigrationSystem from '../../../src/shared/toolbox/pipeline/ContentMigrationSystem.js'; -import BuildAssetManifestSystem from '../../../src/shared/toolbox/pipeline/BuildAssetManifestSystem.js'; -import ContentValidationPipeline from '../../../src/shared/toolbox/pipeline/ContentValidationPipeline.js'; +import LevelEditor from '../../../www/src/shared/toolbox/editor/LevelEditor.js'; +import TileMapEditor from '../../../www/src/shared/toolbox/editor/TileMapEditor.js'; +import EntityPlacementEditor from '../../../www/src/shared/toolbox/editor/EntityPlacementEditor.js'; +import TimelineEditor from '../../../www/src/shared/toolbox/editor/TimelineEditor.js'; +import AutomatedTestRunner from '../../../www/src/engine/automation/AutomatedTestRunner.js'; +import RegressionPlaybackHarness from '../../../www/src/engine/automation/RegressionPlaybackHarness.js'; +import BenchmarkRunner from '../../../www/src/engine/automation/BenchmarkRunner.js'; +import CIValidationFlow from '../../../www/src/engine/automation/CIValidationFlow.js'; +import PacketValidator from '../../../www/src/engine/security/PacketValidator.js'; +import DataIntegrityService from '../../../www/src/engine/security/DataIntegrityService.js'; +import PermissionGate from '../../../www/src/engine/security/PermissionGate.js'; +import SessionTrustValidator from '../../../www/src/engine/security/SessionTrustValidator.js'; +import AssetImportPipeline from '../../../www/src/shared/toolbox/pipeline/AssetImportPipeline.js'; +import TexturePreprocessPipeline from '../../../www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js'; +import AudioPreprocessPipeline from '../../../www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js'; +import ContentMigrationSystem from '../../../www/src/shared/toolbox/pipeline/ContentMigrationSystem.js'; +import BuildAssetManifestSystem from '../../../www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js'; +import ContentValidationPipeline from '../../../www/src/shared/toolbox/pipeline/ContentValidationPipeline.js'; export async function run() { const level = new LevelEditor({ width: 4, height: 3 }); diff --git a/dev/tests/final/FinalSystems.test.mjs b/dev/tests/final/FinalSystems.test.mjs index 40115de20..ef865333b 100644 --- a/dev/tests/final/FinalSystems.test.mjs +++ b/dev/tests/final/FinalSystems.test.mjs @@ -5,10 +5,10 @@ David Quesenberry FinalSystems.test.mjs */ import assert from 'node:assert/strict'; -import { compressJson, decompressJson } from '../../../src/engine/persistence/CompressionService.js'; -import ReplaySystem from '../../../src/engine/replay/ReplaySystem.js'; -import AchievementSystem from '../../../src/engine/world/AchievementSystem.js'; -import LocalizationService from '../../../src/engine/localization/LocalizationService.js'; +import { compressJson, decompressJson } from '../../../www/src/engine/persistence/CompressionService.js'; +import ReplaySystem from '../../../www/src/engine/replay/ReplaySystem.js'; +import AchievementSystem from '../../../www/src/engine/world/AchievementSystem.js'; +import LocalizationService from '../../../www/src/engine/localization/LocalizationService.js'; export function run() { const compressed = compressJson({ hp: 3, coins: 12 }); diff --git a/dev/tests/final/FullscreenService.test.mjs b/dev/tests/final/FullscreenService.test.mjs index 8fbbb678e..6a1ad68a4 100644 --- a/dev/tests/final/FullscreenService.test.mjs +++ b/dev/tests/final/FullscreenService.test.mjs @@ -5,7 +5,7 @@ David Quesenberry FullscreenService.test.mjs */ import assert from 'node:assert/strict'; -import FullscreenService from '../../../src/engine/runtime/FullscreenService.js'; +import FullscreenService from '../../../www/src/engine/runtime/FullscreenService.js'; export async function run() { let fullscreenElement = null; diff --git a/dev/tests/final/MultiplayerNetworkingStack.test.mjs b/dev/tests/final/MultiplayerNetworkingStack.test.mjs index a19f20284..c7a7ab622 100644 --- a/dev/tests/final/MultiplayerNetworkingStack.test.mjs +++ b/dev/tests/final/MultiplayerNetworkingStack.test.mjs @@ -5,35 +5,35 @@ David Quesenberry MultiplayerNetworkingStack.test.mjs */ import assert from 'node:assert/strict'; -import AuthoritativeInputIngestionContract, { INPUT_INGESTION_REJECTION_CODES } from '../../../src/engine/network/server/AuthoritativeInputIngestionContract.js'; +import AuthoritativeInputIngestionContract, { INPUT_INGESTION_REJECTION_CODES } from '../../../www/src/engine/network/server/AuthoritativeInputIngestionContract.js'; import AuthoritativeServerRuntime, { SERVER_RUNTIME_INGEST_REJECTION_CODES, SERVER_RUNTIME_PHASES -} from '../../../src/engine/network/server/AuthoritativeServerRuntime.js'; -import ClientReplicationApplicationLayer from '../../../src/engine/network/client/ClientReplicationApplicationLayer.js'; -import ClientReconciliationStrategy, { REPLICATION_IGNORE_REASONS } from '../../../src/engine/network/client/ClientReconciliationStrategy.js'; -import ChatPresenceLayer from '../../../src/engine/network/session/ChatPresenceLayer.js'; -import HandshakeSimulator, { getHandshakeContract } from '../../../src/engine/network/session/HandshakeSimulator.js'; -import HostServerBootstrap from '../../../src/engine/network/bootstrap/HostServerBootstrap.js'; -import InterestManager from '../../../src/engine/network/server/InterestManager.js'; -import LoopbackTransport from '../../../src/engine/network/transport/LoopbackTransport.js'; -import NetworkConditionSimulator from '../../../src/engine/network/transport/NetworkConditionSimulator.js'; -import NetworkingLayer from '../../../src/engine/network/bootstrap/NetworkingLayer.js'; -import PredictionReconciler from '../../../src/engine/network/client/PredictionReconciler.js'; +} from '../../../www/src/engine/network/server/AuthoritativeServerRuntime.js'; +import ClientReplicationApplicationLayer from '../../../www/src/engine/network/client/ClientReplicationApplicationLayer.js'; +import ClientReconciliationStrategy, { REPLICATION_IGNORE_REASONS } from '../../../www/src/engine/network/client/ClientReconciliationStrategy.js'; +import ChatPresenceLayer from '../../../www/src/engine/network/session/ChatPresenceLayer.js'; +import HandshakeSimulator, { getHandshakeContract } from '../../../www/src/engine/network/session/HandshakeSimulator.js'; +import HostServerBootstrap from '../../../www/src/engine/network/bootstrap/HostServerBootstrap.js'; +import InterestManager from '../../../www/src/engine/network/server/InterestManager.js'; +import LoopbackTransport from '../../../www/src/engine/network/transport/LoopbackTransport.js'; +import NetworkConditionSimulator from '../../../www/src/engine/network/transport/NetworkConditionSimulator.js'; +import NetworkingLayer from '../../../www/src/engine/network/bootstrap/NetworkingLayer.js'; +import PredictionReconciler from '../../../www/src/engine/network/client/PredictionReconciler.js'; import ReplicationMessageContract, { REPLICATION_MESSAGE_REJECTION_CODES, REPLICATION_SNAPSHOT_TYPES -} from '../../../src/engine/network/replication/ReplicationMessageContract.js'; -import RemoteInterpolationBuffer from '../../../src/engine/network/client/RemoteInterpolationBuffer.js'; -import RollbackDiagnostics from '../../../src/engine/network/server/RollbackDiagnostics.js'; +} from '../../../www/src/engine/network/replication/ReplicationMessageContract.js'; +import RemoteInterpolationBuffer from '../../../www/src/engine/network/client/RemoteInterpolationBuffer.js'; +import RollbackDiagnostics from '../../../www/src/engine/network/server/RollbackDiagnostics.js'; import { SESSION_STATES, createSessionLifecycle, getSessionLifecycleContract -} from '../../../src/engine/network/session/SessionLifecycleContract.js'; -import Serializer from '../../../src/engine/network/transport/Serializer.js'; -import StateReplication from '../../../src/engine/network/replication/StateReplication.js'; -import { getTransportContract } from '../../../src/engine/network/transport/TransportContract.js'; +} from '../../../www/src/engine/network/session/SessionLifecycleContract.js'; +import Serializer from '../../../www/src/engine/network/transport/Serializer.js'; +import StateReplication from '../../../www/src/engine/network/replication/StateReplication.js'; +import { getTransportContract } from '../../../www/src/engine/network/transport/TransportContract.js'; export async function run() { const serializer = new Serializer({ version: 2 }); diff --git a/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs b/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs index 7f30b7fb7..7dbcf188c 100644 --- a/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs +++ b/dev/tests/final/NetworkDebugAndServerDashboardCloseout.test.mjs @@ -5,15 +5,15 @@ David Quesenberry NetworkDebugAndServerDashboardCloseout.test.mjs */ import assert from "node:assert/strict"; -import { createLatencyDiagnosticsModel } from '../../../src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js'; -import { createReplicationDiagnosticsModel } from '../../../src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js'; -import { createLatencyRttPanel, createReplicationStatePanel, createNetworkObservabilityPanels } from '../../../src/engine/debug/network/panels/networkObservabilityPanels.js'; -import { createNetworkHelpCommand, createNetworkReplicationCommand, createNetworkStatusCommand, createNetworkCommandPack } from '../../../src/engine/debug/network/commands/networkDebugCommandPackBridge.js'; -import { createReadOnlyNetworkProviders } from '../../../src/engine/debug/network/providers/networkDebugProviderRegistry.js'; -import { createServerDashboardRegistry } from '../../../src/engine/debug/network/dashboard/serverDashboardRegistry.js'; -import { createServerDashboardHost } from '../../../src/engine/debug/network/dashboard/serverDashboardHost.js'; -import { createServerDashboardCommandPack } from '../../../src/engine/debug/network/dashboard/registerDashboardCommands.js'; -import { createNetworkPromotionRecommendation } from '../../../src/engine/debug/network/diagnostics/networkPromotionRecommendation.js'; +import { createLatencyDiagnosticsModel } from '../../../www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js'; +import { createReplicationDiagnosticsModel } from '../../../www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js'; +import { createLatencyRttPanel, createReplicationStatePanel, createNetworkObservabilityPanels } from '../../../www/src/engine/debug/network/panels/networkObservabilityPanels.js'; +import { createNetworkHelpCommand, createNetworkReplicationCommand, createNetworkStatusCommand, createNetworkCommandPack } from '../../../www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js'; +import { createReadOnlyNetworkProviders } from '../../../www/src/engine/debug/network/providers/networkDebugProviderRegistry.js'; +import { createServerDashboardRegistry } from '../../../www/src/engine/debug/network/dashboard/serverDashboardRegistry.js'; +import { createServerDashboardHost } from '../../../www/src/engine/debug/network/dashboard/serverDashboardHost.js'; +import { createServerDashboardCommandPack } from '../../../www/src/engine/debug/network/dashboard/registerDashboardCommands.js'; +import { createNetworkPromotionRecommendation } from '../../../www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js'; function createSampleSnapshot() { return { diff --git a/dev/tests/final/PlatformUxSystems.test.mjs b/dev/tests/final/PlatformUxSystems.test.mjs index ad0acf088..d78fb8c78 100644 --- a/dev/tests/final/PlatformUxSystems.test.mjs +++ b/dev/tests/final/PlatformUxSystems.test.mjs @@ -5,21 +5,21 @@ David Quesenberry PlatformUxSystems.test.mjs */ import assert from 'node:assert/strict'; -import AudioService from '../../../src/engine/audio/AudioService.js'; -import MidiPlayer from '../../../src/engine/audio/MidiPlayer.js'; -import FrequencyPlayer from '../../../src/engine/audio/FrequencyPlayer.js'; -import Synthesizer from '../../../src/engine/audio/Synthesizer.js'; -import MediaTrackService from '../../../src/engine/audio/MediaTrackService.js'; -import PlaylistManager from '../../../src/engine/audio/PlaylistManager.js'; -import ParticleSystem from '../../../src/engine/fx/ParticleSystem.js'; -import UIFramework from '../../../src/engine/ui/UIFramework.js'; -import InputContextService from '../../../src/engine/input/InputContextService.js'; -import SceneTransitionController from '../../../src/engine/scene/SceneTransitionController.js'; -import SaveSlotManager from '../../../src/engine/persistence/SaveSlotManager.js'; -import StorageService from '../../../src/engine/persistence/StorageService.js'; -import CookieStorageService from '../../../src/engine/persistence/CookieStorageService.js'; -import Logger from '../../../src/engine/logging/Logger.js'; -import ErrorBoundary from '../../../src/engine/logging/ErrorBoundary.js'; +import AudioService from '../../../www/src/engine/audio/AudioService.js'; +import MidiPlayer from '../../../www/src/engine/audio/MidiPlayer.js'; +import FrequencyPlayer from '../../../www/src/engine/audio/FrequencyPlayer.js'; +import Synthesizer from '../../../www/src/engine/audio/Synthesizer.js'; +import MediaTrackService from '../../../www/src/engine/audio/MediaTrackService.js'; +import PlaylistManager from '../../../www/src/engine/audio/PlaylistManager.js'; +import ParticleSystem from '../../../www/src/engine/fx/ParticleSystem.js'; +import UIFramework from '../../../www/src/engine/ui/UIFramework.js'; +import InputContextService from '../../../www/src/engine/input/InputContextService.js'; +import SceneTransitionController from '../../../www/src/engine/scene/SceneTransitionController.js'; +import SaveSlotManager from '../../../www/src/engine/persistence/SaveSlotManager.js'; +import StorageService from '../../../www/src/engine/persistence/StorageService.js'; +import CookieStorageService from '../../../www/src/engine/persistence/CookieStorageService.js'; +import Logger from '../../../www/src/engine/logging/Logger.js'; +import ErrorBoundary from '../../../www/src/engine/logging/ErrorBoundary.js'; class MemoryStorage { constructor() { diff --git a/dev/tests/final/PrecisionCollisionSystems.test.mjs b/dev/tests/final/PrecisionCollisionSystems.test.mjs index f54d4420c..6696bf874 100644 --- a/dev/tests/final/PrecisionCollisionSystems.test.mjs +++ b/dev/tests/final/PrecisionCollisionSystems.test.mjs @@ -5,11 +5,11 @@ David Quesenberry PrecisionCollisionSystems.test.mjs */ import assert from 'node:assert/strict'; -import { transformPoints } from '../../../src/engine/rendering/VectorDrawing.js'; -import { arePolygonsColliding, isPointInPolygon, getPolygonBounds } from '../../../src/engine/collision/polygon.js'; -import { createRasterMask, areMasksColliding } from '../../../src/engine/collision/raster.js'; -import { evaluateObjectVectorCollisionPair, getObjectVectorCollisionOutlinePoints, transformCollisionPoints } from '../../../src/engine/collision/objectVector.js'; -import { runHybridCollision } from '../../../src/engine/collision/hybrid.js'; +import { transformPoints } from '../../../www/src/engine/rendering/VectorDrawing.js'; +import { arePolygonsColliding, isPointInPolygon, getPolygonBounds } from '../../../www/src/engine/collision/polygon.js'; +import { createRasterMask, areMasksColliding } from '../../../www/src/engine/collision/raster.js'; +import { evaluateObjectVectorCollisionPair, getObjectVectorCollisionOutlinePoints, transformCollisionPoints } from '../../../www/src/engine/collision/objectVector.js'; +import { runHybridCollision } from '../../../www/src/engine/collision/hybrid.js'; export function run() { const transformed = transformPoints( @@ -130,7 +130,7 @@ export function run() { }); assert.equal(objectVectorHit.mode, 'vector'); assert.equal(objectVectorHit.collided, true); - assert.equal(objectVectorHit.enginePath, 'src/engine/collision/objectVector.js'); + assert.equal(objectVectorHit.enginePath, 'www/src/engine/collision/objectVector.js'); assert.equal(getObjectVectorCollisionOutlinePoints(objectA).length, polyA.length); const collisionTransform = transformCollisionPoints([{ x: 10, y: 0 }], { x: 4, y: 5, rotation: Math.PI / 2 }); assert.equal(Math.abs(collisionTransform[0].x - 4) < 1e-9, true); diff --git a/dev/tests/final/ReleaseReadinessSystems.test.mjs b/dev/tests/final/ReleaseReadinessSystems.test.mjs index 0b6d03b35..20ddbb21c 100644 --- a/dev/tests/final/ReleaseReadinessSystems.test.mjs +++ b/dev/tests/final/ReleaseReadinessSystems.test.mjs @@ -5,14 +5,14 @@ David Quesenberry ReleaseReadinessSystems.test.mjs */ import assert from 'node:assert/strict'; -import AccessibilityOptions from '../../../src/engine/release/AccessibilityOptions.js'; -import CrashRecoveryManager from '../../../src/engine/release/CrashRecoveryManager.js'; -import DeploymentProfiles from '../../../src/engine/release/DeploymentProfiles.js'; -import DistributionPackager from '../../../src/engine/release/DistributionPackager.js'; -import ReleaseValidationChecklist from '../../../src/engine/release/ReleaseValidationChecklist.js'; -import SettingsSystem from '../../../src/engine/release/SettingsSystem.js'; -import Logger from '../../../src/engine/logging/Logger.js'; -import StorageService from '../../../src/engine/persistence/StorageService.js'; +import AccessibilityOptions from '../../../www/src/engine/release/AccessibilityOptions.js'; +import CrashRecoveryManager from '../../../www/src/engine/release/CrashRecoveryManager.js'; +import DeploymentProfiles from '../../../www/src/engine/release/DeploymentProfiles.js'; +import DistributionPackager from '../../../www/src/engine/release/DistributionPackager.js'; +import ReleaseValidationChecklist from '../../../www/src/engine/release/ReleaseValidationChecklist.js'; +import SettingsSystem from '../../../www/src/engine/release/SettingsSystem.js'; +import Logger from '../../../www/src/engine/logging/Logger.js'; +import StorageService from '../../../www/src/engine/persistence/StorageService.js'; class MemoryStorage { constructor() { diff --git a/dev/tests/fx/ParticleSystem.test.mjs b/dev/tests/fx/ParticleSystem.test.mjs index cb59337ef..1df5846cc 100644 --- a/dev/tests/fx/ParticleSystem.test.mjs +++ b/dev/tests/fx/ParticleSystem.test.mjs @@ -5,7 +5,7 @@ ParticleSystem.test.mjs */ import assert from 'node:assert/strict'; -import ParticleSystem from '../../../src/engine/fx/ParticleSystem.js'; +import ParticleSystem from '../../../www/src/engine/fx/ParticleSystem.js'; function createSequenceRandom(values) { let index = 0; diff --git a/dev/tests/games/AsteroidsHardening.test.mjs b/dev/tests/games/AsteroidsHardening.test.mjs index 6ee9a4714..6a01df9ff 100644 --- a/dev/tests/games/AsteroidsHardening.test.mjs +++ b/dev/tests/games/AsteroidsHardening.test.mjs @@ -5,7 +5,7 @@ David Quesenberry AsteroidsHardening.test.mjs */ import assert from 'node:assert/strict'; -import { wrap } from '../../../src/shared/math/scalars.js'; +import { wrap } from '../../../www/src/shared/math/scalars.js'; import AsteroidsGameScene from '../../../games/Asteroids/game/AsteroidsGameScene.js'; import AsteroidsSession from '../../../games/Asteroids/game/AsteroidsSession.js'; import AsteroidsWorld from '../../../games/Asteroids/game/AsteroidsWorld.js'; diff --git a/dev/tests/games/AsteroidsPlatformDemo.test.mjs b/dev/tests/games/AsteroidsPlatformDemo.test.mjs index 0058b9092..5f42d1b19 100644 --- a/dev/tests/games/AsteroidsPlatformDemo.test.mjs +++ b/dev/tests/games/AsteroidsPlatformDemo.test.mjs @@ -1,7 +1,7 @@ import assert from 'node:assert/strict'; import fs from 'node:fs'; import { fileURLToPath } from 'node:url'; -import ObjectVectorRuntimeAssetService from '../../../src/engine/rendering/ObjectVectorRuntimeAssetService.js'; +import ObjectVectorRuntimeAssetService from '../../../www/src/engine/rendering/ObjectVectorRuntimeAssetService.js'; import { createAsteroidsTestGeometryProfiles, loadAsteroidsManifest, diff --git a/dev/tests/games/AsteroidsValidation.test.mjs b/dev/tests/games/AsteroidsValidation.test.mjs index ad2f2c9b9..63fb358d8 100644 --- a/dev/tests/games/AsteroidsValidation.test.mjs +++ b/dev/tests/games/AsteroidsValidation.test.mjs @@ -5,7 +5,7 @@ AsteroidsValidation.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; import AsteroidsGameScene from '../../../games/Asteroids/game/AsteroidsGameScene.js'; import AsteroidsSession from '../../../games/Asteroids/game/AsteroidsSession.js'; import AsteroidsWorld from '../../../games/Asteroids/game/AsteroidsWorld.js'; diff --git a/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs b/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs index af861e628..ad8ff90d6 100644 --- a/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs +++ b/dev/tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs @@ -3,12 +3,12 @@ import { createHotReloadCoordinator, createWatcherBridge, summarizeRuntimeSceneHotReload -} from "../../../src/shared/toolbox/runtimeSceneLoaderHotReload.js"; +} from "../../../www/src/shared/toolbox/runtimeSceneLoaderHotReload.js"; import { ASSET_DOCUMENT_TYPE, COMPOSITION_DOCUMENT_TYPE, RENDER_CONTRACT_VERSION -} from "../../../src/shared/toolbox/renderPipelineContract.js"; +} from "../../../www/src/shared/toolbox/renderPipelineContract.js"; function createAssetDocument(tool, docId, kind, path, zIndex = 0, itemOrder = [0]) { return { diff --git a/dev/tests/input/GamepadHapticsService.test.mjs b/dev/tests/input/GamepadHapticsService.test.mjs index 1f3ffaa34..228d8f699 100644 --- a/dev/tests/input/GamepadHapticsService.test.mjs +++ b/dev/tests/input/GamepadHapticsService.test.mjs @@ -5,7 +5,7 @@ David Quesenberry GamepadHapticsService.test.mjs */ -import GamepadHapticsService from '../../../src/engine/input/GamepadHapticsService.js'; +import GamepadHapticsService from '../../../www/src/engine/input/GamepadHapticsService.js'; function assert(condition, message) { if (!condition) { diff --git a/dev/tests/input/GamepadInputAdapter.test.mjs b/dev/tests/input/GamepadInputAdapter.test.mjs index e3a4e45db..16b0b7cf0 100644 --- a/dev/tests/input/GamepadInputAdapter.test.mjs +++ b/dev/tests/input/GamepadInputAdapter.test.mjs @@ -5,7 +5,7 @@ David Quesenberry GamepadInputAdapter.test.mjs */ import assert from 'node:assert/strict'; -import GamepadInputAdapter from '../../../src/engine/input/GamepadInputAdapter.js'; +import GamepadInputAdapter from '../../../www/src/engine/input/GamepadInputAdapter.js'; function createInputService({ axes = [0, 0, 0, 0], diff --git a/dev/tests/input/GamepadState.test.mjs b/dev/tests/input/GamepadState.test.mjs index fbd3f8773..0eb05828f 100644 --- a/dev/tests/input/GamepadState.test.mjs +++ b/dev/tests/input/GamepadState.test.mjs @@ -5,7 +5,7 @@ David Quesenberry GamepadState.test.mjs */ import assert from 'node:assert/strict'; -import GamepadState from '../../../src/engine/input/GamepadState.js'; +import GamepadState from '../../../www/src/engine/input/GamepadState.js'; function testStoresMultipleConcurrentGamepads() { const gamepads = new GamepadState(); diff --git a/dev/tests/input/InputMap.test.mjs b/dev/tests/input/InputMap.test.mjs index ecfc4ec07..dce7af42b 100644 --- a/dev/tests/input/InputMap.test.mjs +++ b/dev/tests/input/InputMap.test.mjs @@ -4,7 +4,7 @@ David Quesenberry 03/21/2026 InputMap.test.mjs */ -import InputMap from '../../../src/engine/input/InputMap.js'; +import InputMap from '../../../www/src/engine/input/InputMap.js'; function assert(condition, message) { if (!condition) { diff --git a/dev/tests/input/InputService.test.mjs b/dev/tests/input/InputService.test.mjs index 6ad459693..b88942814 100644 --- a/dev/tests/input/InputService.test.mjs +++ b/dev/tests/input/InputService.test.mjs @@ -4,8 +4,8 @@ David Quesenberry 03/21/2026 InputService.test.mjs */ -import InputService from '../../../src/engine/input/InputService.js'; -import InputMap from '../../../src/engine/input/InputMap.js'; +import InputService from '../../../www/src/engine/input/InputService.js'; +import InputMap from '../../../www/src/engine/input/InputMap.js'; function assert(condition, message) { if (!condition) { diff --git a/dev/tests/input/KeyboardState.test.mjs b/dev/tests/input/KeyboardState.test.mjs index 7f141c084..0febee36b 100644 --- a/dev/tests/input/KeyboardState.test.mjs +++ b/dev/tests/input/KeyboardState.test.mjs @@ -4,7 +4,7 @@ David Quesenberry 03/21/2026 KeyboardState.test.mjs */ -import KeyboardState from '../../../src/engine/input/KeyboardState.js'; +import KeyboardState from '../../../www/src/engine/input/KeyboardState.js'; function assert(condition, message) { if (!condition) { diff --git a/dev/tests/input/MouseState.test.mjs b/dev/tests/input/MouseState.test.mjs index 9567d3c1e..a71b2be73 100644 --- a/dev/tests/input/MouseState.test.mjs +++ b/dev/tests/input/MouseState.test.mjs @@ -4,7 +4,7 @@ David Quesenberry 03/21/2026 MouseState.test.mjs */ -import MouseState from '../../../src/engine/input/MouseState.js'; +import MouseState from '../../../www/src/engine/input/MouseState.js'; function assert(condition, message) { if (!condition) { diff --git a/dev/tests/input/NormalizedInputRegistry.test.mjs b/dev/tests/input/NormalizedInputRegistry.test.mjs index 7d4f306ae..bf97e8f05 100644 --- a/dev/tests/input/NormalizedInputRegistry.test.mjs +++ b/dev/tests/input/NormalizedInputRegistry.test.mjs @@ -16,7 +16,7 @@ import { resolveNormalizedInputProfile, resolvePhysicalAxisNormalizedInput, systemDefaultProfileForDevice, -} from '../../../src/engine/input/NormalizedInputRegistry.js'; +} from '../../../www/src/engine/input/NormalizedInputRegistry.js'; function testRegistryContainsPlayableNormalizedInputs() { assert.deepEqual(normalizedInputOptions().map((option) => option.value), [ diff --git a/dev/tests/persistence/StorageService.test.mjs b/dev/tests/persistence/StorageService.test.mjs index 099960e4f..ffa3b365f 100644 --- a/dev/tests/persistence/StorageService.test.mjs +++ b/dev/tests/persistence/StorageService.test.mjs @@ -5,8 +5,8 @@ StorageService.test.mjs */ import assert from 'node:assert/strict'; -import StorageService from '../../../src/engine/persistence/StorageService.js'; -import SettingsSystem from '../../../src/engine/release/SettingsSystem.js'; +import StorageService from '../../../www/src/engine/persistence/StorageService.js'; +import SettingsSystem from '../../../www/src/engine/release/SettingsSystem.js'; function withBlockedLocalStorage(run) { const originalDescriptor = Object.getOwnPropertyDescriptor(globalThis, 'localStorage'); diff --git a/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs b/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs index 363be32b3..51a246bb7 100644 --- a/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs +++ b/dev/tests/playwright/tools/AdminNotesLocalViewer.spec.mjs @@ -168,7 +168,7 @@ test("Owner Notes route reads the shared admin-notes source", async ({ page }) = ]); await page.getByRole("link", { name: "sample.txt" }).click(); - await expect(page).toHaveURL(/\/owner\/notes\.html\?file=legacy-docs-build%2Fadmin-notes%2Fsample\.txt$/); + await expect(page).toHaveURL(/\/owner\/notes\.html\?file=dev%2Farchive%2Flegacy-docs-build%2Fadmin-notes%2Fsample\.txt$/); await expect(page.locator("[data-admin-notes-title]")).toHaveText("sample.txt"); await expect(page.locator("[data-admin-notes-content]")).toContainText("Capture admin-only project ideas here."); await expect(page.locator("nav[aria-label='Admin tool pages'] a", { hasText: "Notes" })).toHaveCount(0); @@ -203,7 +203,7 @@ test("Admin Notes viewer shows a visible missing-directory diagnostic", async ({ expect(failures.consoleErrors).toHaveLength(1); expect(failures.consoleErrors[0]).toContain("404"); expect(failures.failedRequests).toEqual([ - `404 ${failures.server.baseUrl}/api/dev/admin-notes/directory?folder=legacy-docs-build%2Fadmin-notes`, + `404 ${failures.server.baseUrl}/api/dev/admin-notes/directory?folder=dev%2Farchive%2Flegacy-docs-build%2Fadmin-notes`, ]); } finally { await closeWithCoverage(page, failures); diff --git a/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs b/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs index 514084095..d23e8c161 100644 --- a/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs +++ b/dev/tests/playwright/tools/InputMappingV2Tool.spec.mjs @@ -1477,14 +1477,14 @@ test("Controls split keeps shared engine input contracts in the account surface" ]); return { accountControls, controls }; }); - expect(sources.controls).toContain("../../src/engine/input/NormalizedInputRegistry.js"); - expect(sources.controls).not.toContain("../../src/engine/input/InputService.js"); + expect(sources.controls).toContain("../../www/src/engine/input/NormalizedInputRegistry.js"); + expect(sources.controls).not.toContain("../../www/src/engine/input/InputService.js"); expect(sources.controls).not.toContain("DEVICE_POLL_INTERVAL_MS"); expect(sources.controls).not.toContain("GAME_CONTROL_PRESETS"); expect(sources.controls).not.toContain("applyGameControlPreset"); - expect(sources.accountControls).toContain("../src/engine/input/InputService.js"); - expect(sources.accountControls).toContain("../src/engine/input/NormalizedInputRegistry.js"); - expect(sources.accountControls).toContain("../src/engine/input/GamepadInputClassifier.js"); + expect(sources.accountControls).toContain("../www/src/engine/input/InputService.js"); + expect(sources.accountControls).toContain("../www/src/engine/input/NormalizedInputRegistry.js"); + expect(sources.accountControls).toContain("../www/src/engine/input/GamepadInputClassifier.js"); expect(sources.accountControls).toContain("DEVICE_POLL_INTERVAL_MS"); for (const source of [sources.controls, sources.accountControls]) { expect(source).not.toMatch(/addEventListener\(\s*["']keydown/); diff --git a/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs b/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs index 648cfa758..53b2b3477 100644 --- a/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs +++ b/dev/tests/playwright/tools/ToolboxRoutePages.spec.mjs @@ -564,10 +564,10 @@ test("toolbox index shows wireframe and beta tools while Planned remains opt-in" await expect(page.locator("[data-toolbox-tool-name-link='Game Hub']")).toHaveAttribute("href", "/toolbox/game-hub/index.html"); await expect(page.locator("[data-toolbox-tool-name-link='Text To Speech']")).toHaveAttribute("href", "/toolbox/text-to-speech/index.html"); await expect(page.locator("[data-toolbox-tool-name-link='Publish']")).toHaveCount(0); - await expect(page.locator("[data-tools-count]")).toHaveText("Tool Count: 15/43"); + await expect(page.locator("[data-tools-count]")).toHaveText("Tool Count: 16/43"); await page.locator("[data-toolbox-status-filter='planned']").click(); await expect(page.locator("[data-toolbox-status-filter='planned']")).toHaveAttribute("aria-pressed", "true"); - await expect(page.locator("[data-toolbox-tool-card][data-toolbox-release-channel='planned']")).toHaveCount(27); + await expect(page.locator("[data-toolbox-tool-card][data-toolbox-release-channel='planned']")).toHaveCount(26); await expect(page.locator("[data-toolbox-tool-card]")).toHaveCount(42); await expect(page.locator("[data-tools-count]")).toHaveText("Tool Count: 42/43"); await expect(page.locator("[data-toolbox-tool-name-link='AI Command Center']")).toBeVisible(); @@ -641,8 +641,8 @@ test("toolbox status kickers, filters, card order, and voting controls work from await page.goto(`${server.baseUrl}/toolbox/index.html`, { waitUntil: "networkidle" }); await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([ - "Planned (27)", - "Wireframe (4)", + "Planned (26)", + "Wireframe (5)", "Beta (8)", "Complete (3)", "Deprecated (1)", @@ -658,8 +658,8 @@ test("toolbox status kickers, filters, card order, and voting controls work from await page.locator("[data-tools-view='build-path']").click(); await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([ - "Planned (27)", - "Wireframe (4)", + "Planned (26)", + "Wireframe (5)", "Beta (8)", "Complete (3)", "Deprecated (1)", @@ -1378,8 +1378,8 @@ test("toolbox Build Path status filters support multi-select registry-matched to await expect(page.locator("[data-tools-sort='grouped']")).not.toHaveClass(/primary/); await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([ - "Planned (27)", - "Wireframe (4)", + "Planned (26)", + "Wireframe (5)", "Beta (8)", "Complete (3)", "Deprecated (1)", @@ -1391,14 +1391,14 @@ test("toolbox Build Path status filters support multi-select registry-matched to await page.locator("[data-toolbox-status-filter='planned']").click(); await expectActiveFilters(["planned", "complete"]); - await expectBuildPathChannels(["planned", "complete"], 30); + await expectBuildPathChannels(["planned", "complete"], 29); await expect(page.locator("[data-build-path-tool='AI Command Center']")).toBeVisible(); await expectBuildPathOrder("AI Command Center", registryById.get("ai-assistant").order); await expectBuildPathOrder("Colors", registryById.get("colors").order); await page.locator("[data-toolbox-status-filter='complete']").click(); await expectActiveFilters(["planned"]); - await expectBuildPathChannels(["planned"], 27); + await expectBuildPathChannels(["planned"], 26); await expect(page.locator("[data-build-path-tool='Colors']")).toHaveCount(0); await expect(page.locator("[data-build-path-tool='AI Command Center']")).toBeVisible(); diff --git a/dev/tests/production/ProductionReadiness.test.mjs b/dev/tests/production/ProductionReadiness.test.mjs index baef7a740..da954ed44 100644 --- a/dev/tests/production/ProductionReadiness.test.mjs +++ b/dev/tests/production/ProductionReadiness.test.mjs @@ -5,11 +5,11 @@ David Quesenberry ProductionReadiness.test.mjs */ import assert from 'node:assert/strict'; -import ActionInputMap from '../../../src/engine/input/ActionInputMap.js'; -import ActionInputService from '../../../src/engine/input/ActionInputService.js'; -import ResolutionScaler from '../../../src/engine/rendering/ResolutionScaler.js'; -import AssetOptimizer from '../../../src/engine/assets/AssetOptimizer.js'; -import ObjectPool from '../../../src/engine/memory/ObjectPool.js'; +import ActionInputMap from '../../../www/src/engine/input/ActionInputMap.js'; +import ActionInputService from '../../../www/src/engine/input/ActionInputService.js'; +import ResolutionScaler from '../../../www/src/engine/rendering/ResolutionScaler.js'; +import AssetOptimizer from '../../../www/src/engine/assets/AssetOptimizer.js'; +import ObjectPool from '../../../www/src/engine/memory/ObjectPool.js'; export async function run() { const map = new ActionInputMap({ jump: ['Space'] }); diff --git a/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs b/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs index 3a7cbedcd..6efc9354c 100644 --- a/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs +++ b/dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs @@ -14,8 +14,8 @@ test("canonical repository structure guardrail accepts canonical paths and appro "assets/theme-v2/js/admin-system-health.js", "assets/theme-v2/css/theme.css", "assets/toolbox/assets/js/assets-upload-worker.js", - "src/engine/rendering/Renderer.js", - "src/engine/ui/baseLayout.css", + "www/src/engine/rendering/Renderer.js", + "www/src/engine/ui/baseLayout.css", "dev/tests/regression/CanonicalRepositoryStructureGuardrail.test.mjs", "dev/tests/runtime/V2SessionValidation.test.mjs", ]); diff --git a/dev/tests/render/Renderer.test.mjs b/dev/tests/render/Renderer.test.mjs index 688d23850..c8c0b8e54 100644 --- a/dev/tests/render/Renderer.test.mjs +++ b/dev/tests/render/Renderer.test.mjs @@ -5,7 +5,7 @@ David Quesenberry Renderer.test.mjs */ import assert from 'node:assert/strict'; -import CanvasRenderer from '../../../src/engine/rendering/CanvasRenderer.js'; +import CanvasRenderer from '../../../www/src/engine/rendering/CanvasRenderer.js'; function createFakeContext() { const calls = []; diff --git a/dev/tests/replay/ReplaySystem.test.mjs b/dev/tests/replay/ReplaySystem.test.mjs index f00c98f73..da3deebfe 100644 --- a/dev/tests/replay/ReplaySystem.test.mjs +++ b/dev/tests/replay/ReplaySystem.test.mjs @@ -5,7 +5,7 @@ ReplaySystem.test.mjs */ import assert from 'node:assert/strict'; -import ReplaySystem from '../../../src/engine/replay/ReplaySystem.js'; +import ReplaySystem from '../../../www/src/engine/replay/ReplaySystem.js'; export function run() { const replay = new ReplaySystem(); diff --git a/dev/tests/replay/ReplayTimeline.test.mjs b/dev/tests/replay/ReplayTimeline.test.mjs index a81253f40..43629fee2 100644 --- a/dev/tests/replay/ReplayTimeline.test.mjs +++ b/dev/tests/replay/ReplayTimeline.test.mjs @@ -5,7 +5,7 @@ David Quesenberry ReplayTimeline.test.mjs */ import assert from 'node:assert/strict'; -import { ReplayTimeline } from '../../../src/engine/replay/ReplayTimeline.js'; +import { ReplayTimeline } from '../../../www/src/engine/replay/ReplayTimeline.js'; export function run() { const timeline = new ReplayTimeline({ maxFrames: 3 }); diff --git a/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs b/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs index 066ca8ae7..fffc278c6 100644 --- a/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs +++ b/dev/tests/runtime/Phase19RuntimeLifecycleValidation.test.mjs @@ -5,8 +5,8 @@ David Quesenberry Phase19RuntimeLifecycleValidation.test.mjs */ import assert from 'node:assert/strict'; -import Engine from '../../../src/engine/core/Engine.js'; -import Logger from '../../../src/engine/logging/Logger.js'; +import Engine from '../../../www/src/engine/core/Engine.js'; +import Logger from '../../../www/src/engine/logging/Logger.js'; function createCanvas() { const canvas = { diff --git a/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs b/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs index d6dacae08..0e0b4e57e 100644 --- a/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs +++ b/dev/tests/runtime/RuntimeMonitoringHooks.test.mjs @@ -5,8 +5,8 @@ David Quesenberry RuntimeMonitoringHooks.test.mjs */ import assert from 'node:assert/strict'; -import { createRuntimeMonitoringHooks } from '../../../src/engine/runtime/RuntimeMonitoringHooks.js'; -import Logger from '../../../src/engine/logging/Logger.js'; +import { createRuntimeMonitoringHooks } from '../../../www/src/engine/runtime/RuntimeMonitoringHooks.js'; +import Logger from '../../../www/src/engine/logging/Logger.js'; function createWindowStub() { const listeners = new Map(); diff --git a/dev/tests/scenes/AttractModeController.test.mjs b/dev/tests/scenes/AttractModeController.test.mjs index 532193eea..93efe8b18 100644 --- a/dev/tests/scenes/AttractModeController.test.mjs +++ b/dev/tests/scenes/AttractModeController.test.mjs @@ -5,8 +5,8 @@ David Quesenberry AttractModeController.test.mjs */ import assert from 'node:assert/strict'; -import AttractModeController from '../../../src/engine/scene/AttractModeController.js'; -import { DEFAULT_ATTRACT_CONFIG } from '../../../src/engine/scene/AttractModeController.js'; +import AttractModeController from '../../../www/src/engine/scene/AttractModeController.js'; +import { DEFAULT_ATTRACT_CONFIG } from '../../../www/src/engine/scene/AttractModeController.js'; function testIdleEnterAndPhaseCycle() { const phases = []; diff --git a/dev/tests/scenes/SceneManager.test.mjs b/dev/tests/scenes/SceneManager.test.mjs index 03ddbb6e8..4f077056c 100644 --- a/dev/tests/scenes/SceneManager.test.mjs +++ b/dev/tests/scenes/SceneManager.test.mjs @@ -5,8 +5,8 @@ David Quesenberry SceneManager.test.mjs */ import assert from "node:assert/strict"; -import Scene from "../../../src/engine/scene/Scene.js"; -import SceneManager from "../../../src/engine/scene/SceneManager.js"; +import Scene from "../../../www/src/engine/scene/Scene.js"; +import SceneManager from "../../../www/src/engine/scene/SceneManager.js"; class TestScene extends Scene { constructor(name, log) { diff --git a/dev/tests/scenes/TransitionScene.test.mjs b/dev/tests/scenes/TransitionScene.test.mjs index 3ea141ae0..6ada9e6d5 100644 --- a/dev/tests/scenes/TransitionScene.test.mjs +++ b/dev/tests/scenes/TransitionScene.test.mjs @@ -5,8 +5,8 @@ TransitionScene.test.mjs */ import assert from 'node:assert/strict'; -import SceneTransition from '../../../src/engine/scene/SceneTransition.js'; -import TransitionScene from '../../../src/engine/scene/TransitionScene.js'; +import SceneTransition from '../../../www/src/engine/scene/SceneTransition.js'; +import TransitionScene from '../../../www/src/engine/scene/TransitionScene.js'; function createRenderer(log) { const renderer = { diff --git a/dev/tests/shared/ColorFoundation.test.mjs b/dev/tests/shared/ColorFoundation.test.mjs index 363a64475..012d27641 100644 --- a/dev/tests/shared/ColorFoundation.test.mjs +++ b/dev/tests/shared/ColorFoundation.test.mjs @@ -16,7 +16,7 @@ import { relativeLuminance, rgbToHex, rgbToHsl, -} from "../../../src/shared/color/color.js"; +} from "../../../www/src/shared/color/color.js"; export function run() { assert.equal(clamp01(2), 1); diff --git a/dev/tests/shared/GeometryFoundation.test.mjs b/dev/tests/shared/GeometryFoundation.test.mjs index 971bc3d48..dbfde3419 100644 --- a/dev/tests/shared/GeometryFoundation.test.mjs +++ b/dev/tests/shared/GeometryFoundation.test.mjs @@ -17,7 +17,7 @@ import { scaleVector, subtractVectors, vector2, -} from "../../../src/shared/geometry/geometry.js"; +} from "../../../www/src/shared/geometry/geometry.js"; export function run() { assert.equal(clamp(12, 0, 10), 10); diff --git a/dev/tests/shared/GetStateVariantClassification.test.mjs b/dev/tests/shared/GetStateVariantClassification.test.mjs index 47f5e3f92..f60397b93 100644 --- a/dev/tests/shared/GetStateVariantClassification.test.mjs +++ b/dev/tests/shared/GetStateVariantClassification.test.mjs @@ -13,7 +13,7 @@ import { classifyGetStateVariantLayer, extractGetStateVariantNames, bucketGetStateVariants, -} from "../../../src/shared/state/getStateVariantClassification.js"; +} from "../../../www/src/shared/state/getStateVariantClassification.js"; const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../.."); const TARGET_ROOTS = ["src", "games", "samples", "tools"]; diff --git a/dev/tests/shared/HashFoundation.test.mjs b/dev/tests/shared/HashFoundation.test.mjs index 37b18b939..28199ee45 100644 --- a/dev/tests/shared/HashFoundation.test.mjs +++ b/dev/tests/shared/HashFoundation.test.mjs @@ -12,7 +12,7 @@ import { hashToUnitInterval, hashValue32, toStableHashString, -} from "../../../src/shared/hash/hash.js"; +} from "../../../www/src/shared/hash/hash.js"; export function run() { assert.equal(hashString32("Game Foundry"), hashString32("Game Foundry")); diff --git a/dev/tests/shared/NoiseFoundation.test.mjs b/dev/tests/shared/NoiseFoundation.test.mjs index 3f0f6e07e..500408657 100644 --- a/dev/tests/shared/NoiseFoundation.test.mjs +++ b/dev/tests/shared/NoiseFoundation.test.mjs @@ -11,7 +11,7 @@ import { perlinNoise2D, simplexNoise2D, valueNoise2D, -} from "../../../src/shared/noise/noise.js"; +} from "../../../www/src/shared/noise/noise.js"; function assertInRange(value, min, max) { assert.equal(Number.isFinite(value), true); diff --git a/dev/tests/shared/Random.test.mjs b/dev/tests/shared/Random.test.mjs index 8f486a656..4c7a11128 100644 --- a/dev/tests/shared/Random.test.mjs +++ b/dev/tests/shared/Random.test.mjs @@ -5,7 +5,7 @@ David Quesenberry Random.test.mjs */ import assert from "node:assert/strict"; -import { Random } from "../../../src/shared/math/Random.js"; +import { Random } from "../../../www/src/shared/math/Random.js"; const UUID_V4_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/; diff --git a/dev/tests/shared/RandomHelpers.test.mjs b/dev/tests/shared/RandomHelpers.test.mjs index 52199708e..47633d612 100644 --- a/dev/tests/shared/RandomHelpers.test.mjs +++ b/dev/tests/shared/RandomHelpers.test.mjs @@ -12,7 +12,7 @@ import { pick, shuffle, weightedPick, -} from "../../../src/shared/math/randomHelpers.js"; +} from "../../../www/src/shared/math/randomHelpers.js"; function sequence(values) { let index = 0; diff --git a/dev/tests/shared/RandomSeed.test.mjs b/dev/tests/shared/RandomSeed.test.mjs index 12806552a..191d5faa8 100644 --- a/dev/tests/shared/RandomSeed.test.mjs +++ b/dev/tests/shared/RandomSeed.test.mjs @@ -5,7 +5,7 @@ David Quesenberry RandomSeed.test.mjs */ import assert from "node:assert/strict"; -import { RandomSeed } from "../../../src/shared/math/RandomSeed.js"; +import { RandomSeed } from "../../../www/src/shared/math/RandomSeed.js"; function takeSequence(generator, count) { return Array.from({ length: count }, () => generator.next()); diff --git a/dev/tests/shared/SharedFoundationCombinedPass.test.mjs b/dev/tests/shared/SharedFoundationCombinedPass.test.mjs index 3104f90f3..a08f5c4f1 100644 --- a/dev/tests/shared/SharedFoundationCombinedPass.test.mjs +++ b/dev/tests/shared/SharedFoundationCombinedPass.test.mjs @@ -9,34 +9,34 @@ import { ensureArray, asArray, asStringArray -} from "../../../src/shared/array/arrays.js"; +} from "../../../www/src/shared/array/arrays.js"; import { sanitizeText, escapeHtml -} from "../../../src/shared/string/strings.js"; +} from "../../../www/src/shared/string/strings.js"; import { normalizeId, createId, createStableId, isValidId, -} from "../../../src/shared/id/ids.js"; +} from "../../../www/src/shared/id/ids.js"; import { asPositiveInteger, roundNumber, -} from "../../../src/shared/math/numberNormalization.js"; +} from "../../../www/src/shared/math/numberNormalization.js"; import { vectorFromAngle, -} from "../../../src/shared/math/vectorMath.js"; +} from "../../../www/src/shared/math/vectorMath.js"; import { safeNormalize, -} from "../../../src/shared/math/vectorNormalize.js"; -import { normalizeRecord } from "../../../src/shared/object/objects.js"; -import { normalizeArray } from "../../../src/shared/array/arrays.js"; -import { normalizeRecordArray } from "../../../src/shared/array/recordArrays.js"; -import { safeJsonParse, safeJsonStringify, cloneJsonData } from "../../../src/shared/json/jsonIO.js"; -import { isRecord } from "../../../src/shared/object/objects.js"; -import { isFunction, isBoolean } from "../../../src/shared/types/typeGuards.js"; -import { isNonEmptyString } from "../../../src/shared/string/strings.js"; +} from "../../../www/src/shared/math/vectorNormalize.js"; +import { normalizeRecord } from "../../../www/src/shared/object/objects.js"; +import { normalizeArray } from "../../../www/src/shared/array/arrays.js"; +import { normalizeRecordArray } from "../../../www/src/shared/array/recordArrays.js"; +import { safeJsonParse, safeJsonStringify, cloneJsonData } from "../../../www/src/shared/json/jsonIO.js"; +import { isRecord } from "../../../www/src/shared/object/objects.js"; +import { isFunction, isBoolean } from "../../../www/src/shared/types/typeGuards.js"; +import { isNonEmptyString } from "../../../www/src/shared/string/strings.js"; import { SHARED_PROMOTION_CONTRACT_ID, SHARED_PROMOTION_CONTRACT_VERSION, @@ -46,16 +46,16 @@ import { import { normalizePromotionStateInput, createNormalizedPromotionSnapshot, -} from "../../../src/shared/state/normalization.js"; +} from "../../../www/src/shared/state/normalization.js"; import { isStateContainer, isPromotionStateSnapshot, -} from "../../../src/shared/state/guards.js"; +} from "../../../www/src/shared/state/guards.js"; import { getSimulationState, getReplayState, getEditorState, -} from "../../../src/shared/state/selectors.js"; +} from "../../../www/src/shared/state/selectors.js"; export function run() { assert.deepEqual(ensureArray(null), []); diff --git a/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs b/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs index 0f69666a0..a8fa822e1 100644 --- a/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs +++ b/dev/tests/shared/SharedNumberStringIdCloseout.test.mjs @@ -4,17 +4,17 @@ import { sanitizeText, normalizeString, escapeHtml -} from "../../../src/shared/string/strings.js"; +} from "../../../www/src/shared/string/strings.js"; import { normalizeId, createStableId, isValidId -} from "../../../src/shared/id/ids.js"; +} from "../../../www/src/shared/id/ids.js"; import { isFiniteNumber, asPositiveNumber, toFiniteNumber -} from "../../../src/shared/number/numbers.js"; +} from "../../../www/src/shared/number/numbers.js"; export function run() { assert.equal(sanitizeText(" hello "), "hello"); diff --git a/dev/tests/shared/TextFoundation.test.mjs b/dev/tests/shared/TextFoundation.test.mjs index 2c6098e7d..932970f66 100644 --- a/dev/tests/shared/TextFoundation.test.mjs +++ b/dev/tests/shared/TextFoundation.test.mjs @@ -12,7 +12,7 @@ import { toCamelCase, toTitleCase, truncate, -} from "../../../src/shared/text/text.js"; +} from "../../../www/src/shared/text/text.js"; export function run() { assert.equal(normalizeWhitespace(" Alpha\n\tBeta Gamma "), "Alpha Beta Gamma"); diff --git a/dev/tests/shared/TimeFoundation.test.mjs b/dev/tests/shared/TimeFoundation.test.mjs index b9c96ce99..47cdc3c5f 100644 --- a/dev/tests/shared/TimeFoundation.test.mjs +++ b/dev/tests/shared/TimeFoundation.test.mjs @@ -12,7 +12,7 @@ import { throttle, toIsoTimestamp, toUnixMilliseconds, -} from "../../../src/shared/time/time.js"; +} from "../../../www/src/shared/time/time.js"; export async function run() { assert.equal(formatDuration(500), "500ms"); diff --git a/dev/tests/tools/AiAuthoringAssistant.test.mjs b/dev/tests/tools/AiAuthoringAssistant.test.mjs index faa347a30..a9647bec5 100644 --- a/dev/tests/tools/AiAuthoringAssistant.test.mjs +++ b/dev/tests/tools/AiAuthoringAssistant.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildAiAuthoringAssistant, summarizeAiAuthoringAssistant } from "../../../src/shared/toolbox/aiAuthoringAssistant.js"; +import { buildAiAuthoringAssistant, summarizeAiAuthoringAssistant } from "../../../www/src/shared/toolbox/aiAuthoringAssistant.js"; export async function run() { const result = buildAiAuthoringAssistant({ diff --git a/dev/tests/tools/AssetErrorHandlingStandard.test.mjs b/dev/tests/tools/AssetErrorHandlingStandard.test.mjs index 3377c73d3..742aeab25 100644 --- a/dev/tests/tools/AssetErrorHandlingStandard.test.mjs +++ b/dev/tests/tools/AssetErrorHandlingStandard.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { createAssetError, appendAssetError, appendAssetErrors } from "../../../src/shared/toolbox/pipeline/assetErrorHandling.js"; +import { createAssetError, appendAssetError, appendAssetErrors } from "../../../www/src/shared/toolbox/pipeline/assetErrorHandling.js"; export async function run() { const normalized = createAssetError({ diff --git a/dev/tests/tools/AssetManifestLoader.test.mjs b/dev/tests/tools/AssetManifestLoader.test.mjs index 35225bede..4d193e1c0 100644 --- a/dev/tests/tools/AssetManifestLoader.test.mjs +++ b/dev/tests/tools/AssetManifestLoader.test.mjs @@ -3,7 +3,7 @@ import { discoverRuntimeAssets, getAssetManifestRelativePath, loadAssetManifest -} from "../../../src/shared/toolbox/pipeline/assetManifestLoader.js"; +} from "../../../www/src/shared/toolbox/pipeline/assetManifestLoader.js"; function normalizePath(value) { return String(value || "").replace(/\\/g, "/"); diff --git a/dev/tests/tools/AssetMarketplace.test.mjs b/dev/tests/tools/AssetMarketplace.test.mjs index 147aff9b2..df244a491 100644 --- a/dev/tests/tools/AssetMarketplace.test.mjs +++ b/dev/tests/tools/AssetMarketplace.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildAssetMarketplace, summarizeAssetMarketplace } from "../../../src/shared/toolbox/assetMarketplace.js"; +import { buildAssetMarketplace, summarizeAssetMarketplace } from "../../../www/src/shared/toolbox/assetMarketplace.js"; export async function run() { const result = buildAssetMarketplace({ diff --git a/dev/tests/tools/AssetPipelineTooling.test.mjs b/dev/tests/tools/AssetPipelineTooling.test.mjs index b4f3e3571..92ba286ec 100644 --- a/dev/tests/tools/AssetPipelineTooling.test.mjs +++ b/dev/tests/tools/AssetPipelineTooling.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { runAssetPipelineTooling } from "../../../src/shared/toolbox/pipeline/assetPipelineTooling.js"; +import { runAssetPipelineTooling } from "../../../www/src/shared/toolbox/pipeline/assetPipelineTooling.js"; export async function run() { const ready = runAssetPipelineTooling({ diff --git a/dev/tests/tools/AssetRemediationSystem.test.mjs b/dev/tests/tools/AssetRemediationSystem.test.mjs index 3e8beea8c..f016620c5 100644 --- a/dev/tests/tools/AssetRemediationSystem.test.mjs +++ b/dev/tests/tools/AssetRemediationSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildProjectAssetRemediation, getPrimaryRemediationAction, summarizeProjectAssetRemediation } from "../../../src/shared/toolbox/projectAssetRemediation.js"; +import { buildProjectAssetRemediation, getPrimaryRemediationAction, summarizeProjectAssetRemediation } from "../../../www/src/shared/toolbox/projectAssetRemediation.js"; export async function run() { const registry = { diff --git a/dev/tests/tools/AssetUsageIntegration.test.mjs b/dev/tests/tools/AssetUsageIntegration.test.mjs index 51f956bbd..8ee08e7c4 100644 --- a/dev/tests/tools/AssetUsageIntegration.test.mjs +++ b/dev/tests/tools/AssetUsageIntegration.test.mjs @@ -10,7 +10,7 @@ import { readSharedPaletteHandoff, writeSharedAssetHandoff, writeSharedPaletteHandoff -} from "../../../src/shared/toolbox/assetUsageIntegration.js"; +} from "../../../www/src/shared/toolbox/assetUsageIntegration.js"; function createLocalStorageHarness() { const store = new Map(); diff --git a/dev/tests/tools/AssetValidationEngine.test.mjs b/dev/tests/tools/AssetValidationEngine.test.mjs index 2bf43ab01..3945a9a35 100644 --- a/dev/tests/tools/AssetValidationEngine.test.mjs +++ b/dev/tests/tools/AssetValidationEngine.test.mjs @@ -4,7 +4,7 @@ import { hasBlockingAssetValidationFindings, summarizeAssetValidation, validateProjectAssetState -} from "../../../src/shared/toolbox/projectAssetValidation.js"; +} from "../../../www/src/shared/toolbox/projectAssetValidation.js"; export async function run() { const validRegistry = { diff --git a/dev/tests/tools/CameraDebugPanel.test.mjs b/dev/tests/tools/CameraDebugPanel.test.mjs index fb0a45b73..7aec623d1 100644 --- a/dev/tests/tools/CameraDebugPanel.test.mjs +++ b/dev/tests/tools/CameraDebugPanel.test.mjs @@ -5,8 +5,8 @@ David Quesenberry CameraDebugPanel.test.mjs */ import assert from "node:assert/strict"; -import { create3dCameraPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dCamera.js'; -import { createCameraSummaryProvider } from '../../../src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js'; +import { create3dCameraPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dCamera.js'; +import { createCameraSummaryProvider } from '../../../www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js'; export async function run() { const provider = createCameraSummaryProvider({ diff --git a/dev/tests/tools/CiValidationPipeline.test.mjs b/dev/tests/tools/CiValidationPipeline.test.mjs index fcb446270..cf44e170c 100644 --- a/dev/tests/tools/CiValidationPipeline.test.mjs +++ b/dev/tests/tools/CiValidationPipeline.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { runCiValidationPipeline, summarizeCiValidationPipeline } from "../../../src/shared/toolbox/ciValidationPipeline.js"; +import { runCiValidationPipeline, summarizeCiValidationPipeline } from "../../../www/src/shared/toolbox/ciValidationPipeline.js"; export async function run() { const result = await runCiValidationPipeline({ branch: "main", trigger: "pull_request" }); diff --git a/dev/tests/tools/CloudRuntime.test.mjs b/dev/tests/tools/CloudRuntime.test.mjs index 2f03972e5..9f33fa982 100644 --- a/dev/tests/tools/CloudRuntime.test.mjs +++ b/dev/tests/tools/CloudRuntime.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildCloudRuntime, summarizeCloudRuntime } from "../../../src/shared/toolbox/cloudRuntime.js"; +import { buildCloudRuntime, summarizeCloudRuntime } from "../../../www/src/shared/toolbox/cloudRuntime.js"; export async function run() { const result = buildCloudRuntime({ diff --git a/dev/tests/tools/CollaborationSystem.test.mjs b/dev/tests/tools/CollaborationSystem.test.mjs index 646a9fd17..d8a0d2fd9 100644 --- a/dev/tests/tools/CollaborationSystem.test.mjs +++ b/dev/tests/tools/CollaborationSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildCollaborationSystem, summarizeCollaborationSystem } from "../../../src/shared/toolbox/collaborationSystem.js"; +import { buildCollaborationSystem, summarizeCollaborationSystem } from "../../../www/src/shared/toolbox/collaborationSystem.js"; export async function run() { const result = buildCollaborationSystem({ diff --git a/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs b/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs index 487ed682e..8b4cb6c2f 100644 --- a/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs +++ b/dev/tests/tools/CollisionOverlaysDebugPanel.test.mjs @@ -5,10 +5,10 @@ David Quesenberry CollisionOverlaysDebugPanel.test.mjs */ import assert from "node:assert/strict"; -import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; -import { PANEL_3D_COLLISION_OVERLAYS, create3dCollisionOverlaysPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; -import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; -import { PROVIDER_3D_COLLISION_OVERLAYS, createCollisionOverlaysProvider } from '../../../src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; +import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +import { PANEL_3D_COLLISION_OVERLAYS, create3dCollisionOverlaysPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js'; +import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +import { PROVIDER_3D_COLLISION_OVERLAYS, createCollisionOverlaysProvider } from '../../../www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js'; export async function run() { const provider = createCollisionOverlaysProvider({ diff --git a/dev/tests/tools/DebugVisualizationLayer.test.mjs b/dev/tests/tools/DebugVisualizationLayer.test.mjs index afa48febb..2b142bd5c 100644 --- a/dev/tests/tools/DebugVisualizationLayer.test.mjs +++ b/dev/tests/tools/DebugVisualizationLayer.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildDebugVisualizationLayer, summarizeDebugVisualizationLayer } from "../../../src/shared/toolbox/debugVisualizationLayer.js"; +import { buildDebugVisualizationLayer, summarizeDebugVisualizationLayer } from "../../../www/src/shared/toolbox/debugVisualizationLayer.js"; export async function run() { const result = buildDebugVisualizationLayer({ diff --git a/dev/tests/tools/DevConsoleDebugOverlay.test.mjs b/dev/tests/tools/DevConsoleDebugOverlay.test.mjs index e1e0906f2..8ea1a5f2d 100644 --- a/dev/tests/tools/DevConsoleDebugOverlay.test.mjs +++ b/dev/tests/tools/DevConsoleDebugOverlay.test.mjs @@ -14,7 +14,7 @@ import { getDevDiagnosticsContractVersionMetadata, getDeterministicRenderOrder, summarizeDevConsoleDebugOverlay -} from "../../../src/shared/toolbox/devConsoleDebugOverlay.js"; +} from "../../../www/src/shared/toolbox/devConsoleDebugOverlay.js"; export async function run() { const metadata = getDevDiagnosticsContractVersionMetadata(); diff --git a/dev/tests/tools/EditorExperienceLayer.test.mjs b/dev/tests/tools/EditorExperienceLayer.test.mjs index 4c889b97b..6f407181f 100644 --- a/dev/tests/tools/EditorExperienceLayer.test.mjs +++ b/dev/tests/tools/EditorExperienceLayer.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildEditorExperienceLayer, summarizeEditorExperienceLayer } from "../../../src/shared/toolbox/editorExperienceLayer.js"; +import { buildEditorExperienceLayer, summarizeEditorExperienceLayer } from "../../../www/src/shared/toolbox/editorExperienceLayer.js"; export async function run() { const result = buildEditorExperienceLayer({ diff --git a/dev/tests/tools/GameAssetManifestCoordinator.test.mjs b/dev/tests/tools/GameAssetManifestCoordinator.test.mjs index 27f23a677..d4050dd2f 100644 --- a/dev/tests/tools/GameAssetManifestCoordinator.test.mjs +++ b/dev/tests/tools/GameAssetManifestCoordinator.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { coordinateGameAssetManifest } from "../../../src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; +import { coordinateGameAssetManifest } from "../../../www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; export async function run() { const coordinated = coordinateGameAssetManifest({ diff --git a/dev/tests/tools/GameAssetManifestDiscovery.test.mjs b/dev/tests/tools/GameAssetManifestDiscovery.test.mjs index be4b55705..9c7b03251 100644 --- a/dev/tests/tools/GameAssetManifestDiscovery.test.mjs +++ b/dev/tests/tools/GameAssetManifestDiscovery.test.mjs @@ -4,8 +4,8 @@ import asteroidsGameManifest from "../../../dev/archive/v1-v2/games/Asteroids/ga import { discoverRuntimeAssetSourcesFromManifest, validateGameAssetManifestStructure -} from "../../../src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js"; -import { createRuntimeManifestAssetLookup } from "../../../src/shared/toolbox/pipeline/runtimeAssetLookup.js"; +} from "../../../www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js"; +import { createRuntimeManifestAssetLookup } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetLookup.js"; export async function run() { const asteroidsManifest = { diff --git a/dev/tests/tools/GameTemplates.test.mjs b/dev/tests/tools/GameTemplates.test.mjs index 2cf5b1bae..1f2bdeabc 100644 --- a/dev/tests/tools/GameTemplates.test.mjs +++ b/dev/tests/tools/GameTemplates.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildGameTemplates, summarizeGameTemplates } from "../../../src/shared/toolbox/gameTemplates.js"; +import { buildGameTemplates, summarizeGameTemplates } from "../../../www/src/shared/toolbox/gameTemplates.js"; export async function run() { const result = buildGameTemplates({ diff --git a/dev/tests/tools/GameplaySystemLayer.test.mjs b/dev/tests/tools/GameplaySystemLayer.test.mjs index 33ee734ea..ec648bcc2 100644 --- a/dev/tests/tools/GameplaySystemLayer.test.mjs +++ b/dev/tests/tools/GameplaySystemLayer.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildGameplaySystemLayer, summarizeGameplaySystemLayer } from "../../../src/shared/toolbox/gameplaySystemLayer.js"; +import { buildGameplaySystemLayer, summarizeGameplaySystemLayer } from "../../../www/src/shared/toolbox/gameplaySystemLayer.js"; export async function run() { const result = buildGameplaySystemLayer({ diff --git a/dev/tests/tools/HotReloadSystem.test.mjs b/dev/tests/tools/HotReloadSystem.test.mjs index 5f2349295..3bd3f6b0a 100644 --- a/dev/tests/tools/HotReloadSystem.test.mjs +++ b/dev/tests/tools/HotReloadSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { runHotReloadSystem, summarizeHotReloadSystem } from "../../../src/shared/toolbox/hotReloadSystem.js"; +import { runHotReloadSystem, summarizeHotReloadSystem } from "../../../www/src/shared/toolbox/hotReloadSystem.js"; export async function run() { const registry = { diff --git a/dev/tests/tools/MultiTargetExport.test.mjs b/dev/tests/tools/MultiTargetExport.test.mjs index 3f7e07170..10cac36c4 100644 --- a/dev/tests/tools/MultiTargetExport.test.mjs +++ b/dev/tests/tools/MultiTargetExport.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildMultiTargetExport, summarizeMultiTargetExport } from "../../../src/shared/toolbox/multiTargetExport.js"; +import { buildMultiTargetExport, summarizeMultiTargetExport } from "../../../www/src/shared/toolbox/multiTargetExport.js"; export async function run() { const registry = { diff --git a/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs b/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs index fe0f92027..d3ed25da6 100644 --- a/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs +++ b/dev/tests/tools/ObjectVectorFinalRuntimeCleanup.test.mjs @@ -12,7 +12,7 @@ const ACTIVE_OBJECT_VECTOR_PATHS = Object.freeze([ "games/Asteroids/flow", "toolbox/workspace-manager-v2/js", "toolbox/object-vector-studio-v2/js", - "src/engine/rendering/ObjectVectorRuntimeAssetService.js" + "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js" ]); const DEPRECATED_VECTOR_MAPS_GUARD = "toolbox/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js"; diff --git a/dev/tests/tools/PerformanceBenchmarks.test.mjs b/dev/tests/tools/PerformanceBenchmarks.test.mjs index 83df5460a..14192de60 100644 --- a/dev/tests/tools/PerformanceBenchmarks.test.mjs +++ b/dev/tests/tools/PerformanceBenchmarks.test.mjs @@ -12,7 +12,7 @@ import { createPerformanceBenchmarkSuite, runPerformanceBenchmarkSuite, summarizePerformanceBenchmarkSuite -} from "../../../src/shared/toolbox/performanceBenchmarks.js"; +} from "../../../www/src/shared/toolbox/performanceBenchmarks.js"; export async function run() { const suite = createPerformanceBenchmarkSuite({ diff --git a/dev/tests/tools/PerformanceProfiler.test.mjs b/dev/tests/tools/PerformanceProfiler.test.mjs index d0986f5bf..9c4746060 100644 --- a/dev/tests/tools/PerformanceProfiler.test.mjs +++ b/dev/tests/tools/PerformanceProfiler.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildPerformanceProfiler, summarizePerformanceProfiler } from "../../../src/shared/toolbox/performanceProfiler.js"; +import { buildPerformanceProfiler, summarizePerformanceProfiler } from "../../../www/src/shared/toolbox/performanceProfiler.js"; export async function run() { const result = buildPerformanceProfiler({ diff --git a/dev/tests/tools/PlatformValidationSuite.test.mjs b/dev/tests/tools/PlatformValidationSuite.test.mjs index 041f75fe6..1881666ac 100644 --- a/dev/tests/tools/PlatformValidationSuite.test.mjs +++ b/dev/tests/tools/PlatformValidationSuite.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { runPlatformValidationSuite, summarizePlatformValidationSuite } from "../../../src/shared/toolbox/platformValidationSuite.js"; +import { runPlatformValidationSuite, summarizePlatformValidationSuite } from "../../../www/src/shared/toolbox/platformValidationSuite.js"; export async function run() { const first = await runPlatformValidationSuite(); diff --git a/dev/tests/tools/PluginArchitectureSystem.test.mjs b/dev/tests/tools/PluginArchitectureSystem.test.mjs index cd68338fc..aace0d0c4 100644 --- a/dev/tests/tools/PluginArchitectureSystem.test.mjs +++ b/dev/tests/tools/PluginArchitectureSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildPluginArchitecture, summarizePluginArchitecture } from "../../../src/shared/toolbox/pluginArchitecture.js"; +import { buildPluginArchitecture, summarizePluginArchitecture } from "../../../www/src/shared/toolbox/pluginArchitecture.js"; export async function run() { const hostPackageManifest = { diff --git a/dev/tests/tools/ProjectPackagingSystem.test.mjs b/dev/tests/tools/ProjectPackagingSystem.test.mjs index a5f7e251d..ba7d28f9a 100644 --- a/dev/tests/tools/ProjectPackagingSystem.test.mjs +++ b/dev/tests/tools/ProjectPackagingSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildProjectPackage, summarizeProjectPackaging } from "../../../src/shared/toolbox/projectPackaging.js"; +import { buildProjectPackage, summarizeProjectPackaging } from "../../../www/src/shared/toolbox/projectPackaging.js"; export async function run() { const registry = { diff --git a/dev/tests/tools/ProjectToolDataContracts.test.mjs b/dev/tests/tools/ProjectToolDataContracts.test.mjs index cfcc85326..59b8acd09 100644 --- a/dev/tests/tools/ProjectToolDataContracts.test.mjs +++ b/dev/tests/tools/ProjectToolDataContracts.test.mjs @@ -4,7 +4,7 @@ import { TOOL_DATA_CONTRACT_VERSION, buildProjectToolIntegration, validateToolStateContract -} from "../../../src/shared/toolbox/projectToolIntegration.js"; +} from "../../../www/src/shared/toolbox/projectToolIntegration.js"; export async function run() { const validTileState = { diff --git a/dev/tests/tools/ProjectVersioningSystem.test.mjs b/dev/tests/tools/ProjectVersioningSystem.test.mjs index 96384801d..ee5f91444 100644 --- a/dev/tests/tools/ProjectVersioningSystem.test.mjs +++ b/dev/tests/tools/ProjectVersioningSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildProjectVersioning, summarizeProjectVersioning } from "../../../src/shared/toolbox/projectVersioning.js"; +import { buildProjectVersioning, summarizeProjectVersioning } from "../../../www/src/shared/toolbox/projectVersioning.js"; export async function run() { const compatible = buildProjectVersioning({ diff --git a/dev/tests/tools/PublishingPipeline.test.mjs b/dev/tests/tools/PublishingPipeline.test.mjs index b8dc523bf..6168c2361 100644 --- a/dev/tests/tools/PublishingPipeline.test.mjs +++ b/dev/tests/tools/PublishingPipeline.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { runPublishingPipeline, summarizePublishingPipeline } from "../../../src/shared/toolbox/publishingPipeline.js"; +import { runPublishingPipeline, summarizePublishingPipeline } from "../../../www/src/shared/toolbox/publishingPipeline.js"; export async function run() { const result = await runPublishingPipeline({ diff --git a/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs b/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs index 3e6d580fd..40788ff59 100644 --- a/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs +++ b/dev/tests/tools/RenderPipelineContractAll4Tools.test.mjs @@ -13,7 +13,7 @@ import { getRenderPipelineStageOrder, runRenderContractRuntimePath, summarizeRenderContractRuntimePath -} from "../../../src/shared/toolbox/renderPipelineContract.js"; +} from "../../../www/src/shared/toolbox/renderPipelineContract.js"; function createAsset(id, type, path) { return { diff --git a/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs b/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs index f7f1cf039..1c34c1a7b 100644 --- a/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs +++ b/dev/tests/tools/RenderPipelineStagesDebugPanel.test.mjs @@ -5,10 +5,10 @@ David Quesenberry RenderPipelineStagesDebugPanel.test.mjs */ import assert from "node:assert/strict"; -import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; -import { PANEL_3D_RENDER_PIPELINE_STAGES, create3dRenderPipelineStagesPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js'; -import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; -import { PROVIDER_3D_RENDER_PIPELINE_STAGES, createRenderPipelineStagesProvider } from '../../../src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js'; +import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +import { PANEL_3D_RENDER_PIPELINE_STAGES, create3dRenderPipelineStagesPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js'; +import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +import { PROVIDER_3D_RENDER_PIPELINE_STAGES, createRenderPipelineStagesProvider } from '../../../www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js'; export async function run() { const provider = createRenderPipelineStagesProvider({ diff --git a/dev/tests/tools/RuntimeAssetBinding.test.mjs b/dev/tests/tools/RuntimeAssetBinding.test.mjs index 95082be5e..5f5c0f592 100644 --- a/dev/tests/tools/RuntimeAssetBinding.test.mjs +++ b/dev/tests/tools/RuntimeAssetBinding.test.mjs @@ -1,6 +1,6 @@ import assert from "node:assert/strict"; -import { createRuntimeAssetBinding, resolveRuntimeAsset } from "../../../src/shared/toolbox/pipeline/runtimeAssetBinding.js"; -import { coordinateGameAssetManifest } from "../../../src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; +import { createRuntimeAssetBinding, resolveRuntimeAsset } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetBinding.js"; +import { coordinateGameAssetManifest } from "../../../www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js"; export async function run() { const coordinated = coordinateGameAssetManifest({ diff --git a/dev/tests/tools/RuntimeAssetLoader.test.mjs b/dev/tests/tools/RuntimeAssetLoader.test.mjs index 4a04985be..8f4555b63 100644 --- a/dev/tests/tools/RuntimeAssetLoader.test.mjs +++ b/dev/tests/tools/RuntimeAssetLoader.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { loadPackagedProjectRuntime, summarizeRuntimeAssetLoader } from "../../../src/shared/toolbox/runtimeAssetLoader.js"; +import { loadPackagedProjectRuntime, summarizeRuntimeAssetLoader } from "../../../www/src/shared/toolbox/runtimeAssetLoader.js"; export async function run() { const packageManifest = { diff --git a/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs b/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs index e1663f934..dc40c63bd 100644 --- a/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs +++ b/dev/tests/tools/RuntimeAssetLookupConsolidation.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { createRuntimeManifestAssetLookup, getRuntimeBindingDomain } from "../../../src/shared/toolbox/pipeline/runtimeAssetLookup.js"; +import { createRuntimeManifestAssetLookup, getRuntimeBindingDomain } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetLookup.js"; export async function run() { assert.equal(getRuntimeBindingDomain("vector.ship"), "vectors"); diff --git a/dev/tests/tools/RuntimeAssetValidation.test.mjs b/dev/tests/tools/RuntimeAssetValidation.test.mjs index af611d8ba..49b874cd0 100644 --- a/dev/tests/tools/RuntimeAssetValidation.test.mjs +++ b/dev/tests/tools/RuntimeAssetValidation.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { validateRuntimeResolvedAsset } from "../../../src/shared/toolbox/pipeline/runtimeAssetValidation.js"; +import { validateRuntimeResolvedAsset } from "../../../www/src/shared/toolbox/pipeline/runtimeAssetValidation.js"; export async function run() { const validVector = validateRuntimeResolvedAsset({ diff --git a/dev/tests/tools/RuntimeStreamingSystem.test.mjs b/dev/tests/tools/RuntimeStreamingSystem.test.mjs index a3f5d6724..cfaf64347 100644 --- a/dev/tests/tools/RuntimeStreamingSystem.test.mjs +++ b/dev/tests/tools/RuntimeStreamingSystem.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildRuntimeStreamingManifest, loadRuntimeStreamingChunks, summarizeRuntimeStreaming } from "../../../src/shared/toolbox/runtimeStreaming.js"; +import { buildRuntimeStreamingManifest, loadRuntimeStreamingChunks, summarizeRuntimeStreaming } from "../../../www/src/shared/toolbox/runtimeStreaming.js"; export async function run() { const packageManifest = { diff --git a/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs b/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs index e8ef02ab8..a520421a6 100644 --- a/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs +++ b/dev/tests/tools/SceneGraphInspectorDebugPanel.test.mjs @@ -5,10 +5,10 @@ David Quesenberry SceneGraphInspectorDebugPanel.test.mjs */ import assert from "node:assert/strict"; -import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; -import { PANEL_3D_SCENE_GRAPH_INSPECTOR, create3dSceneGraphInspectorPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js'; -import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; -import { PROVIDER_3D_SCENE_GRAPH_INSPECTOR, createSceneGraphInspectorProvider } from '../../../src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js'; +import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +import { PANEL_3D_SCENE_GRAPH_INSPECTOR, create3dSceneGraphInspectorPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js'; +import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +import { PROVIDER_3D_SCENE_GRAPH_INSPECTOR, createSceneGraphInspectorProvider } from '../../../www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js'; export async function run() { const provider = createSceneGraphInspectorProvider({ diff --git a/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs b/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs index a62321d5e..eb58a9213 100644 --- a/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs +++ b/dev/tests/tools/ToolLayoutDockingControlNormalization.test.mjs @@ -17,7 +17,7 @@ function assertIncludesAll(relativePath, patterns) { } export async function run() { - assertIncludesAll("src/shared/toolbox/platformShell.css", [ + assertIncludesAll("www/src/shared/toolbox/platformShell.css", [ /\.tools-platform-layout-grid/, /\.tools-platform-control-cluster--primary/, /\.tools-platform-control-cluster--workflow/, diff --git a/dev/tests/tools/TransformInspectorDebugPanel.test.mjs b/dev/tests/tools/TransformInspectorDebugPanel.test.mjs index ab523c486..7e62624cb 100644 --- a/dev/tests/tools/TransformInspectorDebugPanel.test.mjs +++ b/dev/tests/tools/TransformInspectorDebugPanel.test.mjs @@ -5,10 +5,10 @@ David Quesenberry TransformInspectorDebugPanel.test.mjs */ import assert from "node:assert/strict"; -import { createStandard3dPanels } from '../../../src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; -import { PANEL_3D_TRANSFORM_INSPECTOR, create3dTransformInspectorPanel } from '../../../src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js'; -import { createStandard3dProviders } from '../../../src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; -import { PROVIDER_3D_TRANSFORM_INSPECTOR, createTransformInspectorProvider } from '../../../src/engine/debug/standard/threeD/providers/transformInspectorProvider.js'; +import { createStandard3dPanels } from '../../../www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js'; +import { PANEL_3D_TRANSFORM_INSPECTOR, create3dTransformInspectorPanel } from '../../../www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js'; +import { createStandard3dProviders } from '../../../www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js'; +import { PROVIDER_3D_TRANSFORM_INSPECTOR, createTransformInspectorProvider } from '../../../www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js'; export async function run() { const provider = createTransformInspectorProvider({ diff --git a/dev/tests/tools/VectorAssetSystem.test.mjs b/dev/tests/tools/VectorAssetSystem.test.mjs index 4dad9e634..c58b963d2 100644 --- a/dev/tests/tools/VectorAssetSystem.test.mjs +++ b/dev/tests/tools/VectorAssetSystem.test.mjs @@ -1,10 +1,10 @@ import assert from "node:assert/strict"; -import { validateProjectAssetState } from "../../../src/shared/toolbox/projectAssetValidation.js"; -import { buildProjectPackage } from "../../../src/shared/toolbox/projectPackaging.js"; -import { loadPackagedProjectRuntime } from "../../../src/shared/toolbox/runtimeAssetLoader.js"; -import { buildVectorAssetSystem, createVectorAssetSystemFixture } from "../../../src/shared/toolbox/vectorAssetSystem.js"; -import { normalizeSvgToVectorAsset, summarizeVectorAssetDefinition } from "../../../src/shared/toolbox/vector/vectorAssetBridge.js"; -import { VECTOR_ASSET_FORMAT } from "../../../src/shared/toolbox/vector/vectorAssetContract.js"; +import { validateProjectAssetState } from "../../../www/src/shared/toolbox/projectAssetValidation.js"; +import { buildProjectPackage } from "../../../www/src/shared/toolbox/projectPackaging.js"; +import { loadPackagedProjectRuntime } from "../../../www/src/shared/toolbox/runtimeAssetLoader.js"; +import { buildVectorAssetSystem, createVectorAssetSystemFixture } from "../../../www/src/shared/toolbox/vectorAssetSystem.js"; +import { normalizeSvgToVectorAsset, summarizeVectorAssetDefinition } from "../../../www/src/shared/toolbox/vector/vectorAssetBridge.js"; +import { VECTOR_ASSET_FORMAT } from "../../../www/src/shared/toolbox/vector/vectorAssetContract.js"; export async function run() { const normalized = normalizeSvgToVectorAsset({ diff --git a/dev/tests/tools/VectorGeometryRuntime.test.mjs b/dev/tests/tools/VectorGeometryRuntime.test.mjs index 52a7b1d9d..417752f0c 100644 --- a/dev/tests/tools/VectorGeometryRuntime.test.mjs +++ b/dev/tests/tools/VectorGeometryRuntime.test.mjs @@ -1,13 +1,13 @@ import assert from "node:assert/strict"; -import { loadPackagedProjectRuntime } from "../../../src/shared/toolbox/runtimeAssetLoader.js"; +import { loadPackagedProjectRuntime } from "../../../www/src/shared/toolbox/runtimeAssetLoader.js"; import { inspectVectorGeometryRuntimeAsset, prepareVectorGeometryRuntimeAsset, summarizeVectorGeometryRuntime, VECTOR_GEOMETRY_RUNTIME_POLICY -} from "../../../src/shared/toolbox/vectorGeometryRuntime.js"; -import { normalizeSvgToVectorAsset } from "../../../src/shared/toolbox/vector/vectorAssetBridge.js"; -import { VECTOR_ASSET_FORMAT } from "../../../src/shared/toolbox/vector/vectorAssetContract.js"; +} from "../../../www/src/shared/toolbox/vectorGeometryRuntime.js"; +import { normalizeSvgToVectorAsset } from "../../../www/src/shared/toolbox/vector/vectorAssetBridge.js"; +import { VECTOR_ASSET_FORMAT } from "../../../www/src/shared/toolbox/vector/vectorAssetContract.js"; import { computeBoundsFromPoints, createPoint, @@ -16,7 +16,7 @@ import { scalePoint, transformPoint, translatePoint -} from "../../../src/shared/toolbox/vector/vectorGeometryMath.js"; +} from "../../../www/src/shared/toolbox/vector/vectorGeometryMath.js"; function createContractAsset() { return { diff --git a/dev/tests/tools/VectorNativeTemplate.test.mjs b/dev/tests/tools/VectorNativeTemplate.test.mjs index a9fea5e08..f4a3f9b6a 100644 --- a/dev/tests/tools/VectorNativeTemplate.test.mjs +++ b/dev/tests/tools/VectorNativeTemplate.test.mjs @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { buildVectorNativeTemplate, createVectorNativeTemplateDefinition, summarizeVectorNativeTemplate } from "../../../src/shared/toolbox/vectorNativeTemplate.js"; +import { buildVectorNativeTemplate, createVectorNativeTemplateDefinition, summarizeVectorNativeTemplate } from "../../../www/src/shared/toolbox/vectorNativeTemplate.js"; export async function run() { const definition = createVectorNativeTemplateDefinition(); diff --git a/dev/tests/vector/VectorMath.test.mjs b/dev/tests/vector/VectorMath.test.mjs index 776b44610..f7d493055 100644 --- a/dev/tests/vector/VectorMath.test.mjs +++ b/dev/tests/vector/VectorMath.test.mjs @@ -5,7 +5,7 @@ VectorMath.test.mjs */ import assert from 'node:assert/strict'; -import { vectorFromAngle } from '../../../src/shared/math/vectorMath.js'; +import { vectorFromAngle } from '../../../www/src/shared/math/vectorMath.js'; function assertClose(actual, expected, tolerance = 1e-9) { assert.equal(Math.abs(actual - expected) <= tolerance, true); diff --git a/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs b/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs index a7e6f48d0..62874163e 100644 --- a/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs +++ b/dev/tests/world/WorldGameStateAuthoritativeHandoff.test.mjs @@ -8,9 +8,9 @@ import assert from 'node:assert/strict'; import { WORLD_GAME_STATE_EVENT_TYPES, WORLD_GAME_STATE_FEATURE_GATES -} from '../../../src/advanced/state/constants.js'; -import { createWorldGameStateSystem } from '../../../src/advanced/state/createWorldGameStateSystem.js'; -import { registerWorldGameStateSystem } from '../../../src/advanced/state/integration/registerWorldGameStateSystem.js'; +} from '../../../www/src/advanced/state/constants.js'; +import { createWorldGameStateSystem } from '../../../www/src/advanced/state/createWorldGameStateSystem.js'; +import { registerWorldGameStateSystem } from '../../../www/src/advanced/state/integration/registerWorldGameStateSystem.js'; function createEventPipeline() { const listenersByType = new Map(); diff --git a/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs b/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs index 86421e098..ecb5ffab1 100644 --- a/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs +++ b/dev/tests/world/WorldGameStateAuthoritativeScore.test.mjs @@ -5,9 +5,9 @@ David Quesenberry WorldGameStateAuthoritativeScore.test.mjs */ import assert from 'node:assert/strict'; -import { WORLD_GAME_STATE_FEATURE_GATES } from '../../../src/advanced/state/constants.js'; -import { createWorldGameStateSystem } from '../../../src/advanced/state/createWorldGameStateSystem.js'; -import { registerWorldGameStateSystem } from '../../../src/advanced/state/integration/registerWorldGameStateSystem.js'; +import { WORLD_GAME_STATE_FEATURE_GATES } from '../../../www/src/advanced/state/constants.js'; +import { createWorldGameStateSystem } from '../../../www/src/advanced/state/createWorldGameStateSystem.js'; +import { registerWorldGameStateSystem } from '../../../www/src/advanced/state/integration/registerWorldGameStateSystem.js'; function createEventPipeline() { const listenersByType = new Map(); diff --git a/dev/tests/world/WorldGameStateSystem.test.mjs b/dev/tests/world/WorldGameStateSystem.test.mjs index 89410ecfe..40a67eb02 100644 --- a/dev/tests/world/WorldGameStateSystem.test.mjs +++ b/dev/tests/world/WorldGameStateSystem.test.mjs @@ -8,14 +8,14 @@ import assert from 'node:assert/strict'; import { WORLD_GAME_STATE_EVENT_TYPES, WORLD_GAME_STATE_SYSTEM_ID -} from '../../../src/advanced/state/constants.js'; -import { createInitialWorldGameState } from '../../../src/advanced/state/initialState.js'; -import { createObjectiveProgressMirrorConsumer } from '../../../src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js'; +} from '../../../www/src/advanced/state/constants.js'; +import { createInitialWorldGameState } from '../../../www/src/advanced/state/initialState.js'; +import { createObjectiveProgressMirrorConsumer } from '../../../www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js'; import { createStateEventEnvelope as createStateContractEventEnvelope, -} from '../../../src/advanced/state/events.js'; -import { createWorldGameStateSystem } from '../../../src/advanced/state/createWorldGameStateSystem.js'; -import { registerWorldGameStateSystem } from '../../../src/advanced/state/integration/registerWorldGameStateSystem.js'; +} from '../../../www/src/advanced/state/events.js'; +import { createWorldGameStateSystem } from '../../../www/src/advanced/state/createWorldGameStateSystem.js'; +import { registerWorldGameStateSystem } from '../../../www/src/advanced/state/integration/registerWorldGameStateSystem.js'; function createLocalEventPipeline() { const listenersByType = new Map(); diff --git a/dev/tests/world/WorldSystems.test.mjs b/dev/tests/world/WorldSystems.test.mjs index 3b9105850..5c67e7483 100644 --- a/dev/tests/world/WorldSystems.test.mjs +++ b/dev/tests/world/WorldSystems.test.mjs @@ -5,14 +5,14 @@ David Quesenberry WorldSystems.test.mjs */ import assert from 'node:assert/strict'; -import EventBus from '../../../src/engine/events/EventBus.js'; -import CutsceneSystem from '../../../src/engine/world/CutsceneSystem.js'; -import DayNightCycle from '../../../src/engine/world/DayNightCycle.js'; -import EventScriptSystem from '../../../src/engine/world/EventScriptSystem.js'; -import QuestSystem from '../../../src/engine/world/QuestSystem.js'; -import SpawnSystem from '../../../src/engine/world/SpawnSystem.js'; -import WeatherSystem from '../../../src/engine/world/WeatherSystem.js'; -import WorldStreamingSystem from '../../../src/engine/world/WorldStreamingSystem.js'; +import EventBus from '../../../www/src/engine/events/EventBus.js'; +import CutsceneSystem from '../../../www/src/engine/world/CutsceneSystem.js'; +import DayNightCycle from '../../../www/src/engine/world/DayNightCycle.js'; +import EventScriptSystem from '../../../www/src/engine/world/EventScriptSystem.js'; +import QuestSystem from '../../../www/src/engine/world/QuestSystem.js'; +import SpawnSystem from '../../../www/src/engine/world/SpawnSystem.js'; +import WeatherSystem from '../../../www/src/engine/world/WeatherSystem.js'; +import WorldStreamingSystem from '../../../www/src/engine/world/WorldStreamingSystem.js'; export function run() { const quests = new QuestSystem([{ id: 'collect', required: 2 }]); diff --git a/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js b/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js index 8eb740336..1de3aded3 100644 --- a/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js +++ b/dev/tools/toolbox-dev/advanced/debugMacroExecutor.js @@ -5,7 +5,7 @@ David Quesenberry debugMacroExecutor.js */ -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; function parseCommandName(commandLine) { const line = sanitizeText(commandLine); diff --git a/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js b/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js index 0d862a099..6178d2931 100644 --- a/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js +++ b/dev/tools/toolbox-dev/advanced/debugMacroRegistry.js @@ -5,8 +5,8 @@ David Quesenberry debugMacroRegistry.js */ -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { cloneJson } from "../../../../src/shared/json/clone.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { cloneJson } from "../../../../www/src/shared/json/clone.js"; function asStepArray(value) { if (!Array.isArray(value)) { diff --git a/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js b/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js index 357f4d490..0734216c4 100644 --- a/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js +++ b/dev/tools/toolbox-dev/advanced/debugPanelGroupRegistry.js @@ -5,9 +5,9 @@ David Quesenberry debugPanelGroupRegistry.js */ -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { asStringArray } from "../../../../src/shared/array/arrays.js"; -import { cloneJson } from "../../../../src/shared/json/clone.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { asStringArray } from "../../../../www/src/shared/array/arrays.js"; +import { cloneJson } from "../../../../www/src/shared/json/clone.js"; function normalizeGroupDescriptor(descriptor = {}) { const groupId = sanitizeText(descriptor.groupId); diff --git a/dev/tools/toolbox-dev/canvasDebugHudRenderer.js b/dev/tools/toolbox-dev/canvasDebugHudRenderer.js index 691b1941b..530fbe50e 100644 --- a/dev/tools/toolbox-dev/canvasDebugHudRenderer.js +++ b/dev/tools/toolbox-dev/canvasDebugHudRenderer.js @@ -5,7 +5,7 @@ David Quesenberry canvasDebugHudRenderer.js */ -import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; function toArrayLines(lines) { return Array.isArray(lines) diff --git a/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json b/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json index 00919e7a3..c4a7df71b 100644 --- a/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json +++ b/dev/tools/toolbox-dev/checkSharedExtractionGuard.baseline.json @@ -842,167 +842,167 @@ "match": "rule:helper-fn-isPlainObject" }, { - "file": "src/advanced/promotion/createPromotionGate.js", + "file": "www/src/advanced/promotion/createPromotionGate.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/promotion/createPromotionGate.js", + "file": "www/src/advanced/promotion/createPromotionGate.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/promotion/createPromotionGate.js", + "file": "www/src/advanced/promotion/createPromotionGate.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/promotion/createPromotionGate.js", + "file": "www/src/advanced/promotion/createPromotionGate.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/promotion/createPromotionGate.js", + "file": "www/src/advanced/promotion/createPromotionGate.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/promotion/createPromotionGate.js", + "file": "www/src/advanced/promotion/createPromotionGate.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/createWorldGameStateSystem.js", + "file": "www/src/advanced/state/createWorldGameStateSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/events.js", + "file": "www/src/advanced/state/events.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/events.js", + "file": "www/src/advanced/state/events.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/events.js", + "file": "www/src/advanced/state/events.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/initialState.js", + "file": "www/src/advanced/state/initialState.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/initialState.js", + "file": "www/src/advanced/state/initialState.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/transitions.js", + "file": "www/src/advanced/state/transitions.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/advanced/state/utils.js", + "file": "www/src/advanced/state/utils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/utils.js", + "file": "www/src/advanced/state/utils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/advanced/state/utils.js", + "file": "www/src/advanced/state/utils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/advanced/state/utils.js", + "file": "www/src/advanced/state/utils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, @@ -1137,1967 +1137,1967 @@ "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/ai/GroupBehaviors.js", + "file": "www/src/engine/ai/GroupBehaviors.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/ai/GroupBehaviors.js", + "file": "www/src/engine/ai/GroupBehaviors.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/audio/MediaTrackService.js", + "file": "www/src/engine/audio/MediaTrackService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/PreviewSynthEngine.js", + "file": "www/src/engine/audio/PreviewSynthEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/PreviewSynthEngine.js", + "file": "www/src/engine/audio/PreviewSynthEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/PreviewSynthEngine.js", + "file": "www/src/engine/audio/PreviewSynthEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/PreviewSynthEngine.js", + "file": "www/src/engine/audio/PreviewSynthEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/PreviewSynthEngine.js", + "file": "www/src/engine/audio/PreviewSynthEngine.js", "type": "renamed-helper-clone", "match": "rule:renamed-helper-finiteNumber" }, { - "file": "src/engine/audio/SongSheetParser.js", + "file": "www/src/engine/audio/SongSheetParser.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/SoundFontPreviewEngine.js", + "file": "www/src/engine/audio/SoundFontPreviewEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/SoundFontPreviewEngine.js", + "file": "www/src/engine/audio/SoundFontPreviewEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/SoundFontPreviewEngine.js", + "file": "www/src/engine/audio/SoundFontPreviewEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/SoundFontPreviewEngine.js", + "file": "www/src/engine/audio/SoundFontPreviewEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/SoundFontPreviewEngine.js", + "file": "www/src/engine/audio/SoundFontPreviewEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/SoundFontPreviewEngine.js", + "file": "www/src/engine/audio/SoundFontPreviewEngine.js", "type": "renamed-helper-clone", "match": "rule:renamed-helper-finiteNumber" }, { - "file": "src/engine/audio/TextToSpeechEngine.js", + "file": "www/src/engine/audio/TextToSpeechEngine.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/audio/TextToSpeechEngine.js", + "file": "www/src/engine/audio/TextToSpeechEngine.js", "type": "renamed-helper-clone", "match": "rule:renamed-helper-finiteNumber" }, { - "file": "src/engine/camera/Camera2D.js", + "file": "www/src/engine/camera/Camera2D.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/camera/Camera2D.js", + "file": "www/src/engine/camera/Camera2D.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/Camera3D.js", + "file": "www/src/engine/camera/Camera3D.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/camera/ZoneCameraSystem.js", + "file": "www/src/engine/camera/ZoneCameraSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/camera/ZoneCameraSystem.js", + "file": "www/src/engine/camera/ZoneCameraSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/collision/combat/Combat.js", + "file": "www/src/engine/collision/combat/Combat.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/collision/combat/Combat.js", + "file": "www/src/engine/collision/combat/Combat.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/collision/hitboxCollision.js", + "file": "www/src/engine/collision/hitboxCollision.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/collision/hitboxCollision.js", + "file": "www/src/engine/collision/hitboxCollision.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/collision/hitboxCollision.js", + "file": "www/src/engine/collision/hitboxCollision.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/collision/hitboxCollision.js", + "file": "www/src/engine/collision/hitboxCollision.js", "type": "renamed-helper-clone", "match": "rule:renamed-helper-finiteNumber" }, { - "file": "src/engine/collision/objectVector.js", + "file": "www/src/engine/collision/objectVector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/collision/objectVector.js", + "file": "www/src/engine/collision/objectVector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/collision/objectVector.js", + "file": "www/src/engine/collision/objectVector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/collision/objectVector.js", + "file": "www/src/engine/collision/objectVector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/collision/objectVector.js", + "file": "www/src/engine/collision/objectVector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/collision/objectVector.js", + "file": "www/src/engine/collision/objectVector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/collision/polygon.js", + "file": "www/src/engine/collision/polygon.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/collision/polygon.js", + "file": "www/src/engine/collision/polygon.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/core/FixedTicker.js", + "file": "www/src/engine/core/FixedTicker.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/core/FixedTicker.js", + "file": "www/src/engine/core/FixedTicker.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/core/FrameClock.js", + "file": "www/src/engine/core/FrameClock.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/core/FrameClock.js", + "file": "www/src/engine/core/FrameClock.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/DebugOverlayLayout.js", + "file": "www/src/engine/debug/DebugOverlayLayout.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", + "file": "www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", + "file": "www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/commands/registerInspectorCommands.js", + "file": "www/src/engine/debug/inspectors/commands/registerInspectorCommands.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/commands/registerInspectorCommands.js", + "file": "www/src/engine/debug/inspectors/commands/registerInspectorCommands.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/commands/registerInspectorCommands.js", + "file": "www/src/engine/debug/inspectors/commands/registerInspectorCommands.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", + "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", + "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", + "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/host/debugInspectorHost.js", + "file": "www/src/engine/debug/inspectors/host/debugInspectorHost.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/registry/debugInspectorRegistry.js", + "file": "www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/inspectors/shared/inspectorUtils.js", + "file": "www/src/engine/debug/inspectors/shared/inspectorUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", + "file": "www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js", + "file": "www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/commands/networkDebugCommandPackBridge.js", + "file": "www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/registerDashboardCommands.js", + "file": "www/src/engine/debug/network/dashboard/registerDashboardCommands.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/registerDashboardCommands.js", + "file": "www/src/engine/debug/network/dashboard/registerDashboardCommands.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardHost.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardHost.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardMetrics.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardMetrics.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardMetrics.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardMetrics.js", "type": "inline-helper-clone", "match": "rule:inline-arrow-number-is-finite" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardMetrics.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardMetrics.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardProviders.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardProviders.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardRefreshModes.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardRegistry.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardRegistry.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardRenderer.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardRenderer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/dashboard/serverDashboardViewModel.js", + "file": "www/src/engine/debug/network/dashboard/serverDashboardViewModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js", + "file": "www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js", + "file": "www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/diagnostics/networkPromotionRecommendation.js", + "file": "www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js", + "file": "www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/panels/networkDebugPanelRegistry.js", + "file": "www/src/engine/debug/network/panels/networkDebugPanelRegistry.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/panels/networkObservabilityPanels.js", + "file": "www/src/engine/debug/network/panels/networkObservabilityPanels.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/providers/networkDebugProviderRegistry.js", + "file": "www/src/engine/debug/network/providers/networkDebugProviderRegistry.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/hostReadUtils.js", + "file": "www/src/engine/debug/network/shared/hostReadUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/hostReadUtils.js", + "file": "www/src/engine/debug/network/shared/hostReadUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/hostReadUtils.js", + "file": "www/src/engine/debug/network/shared/hostReadUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/network/shared/networkDebugUtils.js", + "file": "www/src/engine/debug/network/shared/networkDebugUtils.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/panels/PromotionGatePanel.js", + "file": "www/src/engine/debug/panels/PromotionGatePanel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/panels/PromotionGatePanel.js", + "file": "www/src/engine/debug/panels/PromotionGatePanel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js", + "file": "www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dCamera.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dCamera.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dCollision.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dCollision.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dRenderStages.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dTransform.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransform.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", + "file": "www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/debug/standard/threeD/providers/transformSummaryProvider.js", + "file": "www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-4" }, { - "file": "src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", + "file": "www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/GamepadHapticsService.js", + "file": "www/src/engine/input/GamepadHapticsService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/InputCaptureSession.js", + "file": "www/src/engine/input/InputCaptureSession.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/NormalizedInputRegistry.js", + "file": "www/src/engine/input/NormalizedInputRegistry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/NormalizedInputRegistry.js", + "file": "www/src/engine/input/NormalizedInputRegistry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/NormalizedInputRegistry.js", + "file": "www/src/engine/input/NormalizedInputRegistry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/PointerDragState.js", + "file": "www/src/engine/input/PointerDragState.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/PointerDragState.js", + "file": "www/src/engine/input/PointerDragState.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/PointerDragState.js", + "file": "www/src/engine/input/PointerDragState.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/input/PointerDragState.js", + "file": "www/src/engine/input/PointerDragState.js", "type": "renamed-helper-clone", "match": "rule:renamed-helper-finiteNumber" }, { - "file": "src/engine/network/bootstrap/NetworkingLayer.js", + "file": "www/src/engine/network/bootstrap/NetworkingLayer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/bootstrap/NetworkingLayer.js", + "file": "www/src/engine/network/bootstrap/NetworkingLayer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/client/ClientReplicationApplicationLayer.js", + "file": "www/src/engine/network/client/ClientReplicationApplicationLayer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/client/ClientReplicationApplicationLayer.js", + "file": "www/src/engine/network/client/ClientReplicationApplicationLayer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/client/PredictionReconciler.js", + "file": "www/src/engine/network/client/PredictionReconciler.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/client/PredictionReconciler.js", + "file": "www/src/engine/network/client/PredictionReconciler.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/replication/ReplicationMessageContract.js", + "file": "www/src/engine/network/replication/ReplicationMessageContract.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/replication/ReplicationMessageContract.js", + "file": "www/src/engine/network/replication/ReplicationMessageContract.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/replication/ReplicationMessageContract.js", + "file": "www/src/engine/network/replication/ReplicationMessageContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/network/replication/ReplicationMessageContract.js", + "file": "www/src/engine/network/replication/ReplicationMessageContract.js", "type": "local-helper-definition", "match": "rule:helper-fn-isPlainObject" }, { - "file": "src/engine/network/replication/StateReplication.js", + "file": "www/src/engine/network/replication/StateReplication.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/replication/StateReplication.js", + "file": "www/src/engine/network/replication/StateReplication.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", + "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", + "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", + "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/network/server/AuthoritativeInputIngestionContract.js", + "file": "www/src/engine/network/server/AuthoritativeInputIngestionContract.js", "type": "local-helper-definition", "match": "rule:helper-fn-isPlainObject" }, { - "file": "src/engine/network/server/AuthoritativeServerRuntime.js", + "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/server/AuthoritativeServerRuntime.js", + "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/server/AuthoritativeServerRuntime.js", + "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/network/server/AuthoritativeServerRuntime.js", + "file": "www/src/engine/network/server/AuthoritativeServerRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/network/session/ChatPresenceLayer.js", + "file": "www/src/engine/network/session/ChatPresenceLayer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/session/ChatPresenceLayer.js", + "file": "www/src/engine/network/session/ChatPresenceLayer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/session/HandshakeSimulator.js", + "file": "www/src/engine/network/session/HandshakeSimulator.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/session/HandshakeSimulator.js", + "file": "www/src/engine/network/session/HandshakeSimulator.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/session/LobbySessionManager.js", + "file": "www/src/engine/network/session/LobbySessionManager.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/session/LobbySessionManager.js", + "file": "www/src/engine/network/session/LobbySessionManager.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/transport/LoopbackTransport.js", + "file": "www/src/engine/network/transport/LoopbackTransport.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/transport/LoopbackTransport.js", + "file": "www/src/engine/network/transport/LoopbackTransport.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/network/transport/Serializer.js", + "file": "www/src/engine/network/transport/Serializer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/network/transport/Serializer.js", + "file": "www/src/engine/network/transport/Serializer.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/physics/arcadeBody.js", + "file": "www/src/engine/physics/arcadeBody.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/physics/arcadeBody.js", + "file": "www/src/engine/physics/arcadeBody.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/physics/collision3d.js", + "file": "www/src/engine/physics/collision3d.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/physics/collision3d.js", + "file": "www/src/engine/physics/collision3d.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/physics/integration3d.js", + "file": "www/src/engine/physics/integration3d.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/physics/integration3d.js", + "file": "www/src/engine/physics/integration3d.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/release/SettingsSystem.js", + "file": "www/src/engine/release/SettingsSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/release/SettingsSystem.js", + "file": "www/src/engine/release/SettingsSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorRuntimeAssetService.js", + "file": "www/src/engine/rendering/ObjectVectorRuntimeAssetService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/ObjectVectorTransformService.js", + "file": "www/src/engine/rendering/ObjectVectorTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/WorldScreenTransformService.js", + "file": "www/src/engine/rendering/WorldScreenTransformService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/rendering/WorldScreenTransformService.js", + "file": "www/src/engine/rendering/WorldScreenTransformService.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/rendering/WorldScreenTransformService.js", + "file": "www/src/engine/rendering/WorldScreenTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/WorldScreenTransformService.js", + "file": "www/src/engine/rendering/WorldScreenTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/WorldScreenTransformService.js", + "file": "www/src/engine/rendering/WorldScreenTransformService.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/rendering/WorldScreenTransformService.js", + "file": "www/src/engine/rendering/WorldScreenTransformService.js", "type": "renamed-helper-clone", "match": "rule:renamed-helper-finiteNumber" }, { - "file": "src/engine/replay/ReplayModel.js", + "file": "www/src/engine/replay/ReplayModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplayModel.js", + "file": "www/src/engine/replay/ReplayModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplayModel.js", + "file": "www/src/engine/replay/ReplayModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/replay/ReplayModel.js", + "file": "www/src/engine/replay/ReplayModel.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/replay/ReplayModel.js", + "file": "www/src/engine/replay/ReplayModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/replay/ReplaySystem.js", + "file": "www/src/engine/replay/ReplaySystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplaySystem.js", + "file": "www/src/engine/replay/ReplaySystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplaySystem.js", + "file": "www/src/engine/replay/ReplaySystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/replay/ReplaySystem.js", + "file": "www/src/engine/replay/ReplaySystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/replay/ReplayTimeline.js", + "file": "www/src/engine/replay/ReplayTimeline.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplayTimeline.js", + "file": "www/src/engine/replay/ReplayTimeline.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplayTimeline.js", + "file": "www/src/engine/replay/ReplayTimeline.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/replay/ReplayTimeline.js", + "file": "www/src/engine/replay/ReplayTimeline.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/replay/ReplayTimeline.js", + "file": "www/src/engine/replay/ReplayTimeline.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/replay/ReplayTimeline.js", + "file": "www/src/engine/replay/ReplayTimeline.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/runtime/engineV2AnimationRuntime.js", + "file": "www/src/engine/runtime/engineV2AnimationRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2AnimationRuntime.js", + "file": "www/src/engine/runtime/engineV2AnimationRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2AnimationRuntime.js", + "file": "www/src/engine/runtime/engineV2AnimationRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2AudioRuntime.js", + "file": "www/src/engine/runtime/engineV2AudioRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CameraRuntime.js", + "file": "www/src/engine/runtime/engineV2CameraRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", + "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", + "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", + "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ChaseFleeBehavior.js", + "file": "www/src/engine/runtime/engineV2ChaseFleeBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CheckpointSystem.js", + "file": "www/src/engine/runtime/engineV2CheckpointSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2CheckpointSystem.js", + "file": "www/src/engine/runtime/engineV2CheckpointSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EconomyAndCurrency.js", + "file": "www/src/engine/runtime/engineV2EconomyAndCurrency.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EconomyAndCurrency.js", + "file": "www/src/engine/runtime/engineV2EconomyAndCurrency.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EconomyAndCurrency.js", + "file": "www/src/engine/runtime/engineV2EconomyAndCurrency.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EffectRuntime.js", + "file": "www/src/engine/runtime/engineV2EffectRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EffectRuntime.js", + "file": "www/src/engine/runtime/engineV2EffectRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EffectRuntime.js", + "file": "www/src/engine/runtime/engineV2EffectRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EffectRuntime.js", + "file": "www/src/engine/runtime/engineV2EffectRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EffectRuntime.js", + "file": "www/src/engine/runtime/engineV2EffectRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2EffectRuntime.js", + "file": "www/src/engine/runtime/engineV2EffectRuntime.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ModifierStack.js", + "file": "www/src/engine/runtime/engineV2ModifierStack.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ModifierStack.js", + "file": "www/src/engine/runtime/engineV2ModifierStack.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ModifierStack.js", + "file": "www/src/engine/runtime/engineV2ModifierStack.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ObjectiveSystem.js", + "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ObjectiveSystem.js", + "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ObjectiveSystem.js", + "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ObjectiveSystem.js", + "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ObjectiveSystem.js", + "file": "www/src/engine/runtime/engineV2ObjectiveSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2PatrolBehavior.js", + "file": "www/src/engine/runtime/engineV2PatrolBehavior.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProfileStateSystem.js", + "file": "www/src/engine/runtime/engineV2ProfileStateSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProfileStateSystem.js", + "file": "www/src/engine/runtime/engineV2ProfileStateSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2ProjectileSystem.js", + "file": "www/src/engine/runtime/engineV2ProjectileSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2StatusEffectSystem.js", + "file": "www/src/engine/runtime/engineV2StatusEffectSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2VendorSystem.js", + "file": "www/src/engine/runtime/engineV2VendorSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/engineV2WeaponSystem.js", + "file": "www/src/engine/runtime/engineV2WeaponSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/fullscreenBezel.js", + "file": "www/src/engine/runtime/fullscreenBezel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/fullscreenBezel.js", + "file": "www/src/engine/runtime/fullscreenBezel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/fullscreenBezel.js", + "file": "www/src/engine/runtime/fullscreenBezel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/gameImageConvention.js", + "file": "www/src/engine/runtime/gameImageConvention.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/runtime/gameImageConvention.js", + "file": "www/src/engine/runtime/gameImageConvention.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/runtime/gameImageConvention.js", + "file": "www/src/engine/runtime/gameImageConvention.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/runtime/gameImageConvention.js", + "file": "www/src/engine/runtime/gameImageConvention.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/runtime/runtimeActionSystem.js", + "file": "www/src/engine/runtime/runtimeActionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeActionSystem.js", + "file": "www/src/engine/runtime/runtimeActionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeActionSystem.js", + "file": "www/src/engine/runtime/runtimeActionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeConditionSystem.js", + "file": "www/src/engine/runtime/runtimeConditionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeConditionSystem.js", + "file": "www/src/engine/runtime/runtimeConditionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeConditionSystem.js", + "file": "www/src/engine/runtime/runtimeConditionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeConditionSystem.js", + "file": "www/src/engine/runtime/runtimeConditionSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeCooldownProcessing.js", + "file": "www/src/engine/runtime/runtimeCooldownProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeCooldownProcessing.js", + "file": "www/src/engine/runtime/runtimeCooldownProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeCooldownProcessing.js", + "file": "www/src/engine/runtime/runtimeCooldownProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeDamageProcessing.js", + "file": "www/src/engine/runtime/runtimeDamageProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeDamageProcessing.js", + "file": "www/src/engine/runtime/runtimeDamageProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeDamageProcessing.js", + "file": "www/src/engine/runtime/runtimeDamageProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeDamageProcessing.js", + "file": "www/src/engine/runtime/runtimeDamageProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeDamageProcessing.js", + "file": "www/src/engine/runtime/runtimeDamageProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeEnvironmentEffects.js", + "file": "www/src/engine/runtime/runtimeEnvironmentEffects.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeEnvironmentEffects.js", + "file": "www/src/engine/runtime/runtimeEnvironmentEffects.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeEnvironmentForceInstantiation.js", + "file": "www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeEnvironmentForceInstantiation.js", + "file": "www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeEnvironmentForceInstantiation.js", + "file": "www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeEventSystem.js", + "file": "www/src/engine/runtime/runtimeEventSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/runtime/runtimeEventSystem.js", + "file": "www/src/engine/runtime/runtimeEventSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeHealthModel.js", + "file": "www/src/engine/runtime/runtimeHealthModel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeInputPipeline.js", + "file": "www/src/engine/runtime/runtimeInputPipeline.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeInputPipeline.js", + "file": "www/src/engine/runtime/runtimeInputPipeline.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeLivesAndRespawn.js", + "file": "www/src/engine/runtime/runtimeLivesAndRespawn.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeLivesAndRespawn.js", + "file": "www/src/engine/runtime/runtimeLivesAndRespawn.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeMovementProcessing.js", + "file": "www/src/engine/runtime/runtimeMovementProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeMovementProcessing.js", + "file": "www/src/engine/runtime/runtimeMovementProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeMovementProcessing.js", + "file": "www/src/engine/runtime/runtimeMovementProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeObjectInstantiation.js", + "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeObjectInstantiation.js", + "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeObjectInstantiation.js", + "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeObjectInstantiation.js", + "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeObjectInstantiation.js", + "file": "www/src/engine/runtime/runtimeObjectInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeOutcomeProcessing.js", + "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeOutcomeProcessing.js", + "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeOutcomeProcessing.js", + "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeOutcomeProcessing.js", + "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeOutcomeProcessing.js", + "file": "www/src/engine/runtime/runtimeOutcomeProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeScoringAndStateProcessing.js", + "file": "www/src/engine/runtime/runtimeScoringAndStateProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeScoringAndStateProcessing.js", + "file": "www/src/engine/runtime/runtimeScoringAndStateProcessing.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTerrainEffects.js", + "file": "www/src/engine/runtime/runtimeTerrainEffects.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTerrainEffects.js", + "file": "www/src/engine/runtime/runtimeTerrainEffects.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTerrainEffects.js", + "file": "www/src/engine/runtime/runtimeTerrainEffects.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTerrainMaterialInstantiation.js", + "file": "www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTerrainMaterialInstantiation.js", + "file": "www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTerrainMaterialInstantiation.js", + "file": "www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTickLoop.js", + "file": "www/src/engine/runtime/runtimeTickLoop.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTickLoop.js", + "file": "www/src/engine/runtime/runtimeTickLoop.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/runtime/runtimeTickLoop.js", + "file": "www/src/engine/runtime/runtimeTickLoop.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/engine/scene/SceneManager.js", + "file": "www/src/engine/scene/SceneManager.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/scene/SceneManager.js", + "file": "www/src/engine/scene/SceneManager.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/systems/BoundsSystem.js", + "file": "www/src/engine/systems/BoundsSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/systems/BoundsSystem.js", + "file": "www/src/engine/systems/BoundsSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/engine/systems/MovementSystem.js", + "file": "www/src/engine/systems/MovementSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/engine/systems/MovementSystem.js", + "file": "www/src/engine/systems/MovementSystem.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/shared/color/color.js", + "file": "www/src/shared/color/color.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, @@ -3222,582 +3222,582 @@ "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/game/highScores.js", + "file": "www/src/shared/game/highScores.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/geometry/geometry.js", + "file": "www/src/shared/geometry/geometry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/geometry.js", + "file": "www/src/shared/math/geometry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/geometry.js", + "file": "www/src/shared/math/geometry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "local-helper-definition", "match": "rule:helper-fn-asFiniteNumber" }, { - "file": "src/shared/math/numberNormalization.js", + "file": "www/src/shared/math/numberNormalization.js", "type": "local-helper-definition", "match": "rule:helper-fn-asPositiveInteger" }, { - "file": "src/shared/math/randomHelpers.js", + "file": "www/src/shared/math/randomHelpers.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/math/randomHelpers.js", + "file": "www/src/shared/math/randomHelpers.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/noise/noise.js", + "file": "www/src/shared/noise/noise.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/noise/noise.js", + "file": "www/src/shared/noise/noise.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/noise/noise.js", + "file": "www/src/shared/noise/noise.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/number/numbers.js", + "file": "www/src/shared/number/numbers.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/object/objects.js", + "file": "www/src/shared/object/objects.js", "type": "local-helper-definition", "match": "rule:helper-fn-isPlainObject" }, { - "file": "src/shared/state/normalization.js", + "file": "www/src/shared/state/normalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/state/normalization.js", + "file": "www/src/shared/state/normalization.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/time/time.js", + "file": "www/src/shared/time/time.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/assetMarketplace.js", + "file": "www/src/shared/toolbox/assetMarketplace.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/assetMarketplace.js", + "file": "www/src/shared/toolbox/assetMarketplace.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/collaborationSystem.js", + "file": "www/src/shared/toolbox/collaborationSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/collaborationSystem.js", + "file": "www/src/shared/toolbox/collaborationSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/collaborationSystem.js", + "file": "www/src/shared/toolbox/collaborationSystem.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/debugVisualizationLayer.js", + "file": "www/src/shared/toolbox/debugVisualizationLayer.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/debugVisualizationLayer.js", + "file": "www/src/shared/toolbox/debugVisualizationLayer.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/debugVisualizationLayer.js", + "file": "www/src/shared/toolbox/debugVisualizationLayer.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/devConsoleDebugOverlay.js", + "file": "www/src/shared/toolbox/devConsoleDebugOverlay.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/documentModeGuards.js", + "file": "www/src/shared/toolbox/documentModeGuards.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/documentModeGuards.js", + "file": "www/src/shared/toolbox/documentModeGuards.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/livePreviewSyncChannel.js", + "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/livePreviewSyncChannel.js", + "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/livePreviewSyncChannel.js", + "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/livePreviewSyncChannel.js", + "file": "www/src/shared/toolbox/livePreviewSyncChannel.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/paletteDocumentContract.js", + "file": "www/src/shared/toolbox/paletteDocumentContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/paletteDocumentContract.js", + "file": "www/src/shared/toolbox/paletteDocumentContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/paletteDocumentContract.js", + "file": "www/src/shared/toolbox/paletteDocumentContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/performanceBenchmarks.js", + "file": "www/src/shared/toolbox/performanceBenchmarks.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/performanceBenchmarks.js", + "file": "www/src/shared/toolbox/performanceBenchmarks.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/performanceBenchmarks.js", + "file": "www/src/shared/toolbox/performanceBenchmarks.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/performanceProfiler.js", + "file": "www/src/shared/toolbox/performanceProfiler.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/pluginArchitecture.js", + "file": "www/src/shared/toolbox/pluginArchitecture.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectAssetRegistry.js", + "file": "www/src/shared/toolbox/projectAssetRegistry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectAssetRegistry.js", + "file": "www/src/shared/toolbox/projectAssetRegistry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectAssetRegistry.js", + "file": "www/src/shared/toolbox/projectAssetRegistry.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectAssetValidation.js", + "file": "www/src/shared/toolbox/projectAssetValidation.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectPackaging.js", + "file": "www/src/shared/toolbox/projectPackaging.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectPackaging.js", + "file": "www/src/shared/toolbox/projectPackaging.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectPackaging.js", + "file": "www/src/shared/toolbox/projectPackaging.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectPackaging.js", + "file": "www/src/shared/toolbox/projectPackaging.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectSystemAdapters.js", + "file": "www/src/shared/toolbox/projectSystemAdapters.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectSystemAdapters.js", + "file": "www/src/shared/toolbox/projectSystemAdapters.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectSystemAdapters.js", + "file": "www/src/shared/toolbox/projectSystemAdapters.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectSystemAdapters.js", + "file": "www/src/shared/toolbox/projectSystemAdapters.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/projectVersioning.js", + "file": "www/src/shared/toolbox/projectVersioning.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/renderPipelineContract.js", + "file": "www/src/shared/toolbox/renderPipelineContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/runtimeAssetValidationUtils.js", + "file": "www/src/shared/toolbox/runtimeAssetValidationUtils.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/runtimeSceneLoaderHotReload.js", + "file": "www/src/shared/toolbox/runtimeSceneLoaderHotReload.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/toolLoadDiagnostics.js", + "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/toolLoadDiagnostics.js", + "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/toolLoadDiagnostics.js", + "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/toolLoadDiagnostics.js", + "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/toolLoadDiagnostics.js", + "file": "www/src/shared/toolbox/toolLoadDiagnostics.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorAssetContract.js", + "file": "www/src/shared/toolbox/vector/vectorAssetContract.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/toolbox/vector/vectorGeometryMath.js", + "file": "www/src/shared/toolbox/vector/vectorGeometryMath.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/shared/validation/assert.js", + "file": "www/src/shared/validation/assert.js", "type": "inline-helper-clone", "match": "rule:number-is-finite-usage" }, { - "file": "src/tools/common/GameManifestLoader.js", + "file": "www/src/tools/common/GameManifestLoader.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/tools/common/GameManifestLoader.js", + "file": "www/src/tools/common/GameManifestLoader.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/tools/common/GameManifestLoader.js", + "file": "www/src/tools/common/GameManifestLoader.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/tools/common/GameManifestLoader.js", + "file": "www/src/tools/common/GameManifestLoader.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/tools/common/WorkspaceDirtyNotifier.js", + "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/tools/common/WorkspaceDirtyNotifier.js", + "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-1" }, { - "file": "src/tools/common/WorkspaceDirtyNotifier.js", + "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, { - "file": "src/tools/common/WorkspaceDirtyNotifier.js", + "file": "www/src/tools/common/WorkspaceDirtyNotifier.js", "type": "direct-shared-relative-import", "match": "rule:relative-shared-depth-2" }, diff --git a/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js b/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js index d2ed4dc15..8cbe523ea 100644 --- a/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js +++ b/dev/tools/toolbox-dev/commandPacks/groupCommandPack.js @@ -12,9 +12,9 @@ import { requireNoArgs } from "./packUtils.js"; import { createResult } from "./commandPackResultUtils.js"; -import { getRuntimeAndRegistry } from "../../../../src/shared/runtime/registry.js"; +import { getRuntimeAndRegistry } from "../../../../www/src/shared/runtime/registry.js"; -import { sanitizeText } from "../../../../src/shared/string/strings.js"; +import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; function buildSnapshot(panelRegistry) { const panels = panelRegistry.getOrderedPanels(true); diff --git a/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js b/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js index bca26dbc5..5eb4be228 100644 --- a/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js +++ b/dev/tools/toolbox-dev/commandPacks/inspectorCommandPack.js @@ -13,9 +13,9 @@ import { standardDetails, toLinePair } from "./packUtils.js"; -import { stringifyValue } from "../../../../src/shared/string/stringifyValue.js"; +import { stringifyValue } from "../../../../www/src/shared/string/stringifyValue.js"; -import { sanitizeText } from "../../../../src/shared/string/strings.js"; +import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; function asPositiveInt(value, fallback) { const normalized = Number.isFinite(value) ? Math.floor(Number(value)) : fallback; diff --git a/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js b/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js index 030c4e9fd..848d0ab61 100644 --- a/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js +++ b/dev/tools/toolbox-dev/commandPacks/macroCommandPack.js @@ -14,7 +14,7 @@ import { } from "./packUtils.js"; import { createResult } from "./commandPackResultUtils.js"; -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; const macroRegistry = new DebugMacroRegistry(); registerStandardDebugMacros(macroRegistry, "standard"); diff --git a/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js b/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js index 301d785da..fefb7043d 100644 --- a/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js +++ b/dev/tools/toolbox-dev/commandPacks/overlayCommandPack.js @@ -11,9 +11,9 @@ import { standardDetails, toLinePair } from "./packUtils.js"; -import { getRuntimeAndRegistry } from "../../../../src/shared/runtime/registry.js"; +import { getRuntimeAndRegistry } from "../../../../www/src/shared/runtime/registry.js"; -import { sanitizeText } from "../../../../src/shared/string/strings.js"; +import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; function createFailedResult(title, lines, code, details = {}) { return { diff --git a/dev/tools/toolbox-dev/commandPacks/packUtils.js b/dev/tools/toolbox-dev/commandPacks/packUtils.js index 12bd42b0f..6db0fe631 100644 --- a/dev/tools/toolbox-dev/commandPacks/packUtils.js +++ b/dev/tools/toolbox-dev/commandPacks/packUtils.js @@ -5,8 +5,8 @@ David Quesenberry packUtils.js */ -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { isObject } from "../../../../src/shared/object/objects.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { isObject } from "../../../../www/src/shared/object/objects.js"; export function requireNoArgs({ args = [], commandName = "" } = {}) { if (Array.isArray(args) && args.length > 0) { diff --git a/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js b/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js index cb332be06..cf5c7e04c 100644 --- a/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js +++ b/dev/tools/toolbox-dev/commandPacks/presetCommandPack.js @@ -7,10 +7,10 @@ presetCommandPack.js import { DebugPresetApplier } from "../presets/debugPresetApplier.js"; import { DebugPresetRegistry } from "../presets/debugPresetRegistry.js"; -import { registerAdvancedInspectorDebugPresets } from '../../../../src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js'; +import { registerAdvancedInspectorDebugPresets } from '../../../../www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js'; import { registerPresetCommands } from "../presets/registerPresetCommands.js"; import { registerStandardDebugPresets } from "../presets/registerStandardDebugPresets.js"; -import { registerStandard3dDebugPresets } from '../../../../src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js'; +import { registerStandard3dDebugPresets } from '../../../../www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js'; export function createPresetCommandPack() { const presetRegistry = new DebugPresetRegistry(); diff --git a/dev/tools/toolbox-dev/devConsoleCommandRegistry.js b/dev/tools/toolbox-dev/devConsoleCommandRegistry.js index 89a32c25b..d650ce115 100644 --- a/dev/tools/toolbox-dev/devConsoleCommandRegistry.js +++ b/dev/tools/toolbox-dev/devConsoleCommandRegistry.js @@ -5,8 +5,8 @@ David Quesenberry devConsoleCommandRegistry.js */ -import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { isObject } from "../../../src/shared/object/objects.js"; +import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { isObject } from "../../../www/src/shared/object/objects.js"; function toLines(lines) { if (!Array.isArray(lines)) { diff --git a/dev/tools/toolbox-dev/devConsoleIntegration.js b/dev/tools/toolbox-dev/devConsoleIntegration.js index 2712ecc9f..25f0e3383 100644 --- a/dev/tools/toolbox-dev/devConsoleIntegration.js +++ b/dev/tools/toolbox-dev/devConsoleIntegration.js @@ -22,13 +22,13 @@ import { createToggleCommandPack } from "./commandPacks/toggleCommandPack.js"; import { createValidationCommandPack } from "./commandPacks/validationCommandPack.js"; import { createInspectorStore } from "./inspectors/inspectorStore.js"; import { createDebugPluginRegistry } from "./plugins/debugPluginSystem.js"; -import { ensureArray } from "../../../src/shared/array/arrays.js"; -import { cloneJson } from "../../../src/shared/json/clone.js"; +import { ensureArray } from "../../../www/src/shared/array/arrays.js"; +import { cloneJson } from "../../../www/src/shared/json/clone.js"; import { createDiagnosticsCollector, createDevConsoleDebugOverlayRuntime -} from "../../../src/shared/toolbox/devConsoleDebugOverlay.js"; +} from "../../../www/src/shared/toolbox/devConsoleDebugOverlay.js"; const DEFAULT_WORLD_STAGES = Object.freeze([ "parallax", @@ -58,8 +58,8 @@ const DEFAULT_PLUGIN_CAPABILITIES = Object.freeze([ Object.freeze({ capabilityId: "debug.diagnostics.snapshot", version: "1.0.0" }) ]); -import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { isObject } from "../../../src/shared/object/objects.js"; +import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { isObject } from "../../../www/src/shared/object/objects.js"; function toContextSection(context, field) { return isObject(context?.[field]) ? context[field] : {}; diff --git a/dev/tools/toolbox-dev/inspectors/inspectorStore.js b/dev/tools/toolbox-dev/inspectors/inspectorStore.js index e1cc322dd..362b283d5 100644 --- a/dev/tools/toolbox-dev/inspectors/inspectorStore.js +++ b/dev/tools/toolbox-dev/inspectors/inspectorStore.js @@ -11,9 +11,9 @@ const DEFAULT_LIMITS = Object.freeze({ eventStreamMax: 300 }); -import { asArray, asObject, sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { isObject } from "../../../../src/shared/object/objects.js"; -import { cloneJson } from "../../../../src/shared/json/clone.js"; +import { asArray, asObject, sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { isObject } from "../../../../www/src/shared/object/objects.js"; +import { cloneJson } from "../../../../www/src/shared/json/clone.js"; function asFinite(value, fallback = 0) { return Number.isFinite(value) ? Number(value) : fallback; diff --git a/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js b/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js index 352ff9e23..cd9ff677a 100644 --- a/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js +++ b/dev/tools/toolbox-dev/interactiveDevConsoleRenderer.js @@ -5,7 +5,7 @@ David Quesenberry interactiveDevConsoleRenderer.js */ -import { sanitizeText } from "../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { sanitizeText } from "../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; function toLines(lines) { if (!Array.isArray(lines)) { diff --git a/dev/tools/toolbox-dev/plugins/debugPluginSystem.js b/dev/tools/toolbox-dev/plugins/debugPluginSystem.js index ec7c6ec7a..44afa74c1 100644 --- a/dev/tools/toolbox-dev/plugins/debugPluginSystem.js +++ b/dev/tools/toolbox-dev/plugins/debugPluginSystem.js @@ -5,9 +5,9 @@ David Quesenberry debugPluginSystem.js */ -import { asArray, asObject, sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { isObject } from "../../../../src/shared/object/objects.js"; -import { cloneJson } from "../../../../src/shared/json/clone.js"; +import { asArray, asObject, sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { isObject } from "../../../../www/src/shared/object/objects.js"; +import { cloneJson } from "../../../../www/src/shared/json/clone.js"; function asPositiveInt(value, fallback) { const normalized = Number.isFinite(value) ? Math.floor(Number(value)) : fallback; diff --git a/dev/tools/toolbox-dev/presets/debugPresetApplier.js b/dev/tools/toolbox-dev/presets/debugPresetApplier.js index b9ce0e261..bb298476a 100644 --- a/dev/tools/toolbox-dev/presets/debugPresetApplier.js +++ b/dev/tools/toolbox-dev/presets/debugPresetApplier.js @@ -5,10 +5,10 @@ David Quesenberry debugPresetApplier.js */ -import { sanitizeText } from "../../../../src/shared/string/strings.js"; -import { cloneJson } from "../../../../src/shared/json/clone.js"; -import { getRuntimeAndRegistry } from "../../../../src/shared/runtime/registry.js"; -import { toResult } from "../../../../src/engine/debug/shared/debugCommandResultUtils.js"; +import { sanitizeText } from "../../../../www/src/shared/string/strings.js"; +import { cloneJson } from "../../../../www/src/shared/json/clone.js"; +import { getRuntimeAndRegistry } from "../../../../www/src/shared/runtime/registry.js"; +import { toResult } from "../../../../www/src/engine/debug/shared/debugCommandResultUtils.js"; function getAllPanels(panelRegistry) { const panels = panelRegistry.getOrderedPanels(true); diff --git a/dev/tools/toolbox-dev/presets/debugPresetRegistry.js b/dev/tools/toolbox-dev/presets/debugPresetRegistry.js index de6477ef4..16d827ee1 100644 --- a/dev/tools/toolbox-dev/presets/debugPresetRegistry.js +++ b/dev/tools/toolbox-dev/presets/debugPresetRegistry.js @@ -5,10 +5,10 @@ David Quesenberry debugPresetRegistry.js */ -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; -import { asStringArray } from "../../../../src/shared/array/arrays.js"; -import { isObject } from "../../../../src/shared/object/objects.js"; -import { cloneJson } from "../../../../src/shared/json/clone.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { asStringArray } from "../../../../www/src/shared/array/arrays.js"; +import { isObject } from "../../../../www/src/shared/object/objects.js"; +import { cloneJson } from "../../../../www/src/shared/json/clone.js"; function normalizePresetDescriptor(descriptor = {}) { const presetId = sanitizeText(descriptor.presetId); diff --git a/dev/tools/toolbox-dev/presets/registerPresetCommands.js b/dev/tools/toolbox-dev/presets/registerPresetCommands.js index d86da600f..effed1a88 100644 --- a/dev/tools/toolbox-dev/presets/registerPresetCommands.js +++ b/dev/tools/toolbox-dev/presets/registerPresetCommands.js @@ -10,7 +10,7 @@ import { requireNoArgs } from "../commandPacks/packUtils.js"; -import { sanitizeText } from "../../../../src/engine/debug/inspectors/shared/inspectorUtils.js"; +import { sanitizeText } from "../../../../www/src/engine/debug/inspectors/shared/inspectorUtils.js"; function createCommandResult(status, title, lines, code, details = {}) { return { diff --git a/src/advanced/promotion/createPromotionGate.js b/www/src/advanced/promotion/createPromotionGate.js similarity index 100% rename from src/advanced/promotion/createPromotionGate.js rename to www/src/advanced/promotion/createPromotionGate.js diff --git a/src/advanced/state/constants.js b/www/src/advanced/state/constants.js similarity index 100% rename from src/advanced/state/constants.js rename to www/src/advanced/state/constants.js diff --git a/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js b/www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js similarity index 100% rename from src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js rename to www/src/advanced/state/consumers/createObjectiveProgressMirrorConsumer.js diff --git a/src/advanced/state/createWorldGameStateSystem.js b/www/src/advanced/state/createWorldGameStateSystem.js similarity index 100% rename from src/advanced/state/createWorldGameStateSystem.js rename to www/src/advanced/state/createWorldGameStateSystem.js diff --git a/src/advanced/state/events.js b/www/src/advanced/state/events.js similarity index 100% rename from src/advanced/state/events.js rename to www/src/advanced/state/events.js diff --git a/src/advanced/state/initialState.js b/www/src/advanced/state/initialState.js similarity index 100% rename from src/advanced/state/initialState.js rename to www/src/advanced/state/initialState.js diff --git a/src/advanced/state/integration/registerWorldGameStateSystem.js b/www/src/advanced/state/integration/registerWorldGameStateSystem.js similarity index 100% rename from src/advanced/state/integration/registerWorldGameStateSystem.js rename to www/src/advanced/state/integration/registerWorldGameStateSystem.js diff --git a/src/advanced/state/selectors.js b/www/src/advanced/state/selectors.js similarity index 100% rename from src/advanced/state/selectors.js rename to www/src/advanced/state/selectors.js diff --git a/src/advanced/state/transitions.js b/www/src/advanced/state/transitions.js similarity index 100% rename from src/advanced/state/transitions.js rename to www/src/advanced/state/transitions.js diff --git a/src/advanced/state/utils.js b/www/src/advanced/state/utils.js similarity index 100% rename from src/advanced/state/utils.js rename to www/src/advanced/state/utils.js diff --git a/src/api/admin-infrastructure-api-client.js b/www/src/api/admin-infrastructure-api-client.js similarity index 100% rename from src/api/admin-infrastructure-api-client.js rename to www/src/api/admin-infrastructure-api-client.js diff --git a/src/api/admin-invitations-api-client.js b/www/src/api/admin-invitations-api-client.js similarity index 100% rename from src/api/admin-invitations-api-client.js rename to www/src/api/admin-invitations-api-client.js diff --git a/src/api/admin-operations-api-client.js b/www/src/api/admin-operations-api-client.js similarity index 100% rename from src/api/admin-operations-api-client.js rename to www/src/api/admin-operations-api-client.js diff --git a/src/api/admin-owner-navigation.js b/www/src/api/admin-owner-navigation.js similarity index 100% rename from src/api/admin-owner-navigation.js rename to www/src/api/admin-owner-navigation.js diff --git a/src/api/admin-setup-api-client.js b/www/src/api/admin-setup-api-client.js similarity index 100% rename from src/api/admin-setup-api-client.js rename to www/src/api/admin-setup-api-client.js diff --git a/src/api/admin-system-health-api-client.js b/www/src/api/admin-system-health-api-client.js similarity index 100% rename from src/api/admin-system-health-api-client.js rename to www/src/api/admin-system-health-api-client.js diff --git a/src/api/ai-credits-api-client.js b/www/src/api/ai-credits-api-client.js similarity index 100% rename from src/api/ai-credits-api-client.js rename to www/src/api/ai-credits-api-client.js diff --git a/src/api/db-viewer-api-client.js b/www/src/api/db-viewer-api-client.js similarity index 100% rename from src/api/db-viewer-api-client.js rename to www/src/api/db-viewer-api-client.js diff --git a/src/api/db-viewer-ui.js b/www/src/api/db-viewer-ui.js similarity index 100% rename from src/api/db-viewer-ui.js rename to www/src/api/db-viewer-ui.js diff --git a/src/api/game-journey-completion-api-client.js b/www/src/api/game-journey-completion-api-client.js similarity index 100% rename from src/api/game-journey-completion-api-client.js rename to www/src/api/game-journey-completion-api-client.js diff --git a/src/api/legal-api-client.js b/www/src/api/legal-api-client.js similarity index 100% rename from src/api/legal-api-client.js rename to www/src/api/legal-api-client.js diff --git a/src/api/marketplace-api-client.js b/www/src/api/marketplace-api-client.js similarity index 100% rename from src/api/marketplace-api-client.js rename to www/src/api/marketplace-api-client.js diff --git a/src/api/memberships-api-client.js b/www/src/api/memberships-api-client.js similarity index 100% rename from src/api/memberships-api-client.js rename to www/src/api/memberships-api-client.js diff --git a/src/api/owner-ai-credits-api-client.js b/www/src/api/owner-ai-credits-api-client.js similarity index 100% rename from src/api/owner-ai-credits-api-client.js rename to www/src/api/owner-ai-credits-api-client.js diff --git a/src/api/owner-memberships-api-client.js b/www/src/api/owner-memberships-api-client.js similarity index 100% rename from src/api/owner-memberships-api-client.js rename to www/src/api/owner-memberships-api-client.js diff --git a/src/api/platform-settings-api-client.js b/www/src/api/platform-settings-api-client.js similarity index 100% rename from src/api/platform-settings-api-client.js rename to www/src/api/platform-settings-api-client.js diff --git a/src/api/public-config-client.js b/www/src/api/public-config-client.js similarity index 100% rename from src/api/public-config-client.js rename to www/src/api/public-config-client.js diff --git a/src/api/server-api-client.js b/www/src/api/server-api-client.js similarity index 100% rename from src/api/server-api-client.js rename to www/src/api/server-api-client.js diff --git a/src/api/session-api-client.js b/www/src/api/session-api-client.js similarity index 100% rename from src/api/session-api-client.js rename to www/src/api/session-api-client.js diff --git a/src/api/toolbox-votes-api-client.js b/www/src/api/toolbox-votes-api-client.js similarity index 100% rename from src/api/toolbox-votes-api-client.js rename to www/src/api/toolbox-votes-api-client.js diff --git a/src/dev-runtime/admin/admin-notes-viewer.js b/www/src/dev-runtime/admin/admin-notes-viewer.js similarity index 100% rename from src/dev-runtime/admin/admin-notes-viewer.js rename to www/src/dev-runtime/admin/admin-notes-viewer.js diff --git a/src/dev-runtime/admin/header-nav.local.html b/www/src/dev-runtime/admin/header-nav.local.html similarity index 100% rename from src/dev-runtime/admin/header-nav.local.html rename to www/src/dev-runtime/admin/header-nav.local.html diff --git a/src/dev-runtime/admin/notes.html b/www/src/dev-runtime/admin/notes.html similarity index 100% rename from src/dev-runtime/admin/notes.html rename to www/src/dev-runtime/admin/notes.html diff --git a/src/engine/ai/AIStateController.js b/www/src/engine/ai/AIStateController.js similarity index 100% rename from src/engine/ai/AIStateController.js rename to www/src/engine/ai/AIStateController.js diff --git a/src/engine/ai/GridPathfinding.js b/www/src/engine/ai/GridPathfinding.js similarity index 100% rename from src/engine/ai/GridPathfinding.js rename to www/src/engine/ai/GridPathfinding.js diff --git a/src/engine/ai/GroupBehaviors.js b/www/src/engine/ai/GroupBehaviors.js similarity index 100% rename from src/engine/ai/GroupBehaviors.js rename to www/src/engine/ai/GroupBehaviors.js diff --git a/src/engine/ai/PatrolSystem.js b/www/src/engine/ai/PatrolSystem.js similarity index 100% rename from src/engine/ai/PatrolSystem.js rename to www/src/engine/ai/PatrolSystem.js diff --git a/src/engine/ai/SteeringBehaviors.js b/www/src/engine/ai/SteeringBehaviors.js similarity index 100% rename from src/engine/ai/SteeringBehaviors.js rename to www/src/engine/ai/SteeringBehaviors.js diff --git a/src/engine/animation/AnimationController.js b/www/src/engine/animation/AnimationController.js similarity index 100% rename from src/engine/animation/AnimationController.js rename to www/src/engine/animation/AnimationController.js diff --git a/src/engine/assets/AssetLoaderSystem.js b/www/src/engine/assets/AssetLoaderSystem.js similarity index 100% rename from src/engine/assets/AssetLoaderSystem.js rename to www/src/engine/assets/AssetLoaderSystem.js diff --git a/src/engine/assets/AssetOptimizer.js b/www/src/engine/assets/AssetOptimizer.js similarity index 100% rename from src/engine/assets/AssetOptimizer.js rename to www/src/engine/assets/AssetOptimizer.js diff --git a/src/engine/assets/AssetRegistry.js b/www/src/engine/assets/AssetRegistry.js similarity index 100% rename from src/engine/assets/AssetRegistry.js rename to www/src/engine/assets/AssetRegistry.js diff --git a/src/engine/assets/ImageAssetLoader.js b/www/src/engine/assets/ImageAssetLoader.js similarity index 100% rename from src/engine/assets/ImageAssetLoader.js rename to www/src/engine/assets/ImageAssetLoader.js diff --git a/src/engine/assets/SpriteAtlas.js b/www/src/engine/assets/SpriteAtlas.js similarity index 100% rename from src/engine/assets/SpriteAtlas.js rename to www/src/engine/assets/SpriteAtlas.js diff --git a/src/engine/audio/AudioService.js b/www/src/engine/audio/AudioService.js similarity index 100% rename from src/engine/audio/AudioService.js rename to www/src/engine/audio/AudioService.js diff --git a/src/engine/audio/FrequencyPlayer.js b/www/src/engine/audio/FrequencyPlayer.js similarity index 100% rename from src/engine/audio/FrequencyPlayer.js rename to www/src/engine/audio/FrequencyPlayer.js diff --git a/src/engine/audio/GaplessLoopPlayer.js b/www/src/engine/audio/GaplessLoopPlayer.js similarity index 100% rename from src/engine/audio/GaplessLoopPlayer.js rename to www/src/engine/audio/GaplessLoopPlayer.js diff --git a/src/engine/audio/HtmlAudioMediaBackend.js b/www/src/engine/audio/HtmlAudioMediaBackend.js similarity index 100% rename from src/engine/audio/HtmlAudioMediaBackend.js rename to www/src/engine/audio/HtmlAudioMediaBackend.js diff --git a/src/engine/audio/InstrumentGridParser.js b/www/src/engine/audio/InstrumentGridParser.js similarity index 100% rename from src/engine/audio/InstrumentGridParser.js rename to www/src/engine/audio/InstrumentGridParser.js diff --git a/src/engine/audio/MediaTrackService.js b/www/src/engine/audio/MediaTrackService.js similarity index 100% rename from src/engine/audio/MediaTrackService.js rename to www/src/engine/audio/MediaTrackService.js diff --git a/src/engine/audio/MidiPlayer.js b/www/src/engine/audio/MidiPlayer.js similarity index 100% rename from src/engine/audio/MidiPlayer.js rename to www/src/engine/audio/MidiPlayer.js diff --git a/src/engine/audio/MidiSourceMetadataParser.js b/www/src/engine/audio/MidiSourceMetadataParser.js similarity index 100% rename from src/engine/audio/MidiSourceMetadataParser.js rename to www/src/engine/audio/MidiSourceMetadataParser.js diff --git a/src/engine/audio/PlaylistManager.js b/www/src/engine/audio/PlaylistManager.js similarity index 100% rename from src/engine/audio/PlaylistManager.js rename to www/src/engine/audio/PlaylistManager.js diff --git a/src/engine/audio/PreviewInstrumentPacks.js b/www/src/engine/audio/PreviewInstrumentPacks.js similarity index 100% rename from src/engine/audio/PreviewInstrumentPacks.js rename to www/src/engine/audio/PreviewInstrumentPacks.js diff --git a/src/engine/audio/PreviewSynthEngine.js b/www/src/engine/audio/PreviewSynthEngine.js similarity index 100% rename from src/engine/audio/PreviewSynthEngine.js rename to www/src/engine/audio/PreviewSynthEngine.js diff --git a/src/engine/audio/SongSheetParser.js b/www/src/engine/audio/SongSheetParser.js similarity index 100% rename from src/engine/audio/SongSheetParser.js rename to www/src/engine/audio/SongSheetParser.js diff --git a/src/engine/audio/SoundFontPreviewEngine.js b/www/src/engine/audio/SoundFontPreviewEngine.js similarity index 100% rename from src/engine/audio/SoundFontPreviewEngine.js rename to www/src/engine/audio/SoundFontPreviewEngine.js diff --git a/src/engine/audio/Synthesizer.js b/www/src/engine/audio/Synthesizer.js similarity index 100% rename from src/engine/audio/Synthesizer.js rename to www/src/engine/audio/Synthesizer.js diff --git a/src/engine/audio/TextToSpeechDefaults.js b/www/src/engine/audio/TextToSpeechDefaults.js similarity index 100% rename from src/engine/audio/TextToSpeechDefaults.js rename to www/src/engine/audio/TextToSpeechDefaults.js diff --git a/src/engine/audio/TextToSpeechEngine.js b/www/src/engine/audio/TextToSpeechEngine.js similarity index 100% rename from src/engine/audio/TextToSpeechEngine.js rename to www/src/engine/audio/TextToSpeechEngine.js diff --git a/src/engine/audio/WebAudioToneBackend.js b/www/src/engine/audio/WebAudioToneBackend.js similarity index 100% rename from src/engine/audio/WebAudioToneBackend.js rename to www/src/engine/audio/WebAudioToneBackend.js diff --git a/src/engine/automation/AutomatedTestRunner.js b/www/src/engine/automation/AutomatedTestRunner.js similarity index 100% rename from src/engine/automation/AutomatedTestRunner.js rename to www/src/engine/automation/AutomatedTestRunner.js diff --git a/src/engine/automation/BenchmarkRunner.js b/www/src/engine/automation/BenchmarkRunner.js similarity index 100% rename from src/engine/automation/BenchmarkRunner.js rename to www/src/engine/automation/BenchmarkRunner.js diff --git a/src/engine/automation/CIValidationFlow.js b/www/src/engine/automation/CIValidationFlow.js similarity index 100% rename from src/engine/automation/CIValidationFlow.js rename to www/src/engine/automation/CIValidationFlow.js diff --git a/src/engine/automation/RegressionPlaybackHarness.js b/www/src/engine/automation/RegressionPlaybackHarness.js similarity index 100% rename from src/engine/automation/RegressionPlaybackHarness.js rename to www/src/engine/automation/RegressionPlaybackHarness.js diff --git a/src/engine/camera/Camera2D.js b/www/src/engine/camera/Camera2D.js similarity index 100% rename from src/engine/camera/Camera2D.js rename to www/src/engine/camera/Camera2D.js diff --git a/src/engine/camera/Camera3D.js b/www/src/engine/camera/Camera3D.js similarity index 100% rename from src/engine/camera/Camera3D.js rename to www/src/engine/camera/Camera3D.js diff --git a/src/engine/camera/CameraSystem.js b/www/src/engine/camera/CameraSystem.js similarity index 100% rename from src/engine/camera/CameraSystem.js rename to www/src/engine/camera/CameraSystem.js diff --git a/src/engine/camera/ZoneCameraSystem.js b/www/src/engine/camera/ZoneCameraSystem.js similarity index 100% rename from src/engine/camera/ZoneCameraSystem.js rename to www/src/engine/camera/ZoneCameraSystem.js diff --git a/src/engine/collision/aabb.js b/www/src/engine/collision/aabb.js similarity index 100% rename from src/engine/collision/aabb.js rename to www/src/engine/collision/aabb.js diff --git a/src/engine/collision/combat/Combat.js b/www/src/engine/collision/combat/Combat.js similarity index 100% rename from src/engine/collision/combat/Combat.js rename to www/src/engine/collision/combat/Combat.js diff --git a/src/engine/collision/hitboxCollision.js b/www/src/engine/collision/hitboxCollision.js similarity index 100% rename from src/engine/collision/hitboxCollision.js rename to www/src/engine/collision/hitboxCollision.js diff --git a/src/engine/collision/hybrid.js b/www/src/engine/collision/hybrid.js similarity index 100% rename from src/engine/collision/hybrid.js rename to www/src/engine/collision/hybrid.js diff --git a/src/engine/collision/objectVector.js b/www/src/engine/collision/objectVector.js similarity index 100% rename from src/engine/collision/objectVector.js rename to www/src/engine/collision/objectVector.js diff --git a/src/engine/collision/polygon.js b/www/src/engine/collision/polygon.js similarity index 100% rename from src/engine/collision/polygon.js rename to www/src/engine/collision/polygon.js diff --git a/src/engine/collision/raster.js b/www/src/engine/collision/raster.js similarity index 100% rename from src/engine/collision/raster.js rename to www/src/engine/collision/raster.js diff --git a/src/engine/components/Components.js b/www/src/engine/components/Components.js similarity index 100% rename from src/engine/components/Components.js rename to www/src/engine/components/Components.js diff --git a/src/engine/config/ConfigStore.js b/www/src/engine/config/ConfigStore.js similarity index 100% rename from src/engine/config/ConfigStore.js rename to www/src/engine/config/ConfigStore.js diff --git a/src/engine/core/Engine.js b/www/src/engine/core/Engine.js similarity index 100% rename from src/engine/core/Engine.js rename to www/src/engine/core/Engine.js diff --git a/src/engine/core/FixedTicker.js b/www/src/engine/core/FixedTicker.js similarity index 100% rename from src/engine/core/FixedTicker.js rename to www/src/engine/core/FixedTicker.js diff --git a/src/engine/core/FrameClock.js b/www/src/engine/core/FrameClock.js similarity index 100% rename from src/engine/core/FrameClock.js rename to www/src/engine/core/FrameClock.js diff --git a/src/engine/core/RuntimeMetrics.js b/www/src/engine/core/RuntimeMetrics.js similarity index 100% rename from src/engine/core/RuntimeMetrics.js rename to www/src/engine/core/RuntimeMetrics.js diff --git a/src/engine/debug/CombatDebugOverlay.js b/www/src/engine/debug/CombatDebugOverlay.js similarity index 100% rename from src/engine/debug/CombatDebugOverlay.js rename to www/src/engine/debug/CombatDebugOverlay.js diff --git a/src/engine/debug/DebugOverlayLayout.js b/www/src/engine/debug/DebugOverlayLayout.js similarity index 100% rename from src/engine/debug/DebugOverlayLayout.js rename to www/src/engine/debug/DebugOverlayLayout.js diff --git a/src/engine/debug/DebugPanel.js b/www/src/engine/debug/DebugPanel.js similarity index 100% rename from src/engine/debug/DebugPanel.js rename to www/src/engine/debug/DebugPanel.js diff --git a/src/engine/debug/DebugTools.js b/www/src/engine/debug/DebugTools.js similarity index 100% rename from src/engine/debug/DebugTools.js rename to www/src/engine/debug/DebugTools.js diff --git a/src/engine/debug/Minimap.js b/www/src/engine/debug/Minimap.js similarity index 100% rename from src/engine/debug/Minimap.js rename to www/src/engine/debug/Minimap.js diff --git a/src/engine/debug/PerformanceMetricsPanel.js b/www/src/engine/debug/PerformanceMetricsPanel.js similarity index 100% rename from src/engine/debug/PerformanceMetricsPanel.js rename to www/src/engine/debug/PerformanceMetricsPanel.js diff --git a/src/engine/debug/StatsTracker.js b/www/src/engine/debug/StatsTracker.js similarity index 100% rename from src/engine/debug/StatsTracker.js rename to www/src/engine/debug/StatsTracker.js diff --git a/src/engine/debug/Validation.js b/www/src/engine/debug/Validation.js similarity index 100% rename from src/engine/debug/Validation.js rename to www/src/engine/debug/Validation.js diff --git a/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js b/www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js similarity index 100% rename from src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js rename to www/src/engine/debug/inspectors/bootstrap/createInspectorSurfaceIntegration.js diff --git a/src/engine/debug/inspectors/commands/registerInspectorCommands.js b/www/src/engine/debug/inspectors/commands/registerInspectorCommands.js similarity index 100% rename from src/engine/debug/inspectors/commands/registerInspectorCommands.js rename to www/src/engine/debug/inspectors/commands/registerInspectorCommands.js diff --git a/src/engine/debug/inspectors/host/debugInspectorHost.js b/www/src/engine/debug/inspectors/host/debugInspectorHost.js similarity index 100% rename from src/engine/debug/inspectors/host/debugInspectorHost.js rename to www/src/engine/debug/inspectors/host/debugInspectorHost.js diff --git a/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js b/www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js similarity index 100% rename from src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js rename to www/src/engine/debug/inspectors/presets/registerAdvancedInspectorDebugPresets.js diff --git a/src/engine/debug/inspectors/registry/debugInspectorRegistry.js b/www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js similarity index 100% rename from src/engine/debug/inspectors/registry/debugInspectorRegistry.js rename to www/src/engine/debug/inspectors/registry/debugInspectorRegistry.js diff --git a/src/engine/debug/inspectors/shared/inspectorUtils.js b/www/src/engine/debug/inspectors/shared/inspectorUtils.js similarity index 100% rename from src/engine/debug/inspectors/shared/inspectorUtils.js rename to www/src/engine/debug/inspectors/shared/inspectorUtils.js diff --git a/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js similarity index 100% rename from src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js rename to www/src/engine/debug/inspectors/viewModels/componentInspectorViewModel.js diff --git a/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js similarity index 100% rename from src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js rename to www/src/engine/debug/inspectors/viewModels/entityInspectorViewModel.js diff --git a/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js similarity index 100% rename from src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js rename to www/src/engine/debug/inspectors/viewModels/eventStreamInspectorViewModel.js diff --git a/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js similarity index 100% rename from src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js rename to www/src/engine/debug/inspectors/viewModels/stateDiffInspectorViewModel.js diff --git a/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js b/www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js similarity index 100% rename from src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js rename to www/src/engine/debug/inspectors/viewModels/timelineInspectorViewModel.js diff --git a/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js b/www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js similarity index 100% rename from src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js rename to www/src/engine/debug/network/bootstrap/createNetworkDebugSurfaceIntegration.js diff --git a/src/engine/debug/network/commands/networkDebugCommandPackBridge.js b/www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js similarity index 100% rename from src/engine/debug/network/commands/networkDebugCommandPackBridge.js rename to www/src/engine/debug/network/commands/networkDebugCommandPackBridge.js diff --git a/src/engine/debug/network/dashboard/registerDashboardCommands.js b/www/src/engine/debug/network/dashboard/registerDashboardCommands.js similarity index 100% rename from src/engine/debug/network/dashboard/registerDashboardCommands.js rename to www/src/engine/debug/network/dashboard/registerDashboardCommands.js diff --git a/src/engine/debug/network/dashboard/serverDashboardHost.js b/www/src/engine/debug/network/dashboard/serverDashboardHost.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardHost.js rename to www/src/engine/debug/network/dashboard/serverDashboardHost.js diff --git a/src/engine/debug/network/dashboard/serverDashboardMetrics.js b/www/src/engine/debug/network/dashboard/serverDashboardMetrics.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardMetrics.js rename to www/src/engine/debug/network/dashboard/serverDashboardMetrics.js diff --git a/src/engine/debug/network/dashboard/serverDashboardProviders.js b/www/src/engine/debug/network/dashboard/serverDashboardProviders.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardProviders.js rename to www/src/engine/debug/network/dashboard/serverDashboardProviders.js diff --git a/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js b/www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardRefreshModes.js rename to www/src/engine/debug/network/dashboard/serverDashboardRefreshModes.js diff --git a/src/engine/debug/network/dashboard/serverDashboardRegistry.js b/www/src/engine/debug/network/dashboard/serverDashboardRegistry.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardRegistry.js rename to www/src/engine/debug/network/dashboard/serverDashboardRegistry.js diff --git a/src/engine/debug/network/dashboard/serverDashboardRenderer.js b/www/src/engine/debug/network/dashboard/serverDashboardRenderer.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardRenderer.js rename to www/src/engine/debug/network/dashboard/serverDashboardRenderer.js diff --git a/src/engine/debug/network/dashboard/serverDashboardViewModel.js b/www/src/engine/debug/network/dashboard/serverDashboardViewModel.js similarity index 100% rename from src/engine/debug/network/dashboard/serverDashboardViewModel.js rename to www/src/engine/debug/network/dashboard/serverDashboardViewModel.js diff --git a/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js b/www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js similarity index 100% rename from src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js rename to www/src/engine/debug/network/diagnostics/divergenceDiagnosticsModel.js diff --git a/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js b/www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js similarity index 100% rename from src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js rename to www/src/engine/debug/network/diagnostics/latencyDiagnosticsModel.js diff --git a/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js b/www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js similarity index 100% rename from src/engine/debug/network/diagnostics/networkPromotionRecommendation.js rename to www/src/engine/debug/network/diagnostics/networkPromotionRecommendation.js diff --git a/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js b/www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js similarity index 100% rename from src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js rename to www/src/engine/debug/network/diagnostics/replicationDiagnosticsModel.js diff --git a/src/engine/debug/network/panels/networkDebugPanelRegistry.js b/www/src/engine/debug/network/panels/networkDebugPanelRegistry.js similarity index 100% rename from src/engine/debug/network/panels/networkDebugPanelRegistry.js rename to www/src/engine/debug/network/panels/networkDebugPanelRegistry.js diff --git a/src/engine/debug/network/panels/networkObservabilityPanels.js b/www/src/engine/debug/network/panels/networkObservabilityPanels.js similarity index 100% rename from src/engine/debug/network/panels/networkObservabilityPanels.js rename to www/src/engine/debug/network/panels/networkObservabilityPanels.js diff --git a/src/engine/debug/network/providers/networkDebugProviderRegistry.js b/www/src/engine/debug/network/providers/networkDebugProviderRegistry.js similarity index 100% rename from src/engine/debug/network/providers/networkDebugProviderRegistry.js rename to www/src/engine/debug/network/providers/networkDebugProviderRegistry.js diff --git a/src/engine/debug/network/shared/hostReadUtils.js b/www/src/engine/debug/network/shared/hostReadUtils.js similarity index 100% rename from src/engine/debug/network/shared/hostReadUtils.js rename to www/src/engine/debug/network/shared/hostReadUtils.js diff --git a/src/engine/debug/network/shared/networkDebugUtils.js b/www/src/engine/debug/network/shared/networkDebugUtils.js similarity index 100% rename from src/engine/debug/network/shared/networkDebugUtils.js rename to www/src/engine/debug/network/shared/networkDebugUtils.js diff --git a/src/engine/debug/panels/PromotionGatePanel.js b/www/src/engine/debug/panels/PromotionGatePanel.js similarity index 100% rename from src/engine/debug/panels/PromotionGatePanel.js rename to www/src/engine/debug/panels/PromotionGatePanel.js diff --git a/src/engine/debug/shared/debugCommandResultUtils.js b/www/src/engine/debug/shared/debugCommandResultUtils.js similarity index 100% rename from src/engine/debug/shared/debugCommandResultUtils.js rename to www/src/engine/debug/shared/debugCommandResultUtils.js diff --git a/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js b/www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js similarity index 100% rename from src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js rename to www/src/engine/debug/standard/threeD/bootstrap/createStandard3dDebugSurfaceIntegration.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dCamera.js b/www/src/engine/debug/standard/threeD/panels/panel3dCamera.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dCamera.js rename to www/src/engine/debug/standard/threeD/panels/panel3dCamera.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dCollision.js b/www/src/engine/debug/standard/threeD/panels/panel3dCollision.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dCollision.js rename to www/src/engine/debug/standard/threeD/panels/panel3dCollision.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js b/www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js rename to www/src/engine/debug/standard/threeD/panels/panel3dCollisionOverlays.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js b/www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js rename to www/src/engine/debug/standard/threeD/panels/panel3dRenderPipelineStages.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js b/www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dRenderStages.js rename to www/src/engine/debug/standard/threeD/panels/panel3dRenderStages.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js b/www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js rename to www/src/engine/debug/standard/threeD/panels/panel3dSceneGraph.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js b/www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js rename to www/src/engine/debug/standard/threeD/panels/panel3dSceneGraphInspector.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dTransform.js b/www/src/engine/debug/standard/threeD/panels/panel3dTransform.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dTransform.js rename to www/src/engine/debug/standard/threeD/panels/panel3dTransform.js diff --git a/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js b/www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js rename to www/src/engine/debug/standard/threeD/panels/panel3dTransformInspector.js diff --git a/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js b/www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js similarity index 100% rename from src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js rename to www/src/engine/debug/standard/threeD/panels/registerStandard3dPanels.js diff --git a/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js b/www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js similarity index 100% rename from src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js rename to www/src/engine/debug/standard/threeD/presets/registerStandard3dDebugPresets.js diff --git a/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js rename to www/src/engine/debug/standard/threeD/providers/cameraSummaryProvider.js diff --git a/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js b/www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js rename to www/src/engine/debug/standard/threeD/providers/collisionOverlaysProvider.js diff --git a/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js rename to www/src/engine/debug/standard/threeD/providers/collisionSummaryProvider.js diff --git a/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js b/www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js rename to www/src/engine/debug/standard/threeD/providers/registerStandard3dProviders.js diff --git a/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js b/www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js rename to www/src/engine/debug/standard/threeD/providers/renderPipelineStagesProvider.js diff --git a/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js rename to www/src/engine/debug/standard/threeD/providers/renderStageSummaryProvider.js diff --git a/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js b/www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js rename to www/src/engine/debug/standard/threeD/providers/sceneGraphInspectorProvider.js diff --git a/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js rename to www/src/engine/debug/standard/threeD/providers/sceneGraphSummaryProvider.js diff --git a/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js b/www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/transformInspectorProvider.js rename to www/src/engine/debug/standard/threeD/providers/transformInspectorProvider.js diff --git a/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js b/www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js similarity index 100% rename from src/engine/debug/standard/threeD/providers/transformSummaryProvider.js rename to www/src/engine/debug/standard/threeD/providers/transformSummaryProvider.js diff --git a/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js b/www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js similarity index 100% rename from src/engine/debug/standard/threeD/shared/threeDDebugUtils.js rename to www/src/engine/debug/standard/threeD/shared/threeDDebugUtils.js diff --git a/src/engine/ecs/World.js b/www/src/engine/ecs/World.js similarity index 100% rename from src/engine/ecs/World.js rename to www/src/engine/ecs/World.js diff --git a/src/engine/entity/Bounds.js b/www/src/engine/entity/Bounds.js similarity index 100% rename from src/engine/entity/Bounds.js rename to www/src/engine/entity/Bounds.js diff --git a/src/engine/entity/Entity.js b/www/src/engine/entity/Entity.js similarity index 100% rename from src/engine/entity/Entity.js rename to www/src/engine/entity/Entity.js diff --git a/src/engine/entity/Transform.js b/www/src/engine/entity/Transform.js similarity index 100% rename from src/engine/entity/Transform.js rename to www/src/engine/entity/Transform.js diff --git a/src/engine/entity/Velocity.js b/www/src/engine/entity/Velocity.js similarity index 100% rename from src/engine/entity/Velocity.js rename to www/src/engine/entity/Velocity.js diff --git a/src/engine/events/EventBus.js b/www/src/engine/events/EventBus.js similarity index 100% rename from src/engine/events/EventBus.js rename to www/src/engine/events/EventBus.js diff --git a/src/engine/fx/ParticleSystem.js b/www/src/engine/fx/ParticleSystem.js similarity index 100% rename from src/engine/fx/ParticleSystem.js rename to www/src/engine/fx/ParticleSystem.js diff --git a/src/engine/game/GameModeState.js b/www/src/engine/game/GameModeState.js similarity index 100% rename from src/engine/game/GameModeState.js rename to www/src/engine/game/GameModeState.js diff --git a/src/engine/game/gameplayHooks.js b/www/src/engine/game/gameplayHooks.js similarity index 100% rename from src/engine/game/gameplayHooks.js rename to www/src/engine/game/gameplayHooks.js diff --git a/src/engine/input/ActionInputDebugOverlay.js b/www/src/engine/input/ActionInputDebugOverlay.js similarity index 100% rename from src/engine/input/ActionInputDebugOverlay.js rename to www/src/engine/input/ActionInputDebugOverlay.js diff --git a/src/engine/input/ActionInputMap.js b/www/src/engine/input/ActionInputMap.js similarity index 100% rename from src/engine/input/ActionInputMap.js rename to www/src/engine/input/ActionInputMap.js diff --git a/src/engine/input/ActionInputService.js b/www/src/engine/input/ActionInputService.js similarity index 100% rename from src/engine/input/ActionInputService.js rename to www/src/engine/input/ActionInputService.js diff --git a/src/engine/input/GamepadHapticsService.js b/www/src/engine/input/GamepadHapticsService.js similarity index 100% rename from src/engine/input/GamepadHapticsService.js rename to www/src/engine/input/GamepadHapticsService.js diff --git a/src/engine/input/GamepadInputAdapter.js b/www/src/engine/input/GamepadInputAdapter.js similarity index 100% rename from src/engine/input/GamepadInputAdapter.js rename to www/src/engine/input/GamepadInputAdapter.js diff --git a/src/engine/input/GamepadInputClassifier.js b/www/src/engine/input/GamepadInputClassifier.js similarity index 100% rename from src/engine/input/GamepadInputClassifier.js rename to www/src/engine/input/GamepadInputClassifier.js diff --git a/src/engine/input/GamepadState.js b/www/src/engine/input/GamepadState.js similarity index 100% rename from src/engine/input/GamepadState.js rename to www/src/engine/input/GamepadState.js diff --git a/src/engine/input/InputCapabilityDescriptors.js b/www/src/engine/input/InputCapabilityDescriptors.js similarity index 100% rename from src/engine/input/InputCapabilityDescriptors.js rename to www/src/engine/input/InputCapabilityDescriptors.js diff --git a/src/engine/input/InputCaptureService.js b/www/src/engine/input/InputCaptureService.js similarity index 100% rename from src/engine/input/InputCaptureService.js rename to www/src/engine/input/InputCaptureService.js diff --git a/src/engine/input/InputCaptureSession.js b/www/src/engine/input/InputCaptureSession.js similarity index 100% rename from src/engine/input/InputCaptureSession.js rename to www/src/engine/input/InputCaptureSession.js diff --git a/src/engine/input/InputComboState.js b/www/src/engine/input/InputComboState.js similarity index 100% rename from src/engine/input/InputComboState.js rename to www/src/engine/input/InputComboState.js diff --git a/src/engine/input/InputContextService.js b/www/src/engine/input/InputContextService.js similarity index 100% rename from src/engine/input/InputContextService.js rename to www/src/engine/input/InputContextService.js diff --git a/src/engine/input/InputMap.js b/www/src/engine/input/InputMap.js similarity index 100% rename from src/engine/input/InputMap.js rename to www/src/engine/input/InputMap.js diff --git a/src/engine/input/InputMappingManifest.js b/www/src/engine/input/InputMappingManifest.js similarity index 100% rename from src/engine/input/InputMappingManifest.js rename to www/src/engine/input/InputMappingManifest.js diff --git a/src/engine/input/InputService.js b/www/src/engine/input/InputService.js similarity index 100% rename from src/engine/input/InputService.js rename to www/src/engine/input/InputService.js diff --git a/src/engine/input/KeyboardState.js b/www/src/engine/input/KeyboardState.js similarity index 100% rename from src/engine/input/KeyboardState.js rename to www/src/engine/input/KeyboardState.js diff --git a/src/engine/input/MouseState.js b/www/src/engine/input/MouseState.js similarity index 100% rename from src/engine/input/MouseState.js rename to www/src/engine/input/MouseState.js diff --git a/src/engine/input/NormalizedInputRegistry.js b/www/src/engine/input/NormalizedInputRegistry.js similarity index 100% rename from src/engine/input/NormalizedInputRegistry.js rename to www/src/engine/input/NormalizedInputRegistry.js diff --git a/src/engine/input/PointerDragState.js b/www/src/engine/input/PointerDragState.js similarity index 100% rename from src/engine/input/PointerDragState.js rename to www/src/engine/input/PointerDragState.js diff --git a/src/engine/interaction/InteractionSystem.js b/www/src/engine/interaction/InteractionSystem.js similarity index 100% rename from src/engine/interaction/InteractionSystem.js rename to www/src/engine/interaction/InteractionSystem.js diff --git a/src/engine/level/LevelLoader.js b/www/src/engine/level/LevelLoader.js similarity index 100% rename from src/engine/level/LevelLoader.js rename to www/src/engine/level/LevelLoader.js diff --git a/src/engine/localization/LocalizationService.js b/www/src/engine/localization/LocalizationService.js similarity index 100% rename from src/engine/localization/LocalizationService.js rename to www/src/engine/localization/LocalizationService.js diff --git a/src/engine/logging/ErrorBoundary.js b/www/src/engine/logging/ErrorBoundary.js similarity index 100% rename from src/engine/logging/ErrorBoundary.js rename to www/src/engine/logging/ErrorBoundary.js diff --git a/src/engine/logging/Logger.js b/www/src/engine/logging/Logger.js similarity index 100% rename from src/engine/logging/Logger.js rename to www/src/engine/logging/Logger.js diff --git a/src/engine/memory/DisposableStore.js b/www/src/engine/memory/DisposableStore.js similarity index 100% rename from src/engine/memory/DisposableStore.js rename to www/src/engine/memory/DisposableStore.js diff --git a/src/engine/memory/ObjectPool.js b/www/src/engine/memory/ObjectPool.js similarity index 100% rename from src/engine/memory/ObjectPool.js rename to www/src/engine/memory/ObjectPool.js diff --git a/src/engine/network/bootstrap/HostServerBootstrap.js b/www/src/engine/network/bootstrap/HostServerBootstrap.js similarity index 100% rename from src/engine/network/bootstrap/HostServerBootstrap.js rename to www/src/engine/network/bootstrap/HostServerBootstrap.js diff --git a/src/engine/network/bootstrap/NetworkingLayer.js b/www/src/engine/network/bootstrap/NetworkingLayer.js similarity index 100% rename from src/engine/network/bootstrap/NetworkingLayer.js rename to www/src/engine/network/bootstrap/NetworkingLayer.js diff --git a/src/engine/network/client/ClientReconciliationStrategy.js b/www/src/engine/network/client/ClientReconciliationStrategy.js similarity index 100% rename from src/engine/network/client/ClientReconciliationStrategy.js rename to www/src/engine/network/client/ClientReconciliationStrategy.js diff --git a/src/engine/network/client/ClientReplicationApplicationLayer.js b/www/src/engine/network/client/ClientReplicationApplicationLayer.js similarity index 100% rename from src/engine/network/client/ClientReplicationApplicationLayer.js rename to www/src/engine/network/client/ClientReplicationApplicationLayer.js diff --git a/src/engine/network/client/PredictionReconciler.js b/www/src/engine/network/client/PredictionReconciler.js similarity index 100% rename from src/engine/network/client/PredictionReconciler.js rename to www/src/engine/network/client/PredictionReconciler.js diff --git a/src/engine/network/client/RemoteInterpolationBuffer.js b/www/src/engine/network/client/RemoteInterpolationBuffer.js similarity index 100% rename from src/engine/network/client/RemoteInterpolationBuffer.js rename to www/src/engine/network/client/RemoteInterpolationBuffer.js diff --git a/src/engine/network/debug/NetworkDebugOverlay.js b/www/src/engine/network/debug/NetworkDebugOverlay.js similarity index 100% rename from src/engine/network/debug/NetworkDebugOverlay.js rename to www/src/engine/network/debug/NetworkDebugOverlay.js diff --git a/src/engine/network/replication/ReplicationMessageContract.js b/www/src/engine/network/replication/ReplicationMessageContract.js similarity index 100% rename from src/engine/network/replication/ReplicationMessageContract.js rename to www/src/engine/network/replication/ReplicationMessageContract.js diff --git a/src/engine/network/replication/StateReplication.js b/www/src/engine/network/replication/StateReplication.js similarity index 100% rename from src/engine/network/replication/StateReplication.js rename to www/src/engine/network/replication/StateReplication.js diff --git a/src/engine/network/server/AuthoritativeInputIngestionContract.js b/www/src/engine/network/server/AuthoritativeInputIngestionContract.js similarity index 100% rename from src/engine/network/server/AuthoritativeInputIngestionContract.js rename to www/src/engine/network/server/AuthoritativeInputIngestionContract.js diff --git a/src/engine/network/server/AuthoritativeServerRuntime.js b/www/src/engine/network/server/AuthoritativeServerRuntime.js similarity index 100% rename from src/engine/network/server/AuthoritativeServerRuntime.js rename to www/src/engine/network/server/AuthoritativeServerRuntime.js diff --git a/src/engine/network/server/InterestManager.js b/www/src/engine/network/server/InterestManager.js similarity index 100% rename from src/engine/network/server/InterestManager.js rename to www/src/engine/network/server/InterestManager.js diff --git a/src/engine/network/server/RollbackDiagnostics.js b/www/src/engine/network/server/RollbackDiagnostics.js similarity index 100% rename from src/engine/network/server/RollbackDiagnostics.js rename to www/src/engine/network/server/RollbackDiagnostics.js diff --git a/src/engine/network/session/ChatPresenceLayer.js b/www/src/engine/network/session/ChatPresenceLayer.js similarity index 100% rename from src/engine/network/session/ChatPresenceLayer.js rename to www/src/engine/network/session/ChatPresenceLayer.js diff --git a/src/engine/network/session/HandshakeSimulator.js b/www/src/engine/network/session/HandshakeSimulator.js similarity index 100% rename from src/engine/network/session/HandshakeSimulator.js rename to www/src/engine/network/session/HandshakeSimulator.js diff --git a/src/engine/network/session/LobbySessionManager.js b/www/src/engine/network/session/LobbySessionManager.js similarity index 100% rename from src/engine/network/session/LobbySessionManager.js rename to www/src/engine/network/session/LobbySessionManager.js diff --git a/src/engine/network/session/SessionLifecycleContract.js b/www/src/engine/network/session/SessionLifecycleContract.js similarity index 100% rename from src/engine/network/session/SessionLifecycleContract.js rename to www/src/engine/network/session/SessionLifecycleContract.js diff --git a/src/engine/network/transport/LoopbackTransport.js b/www/src/engine/network/transport/LoopbackTransport.js similarity index 100% rename from src/engine/network/transport/LoopbackTransport.js rename to www/src/engine/network/transport/LoopbackTransport.js diff --git a/src/engine/network/transport/NetworkConditionSimulator.js b/www/src/engine/network/transport/NetworkConditionSimulator.js similarity index 100% rename from src/engine/network/transport/NetworkConditionSimulator.js rename to www/src/engine/network/transport/NetworkConditionSimulator.js diff --git a/src/engine/network/transport/Serializer.js b/www/src/engine/network/transport/Serializer.js similarity index 100% rename from src/engine/network/transport/Serializer.js rename to www/src/engine/network/transport/Serializer.js diff --git a/src/engine/network/transport/TransportContract.js b/www/src/engine/network/transport/TransportContract.js similarity index 100% rename from src/engine/network/transport/TransportContract.js rename to www/src/engine/network/transport/TransportContract.js diff --git a/src/engine/object-model/index.js b/www/src/engine/object-model/index.js similarity index 100% rename from src/engine/object-model/index.js rename to www/src/engine/object-model/index.js diff --git a/src/engine/object-model/objectDefinitionSchema.js b/www/src/engine/object-model/objectDefinitionSchema.js similarity index 100% rename from src/engine/object-model/objectDefinitionSchema.js rename to www/src/engine/object-model/objectDefinitionSchema.js diff --git a/src/engine/object-model/objectDefinitionValidator.js b/www/src/engine/object-model/objectDefinitionValidator.js similarity index 100% rename from src/engine/object-model/objectDefinitionValidator.js rename to www/src/engine/object-model/objectDefinitionValidator.js diff --git a/src/engine/object-model/objectModelRegistry.js b/www/src/engine/object-model/objectModelRegistry.js similarity index 100% rename from src/engine/object-model/objectModelRegistry.js rename to www/src/engine/object-model/objectModelRegistry.js diff --git a/src/engine/paletteList.js b/www/src/engine/paletteList.js similarity index 100% rename from src/engine/paletteList.js rename to www/src/engine/paletteList.js diff --git a/src/engine/persistence/BrowserStorageService.js b/www/src/engine/persistence/BrowserStorageService.js similarity index 100% rename from src/engine/persistence/BrowserStorageService.js rename to www/src/engine/persistence/BrowserStorageService.js diff --git a/src/engine/persistence/CompressionService.js b/www/src/engine/persistence/CompressionService.js similarity index 100% rename from src/engine/persistence/CompressionService.js rename to www/src/engine/persistence/CompressionService.js diff --git a/src/engine/persistence/CookieStorageService.js b/www/src/engine/persistence/CookieStorageService.js similarity index 100% rename from src/engine/persistence/CookieStorageService.js rename to www/src/engine/persistence/CookieStorageService.js diff --git a/src/engine/persistence/FilePersistenceService.js b/www/src/engine/persistence/FilePersistenceService.js similarity index 100% rename from src/engine/persistence/FilePersistenceService.js rename to www/src/engine/persistence/FilePersistenceService.js diff --git a/src/engine/persistence/LocalStorageService.js b/www/src/engine/persistence/LocalStorageService.js similarity index 100% rename from src/engine/persistence/LocalStorageService.js rename to www/src/engine/persistence/LocalStorageService.js diff --git a/src/engine/persistence/SaveSlotManager.js b/www/src/engine/persistence/SaveSlotManager.js similarity index 100% rename from src/engine/persistence/SaveSlotManager.js rename to www/src/engine/persistence/SaveSlotManager.js diff --git a/src/engine/persistence/SessionStorageService.js b/www/src/engine/persistence/SessionStorageService.js similarity index 100% rename from src/engine/persistence/SessionStorageService.js rename to www/src/engine/persistence/SessionStorageService.js diff --git a/src/engine/persistence/StorageService.js b/www/src/engine/persistence/StorageService.js similarity index 100% rename from src/engine/persistence/StorageService.js rename to www/src/engine/persistence/StorageService.js diff --git a/src/engine/persistence/WorldSerializer.js b/www/src/engine/persistence/WorldSerializer.js similarity index 100% rename from src/engine/persistence/WorldSerializer.js rename to www/src/engine/persistence/WorldSerializer.js diff --git a/src/engine/physics/arcadeBody.js b/www/src/engine/physics/arcadeBody.js similarity index 100% rename from src/engine/physics/arcadeBody.js rename to www/src/engine/physics/arcadeBody.js diff --git a/src/engine/physics/collision3d.js b/www/src/engine/physics/collision3d.js similarity index 100% rename from src/engine/physics/collision3d.js rename to www/src/engine/physics/collision3d.js diff --git a/src/engine/physics/drag.js b/www/src/engine/physics/drag.js similarity index 100% rename from src/engine/physics/drag.js rename to www/src/engine/physics/drag.js diff --git a/src/engine/physics/integration.js b/www/src/engine/physics/integration.js similarity index 100% rename from src/engine/physics/integration.js rename to www/src/engine/physics/integration.js diff --git a/src/engine/physics/integration3d.js b/www/src/engine/physics/integration3d.js similarity index 100% rename from src/engine/physics/integration3d.js rename to www/src/engine/physics/integration3d.js diff --git a/src/engine/physics/scene3d.js b/www/src/engine/physics/scene3d.js similarity index 100% rename from src/engine/physics/scene3d.js rename to www/src/engine/physics/scene3d.js diff --git a/src/engine/prefabs/PrefabFactory.js b/www/src/engine/prefabs/PrefabFactory.js similarity index 100% rename from src/engine/prefabs/PrefabFactory.js rename to www/src/engine/prefabs/PrefabFactory.js diff --git a/src/engine/release/AccessibilityOptions.js b/www/src/engine/release/AccessibilityOptions.js similarity index 100% rename from src/engine/release/AccessibilityOptions.js rename to www/src/engine/release/AccessibilityOptions.js diff --git a/src/engine/release/CrashRecoveryManager.js b/www/src/engine/release/CrashRecoveryManager.js similarity index 100% rename from src/engine/release/CrashRecoveryManager.js rename to www/src/engine/release/CrashRecoveryManager.js diff --git a/src/engine/release/DeploymentProfiles.js b/www/src/engine/release/DeploymentProfiles.js similarity index 100% rename from src/engine/release/DeploymentProfiles.js rename to www/src/engine/release/DeploymentProfiles.js diff --git a/src/engine/release/DistributionPackager.js b/www/src/engine/release/DistributionPackager.js similarity index 100% rename from src/engine/release/DistributionPackager.js rename to www/src/engine/release/DistributionPackager.js diff --git a/src/engine/release/ReleaseValidationChecklist.js b/www/src/engine/release/ReleaseValidationChecklist.js similarity index 100% rename from src/engine/release/ReleaseValidationChecklist.js rename to www/src/engine/release/ReleaseValidationChecklist.js diff --git a/src/engine/release/SettingsSystem.js b/www/src/engine/release/SettingsSystem.js similarity index 100% rename from src/engine/release/SettingsSystem.js rename to www/src/engine/release/SettingsSystem.js diff --git a/src/engine/rendering/CanvasRenderer.js b/www/src/engine/rendering/CanvasRenderer.js similarity index 100% rename from src/engine/rendering/CanvasRenderer.js rename to www/src/engine/rendering/CanvasRenderer.js diff --git a/src/engine/rendering/LayeredRenderSystem.js b/www/src/engine/rendering/LayeredRenderSystem.js similarity index 100% rename from src/engine/rendering/LayeredRenderSystem.js rename to www/src/engine/rendering/LayeredRenderSystem.js diff --git a/src/engine/rendering/ObjectVectorRuntimeAssetService.js b/www/src/engine/rendering/ObjectVectorRuntimeAssetService.js similarity index 100% rename from src/engine/rendering/ObjectVectorRuntimeAssetService.js rename to www/src/engine/rendering/ObjectVectorRuntimeAssetService.js diff --git a/src/engine/rendering/ObjectVectorTransformService.js b/www/src/engine/rendering/ObjectVectorTransformService.js similarity index 100% rename from src/engine/rendering/ObjectVectorTransformService.js rename to www/src/engine/rendering/ObjectVectorTransformService.js diff --git a/src/engine/rendering/OrientationTransform.js b/www/src/engine/rendering/OrientationTransform.js similarity index 100% rename from src/engine/rendering/OrientationTransform.js rename to www/src/engine/rendering/OrientationTransform.js diff --git a/src/engine/rendering/Renderer.js b/www/src/engine/rendering/Renderer.js similarity index 100% rename from src/engine/rendering/Renderer.js rename to www/src/engine/rendering/Renderer.js diff --git a/src/engine/rendering/ResolutionScaler.js b/www/src/engine/rendering/ResolutionScaler.js similarity index 100% rename from src/engine/rendering/ResolutionScaler.js rename to www/src/engine/rendering/ResolutionScaler.js diff --git a/src/engine/rendering/SpriteRenderSystem.js b/www/src/engine/rendering/SpriteRenderSystem.js similarity index 100% rename from src/engine/rendering/SpriteRenderSystem.js rename to www/src/engine/rendering/SpriteRenderSystem.js diff --git a/src/engine/rendering/VectorDrawing.js b/www/src/engine/rendering/VectorDrawing.js similarity index 100% rename from src/engine/rendering/VectorDrawing.js rename to www/src/engine/rendering/VectorDrawing.js diff --git a/src/engine/rendering/WorldScreenTransform.js b/www/src/engine/rendering/WorldScreenTransform.js similarity index 100% rename from src/engine/rendering/WorldScreenTransform.js rename to www/src/engine/rendering/WorldScreenTransform.js diff --git a/src/engine/rendering/WorldScreenTransformService.js b/www/src/engine/rendering/WorldScreenTransformService.js similarity index 100% rename from src/engine/rendering/WorldScreenTransformService.js rename to www/src/engine/rendering/WorldScreenTransformService.js diff --git a/src/engine/replay/ReplayModel.js b/www/src/engine/replay/ReplayModel.js similarity index 100% rename from src/engine/replay/ReplayModel.js rename to www/src/engine/replay/ReplayModel.js diff --git a/src/engine/replay/ReplaySystem.js b/www/src/engine/replay/ReplaySystem.js similarity index 100% rename from src/engine/replay/ReplaySystem.js rename to www/src/engine/replay/ReplaySystem.js diff --git a/src/engine/replay/ReplayTimeline.js b/www/src/engine/replay/ReplayTimeline.js similarity index 100% rename from src/engine/replay/ReplayTimeline.js rename to www/src/engine/replay/ReplayTimeline.js diff --git a/src/engine/runtime/BrowserDownloadService.js b/www/src/engine/runtime/BrowserDownloadService.js similarity index 100% rename from src/engine/runtime/BrowserDownloadService.js rename to www/src/engine/runtime/BrowserDownloadService.js diff --git a/src/engine/runtime/FullscreenService.js b/www/src/engine/runtime/FullscreenService.js similarity index 100% rename from src/engine/runtime/FullscreenService.js rename to www/src/engine/runtime/FullscreenService.js diff --git a/src/engine/runtime/MobileRuntimeTweaks.js b/www/src/engine/runtime/MobileRuntimeTweaks.js similarity index 100% rename from src/engine/runtime/MobileRuntimeTweaks.js rename to www/src/engine/runtime/MobileRuntimeTweaks.js diff --git a/src/engine/runtime/RuntimeMonitoringHooks.js b/www/src/engine/runtime/RuntimeMonitoringHooks.js similarity index 100% rename from src/engine/runtime/RuntimeMonitoringHooks.js rename to www/src/engine/runtime/RuntimeMonitoringHooks.js diff --git a/src/engine/runtime/backgroundColor.js b/www/src/engine/runtime/backgroundColor.js similarity index 100% rename from src/engine/runtime/backgroundColor.js rename to www/src/engine/runtime/backgroundColor.js diff --git a/src/engine/runtime/backgroundImage.js b/www/src/engine/runtime/backgroundImage.js similarity index 100% rename from src/engine/runtime/backgroundImage.js rename to www/src/engine/runtime/backgroundImage.js diff --git a/src/engine/runtime/engineV2AbilitySystem.js b/www/src/engine/runtime/engineV2AbilitySystem.js similarity index 100% rename from src/engine/runtime/engineV2AbilitySystem.js rename to www/src/engine/runtime/engineV2AbilitySystem.js diff --git a/src/engine/runtime/engineV2AnimationRuntime.js b/www/src/engine/runtime/engineV2AnimationRuntime.js similarity index 100% rename from src/engine/runtime/engineV2AnimationRuntime.js rename to www/src/engine/runtime/engineV2AnimationRuntime.js diff --git a/src/engine/runtime/engineV2AudioRuntime.js b/www/src/engine/runtime/engineV2AudioRuntime.js similarity index 100% rename from src/engine/runtime/engineV2AudioRuntime.js rename to www/src/engine/runtime/engineV2AudioRuntime.js diff --git a/src/engine/runtime/engineV2CameraRuntime.js b/www/src/engine/runtime/engineV2CameraRuntime.js similarity index 100% rename from src/engine/runtime/engineV2CameraRuntime.js rename to www/src/engine/runtime/engineV2CameraRuntime.js diff --git a/src/engine/runtime/engineV2ChaseFleeBehavior.js b/www/src/engine/runtime/engineV2ChaseFleeBehavior.js similarity index 100% rename from src/engine/runtime/engineV2ChaseFleeBehavior.js rename to www/src/engine/runtime/engineV2ChaseFleeBehavior.js diff --git a/src/engine/runtime/engineV2CheckpointSystem.js b/www/src/engine/runtime/engineV2CheckpointSystem.js similarity index 100% rename from src/engine/runtime/engineV2CheckpointSystem.js rename to www/src/engine/runtime/engineV2CheckpointSystem.js diff --git a/src/engine/runtime/engineV2ConfigDrivenProofScene.js b/www/src/engine/runtime/engineV2ConfigDrivenProofScene.js similarity index 100% rename from src/engine/runtime/engineV2ConfigDrivenProofScene.js rename to www/src/engine/runtime/engineV2ConfigDrivenProofScene.js diff --git a/src/engine/runtime/engineV2ContainerSystem.js b/www/src/engine/runtime/engineV2ContainerSystem.js similarity index 100% rename from src/engine/runtime/engineV2ContainerSystem.js rename to www/src/engine/runtime/engineV2ContainerSystem.js diff --git a/src/engine/runtime/engineV2CraftingFoundation.js b/www/src/engine/runtime/engineV2CraftingFoundation.js similarity index 100% rename from src/engine/runtime/engineV2CraftingFoundation.js rename to www/src/engine/runtime/engineV2CraftingFoundation.js diff --git a/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js b/www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js similarity index 100% rename from src/engine/runtime/engineV2CustomExtensionsHookRuntime.js rename to www/src/engine/runtime/engineV2CustomExtensionsHookRuntime.js diff --git a/src/engine/runtime/engineV2DialogueSystem.js b/www/src/engine/runtime/engineV2DialogueSystem.js similarity index 100% rename from src/engine/runtime/engineV2DialogueSystem.js rename to www/src/engine/runtime/engineV2DialogueSystem.js diff --git a/src/engine/runtime/engineV2EconomyAndCurrency.js b/www/src/engine/runtime/engineV2EconomyAndCurrency.js similarity index 100% rename from src/engine/runtime/engineV2EconomyAndCurrency.js rename to www/src/engine/runtime/engineV2EconomyAndCurrency.js diff --git a/src/engine/runtime/engineV2EffectRuntime.js b/www/src/engine/runtime/engineV2EffectRuntime.js similarity index 100% rename from src/engine/runtime/engineV2EffectRuntime.js rename to www/src/engine/runtime/engineV2EffectRuntime.js diff --git a/src/engine/runtime/engineV2EquipmentSystem.js b/www/src/engine/runtime/engineV2EquipmentSystem.js similarity index 100% rename from src/engine/runtime/engineV2EquipmentSystem.js rename to www/src/engine/runtime/engineV2EquipmentSystem.js diff --git a/src/engine/runtime/engineV2InteractionSystem.js b/www/src/engine/runtime/engineV2InteractionSystem.js similarity index 100% rename from src/engine/runtime/engineV2InteractionSystem.js rename to www/src/engine/runtime/engineV2InteractionSystem.js diff --git a/src/engine/runtime/engineV2InventorySystem.js b/www/src/engine/runtime/engineV2InventorySystem.js similarity index 100% rename from src/engine/runtime/engineV2InventorySystem.js rename to www/src/engine/runtime/engineV2InventorySystem.js diff --git a/src/engine/runtime/engineV2ItemAndLootSystem.js b/www/src/engine/runtime/engineV2ItemAndLootSystem.js similarity index 100% rename from src/engine/runtime/engineV2ItemAndLootSystem.js rename to www/src/engine/runtime/engineV2ItemAndLootSystem.js diff --git a/src/engine/runtime/engineV2ModifierStack.js b/www/src/engine/runtime/engineV2ModifierStack.js similarity index 100% rename from src/engine/runtime/engineV2ModifierStack.js rename to www/src/engine/runtime/engineV2ModifierStack.js diff --git a/src/engine/runtime/engineV2ObjectiveSystem.js b/www/src/engine/runtime/engineV2ObjectiveSystem.js similarity index 100% rename from src/engine/runtime/engineV2ObjectiveSystem.js rename to www/src/engine/runtime/engineV2ObjectiveSystem.js diff --git a/src/engine/runtime/engineV2PathfindingBaseline.js b/www/src/engine/runtime/engineV2PathfindingBaseline.js similarity index 100% rename from src/engine/runtime/engineV2PathfindingBaseline.js rename to www/src/engine/runtime/engineV2PathfindingBaseline.js diff --git a/src/engine/runtime/engineV2PatrolBehavior.js b/www/src/engine/runtime/engineV2PatrolBehavior.js similarity index 100% rename from src/engine/runtime/engineV2PatrolBehavior.js rename to www/src/engine/runtime/engineV2PatrolBehavior.js diff --git a/src/engine/runtime/engineV2PersistenceRuntime.js b/www/src/engine/runtime/engineV2PersistenceRuntime.js similarity index 100% rename from src/engine/runtime/engineV2PersistenceRuntime.js rename to www/src/engine/runtime/engineV2PersistenceRuntime.js diff --git a/src/engine/runtime/engineV2ProfileStateSystem.js b/www/src/engine/runtime/engineV2ProfileStateSystem.js similarity index 100% rename from src/engine/runtime/engineV2ProfileStateSystem.js rename to www/src/engine/runtime/engineV2ProfileStateSystem.js diff --git a/src/engine/runtime/engineV2ProjectileSystem.js b/www/src/engine/runtime/engineV2ProjectileSystem.js similarity index 100% rename from src/engine/runtime/engineV2ProjectileSystem.js rename to www/src/engine/runtime/engineV2ProjectileSystem.js diff --git a/src/engine/runtime/engineV2QuestSystem.js b/www/src/engine/runtime/engineV2QuestSystem.js similarity index 100% rename from src/engine/runtime/engineV2QuestSystem.js rename to www/src/engine/runtime/engineV2QuestSystem.js diff --git a/src/engine/runtime/engineV2SaveLoadValidation.js b/www/src/engine/runtime/engineV2SaveLoadValidation.js similarity index 100% rename from src/engine/runtime/engineV2SaveLoadValidation.js rename to www/src/engine/runtime/engineV2SaveLoadValidation.js diff --git a/src/engine/runtime/engineV2SaveStateModel.js b/www/src/engine/runtime/engineV2SaveStateModel.js similarity index 100% rename from src/engine/runtime/engineV2SaveStateModel.js rename to www/src/engine/runtime/engineV2SaveStateModel.js diff --git a/src/engine/runtime/engineV2StateMachineRuntime.js b/www/src/engine/runtime/engineV2StateMachineRuntime.js similarity index 100% rename from src/engine/runtime/engineV2StateMachineRuntime.js rename to www/src/engine/runtime/engineV2StateMachineRuntime.js diff --git a/src/engine/runtime/engineV2StatusEffectSystem.js b/www/src/engine/runtime/engineV2StatusEffectSystem.js similarity index 100% rename from src/engine/runtime/engineV2StatusEffectSystem.js rename to www/src/engine/runtime/engineV2StatusEffectSystem.js diff --git a/src/engine/runtime/engineV2UiRuntime.js b/www/src/engine/runtime/engineV2UiRuntime.js similarity index 100% rename from src/engine/runtime/engineV2UiRuntime.js rename to www/src/engine/runtime/engineV2UiRuntime.js diff --git a/src/engine/runtime/engineV2VendorSystem.js b/www/src/engine/runtime/engineV2VendorSystem.js similarity index 100% rename from src/engine/runtime/engineV2VendorSystem.js rename to www/src/engine/runtime/engineV2VendorSystem.js diff --git a/src/engine/runtime/engineV2WeaponSystem.js b/www/src/engine/runtime/engineV2WeaponSystem.js similarity index 100% rename from src/engine/runtime/engineV2WeaponSystem.js rename to www/src/engine/runtime/engineV2WeaponSystem.js diff --git a/src/engine/runtime/firstManifestDrivenPlayableScene.js b/www/src/engine/runtime/firstManifestDrivenPlayableScene.js similarity index 100% rename from src/engine/runtime/firstManifestDrivenPlayableScene.js rename to www/src/engine/runtime/firstManifestDrivenPlayableScene.js diff --git a/src/engine/runtime/fullscreenBezel.js b/www/src/engine/runtime/fullscreenBezel.js similarity index 100% rename from src/engine/runtime/fullscreenBezel.js rename to www/src/engine/runtime/fullscreenBezel.js diff --git a/src/engine/runtime/gameImageConvention.js b/www/src/engine/runtime/gameImageConvention.js similarity index 100% rename from src/engine/runtime/gameImageConvention.js rename to www/src/engine/runtime/gameImageConvention.js diff --git a/src/engine/runtime/manifestRuntimeParser.js b/www/src/engine/runtime/manifestRuntimeParser.js similarity index 100% rename from src/engine/runtime/manifestRuntimeParser.js rename to www/src/engine/runtime/manifestRuntimeParser.js diff --git a/src/engine/runtime/objectDefinitionReader.js b/www/src/engine/runtime/objectDefinitionReader.js similarity index 100% rename from src/engine/runtime/objectDefinitionReader.js rename to www/src/engine/runtime/objectDefinitionReader.js diff --git a/src/engine/runtime/ruleDefinitionReader.js b/www/src/engine/runtime/ruleDefinitionReader.js similarity index 100% rename from src/engine/runtime/ruleDefinitionReader.js rename to www/src/engine/runtime/ruleDefinitionReader.js diff --git a/src/engine/runtime/runtimeActionSystem.js b/www/src/engine/runtime/runtimeActionSystem.js similarity index 100% rename from src/engine/runtime/runtimeActionSystem.js rename to www/src/engine/runtime/runtimeActionSystem.js diff --git a/src/engine/runtime/runtimeBehaviorComposition.js b/www/src/engine/runtime/runtimeBehaviorComposition.js similarity index 100% rename from src/engine/runtime/runtimeBehaviorComposition.js rename to www/src/engine/runtime/runtimeBehaviorComposition.js diff --git a/src/engine/runtime/runtimeCollisionProcessing.js b/www/src/engine/runtime/runtimeCollisionProcessing.js similarity index 100% rename from src/engine/runtime/runtimeCollisionProcessing.js rename to www/src/engine/runtime/runtimeCollisionProcessing.js diff --git a/src/engine/runtime/runtimeConditionSystem.js b/www/src/engine/runtime/runtimeConditionSystem.js similarity index 100% rename from src/engine/runtime/runtimeConditionSystem.js rename to www/src/engine/runtime/runtimeConditionSystem.js diff --git a/src/engine/runtime/runtimeCooldownProcessing.js b/www/src/engine/runtime/runtimeCooldownProcessing.js similarity index 100% rename from src/engine/runtime/runtimeCooldownProcessing.js rename to www/src/engine/runtime/runtimeCooldownProcessing.js diff --git a/src/engine/runtime/runtimeDamageProcessing.js b/www/src/engine/runtime/runtimeDamageProcessing.js similarity index 100% rename from src/engine/runtime/runtimeDamageProcessing.js rename to www/src/engine/runtime/runtimeDamageProcessing.js diff --git a/src/engine/runtime/runtimeEnvironmentEffects.js b/www/src/engine/runtime/runtimeEnvironmentEffects.js similarity index 100% rename from src/engine/runtime/runtimeEnvironmentEffects.js rename to www/src/engine/runtime/runtimeEnvironmentEffects.js diff --git a/src/engine/runtime/runtimeEnvironmentForceInstantiation.js b/www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js similarity index 100% rename from src/engine/runtime/runtimeEnvironmentForceInstantiation.js rename to www/src/engine/runtime/runtimeEnvironmentForceInstantiation.js diff --git a/src/engine/runtime/runtimeErrorReporting.js b/www/src/engine/runtime/runtimeErrorReporting.js similarity index 100% rename from src/engine/runtime/runtimeErrorReporting.js rename to www/src/engine/runtime/runtimeErrorReporting.js diff --git a/src/engine/runtime/runtimeEventSystem.js b/www/src/engine/runtime/runtimeEventSystem.js similarity index 100% rename from src/engine/runtime/runtimeEventSystem.js rename to www/src/engine/runtime/runtimeEventSystem.js diff --git a/src/engine/runtime/runtimeHealthModel.js b/www/src/engine/runtime/runtimeHealthModel.js similarity index 100% rename from src/engine/runtime/runtimeHealthModel.js rename to www/src/engine/runtime/runtimeHealthModel.js diff --git a/src/engine/runtime/runtimeInputPipeline.js b/www/src/engine/runtime/runtimeInputPipeline.js similarity index 100% rename from src/engine/runtime/runtimeInputPipeline.js rename to www/src/engine/runtime/runtimeInputPipeline.js diff --git a/src/engine/runtime/runtimeLivesAndRespawn.js b/www/src/engine/runtime/runtimeLivesAndRespawn.js similarity index 100% rename from src/engine/runtime/runtimeLivesAndRespawn.js rename to www/src/engine/runtime/runtimeLivesAndRespawn.js diff --git a/src/engine/runtime/runtimeMovementProcessing.js b/www/src/engine/runtime/runtimeMovementProcessing.js similarity index 100% rename from src/engine/runtime/runtimeMovementProcessing.js rename to www/src/engine/runtime/runtimeMovementProcessing.js diff --git a/src/engine/runtime/runtimeMultiSceneLoading.js b/www/src/engine/runtime/runtimeMultiSceneLoading.js similarity index 100% rename from src/engine/runtime/runtimeMultiSceneLoading.js rename to www/src/engine/runtime/runtimeMultiSceneLoading.js diff --git a/src/engine/runtime/runtimeObjectInstantiation.js b/www/src/engine/runtime/runtimeObjectInstantiation.js similarity index 100% rename from src/engine/runtime/runtimeObjectInstantiation.js rename to www/src/engine/runtime/runtimeObjectInstantiation.js diff --git a/src/engine/runtime/runtimeObjectRecordFactory.js b/www/src/engine/runtime/runtimeObjectRecordFactory.js similarity index 100% rename from src/engine/runtime/runtimeObjectRecordFactory.js rename to www/src/engine/runtime/runtimeObjectRecordFactory.js diff --git a/src/engine/runtime/runtimeOutcomeProcessing.js b/www/src/engine/runtime/runtimeOutcomeProcessing.js similarity index 100% rename from src/engine/runtime/runtimeOutcomeProcessing.js rename to www/src/engine/runtime/runtimeOutcomeProcessing.js diff --git a/src/engine/runtime/runtimePlayableLoop.js b/www/src/engine/runtime/runtimePlayableLoop.js similarity index 100% rename from src/engine/runtime/runtimePlayableLoop.js rename to www/src/engine/runtime/runtimePlayableLoop.js diff --git a/src/engine/runtime/runtimeRenderPipeline.js b/www/src/engine/runtime/runtimeRenderPipeline.js similarity index 100% rename from src/engine/runtime/runtimeRenderPipeline.js rename to www/src/engine/runtime/runtimeRenderPipeline.js diff --git a/src/engine/runtime/runtimeRenderingBootstrap.js b/www/src/engine/runtime/runtimeRenderingBootstrap.js similarity index 100% rename from src/engine/runtime/runtimeRenderingBootstrap.js rename to www/src/engine/runtime/runtimeRenderingBootstrap.js diff --git a/src/engine/runtime/runtimeRuleAttachment.js b/www/src/engine/runtime/runtimeRuleAttachment.js similarity index 100% rename from src/engine/runtime/runtimeRuleAttachment.js rename to www/src/engine/runtime/runtimeRuleAttachment.js diff --git a/src/engine/runtime/runtimeSceneDefinitionSupport.js b/www/src/engine/runtime/runtimeSceneDefinitionSupport.js similarity index 100% rename from src/engine/runtime/runtimeSceneDefinitionSupport.js rename to www/src/engine/runtime/runtimeSceneDefinitionSupport.js diff --git a/src/engine/runtime/runtimeScoringAndStateProcessing.js b/www/src/engine/runtime/runtimeScoringAndStateProcessing.js similarity index 100% rename from src/engine/runtime/runtimeScoringAndStateProcessing.js rename to www/src/engine/runtime/runtimeScoringAndStateProcessing.js diff --git a/src/engine/runtime/runtimeSpawnDespawnProcessing.js b/www/src/engine/runtime/runtimeSpawnDespawnProcessing.js similarity index 100% rename from src/engine/runtime/runtimeSpawnDespawnProcessing.js rename to www/src/engine/runtime/runtimeSpawnDespawnProcessing.js diff --git a/src/engine/runtime/runtimeTerrainEffects.js b/www/src/engine/runtime/runtimeTerrainEffects.js similarity index 100% rename from src/engine/runtime/runtimeTerrainEffects.js rename to www/src/engine/runtime/runtimeTerrainEffects.js diff --git a/src/engine/runtime/runtimeTerrainMaterialInstantiation.js b/www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js similarity index 100% rename from src/engine/runtime/runtimeTerrainMaterialInstantiation.js rename to www/src/engine/runtime/runtimeTerrainMaterialInstantiation.js diff --git a/src/engine/runtime/runtimeTickLoop.js b/www/src/engine/runtime/runtimeTickLoop.js similarity index 100% rename from src/engine/runtime/runtimeTickLoop.js rename to www/src/engine/runtime/runtimeTickLoop.js diff --git a/src/engine/runtime/runtimeTriggerProcessing.js b/www/src/engine/runtime/runtimeTriggerProcessing.js similarity index 100% rename from src/engine/runtime/runtimeTriggerProcessing.js rename to www/src/engine/runtime/runtimeTriggerProcessing.js diff --git a/src/engine/scene/AttractModeController.js b/www/src/engine/scene/AttractModeController.js similarity index 100% rename from src/engine/scene/AttractModeController.js rename to www/src/engine/scene/AttractModeController.js diff --git a/src/engine/scene/Scene.js b/www/src/engine/scene/Scene.js similarity index 100% rename from src/engine/scene/Scene.js rename to www/src/engine/scene/Scene.js diff --git a/src/engine/scene/SceneManager.js b/www/src/engine/scene/SceneManager.js similarity index 100% rename from src/engine/scene/SceneManager.js rename to www/src/engine/scene/SceneManager.js diff --git a/src/engine/scene/SceneTransition.js b/www/src/engine/scene/SceneTransition.js similarity index 100% rename from src/engine/scene/SceneTransition.js rename to www/src/engine/scene/SceneTransition.js diff --git a/src/engine/scene/SceneTransitionController.js b/www/src/engine/scene/SceneTransitionController.js similarity index 100% rename from src/engine/scene/SceneTransitionController.js rename to www/src/engine/scene/SceneTransitionController.js diff --git a/src/engine/scene/TransitionScene.js b/www/src/engine/scene/TransitionScene.js similarity index 100% rename from src/engine/scene/TransitionScene.js rename to www/src/engine/scene/TransitionScene.js diff --git a/src/engine/security/DataIntegrityService.js b/www/src/engine/security/DataIntegrityService.js similarity index 100% rename from src/engine/security/DataIntegrityService.js rename to www/src/engine/security/DataIntegrityService.js diff --git a/src/engine/security/PacketValidator.js b/www/src/engine/security/PacketValidator.js similarity index 100% rename from src/engine/security/PacketValidator.js rename to www/src/engine/security/PacketValidator.js diff --git a/src/engine/security/PermissionGate.js b/www/src/engine/security/PermissionGate.js similarity index 100% rename from src/engine/security/PermissionGate.js rename to www/src/engine/security/PermissionGate.js diff --git a/src/engine/security/SessionTrustValidator.js b/www/src/engine/security/SessionTrustValidator.js similarity index 100% rename from src/engine/security/SessionTrustValidator.js rename to www/src/engine/security/SessionTrustValidator.js diff --git a/src/engine/state/StateMachine.js b/www/src/engine/state/StateMachine.js similarity index 100% rename from src/engine/state/StateMachine.js rename to www/src/engine/state/StateMachine.js diff --git a/src/engine/systems/BounceSystem.js b/www/src/engine/systems/BounceSystem.js similarity index 100% rename from src/engine/systems/BounceSystem.js rename to www/src/engine/systems/BounceSystem.js diff --git a/src/engine/systems/BoundsSystem.js b/www/src/engine/systems/BoundsSystem.js similarity index 100% rename from src/engine/systems/BoundsSystem.js rename to www/src/engine/systems/BoundsSystem.js diff --git a/src/engine/systems/CollectSystem.js b/www/src/engine/systems/CollectSystem.js similarity index 100% rename from src/engine/systems/CollectSystem.js rename to www/src/engine/systems/CollectSystem.js diff --git a/src/engine/systems/CollisionResolutionSystem.js b/www/src/engine/systems/CollisionResolutionSystem.js similarity index 100% rename from src/engine/systems/CollisionResolutionSystem.js rename to www/src/engine/systems/CollisionResolutionSystem.js diff --git a/src/engine/systems/CollisionSystem.js b/www/src/engine/systems/CollisionSystem.js similarity index 100% rename from src/engine/systems/CollisionSystem.js rename to www/src/engine/systems/CollisionSystem.js diff --git a/src/engine/systems/InputControlSystem.js b/www/src/engine/systems/InputControlSystem.js similarity index 100% rename from src/engine/systems/InputControlSystem.js rename to www/src/engine/systems/InputControlSystem.js diff --git a/src/engine/systems/LifecycleSystem.js b/www/src/engine/systems/LifecycleSystem.js similarity index 100% rename from src/engine/systems/LifecycleSystem.js rename to www/src/engine/systems/LifecycleSystem.js diff --git a/src/engine/systems/MovementSystem.js b/www/src/engine/systems/MovementSystem.js similarity index 100% rename from src/engine/systems/MovementSystem.js rename to www/src/engine/systems/MovementSystem.js diff --git a/src/engine/systems/PhysicsSystem.js b/www/src/engine/systems/PhysicsSystem.js similarity index 100% rename from src/engine/systems/PhysicsSystem.js rename to www/src/engine/systems/PhysicsSystem.js diff --git a/src/engine/systems/ProjectileSystem.js b/www/src/engine/systems/ProjectileSystem.js similarity index 100% rename from src/engine/systems/ProjectileSystem.js rename to www/src/engine/systems/ProjectileSystem.js diff --git a/src/engine/systems/RenderSystem.js b/www/src/engine/systems/RenderSystem.js similarity index 100% rename from src/engine/systems/RenderSystem.js rename to www/src/engine/systems/RenderSystem.js diff --git a/src/engine/systems/SystemUtils.js b/www/src/engine/systems/SystemUtils.js similarity index 100% rename from src/engine/systems/SystemUtils.js rename to www/src/engine/systems/SystemUtils.js diff --git a/src/engine/tilemap/TileMetadata.js b/www/src/engine/tilemap/TileMetadata.js similarity index 100% rename from src/engine/tilemap/TileMetadata.js rename to www/src/engine/tilemap/TileMetadata.js diff --git a/src/engine/tilemap/Tilemap.js b/www/src/engine/tilemap/Tilemap.js similarity index 100% rename from src/engine/tilemap/Tilemap.js rename to www/src/engine/tilemap/Tilemap.js diff --git a/src/engine/tilemap/TilemapCollision.js b/www/src/engine/tilemap/TilemapCollision.js similarity index 100% rename from src/engine/tilemap/TilemapCollision.js rename to www/src/engine/tilemap/TilemapCollision.js diff --git a/src/engine/tilemap/TilemapRenderSystem.js b/www/src/engine/tilemap/TilemapRenderSystem.js similarity index 100% rename from src/engine/tilemap/TilemapRenderSystem.js rename to www/src/engine/tilemap/TilemapRenderSystem.js diff --git a/src/engine/ui/CanvasDialogPrimitives.js b/www/src/engine/ui/CanvasDialogPrimitives.js similarity index 100% rename from src/engine/ui/CanvasDialogPrimitives.js rename to www/src/engine/ui/CanvasDialogPrimitives.js diff --git a/src/engine/ui/CanvasPopupInteractions.js b/www/src/engine/ui/CanvasPopupInteractions.js similarity index 100% rename from src/engine/ui/CanvasPopupInteractions.js rename to www/src/engine/ui/CanvasPopupInteractions.js diff --git a/src/engine/ui/CanvasPopupState.js b/www/src/engine/ui/CanvasPopupState.js similarity index 100% rename from src/engine/ui/CanvasPopupState.js rename to www/src/engine/ui/CanvasPopupState.js diff --git a/src/engine/ui/UIFramework.js b/www/src/engine/ui/UIFramework.js similarity index 100% rename from src/engine/ui/UIFramework.js rename to www/src/engine/ui/UIFramework.js diff --git a/src/engine/ui/assets/icons/pin-monocolor-filled.svg b/www/src/engine/ui/assets/icons/pin-monocolor-filled.svg similarity index 100% rename from src/engine/ui/assets/icons/pin-monocolor-filled.svg rename to www/src/engine/ui/assets/icons/pin-monocolor-filled.svg diff --git a/src/engine/ui/assets/icons/pin-monocolor.svg b/www/src/engine/ui/assets/icons/pin-monocolor.svg similarity index 100% rename from src/engine/ui/assets/icons/pin-monocolor.svg rename to www/src/engine/ui/assets/icons/pin-monocolor.svg diff --git a/src/engine/ui/baseLayout.css b/www/src/engine/ui/baseLayout.css similarity index 100% rename from src/engine/ui/baseLayout.css rename to www/src/engine/ui/baseLayout.css diff --git a/src/engine/ui/hubCommon.css b/www/src/engine/ui/hubCommon.css similarity index 100% rename from src/engine/ui/hubCommon.css rename to www/src/engine/ui/hubCommon.css diff --git a/src/engine/ui/spriteEditor.css b/www/src/engine/ui/spriteEditor.css similarity index 100% rename from src/engine/ui/spriteEditor.css rename to www/src/engine/ui/spriteEditor.css diff --git a/src/engine/world/AchievementSystem.js b/www/src/engine/world/AchievementSystem.js similarity index 100% rename from src/engine/world/AchievementSystem.js rename to www/src/engine/world/AchievementSystem.js diff --git a/src/engine/world/CutsceneSystem.js b/www/src/engine/world/CutsceneSystem.js similarity index 100% rename from src/engine/world/CutsceneSystem.js rename to www/src/engine/world/CutsceneSystem.js diff --git a/src/engine/world/DayNightCycle.js b/www/src/engine/world/DayNightCycle.js similarity index 100% rename from src/engine/world/DayNightCycle.js rename to www/src/engine/world/DayNightCycle.js diff --git a/src/engine/world/EventScriptSystem.js b/www/src/engine/world/EventScriptSystem.js similarity index 100% rename from src/engine/world/EventScriptSystem.js rename to www/src/engine/world/EventScriptSystem.js diff --git a/src/engine/world/QuestSystem.js b/www/src/engine/world/QuestSystem.js similarity index 100% rename from src/engine/world/QuestSystem.js rename to www/src/engine/world/QuestSystem.js diff --git a/src/engine/world/SpawnSystem.js b/www/src/engine/world/SpawnSystem.js similarity index 100% rename from src/engine/world/SpawnSystem.js rename to www/src/engine/world/SpawnSystem.js diff --git a/src/engine/world/WeatherSystem.js b/www/src/engine/world/WeatherSystem.js similarity index 100% rename from src/engine/world/WeatherSystem.js rename to www/src/engine/world/WeatherSystem.js diff --git a/src/engine/world/WorldStreamingSystem.js b/www/src/engine/world/WorldStreamingSystem.js similarity index 100% rename from src/engine/world/WorldStreamingSystem.js rename to www/src/engine/world/WorldStreamingSystem.js diff --git a/src/shared/array/arrays.js b/www/src/shared/array/arrays.js similarity index 100% rename from src/shared/array/arrays.js rename to www/src/shared/array/arrays.js diff --git a/src/shared/array/recordArrays.js b/www/src/shared/array/recordArrays.js similarity index 100% rename from src/shared/array/recordArrays.js rename to www/src/shared/array/recordArrays.js diff --git a/src/shared/color/color.js b/www/src/shared/color/color.js similarity index 100% rename from src/shared/color/color.js rename to www/src/shared/color/color.js diff --git a/src/shared/game/highScores.js b/www/src/shared/game/highScores.js similarity index 100% rename from src/shared/game/highScores.js rename to www/src/shared/game/highScores.js diff --git a/src/shared/game/initialsEntry.js b/www/src/shared/game/initialsEntry.js similarity index 100% rename from src/shared/game/initialsEntry.js rename to www/src/shared/game/initialsEntry.js diff --git a/src/shared/geometry/geometry.js b/www/src/shared/geometry/geometry.js similarity index 100% rename from src/shared/geometry/geometry.js rename to www/src/shared/geometry/geometry.js diff --git a/src/shared/hash/hash.js b/www/src/shared/hash/hash.js similarity index 100% rename from src/shared/hash/hash.js rename to www/src/shared/hash/hash.js diff --git a/src/shared/id/ids.js b/www/src/shared/id/ids.js similarity index 100% rename from src/shared/id/ids.js rename to www/src/shared/id/ids.js diff --git a/src/shared/json/clone.js b/www/src/shared/json/clone.js similarity index 100% rename from src/shared/json/clone.js rename to www/src/shared/json/clone.js diff --git a/src/shared/json/jsonIO.js b/www/src/shared/json/jsonIO.js similarity index 100% rename from src/shared/json/jsonIO.js rename to www/src/shared/json/jsonIO.js diff --git a/src/shared/math/Random.js b/www/src/shared/math/Random.js similarity index 100% rename from src/shared/math/Random.js rename to www/src/shared/math/Random.js diff --git a/src/shared/math/RandomSeed.js b/www/src/shared/math/RandomSeed.js similarity index 100% rename from src/shared/math/RandomSeed.js rename to www/src/shared/math/RandomSeed.js diff --git a/src/shared/math/directions.js b/www/src/shared/math/directions.js similarity index 100% rename from src/shared/math/directions.js rename to www/src/shared/math/directions.js diff --git a/src/shared/math/geometry.js b/www/src/shared/math/geometry.js similarity index 100% rename from src/shared/math/geometry.js rename to www/src/shared/math/geometry.js diff --git a/src/shared/math/numberNormalization.js b/www/src/shared/math/numberNormalization.js similarity index 100% rename from src/shared/math/numberNormalization.js rename to www/src/shared/math/numberNormalization.js diff --git a/src/shared/math/randomHelpers.js b/www/src/shared/math/randomHelpers.js similarity index 100% rename from src/shared/math/randomHelpers.js rename to www/src/shared/math/randomHelpers.js diff --git a/src/shared/math/scalars.js b/www/src/shared/math/scalars.js similarity index 100% rename from src/shared/math/scalars.js rename to www/src/shared/math/scalars.js diff --git a/src/shared/math/vectorMath.js b/www/src/shared/math/vectorMath.js similarity index 100% rename from src/shared/math/vectorMath.js rename to www/src/shared/math/vectorMath.js diff --git a/src/shared/math/vectorNormalize.js b/www/src/shared/math/vectorNormalize.js similarity index 100% rename from src/shared/math/vectorNormalize.js rename to www/src/shared/math/vectorNormalize.js diff --git a/src/shared/noise/noise.js b/www/src/shared/noise/noise.js similarity index 100% rename from src/shared/noise/noise.js rename to www/src/shared/noise/noise.js diff --git a/src/shared/number/numbers.js b/www/src/shared/number/numbers.js similarity index 100% rename from src/shared/number/numbers.js rename to www/src/shared/number/numbers.js diff --git a/src/shared/object/objects.js b/www/src/shared/object/objects.js similarity index 100% rename from src/shared/object/objects.js rename to www/src/shared/object/objects.js diff --git a/src/shared/runtime/registry.js b/www/src/shared/runtime/registry.js similarity index 100% rename from src/shared/runtime/registry.js rename to www/src/shared/runtime/registry.js diff --git a/src/shared/runtime/snapshotClone.js b/www/src/shared/runtime/snapshotClone.js similarity index 100% rename from src/shared/runtime/snapshotClone.js rename to www/src/shared/runtime/snapshotClone.js diff --git a/src/shared/state/createPromotionStateSnapshot.js b/www/src/shared/state/createPromotionStateSnapshot.js similarity index 100% rename from src/shared/state/createPromotionStateSnapshot.js rename to www/src/shared/state/createPromotionStateSnapshot.js diff --git a/src/shared/state/getState.js b/www/src/shared/state/getState.js similarity index 100% rename from src/shared/state/getState.js rename to www/src/shared/state/getState.js diff --git a/src/shared/state/getStateVariantClassification.js b/www/src/shared/state/getStateVariantClassification.js similarity index 100% rename from src/shared/state/getStateVariantClassification.js rename to www/src/shared/state/getStateVariantClassification.js diff --git a/src/shared/state/guards.js b/www/src/shared/state/guards.js similarity index 100% rename from src/shared/state/guards.js rename to www/src/shared/state/guards.js diff --git a/src/shared/state/normalization.js b/www/src/shared/state/normalization.js similarity index 100% rename from src/shared/state/normalization.js rename to www/src/shared/state/normalization.js diff --git a/src/shared/state/selectors.js b/www/src/shared/state/selectors.js similarity index 100% rename from src/shared/state/selectors.js rename to www/src/shared/state/selectors.js diff --git a/src/shared/string/commandText.js b/www/src/shared/string/commandText.js similarity index 100% rename from src/shared/string/commandText.js rename to www/src/shared/string/commandText.js diff --git a/src/shared/string/fuzzyMatchScore.js b/www/src/shared/string/fuzzyMatchScore.js similarity index 100% rename from src/shared/string/fuzzyMatchScore.js rename to www/src/shared/string/fuzzyMatchScore.js diff --git a/src/shared/string/stringifyValue.js b/www/src/shared/string/stringifyValue.js similarity index 100% rename from src/shared/string/stringifyValue.js rename to www/src/shared/string/stringifyValue.js diff --git a/src/shared/string/strings.js b/www/src/shared/string/strings.js similarity index 100% rename from src/shared/string/strings.js rename to www/src/shared/string/strings.js diff --git a/src/shared/string/textWrap.js b/www/src/shared/string/textWrap.js similarity index 100% rename from src/shared/string/textWrap.js rename to www/src/shared/string/textWrap.js diff --git a/src/shared/text/text.js b/www/src/shared/text/text.js similarity index 100% rename from src/shared/text/text.js rename to www/src/shared/text/text.js diff --git a/src/shared/time/time.js b/www/src/shared/time/time.js similarity index 100% rename from src/shared/time/time.js rename to www/src/shared/time/time.js diff --git a/src/shared/toolbox/aiAuthoringAssistant.js b/www/src/shared/toolbox/aiAuthoringAssistant.js similarity index 100% rename from src/shared/toolbox/aiAuthoringAssistant.js rename to www/src/shared/toolbox/aiAuthoringAssistant.js diff --git a/src/shared/toolbox/assetMarketplace.js b/www/src/shared/toolbox/assetMarketplace.js similarity index 100% rename from src/shared/toolbox/assetMarketplace.js rename to www/src/shared/toolbox/assetMarketplace.js diff --git a/src/shared/toolbox/assetPipelineConverters.js b/www/src/shared/toolbox/assetPipelineConverters.js similarity index 100% rename from src/shared/toolbox/assetPipelineConverters.js rename to www/src/shared/toolbox/assetPipelineConverters.js diff --git a/src/shared/toolbox/assetPipelineFoundation.js b/www/src/shared/toolbox/assetPipelineFoundation.js similarity index 100% rename from src/shared/toolbox/assetPipelineFoundation.js rename to www/src/shared/toolbox/assetPipelineFoundation.js diff --git a/src/shared/toolbox/assetPipelineValidationOutput.js b/www/src/shared/toolbox/assetPipelineValidationOutput.js similarity index 100% rename from src/shared/toolbox/assetPipelineValidationOutput.js rename to www/src/shared/toolbox/assetPipelineValidationOutput.js diff --git a/src/shared/toolbox/assetUsageIntegration.js b/www/src/shared/toolbox/assetUsageIntegration.js similarity index 100% rename from src/shared/toolbox/assetUsageIntegration.js rename to www/src/shared/toolbox/assetUsageIntegration.js diff --git a/src/shared/toolbox/ciValidationPipeline.js b/www/src/shared/toolbox/ciValidationPipeline.js similarity index 100% rename from src/shared/toolbox/ciValidationPipeline.js rename to www/src/shared/toolbox/ciValidationPipeline.js diff --git a/src/shared/toolbox/cloudRuntime.js b/www/src/shared/toolbox/cloudRuntime.js similarity index 100% rename from src/shared/toolbox/cloudRuntime.js rename to www/src/shared/toolbox/cloudRuntime.js diff --git a/src/shared/toolbox/collaborationSystem.js b/www/src/shared/toolbox/collaborationSystem.js similarity index 100% rename from src/shared/toolbox/collaborationSystem.js rename to www/src/shared/toolbox/collaborationSystem.js diff --git a/src/shared/toolbox/contractVersioning.js b/www/src/shared/toolbox/contractVersioning.js similarity index 100% rename from src/shared/toolbox/contractVersioning.js rename to www/src/shared/toolbox/contractVersioning.js diff --git a/src/shared/toolbox/debugInspectorData.js b/www/src/shared/toolbox/debugInspectorData.js similarity index 100% rename from src/shared/toolbox/debugInspectorData.js rename to www/src/shared/toolbox/debugInspectorData.js diff --git a/src/shared/toolbox/debugInspectorTools.css b/www/src/shared/toolbox/debugInspectorTools.css similarity index 100% rename from src/shared/toolbox/debugInspectorTools.css rename to www/src/shared/toolbox/debugInspectorTools.css diff --git a/src/shared/toolbox/debugToolInteractionFlow.js b/www/src/shared/toolbox/debugToolInteractionFlow.js similarity index 100% rename from src/shared/toolbox/debugToolInteractionFlow.js rename to www/src/shared/toolbox/debugToolInteractionFlow.js diff --git a/src/shared/toolbox/debugVisualizationLayer.js b/www/src/shared/toolbox/debugVisualizationLayer.js similarity index 100% rename from src/shared/toolbox/debugVisualizationLayer.js rename to www/src/shared/toolbox/debugVisualizationLayer.js diff --git a/src/shared/toolbox/devConsoleDebugOverlay.js b/www/src/shared/toolbox/devConsoleDebugOverlay.js similarity index 100% rename from src/shared/toolbox/devConsoleDebugOverlay.js rename to www/src/shared/toolbox/devConsoleDebugOverlay.js diff --git a/src/shared/toolbox/documentModeGuards.js b/www/src/shared/toolbox/documentModeGuards.js similarity index 100% rename from src/shared/toolbox/documentModeGuards.js rename to www/src/shared/toolbox/documentModeGuards.js diff --git a/src/shared/toolbox/editor/EntityPlacementEditor.js b/www/src/shared/toolbox/editor/EntityPlacementEditor.js similarity index 100% rename from src/shared/toolbox/editor/EntityPlacementEditor.js rename to www/src/shared/toolbox/editor/EntityPlacementEditor.js diff --git a/src/shared/toolbox/editor/LevelEditor.js b/www/src/shared/toolbox/editor/LevelEditor.js similarity index 100% rename from src/shared/toolbox/editor/LevelEditor.js rename to www/src/shared/toolbox/editor/LevelEditor.js diff --git a/src/shared/toolbox/editor/TileMapEditor.js b/www/src/shared/toolbox/editor/TileMapEditor.js similarity index 100% rename from src/shared/toolbox/editor/TileMapEditor.js rename to www/src/shared/toolbox/editor/TileMapEditor.js diff --git a/src/shared/toolbox/editor/TimelineEditor.js b/www/src/shared/toolbox/editor/TimelineEditor.js similarity index 100% rename from src/shared/toolbox/editor/TimelineEditor.js rename to www/src/shared/toolbox/editor/TimelineEditor.js diff --git a/src/shared/toolbox/editorExperienceLayer.js b/www/src/shared/toolbox/editorExperienceLayer.js similarity index 100% rename from src/shared/toolbox/editorExperienceLayer.js rename to www/src/shared/toolbox/editorExperienceLayer.js diff --git a/src/shared/toolbox/eventCommandUtils.js b/www/src/shared/toolbox/eventCommandUtils.js similarity index 100% rename from src/shared/toolbox/eventCommandUtils.js rename to www/src/shared/toolbox/eventCommandUtils.js diff --git a/src/shared/toolbox/gameTemplates.js b/www/src/shared/toolbox/gameTemplates.js similarity index 100% rename from src/shared/toolbox/gameTemplates.js rename to www/src/shared/toolbox/gameTemplates.js diff --git a/src/shared/toolbox/gameplaySystemLayer.js b/www/src/shared/toolbox/gameplaySystemLayer.js similarity index 100% rename from src/shared/toolbox/gameplaySystemLayer.js rename to www/src/shared/toolbox/gameplaySystemLayer.js diff --git a/src/shared/toolbox/hotReloadSystem.js b/www/src/shared/toolbox/hotReloadSystem.js similarity index 100% rename from src/shared/toolbox/hotReloadSystem.js rename to www/src/shared/toolbox/hotReloadSystem.js diff --git a/src/shared/toolbox/livePreviewSyncChannel.js b/www/src/shared/toolbox/livePreviewSyncChannel.js similarity index 100% rename from src/shared/toolbox/livePreviewSyncChannel.js rename to www/src/shared/toolbox/livePreviewSyncChannel.js diff --git a/src/shared/toolbox/multiTargetExport.js b/www/src/shared/toolbox/multiTargetExport.js similarity index 100% rename from src/shared/toolbox/multiTargetExport.js rename to www/src/shared/toolbox/multiTargetExport.js diff --git a/src/shared/toolbox/paletteDocumentContract.js b/www/src/shared/toolbox/paletteDocumentContract.js similarity index 100% rename from src/shared/toolbox/paletteDocumentContract.js rename to www/src/shared/toolbox/paletteDocumentContract.js diff --git a/src/shared/toolbox/performanceBenchmarks.js b/www/src/shared/toolbox/performanceBenchmarks.js similarity index 100% rename from src/shared/toolbox/performanceBenchmarks.js rename to www/src/shared/toolbox/performanceBenchmarks.js diff --git a/src/shared/toolbox/performanceProfiler.js b/www/src/shared/toolbox/performanceProfiler.js similarity index 100% rename from src/shared/toolbox/performanceProfiler.js rename to www/src/shared/toolbox/performanceProfiler.js diff --git a/src/shared/toolbox/pipeline/AssetImportPipeline.js b/www/src/shared/toolbox/pipeline/AssetImportPipeline.js similarity index 100% rename from src/shared/toolbox/pipeline/AssetImportPipeline.js rename to www/src/shared/toolbox/pipeline/AssetImportPipeline.js diff --git a/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js b/www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js similarity index 100% rename from src/shared/toolbox/pipeline/AudioPreprocessPipeline.js rename to www/src/shared/toolbox/pipeline/AudioPreprocessPipeline.js diff --git a/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js b/www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js similarity index 100% rename from src/shared/toolbox/pipeline/BuildAssetManifestSystem.js rename to www/src/shared/toolbox/pipeline/BuildAssetManifestSystem.js diff --git a/src/shared/toolbox/pipeline/ContentMigrationSystem.js b/www/src/shared/toolbox/pipeline/ContentMigrationSystem.js similarity index 100% rename from src/shared/toolbox/pipeline/ContentMigrationSystem.js rename to www/src/shared/toolbox/pipeline/ContentMigrationSystem.js diff --git a/src/shared/toolbox/pipeline/ContentValidationPipeline.js b/www/src/shared/toolbox/pipeline/ContentValidationPipeline.js similarity index 100% rename from src/shared/toolbox/pipeline/ContentValidationPipeline.js rename to www/src/shared/toolbox/pipeline/ContentValidationPipeline.js diff --git a/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js b/www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js similarity index 100% rename from src/shared/toolbox/pipeline/TexturePreprocessPipeline.js rename to www/src/shared/toolbox/pipeline/TexturePreprocessPipeline.js diff --git a/src/shared/toolbox/pipeline/assetErrorHandling.js b/www/src/shared/toolbox/pipeline/assetErrorHandling.js similarity index 100% rename from src/shared/toolbox/pipeline/assetErrorHandling.js rename to www/src/shared/toolbox/pipeline/assetErrorHandling.js diff --git a/src/shared/toolbox/pipeline/assetManifestLoader.js b/www/src/shared/toolbox/pipeline/assetManifestLoader.js similarity index 100% rename from src/shared/toolbox/pipeline/assetManifestLoader.js rename to www/src/shared/toolbox/pipeline/assetManifestLoader.js diff --git a/src/shared/toolbox/pipeline/assetPipelineTooling.js b/www/src/shared/toolbox/pipeline/assetPipelineTooling.js similarity index 100% rename from src/shared/toolbox/pipeline/assetPipelineTooling.js rename to www/src/shared/toolbox/pipeline/assetPipelineTooling.js diff --git a/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js b/www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js similarity index 100% rename from src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js rename to www/src/shared/toolbox/pipeline/gameAssetManifestCoordinator.js diff --git a/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js b/www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js similarity index 100% rename from src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js rename to www/src/shared/toolbox/pipeline/gameAssetManifestDiscovery.js diff --git a/src/shared/toolbox/pipeline/runtimeAssetBinding.js b/www/src/shared/toolbox/pipeline/runtimeAssetBinding.js similarity index 100% rename from src/shared/toolbox/pipeline/runtimeAssetBinding.js rename to www/src/shared/toolbox/pipeline/runtimeAssetBinding.js diff --git a/src/shared/toolbox/pipeline/runtimeAssetLookup.js b/www/src/shared/toolbox/pipeline/runtimeAssetLookup.js similarity index 100% rename from src/shared/toolbox/pipeline/runtimeAssetLookup.js rename to www/src/shared/toolbox/pipeline/runtimeAssetLookup.js diff --git a/src/shared/toolbox/pipeline/runtimeAssetValidation.js b/www/src/shared/toolbox/pipeline/runtimeAssetValidation.js similarity index 100% rename from src/shared/toolbox/pipeline/runtimeAssetValidation.js rename to www/src/shared/toolbox/pipeline/runtimeAssetValidation.js diff --git a/src/shared/toolbox/platformShell.css b/www/src/shared/toolbox/platformShell.css similarity index 100% rename from src/shared/toolbox/platformShell.css rename to www/src/shared/toolbox/platformShell.css diff --git a/src/shared/toolbox/platformShell.js b/www/src/shared/toolbox/platformShell.js similarity index 100% rename from src/shared/toolbox/platformShell.js rename to www/src/shared/toolbox/platformShell.js diff --git a/src/shared/toolbox/platformValidationSuite.js b/www/src/shared/toolbox/platformValidationSuite.js similarity index 100% rename from src/shared/toolbox/platformValidationSuite.js rename to www/src/shared/toolbox/platformValidationSuite.js diff --git a/src/shared/toolbox/pluginArchitecture.js b/www/src/shared/toolbox/pluginArchitecture.js similarity index 100% rename from src/shared/toolbox/pluginArchitecture.js rename to www/src/shared/toolbox/pluginArchitecture.js diff --git a/src/shared/toolbox/powerShell/find_dupes_called.ps1 b/www/src/shared/toolbox/powerShell/find_dupes_called.ps1 similarity index 100% rename from src/shared/toolbox/powerShell/find_dupes_called.ps1 rename to www/src/shared/toolbox/powerShell/find_dupes_called.ps1 diff --git a/src/shared/toolbox/projectAssetRegistry.js b/www/src/shared/toolbox/projectAssetRegistry.js similarity index 100% rename from src/shared/toolbox/projectAssetRegistry.js rename to www/src/shared/toolbox/projectAssetRegistry.js diff --git a/src/shared/toolbox/projectAssetRemediation.js b/www/src/shared/toolbox/projectAssetRemediation.js similarity index 100% rename from src/shared/toolbox/projectAssetRemediation.js rename to www/src/shared/toolbox/projectAssetRemediation.js diff --git a/src/shared/toolbox/projectAssetValidation.js b/www/src/shared/toolbox/projectAssetValidation.js similarity index 100% rename from src/shared/toolbox/projectAssetValidation.js rename to www/src/shared/toolbox/projectAssetValidation.js diff --git a/src/shared/toolbox/projectManifestContract.js b/www/src/shared/toolbox/projectManifestContract.js similarity index 100% rename from src/shared/toolbox/projectManifestContract.js rename to www/src/shared/toolbox/projectManifestContract.js diff --git a/src/shared/toolbox/projectPackaging.js b/www/src/shared/toolbox/projectPackaging.js similarity index 100% rename from src/shared/toolbox/projectPackaging.js rename to www/src/shared/toolbox/projectPackaging.js diff --git a/src/shared/toolbox/projectSystem.js b/www/src/shared/toolbox/projectSystem.js similarity index 100% rename from src/shared/toolbox/projectSystem.js rename to www/src/shared/toolbox/projectSystem.js diff --git a/src/shared/toolbox/projectSystemAdapters.js b/www/src/shared/toolbox/projectSystemAdapters.js similarity index 100% rename from src/shared/toolbox/projectSystemAdapters.js rename to www/src/shared/toolbox/projectSystemAdapters.js diff --git a/src/shared/toolbox/projectSystemValueUtils.js b/www/src/shared/toolbox/projectSystemValueUtils.js similarity index 100% rename from src/shared/toolbox/projectSystemValueUtils.js rename to www/src/shared/toolbox/projectSystemValueUtils.js diff --git a/src/shared/toolbox/projectToolIntegration.js b/www/src/shared/toolbox/projectToolIntegration.js similarity index 100% rename from src/shared/toolbox/projectToolIntegration.js rename to www/src/shared/toolbox/projectToolIntegration.js diff --git a/src/shared/toolbox/projectVersioning.js b/www/src/shared/toolbox/projectVersioning.js similarity index 100% rename from src/shared/toolbox/projectVersioning.js rename to www/src/shared/toolbox/projectVersioning.js diff --git a/src/shared/toolbox/publishingPipeline.js b/www/src/shared/toolbox/publishingPipeline.js similarity index 100% rename from src/shared/toolbox/publishingPipeline.js rename to www/src/shared/toolbox/publishingPipeline.js diff --git a/src/shared/toolbox/renderPipelineContract.js b/www/src/shared/toolbox/renderPipelineContract.js similarity index 100% rename from src/shared/toolbox/renderPipelineContract.js rename to www/src/shared/toolbox/renderPipelineContract.js diff --git a/src/shared/toolbox/runtimeAssetLoader.js b/www/src/shared/toolbox/runtimeAssetLoader.js similarity index 100% rename from src/shared/toolbox/runtimeAssetLoader.js rename to www/src/shared/toolbox/runtimeAssetLoader.js diff --git a/src/shared/toolbox/runtimeAssetSharedUtils.js b/www/src/shared/toolbox/runtimeAssetSharedUtils.js similarity index 100% rename from src/shared/toolbox/runtimeAssetSharedUtils.js rename to www/src/shared/toolbox/runtimeAssetSharedUtils.js diff --git a/src/shared/toolbox/runtimeAssetValidationUtils.js b/www/src/shared/toolbox/runtimeAssetValidationUtils.js similarity index 100% rename from src/shared/toolbox/runtimeAssetValidationUtils.js rename to www/src/shared/toolbox/runtimeAssetValidationUtils.js diff --git a/src/shared/toolbox/runtimeSceneLoaderHotReload.js b/www/src/shared/toolbox/runtimeSceneLoaderHotReload.js similarity index 100% rename from src/shared/toolbox/runtimeSceneLoaderHotReload.js rename to www/src/shared/toolbox/runtimeSceneLoaderHotReload.js diff --git a/src/shared/toolbox/runtimeStreaming.js b/www/src/shared/toolbox/runtimeStreaming.js similarity index 100% rename from src/shared/toolbox/runtimeStreaming.js rename to www/src/shared/toolbox/runtimeStreaming.js diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg similarity index 100% rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json similarity index 100% rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json similarity index 100% rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json similarity index 100% rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tilemaps/overworld-main.tilemap.json diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png b/www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png similarity index 100% rename from src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png rename to www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png diff --git a/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json b/www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json similarity index 70% rename from src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json rename to www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json index 652f0f4a4..b0bfa2447 100644 --- a/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json +++ b/www/src/shared/toolbox/samples/project-asset-registry-demo/project.assets.json @@ -7,7 +7,7 @@ }, "version": 1, "projectId": "mario-style-learning-level", - "basePath": "src/shared/toolbox/samples/project-asset-registry-demo", + "basePath": "www/src/shared/toolbox/samples/project-asset-registry-demo", "palettes": [ { "id": "palette.crayola032", @@ -21,7 +21,7 @@ { "id": "sprite.hero-idle", "name": "Hero Idle", - "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json", + "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/sprites/hero-idle.sprite.json", "paletteId": "palette.crayola032", "sourceTool": "sprite-editor" } @@ -30,7 +30,7 @@ { "id": "tileset.overworld-main", "name": "Overworld Main", - "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png", + "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/tiles/overworld-main.png", "tileWidth": 24, "tileHeight": 24, "sourceTool": "tile-map-editor" @@ -40,7 +40,7 @@ { "id": "image.parallax-clouds", "name": "Parallax Clouds", - "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg", + "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/images/clouds-layer.svg", "sourceTool": "parallax-editor" } ], @@ -48,7 +48,7 @@ { "id": "parallax.sky-clouds", "name": "Sky Clouds", - "path": "src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json", + "path": "www/src/shared/toolbox/samples/project-asset-registry-demo/assets/parallax/overworld-main.parallax.json", "imageId": "image.parallax-clouds", "sourceTool": "parallax-editor" } diff --git a/src/shared/toolbox/schemaOnlyToolPresetValidation.js b/www/src/shared/toolbox/schemaOnlyToolPresetValidation.js similarity index 100% rename from src/shared/toolbox/schemaOnlyToolPresetValidation.js rename to www/src/shared/toolbox/schemaOnlyToolPresetValidation.js diff --git a/src/shared/toolbox/tool-metadata-inventory.js b/www/src/shared/toolbox/tool-metadata-inventory.js similarity index 100% rename from src/shared/toolbox/tool-metadata-inventory.js rename to www/src/shared/toolbox/tool-metadata-inventory.js diff --git a/src/shared/toolbox/toolBootContract.js b/www/src/shared/toolbox/toolBootContract.js similarity index 100% rename from src/shared/toolbox/toolBootContract.js rename to www/src/shared/toolbox/toolBootContract.js diff --git a/src/shared/toolbox/toolHostManifest.js b/www/src/shared/toolbox/toolHostManifest.js similarity index 100% rename from src/shared/toolbox/toolHostManifest.js rename to www/src/shared/toolbox/toolHostManifest.js diff --git a/src/shared/toolbox/toolHostRuntime.js b/www/src/shared/toolbox/toolHostRuntime.js similarity index 100% rename from src/shared/toolbox/toolHostRuntime.js rename to www/src/shared/toolbox/toolHostRuntime.js diff --git a/src/shared/toolbox/toolHostSharedContext.js b/www/src/shared/toolbox/toolHostSharedContext.js similarity index 100% rename from src/shared/toolbox/toolHostSharedContext.js rename to www/src/shared/toolbox/toolHostSharedContext.js diff --git a/src/shared/toolbox/toolLaunchSSoT.js b/www/src/shared/toolbox/toolLaunchSSoT.js similarity index 100% rename from src/shared/toolbox/toolLaunchSSoT.js rename to www/src/shared/toolbox/toolLaunchSSoT.js diff --git a/src/shared/toolbox/toolLaunchSSoTData.js b/www/src/shared/toolbox/toolLaunchSSoTData.js similarity index 100% rename from src/shared/toolbox/toolLaunchSSoTData.js rename to www/src/shared/toolbox/toolLaunchSSoTData.js diff --git a/src/shared/toolbox/toolLoadDiagnostics.js b/www/src/shared/toolbox/toolLoadDiagnostics.js similarity index 100% rename from src/shared/toolbox/toolLoadDiagnostics.js rename to www/src/shared/toolbox/toolLoadDiagnostics.js diff --git a/src/shared/toolbox/toolSampleCatalog.js b/www/src/shared/toolbox/toolSampleCatalog.js similarity index 100% rename from src/shared/toolbox/toolSampleCatalog.js rename to www/src/shared/toolbox/toolSampleCatalog.js diff --git a/src/shared/toolbox/tooling/AssetBrowser.js b/www/src/shared/toolbox/tooling/AssetBrowser.js similarity index 100% rename from src/shared/toolbox/tooling/AssetBrowser.js rename to www/src/shared/toolbox/tooling/AssetBrowser.js diff --git a/src/shared/toolbox/tooling/DeveloperConsole.js b/www/src/shared/toolbox/tooling/DeveloperConsole.js similarity index 100% rename from src/shared/toolbox/tooling/DeveloperConsole.js rename to www/src/shared/toolbox/tooling/DeveloperConsole.js diff --git a/src/shared/toolbox/tooling/LiveTuningService.js b/www/src/shared/toolbox/tooling/LiveTuningService.js similarity index 100% rename from src/shared/toolbox/tooling/LiveTuningService.js rename to www/src/shared/toolbox/tooling/LiveTuningService.js diff --git a/src/shared/toolbox/tooling/PropertyEditor.js b/www/src/shared/toolbox/tooling/PropertyEditor.js similarity index 100% rename from src/shared/toolbox/tooling/PropertyEditor.js rename to www/src/shared/toolbox/tooling/PropertyEditor.js diff --git a/src/shared/toolbox/tooling/RuntimeInspector.js b/www/src/shared/toolbox/tooling/RuntimeInspector.js similarity index 100% rename from src/shared/toolbox/tooling/RuntimeInspector.js rename to www/src/shared/toolbox/tooling/RuntimeInspector.js diff --git a/src/shared/toolbox/tooling/SceneGraphViewer.js b/www/src/shared/toolbox/tooling/SceneGraphViewer.js similarity index 100% rename from src/shared/toolbox/tooling/SceneGraphViewer.js rename to www/src/shared/toolbox/tooling/SceneGraphViewer.js diff --git a/src/shared/toolbox/uiSafeUtils.js b/www/src/shared/toolbox/uiSafeUtils.js similarity index 100% rename from src/shared/toolbox/uiSafeUtils.js rename to www/src/shared/toolbox/uiSafeUtils.js diff --git a/src/shared/toolbox/unifiedToolUxContract.js b/www/src/shared/toolbox/unifiedToolUxContract.js similarity index 100% rename from src/shared/toolbox/unifiedToolUxContract.js rename to www/src/shared/toolbox/unifiedToolUxContract.js diff --git a/src/shared/toolbox/vector/vectorAssetBridge.js b/www/src/shared/toolbox/vector/vectorAssetBridge.js similarity index 100% rename from src/shared/toolbox/vector/vectorAssetBridge.js rename to www/src/shared/toolbox/vector/vectorAssetBridge.js diff --git a/src/shared/toolbox/vector/vectorAssetContract.js b/www/src/shared/toolbox/vector/vectorAssetContract.js similarity index 100% rename from src/shared/toolbox/vector/vectorAssetContract.js rename to www/src/shared/toolbox/vector/vectorAssetContract.js diff --git a/src/shared/toolbox/vector/vectorGeometryMath.js b/www/src/shared/toolbox/vector/vectorGeometryMath.js similarity index 100% rename from src/shared/toolbox/vector/vectorGeometryMath.js rename to www/src/shared/toolbox/vector/vectorGeometryMath.js diff --git a/src/shared/toolbox/vector/vectorRenderPrep.js b/www/src/shared/toolbox/vector/vectorRenderPrep.js similarity index 100% rename from src/shared/toolbox/vector/vectorRenderPrep.js rename to www/src/shared/toolbox/vector/vectorRenderPrep.js diff --git a/src/shared/toolbox/vector/vectorSafeValueUtils.js b/www/src/shared/toolbox/vector/vectorSafeValueUtils.js similarity index 100% rename from src/shared/toolbox/vector/vectorSafeValueUtils.js rename to www/src/shared/toolbox/vector/vectorSafeValueUtils.js diff --git a/src/shared/toolbox/vectorAssetSystem.js b/www/src/shared/toolbox/vectorAssetSystem.js similarity index 100% rename from src/shared/toolbox/vectorAssetSystem.js rename to www/src/shared/toolbox/vectorAssetSystem.js diff --git a/src/shared/toolbox/vectorGeometryRuntime.js b/www/src/shared/toolbox/vectorGeometryRuntime.js similarity index 100% rename from src/shared/toolbox/vectorGeometryRuntime.js rename to www/src/shared/toolbox/vectorGeometryRuntime.js diff --git a/src/shared/toolbox/vectorNativeTemplate.js b/www/src/shared/toolbox/vectorNativeTemplate.js similarity index 100% rename from src/shared/toolbox/vectorNativeTemplate.js rename to www/src/shared/toolbox/vectorNativeTemplate.js diff --git a/src/shared/toolbox/vectorTemplateSampleGame.js b/www/src/shared/toolbox/vectorTemplateSampleGame.js similarity index 100% rename from src/shared/toolbox/vectorTemplateSampleGame.js rename to www/src/shared/toolbox/vectorTemplateSampleGame.js diff --git a/src/shared/toolbox/workspaceShell.js b/www/src/shared/toolbox/workspaceShell.js similarity index 100% rename from src/shared/toolbox/workspaceShell.js rename to www/src/shared/toolbox/workspaceShell.js diff --git a/src/shared/types/typeGuards.js b/www/src/shared/types/typeGuards.js similarity index 100% rename from src/shared/types/typeGuards.js rename to www/src/shared/types/typeGuards.js diff --git a/src/shared/validation/assert.js b/www/src/shared/validation/assert.js similarity index 100% rename from src/shared/validation/assert.js rename to www/src/shared/validation/assert.js diff --git a/src/shared/validation/invariant.js b/www/src/shared/validation/invariant.js similarity index 100% rename from src/shared/validation/invariant.js rename to www/src/shared/validation/invariant.js diff --git a/src/tools/common/GameManifestLoader.js b/www/src/tools/common/GameManifestLoader.js similarity index 100% rename from src/tools/common/GameManifestLoader.js rename to www/src/tools/common/GameManifestLoader.js diff --git a/src/tools/common/WorkspaceDirtyNotifier.js b/www/src/tools/common/WorkspaceDirtyNotifier.js similarity index 100% rename from src/tools/common/WorkspaceDirtyNotifier.js rename to www/src/tools/common/WorkspaceDirtyNotifier.js