# Chart PageBlock Plugin Family Plan **Goal:** Move all four admin Chart BusinessBlocks into a shared PageBlock plugin family that owns dataset validation, query context, shared runtime files, and ProjectSpec release selection. ## Task 1: Shared Template And File Contributions - [x] Resolve both block-relative and classpath-absolute template declarations through one resource contract. - [x] Extend PageBlock plugins with executable shared-file contributions. - [x] Require every shared file template to be published in the contributing Manifest. - [x] Deduplicate identical shared outputs and reject conflicting declarations deterministically. ## Task 2: Chart Plugin Family - [x] Add a common Chart PageBlock base for dataset validation and query render context. - [x] Publish line, bar, pie, and metric chart plugins as trusted `1.0.0` releases. - [x] Publish seven shared Chart templates plus the `chartRuntime.js` template in each Chart Manifest. - [x] Emit one owned `src/utils/chartRuntime.js` file for any number of admin charts. ## Task 3: Remove Legacy Chart Branches - [x] Remove direct Chart dataset validation from `BusinessBlockRegistryService`. - [x] Remove Chart query and Velocity context assembly from `BusinessBlockGenerationService`. - [x] Remove hardcoded Chart runtime emission from the generation service. - [x] Preserve existing chart SQL, API, component, display, span, and runtime output. ## Task 4: Version Selection And Verification - [x] Auto-select all used Chart plugin releases in stable code order. - [x] Cover family Manifests, validator execution, query context, shared files, and absolute templates. - [x] Run page design, project generation, Registry, template rendering, and full generator regressions.