// @ts-nocheck — Module entry point with FoundryVTT globals, no exports needed /** * module.js — Entry point and wiring diagram for Video View Manager (Scrying Pool). * * This file is the wiring diagram ONLY. It imports all modules, constructs them * with injected dependencies, and holds NO business logic. * * Initialisation order: * Hooks.once('init') → register world settings → construct FoundryAdapter * → StateStore → SocketHandler (queue+drain) * Hooks.once('ready') → VisibilityManager → SocketHandler.setReady() * → NotificationBus → RoleRenderer → RosterStrip * → DirectorsBoard (lazy, GM only) */ Hooks.once("init", () => { console.log("[ScryingPool] init — module loading"); // OQ-1 resolved (Story 1.2 spike): probe result is 'css-fallback' — see FoundryAdapter.js game.settings.register("scrying-pool", "webrtcMode", { scope: "world", config: false, type: String, default: "css-fallback", choices: { "track-disable": "Track Disable (bandwidth-saving)", "css-fallback": "CSS Fallback (cosmetic hiding)", "unsupported": "Unsupported (AV not available)", }, }); // Story 1.3+: register remaining world settings, construct FoundryAdapter, StateStore, SocketHandler }); Hooks.once("ready", () => { console.log("[ScryingPool] ready — module active"); // Story 1.3+: construct VisibilityManager, NotificationBus, RoleRenderer, RosterStrip // Story 1.5+: register DirectorsBoard (lazy, GM only) });