OptionalCheckboxOPTIONAL members (0.2.0 triage slots): a pre-triage adapter typed
against the FULL interface keeps compiling without them, and the
provider merge fills the gap from htmlComponents — so adding a slot
stays a semver-minor, source-compatible change. The views consume the
merged ResolvedApprovalUIComponents, where every slot is present.
OptionalPresenceOptionalSelectOptionalToastOptional live-streaming slots with the same additive contract as Checkbox/Select: a full-interface adapter written before them keeps compiling, the provider merge fills them from htmlComponents, and views consume them through ResolvedApprovalUIComponents (semver-minor).
Every slot approval-ui renders through. Supply a full or partial map to; omitted slots fall back to
htmlComponents. The Table is typed to ApprovalRecord rows on purpose — this contract styles one dashboard, it is not a general-purpose UI kit.