# Port queue, start, and close

The learner can use the disabled-until-start port message queue, treat `onmessage` as implied `start()`, call `start()` after `addEventListener("message")`, and treat `close()` as disentangle (not a pause). That is now the floor: the next lesson can spend working memory on moving a port.

Evidence: the learner said they passed lesson 2 (queue lab + checks).

Implications: teach the transfer list, `event.ports`, detach/neuter, and `DataCloneError` when a port is cloned instead of transferred. Decision playbook stays later.
