PURPOSE
Placeholder Ship Playground tab that renders a static notice explaining that the legacy planet-boss tooling was removed in Wave 0b and that boss encounter wiring will return in Wave 3 via engine/boss/encounter.ts. Keeps the boss tab slot present in the Playground tab strip without exposing any controls.
OWNS
- Default-exported
BossTabReact function component. - A single rendered
Panelcontaining one read-only messagedivwith inline styling.
READS FROM
Paneland theTabPropstype from./PlaygroundShared.
PUSHES TO
- Nothing. The component is purely presentational and produces no side effects, no store writes, and no engine calls.
DOES NOT
- Does not read or use any field of
TabProps(the props argument is bound to_props). - Does not touch
missionRef,shipId,restartMission,buildMode,vfxState,levelConfig, or any other lifted Playground state. - Does not register knobs in the playground knob registry.
- Does not import from
engine/,data/,services/, or any Zustand store. - Does not expose any toggle, button, slider, or interactive control. The
Panel’sopenprop is hard-codedtrueandonToggleis a no-op.
Signals
- The
open={true}plus no-oponTogglepattern signals an intentionally non-collapsible placeholder. - The inline notice references
engine/boss/encounter.tsas the planned Wave 3 re-entry point for boss wiring. - Inline style values (
color: 'rgba(255,255,255,0.72)',fontFamily: 'Arial, sans-serif',fontSize: '14px',lineHeight: 1.45,padding: '8px 0') are local to this tab and not shared with the rest of the Playground.
Entry points
- Default export
BossTabis consumed by the Ship Playground tab host as the'boss'member of thePlaygroundTabunion defined inPlaygroundShared.tsx.
Pattern notes
- Follows the same shell pattern as the other Playground tabs (
Panelwrapper fromPlaygroundShared, props typed asTabProps), but stripped down to a single static message. - Uses an underscore-prefixed
_propsparameter to satisfy theTabPropscontract while signaling that nothing on it is read. - Inline styling is used directly instead of pulling from the shared style constants in
PlaygroundShared.tsx, reflecting the tab’s temporary placeholder status. - Removal scope is tracked in-source via the Wave 0b / Wave 3 references in the notice text; the file is the single source of truth for the boss-tab pause.