OpalTaskGroup
One family of OPAL tasks, described well enough to be discovered.
Declared in src/libs/libopal/opal/OpalTaskGroup.hpp.
Detailed description
A task name has always carried its family as a prefix — `construct.scene.build_tree` lives in `construct` — but the family itself was never an object, so nothing could describe it. The consequence was a system prompt that dumped all 302 tasks with every parameter on EVERY turn (89 699 of its 102 612 characters), and, worse, a hand-written manual for `construct` that stayed in the prompt long after the tasks themselves had stopped being registered. The model read that manual, wrote a correct plan, and every step failed with "task not found in registry" (§OTG-1).
A group fixes both. The prompt now carries the group summaries and the task NAMES, and the expensive part — parameters, examples, and the domain briefing — is fetched on demand through `opal.tasks.list` and `opal.tasks.describe`.
Note: `id` must equal the first dot-separated segment of every task name in the family. That is what binds a group to its tasks; there is no second list to keep in step.