using System.Threading;
using System.Threading.Tasks;
namespace io.github.hatayama.uLoopMCP
{
///
/// Compile tool handler - Type-safe implementation using Schema and Response
/// Handles Unity project compilation with optional force recompile
/// Related classes: CompileUseCase, CompilationStateValidationService, CompilationExecutionService
///
[McpTool(Description = "Execute Unity project compilation")]
public class CompileTool : AbstractUnityTool
{
public override string ToolName => "compile";
///
/// Execute compile tool - delegates to CompileUseCase
///
/// Type-safe parameters
/// Cancellation token for timeout control
/// Compile result
protected override async Task ExecuteAsync(CompileSchema parameters, CancellationToken cancellationToken)
{
// Create and execute CompileUseCase instance
CompileUseCase useCase = new();
return await useCase.ExecuteAsync(parameters, cancellationToken);
}
}
}