1.0.0

- `[C]` Logger messages improved
- `[+]` Use case pipeline: `create/1`, `async/1`, `timeout/2`, `callback/2`, `reply/2`, `input/2`, `run/1`/`run/2`
- `[+]` Module-based use cases: any module exporting `exec/1` is a valid use case
- `[+]` Function-based use cases: `fn` closures and `&Module.function/1` captures work directly
- `[+]` Every pipeline function accepts a module or function directly — `create/1` is optional and the pipeline can start at any step
- `[+]` Asynchronous execution via `async/1` (fire and forget; default is synchronous)
- `[+]` Timeout via `timeout/2`: kills the underlying task when the deadline is exceeded and sets `timedout_at` on the result struct
- `[+]` Result delivery to processes via `reply/2`; validated that all targets are actual PIDs
- `[+]` Result delivery via functions with `callback/2`; callbacks fire asynchronously even for synchronous use cases
- `[+]` Lifecycle tracking via `started_at`, `finished_at`, and `timedout_at` timestamps on the result struct
- `[+]` Exception capture: exceptions raised by the use case are stored in `error` and `stacktrace`; the caller never crashes
- `[+]` Already-started guard: every pipeline function raises `ArgumentError` if called on a struct whose `started_at` is set
- `[+]` Automatic supervision tree — no manual setup required in the application supervisor
- `[C]` Use case callback named `exec/1` (not `run/1`) to avoid collision with `Interact.UseCase.run/1`
- `[+]` Starting point is the `UseCase` module presented on January 2025 at the Elixir Madrid Meetup by Ángel Herranz.