Returns one product looked up by its handle; the response shape depends on the product type. The handle is the stable, human-readable product identifier and is the preferred way to look up a product. Pass the optional `identity` query parameter to get customer-specific prices. For ticket products, this route returns no price — availability and prices come from `GET /api/schedules/ticket` and `POST /api/quote/ticket/prices`.
Response
The product, shaped according to its type — see the `Product` schema. Tickets carry no price here; ticket availability and prices come from `GET /api/schedules/ticket` and `POST /api/quote/ticket/prices`. Gift cards may include a list of preset amounts (`options`) and a price range (`minPrice`/`maxPrice`); other types return `price` and `basePrice` directly.