JSON Schema of the input. */ public function inputSchema(): array; /** @return array|null JSON Schema of the output, null for image results. */ public function outputSchema(): ?array; /** @return array{readonly?: bool, destructive?: bool, idempotent?: bool} */ public function annotations(): array; /** Whether the ability is listed as its own MCP tool (otherwise only via meta-tools). */ public function isDirect(): bool; /** @param array $input */ public function permission(array $input): bool|WP_Error; /** @param array $input */ public function execute(array $input): mixed; }