Express app with an in-memory array as the store (no database) and three
endpoints:
- GET /api/movies -> the whole collection
- GET /api/movies/:id -> one movie, 404 when the id is unknown
- POST /api/movies -> add a movie, id assigned by the server
zod schemas are the single source of truth for validation, so a missing
title, genre or year comes back as a 400 with one message per field.
index.html is served by the same app and drives all three endpoints with
fetch(), refreshing the list after a movie is added.