ADR-004 — No decorators, no reflect-metadata
Handlers are plain functions in a routes map — no decorators, no reflect-metadata.
Context
Nest's @Controller/@Get/@Injectable exist to feed metadata to the container and router. With routes declared as a plain map and wiring done by imports, there is nothing for decorators to carry.
Decision
Handlers are plain functions in a routes map ((req, ctx) => Response). No route, param, or injection decorators; no decorator-metadata dependency at all.
Consequences
No Stage-3-vs-legacy decorator drift, no AST type-extraction spike, no polyfill. The route map is literal data the build can merge trivially. Cost: route declarations are a little less sugary than @Get("/:id") — a deliberate trade for zero machinery.