/** * Blueprint System — Declarative, composable UI for the vanilla player. * * Blueprints are factory functions that receive a `BlueprintContext` and return * an HTMLElement (or null to skip). They wire reactivity via `ctx.subscribe.on()`. * * Structure descriptors define the control layout as a JSON tree. * The StructureBuilder walks the tree and calls the matching blueprint for each node. */ import type { ReactiveState } from "./ReactiveState"; import type { PlayerInstance } from "./createPlayer"; import type { StreamInfo } from "../core/PlayerInterface"; import type { CreatePlayerConfig } from "./createPlayer"; export interface BlueprintContext { /** The underlying