Remove entityName from the required fields of dashboard-group-descriptor so group definitions no longer must specify an entity. Add an optional entityName string property to dashboard-visualization-descriptor (minLength: 1) so individual visualizations can override the group's entityName. If the visualization-level entityName is omitted, the group's entityName is used.
Introduce a set of JSON Schema definitions to support dashboards and visualizations (aggregation, chart, chart-type, descriptor, filter, group, list, number, position, user-filter, visualization, visualization-type). Update page-descriptor.schema.json to include a dashboard property and a conditional requirement when page type is "dashboard", and extend page-type.schema.json enum to include "dashboard". These changes add schema-level validation for dashboard configuration, visualizations (number/chart/list), positioning, and filters.
Add schema definitions for forms (form-descriptor, form-field-descriptor, form-field-type, form-layout-descriptor, form-rule-descriptor) to describe named forms, fields, layouts and conditional rules. Update page-type to include a new "form" page type and extend page-descriptor with form-related properties (formName, createFormName, editFormName, createFormDisplay, editFormDisplay) and conditional validation (require formName for type 'form', keep kanban's required groupByProperty). Extend model.schema.json to include a top-level "forms" array referencing the new form definitions.
Introduce page-type and page-descriptor JSON Schemas to describe UI pages (type enum: dataGrid, kanban, calendar). The PageDescriptor defines name, title, icon, type, entityName, order and a groupByProperty that is conditionally required when type is kanban. Update model.schema.json to add a pages array referencing the new page-descriptor schema so pages can be declared in the model.