<?php

declare(strict_types=1);

namespace Plugin\tnt_mcp\src\Mcp\Guide;

/**
 * One shipped `catalog/guides/*.md` file, front matter split from body.
 *
 * The body is handed to the LLM verbatim — it is the whole point of the file, and any reshaping
 * here would be a second, invisible authoring layer. Everything else on this object is metadata the
 * `index` answer is built from, which is why `summary` is a hard one-liner rather than free prose.
 */
final class GuideSpec
{
    /**
     * @param list<string> $appliesTo action ids this guide covers; `[]` when it covers none
     * @param list<string> $derivedFrom source refs the prose was verified against, never returned
     *                                  as truth on its own
     */
    public function __construct(
        public readonly string $topic,
        public readonly string $title,
        public readonly string $summary,
        public readonly array $appliesTo,
        public readonly array $derivedFrom,
        public readonly string $body,
    ) {
    }
}
