/*
┌──────────────────────────────────────────────────────────────────┐
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
│ Copyright (c) 2025 Ivan Murzak │
│ Licensed under the Apache License, Version 2.0. │
│ See the LICENSE file in the project root for more information. │
└──────────────────────────────────────────────────────────────────┘
*/
#nullable enable
using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Threading;
using System.Threading.Tasks;
using com.IvanMurzak.Unity.MCP.Common.Model;
namespace com.IvanMurzak.Unity.MCP.Common
{
public interface IRunPrompt
{
string Name { get; }
string? Title { get; }
string? Description { get; }
JsonNode? InputSchema { get; }
/// <summary>
/// Executes the target method with named parameters.
/// Missing parameters will be filled with their default values or the type's default value if no default is defined.
/// </summary>
/// <param name="namedParameters">A dictionary mapping parameter names to their values.</param>
/// <returns>The result of the method execution, or null if the method is void.</returns>
Task<ResponseGetPrompt> Run(string requestId, IReadOnlyDictionary<string, JsonElement>? namedParameters, CancellationToken cancellationToken = default);
}
}