@suluk/hono - v0.1.5
    Preparing search index...

    Interface RouteContract

    @suluk/hono — the derivation engine. The user authors minimal RouteContracts (Hono + Zod); everything else is derived: the v4 document (dynamic per principal + time), request validation, contract tests, and a documentation-coverage audit. See tooling/ARCHITECTURE.md. CANDIDATE tooling.

    interface RouteContract {
        method: Method;
        path: string;
        name?: string;
        summary?: string;
        description?: string;
        tags?: string[];
        deprecated?: boolean;
        deprecatedSince?: string;
        removedSince?: string;
        security?: SecurityRequirement[];
        scopes?: string[];
        errors?: number[];
        rateLimit?: SulukRateLimit;
        request?: RouteRequest;
        responses?: RouteResponse[] | Record<string, RouteResponse>;
        handler?: (c: unknown) => unknown;
    }
    Index

    Properties

    method: Method
    path: string

    Hono-style path, e.g. "/pet/:petId" or "/files/*". Converted to a v4 uriTemplate on emit.

    name?: string

    The operation's v4 by-name handle (C009). Derived from method+path if omitted.

    summary?: string
    description?: string
    tags?: string[]
    deprecated?: boolean
    deprecatedSince?: string

    ISO date; with EmitContext.now, the operation is marked deprecated once now ≥ this.

    removedSince?: string

    ISO date; with EmitContext.now, the operation is HIDDEN once now ≥ this (the "when" axis).

    security?: SecurityRequirement[]

    Explicit by-name security requirements (C014).

    scopes?: string[]

    Required scopes. Drives BOTH the per-principal filter (the "who") and synthesized security.

    errors?: number[]

    Error statuses this operation can return. Synthesized into RFC-9457 error responses by emitV4 (alongside the auto-derived 401/403 for auth-gated ops, 429 when rate-limited, and an always-present 500).

    rateLimit?: SulukRateLimit

    The declared rate budget (the x-suluk-ratelimit facet). emitV4 stamps it onto the operation + synthesizes a 429 response; @suluk/hono's enforceRateLimit middleware ENFORCES it on the wire. Advisory vendor extension.

    request?: RouteRequest
    responses?: RouteResponse[] | Record<string, RouteResponse>

    Responses, as a list (each carries its own status) or a status-keyed map.

    handler?: (c: unknown) => unknown

    Optional live handler, used only by mount().