# Lesson 2 complete: core API

Learner finished lesson 2 with all quiz answers correct. Treat as known: construct by exact channel name; listen with `onmessage` / `message`; **local apply then post** (sender excluded); structured clone only (no transfer list); `close()` → further posts throw `InvalidStateError`; small typed signals over bulk payloads. Next ZPD: deal-breakers and patterns — support floor, order myths, lock/leader limits, storage-event fallbacks, hands-on two-tab checklist, then decision playbook.
