#pragma once #include "runtime/Plot.hpp" #include #include #include #include namespace aethera::mcp { struct Empty_Request {}; struct Plot_Request { std::string plot; /* Gallery Plot 稳定标识。 */ }; struct Component_Request { std::string plot; /* Gallery Plot 稳定标识。 */ std::string component; /* Renderable 业务组件标识。 */ }; struct Write_Property_Request { std::string plot; /* Gallery Plot 稳定标识。 */ std::string component; /* Renderable 业务组件标识。 */ std::string property; /* 待修改属性键。 */ nlohmann::json value; /* 属性协议值。 */ }; struct Generate_Data_Request { std::string plot; /* Gallery Plot 稳定标识。 */ nlohmann::json input; /* Plot 数据生成器输入。 */ }; struct Plot_Input_Request { std::string plot; /* 接收输入的 Gallery Plot。 */ web::Plot_Input_Event event; /* 带生产者时间的完整输入事件。 */ }; struct Plot_Render_Request { std::string plot; /* 接收帧请求的 Gallery Plot。 */ double time_milliseconds{}; /* MCP 调用方单调时间线上的帧时刻。 */ std::uint32_t width{720}; /* 无媒体订阅时的诊断帧宽度。 */ std::uint32_t height{420}; /* 无媒体订阅时的诊断帧高度。 */ }; struct Frame_Trace_Request { std::string plot; /* 捕获逐帧执行数据的 Gallery Plot。 */ std::size_t frame_count{1}; /* 直接复用 Plot 现有物理帧捕获槽。 */ }; }