# Entry diagnostic · Guide

1. `events.filter(event => event.places > 0).map(event => event.title)` produces a new titles array. Neither filter nor map mutates the source in this use; a callback could still cause mutation if written to do so.
2. `function describe({ title, location }) { return title + ' at ' + location; }` binds local names from object properties. It does not create a new event record or prove the input shape.
3. A named export/import must use matching names and a correct relative path. HTTP serving provides the module loading environment used by the previous course; disabling browser security is not a repair for file-origin problems.
4. Check an unsuccessful HTTP status, catch invalid JSON syntax, and validate the parsed value against the app's record rules. A fulfilled fetch and valid JSON do not guarantee a valid event array.
5. A label's for matches the input's id; the button submits the form. Enter can trigger form submission. preventDefault in the submit handler stops the browser's default navigation/submission, allowing a local practice check.
6. Read only the namespaced key, parse in try/catch, validate the parsed value and fall back visibly. The course stores only fictional event IDs, never practice names, email addresses, credentials or real registration data.

Use the readiness rule in the question page. A correct-looking snippet without an explanation is a reason to revisit the relevant foundation, not a reason to skip it.
