<?php

declare(strict_types=1);

namespace Fennec\Middleware;

use Fennec\Http\JsonResponse;
use Fennec\Http\Request;

/**
 * Contrat commun à tout middleware du pipeline requête/réponse.
 *
 * Un middleware peut court-circuiter la chaîne (retourner une JsonResponse sans appeler $next)
 * ou laisser passer la requête en appelant $next($request).
 */
interface MiddlewareInterface
{
    public function process(Request $request, \Closure $next): JsonResponse;
}
