schema: spec-driven context: | OpenVidu Dashboard (CE): the admin web app bundled with every OpenVidu deployment, reading the MongoDB analytics database written by openvidu-livekit (`openvidu/analytics/`). The writer side is specified here under the capabilities prefixed `server-` and implemented in openvidu-livekit; writer and dashboard share one schema contract (`dashboard-ce/typings/contract/`) and both check its version. These specs describe CE, including how it shows PRO features locked; every requirement states its edition. An edition that extends CE does it through the exports and seams of its packages, never by forking them. Code layout, stack and conventions are in the `AGENTS.md` files. All artifacts in English. On ambiguity or infeasibility stop and ask the owner; never decide alone. rules: proposal: - State scope and explicit non-scope, the edition (CE, PRO or both) and the repositories touched (dashboard, openvidu-livekit, openvidu-deployment) - List the observable behaviour that changes and the CHANGELOG lines it implies specs: - Use Given/When/Then scenarios; every requirement names its edition (CE or PRO) - Requirements about lists state the filters, sort keys, cursor behaviour and page-size limits design: - Data model changes list collections, fields with types, indexes, retention, schema-version impact and the migration mapping from legacy events - API changes include the OpenAPI shape (paths, params, responses) and the index backing each query - State the performance budget and how it is verified (dataset size, explain() plan, p95) - Record decisions and rejected alternatives in a "Decisions" section tasks: - Group tasks by writer (openvidu-livekit), typings, backend, frontend, tests, docs and CHANGELOG - Every task names its verification (test, lint, explain() check or manual step) - Include updating the AGENTS.md files when commands, layout or conventions change operations: apply: guidance: - Run ./dashboard.sh check before reporting a task as done - Verify library versions on npm and APIs on Context7 before adding a dependency - Stop and ask the owner on ambiguity or when a task turns out infeasible; never guess archive: guidance: - Confirm the AGENTS.md files and CHANGELOG.md reflect the change before archiving