/** * Service contract * * Orchestration boundary for server-side operations. * Returns API DTOs or Page DTOs only. * Must be stateless. * * Based on WEBSITE_CONTRACT.md: * - Services orchestrate IO and composition * - They do not prepare UI * - They return ApiDto or PageDto only */ /** * Base service interface for orchestration operations */ export interface Service { /** * Execute a service operation * Returns either API Transport DTO or Page DTO */ execute(...args: unknown[]): Promise; } /** * Service that returns API Transport DTOs */ export interface ApiService extends Service { execute(...args: unknown[]): Promise; } /** * Service that returns Page DTOs */ export interface PageService extends Service { execute(...args: unknown[]): Promise; }