type SyncedParamEntity = { _param?: Record; }; type ReactiveParamEntity = { _param?: { (): Record; set(value: Record): void; }; }; /** Apply late parameter patches through the client signal so dependent GUIs update. */ export const applySyncedParamPayload = ( sceneMap: { players(): Record }, payload: { players?: Record }, ): void => { const currentPlayers = sceneMap.players(); for (const [playerId, patch] of Object.entries(payload.players ?? {})) { if (!patch._param) continue; const player = currentPlayers[playerId]; if (!player?._param?.set) continue; player._param.set({ ...(player._param() ?? {}), ...patch._param, }); } };