/**
 * @fileoverview Resource definition type, annotations, and `resource()` builder function.
 * Handler receives `(params, ctx)` — URI is available on `ctx.uri`.
 *
 * MCP Resources Specification:
 * @see {@link https://modelcontextprotocol.io/specification/2025-06-18/basic/resources | MCP Resources}
 * @module src/mcp-server/resources/utils/resourceDefinition
 */
// ---------------------------------------------------------------------------
// Builder
// ---------------------------------------------------------------------------
/**
 * Creates a resource definition with the URI template as first argument.
 *
 * @example
 * ```ts
 * const myResource = resource('myscheme://{itemId}/data', {
 *   description: 'Retrieve item data by ID.',
 *   mimeType: 'application/json',
 *   params: z.object({ itemId: z.string().describe('Item identifier') }),
 *   async handler(params, ctx) {
 *     ctx.log.debug('Fetching item', { itemId: params.itemId });
 *     return { id: params.itemId, status: 'active' };
 *   },
 * });
 * ```
 */
export function resource(uriTemplate, options) {
    return { uriTemplate, ...options };
}
//# sourceMappingURL=resourceDefinition.js.map