
**Routerling is 100% agnostic to your folder names.**

You can define your schemas in `schemas/`, `contracts/`, `validation.js`, or even have them right next to your route files.

### How it works without directory scanning:

1.  **Memory-Based**: When you call `router.SCHEMA.POST('/path', config)`, Routerling simply saves that configuration into an internal `Map` in memory.
2.  **Execution-Triggered**: The "Baking" only happens when you call `router.listen()`.
3.  **Discovery**: It doesn't "look" for files; it looks at that internal `Map` and says: "Okay, I have a schema for `/v1/customers`. Let me find that route in my Trie and wrap it."

### Why this is better than directory scanning:

- **No Magic**: Directory scanning is often "magic" and hard to debug. With this approach, as long as you `import` the file anywhere in your project before the server starts, it works.
- **Total Freedom**: You could even fetch your schemas from a database or a remote API at startup and register them via `router.SCHEMA`, and routerling wouldn't care. `router.SCHEMA.POST('/path', config)`, Routerling simply saves that configuration into an internal `Map` in memory.
- **Execution-Triggered**: The "Baking" only happens when you call `router.listen()`. 
- **Discovery**: It doesn't "look" for files; it looks at that internal `Map` and says: "Okay, I have a schema for `/v1/customers`. Let me find that route in my Trie and wrap it."

### Why this is better than directory scanning:

- **No Magic**: Directory scanning is often "magic" and hard to debug. With this approach, as long as you `import` the file anywhere in your project before the server starts, it works.
- **Total Freedom**: You could even fetch your schemas from a database or a remote API at startup and register them via `router.SCHEMA`, and routerling wouldn't care.
