*/ private const KNOWN_KEYS = ['_meta', 'task']; /** * @since 2025-11-25 * * @var \WP\McpSchema\Client\Tasks\DTO\Task */ protected Task $task; /** * @param \WP\McpSchema\Client\Tasks\DTO\Task $task @since 2025-11-25 * @param array|null $_meta @since 2025-11-25 * @param array|null $additionalProperties */ public function __construct( Task $task, ?array $_meta = null, ?array $additionalProperties = null ) { parent::__construct($_meta, $additionalProperties); $this->task = $task; } /** * Creates an instance from an array. * * @param array{ * _meta?: array|null, * task: array|\WP\McpSchema\Client\Tasks\DTO\Task * } $data * @phpstan-param array $data * @return self */ public static function fromArray(array $data): self { self::assertRequired($data, ['task']); /** @var \WP\McpSchema\Client\Tasks\DTO\Task $task */ $task = is_array($data['task']) ? Task::fromArray(self::asArray($data['task'])) : $data['task']; return new self( $task, self::asArrayOrNull($data['_meta'] ?? null), self::additionalFields($data, self::KNOWN_KEYS) ); } /** * Converts the instance to an array. * * @return array */ public function toArray(): array { $result = parent::toArray(); $result['task'] = $this->task->toArray(); return $result; } /** * @return \WP\McpSchema\Client\Tasks\DTO\Task */ public function getTask(): Task { return $this->task; } }