type: initiative
slug: m2-table-formatting-and-linking-architecture
title: M2 table formatting and linking architecture
workstream: graph-library
owner: data-viz-designer-engineer
status: planned
milestone: m2-internal-adoption-design-partners
Objective
Define a coherent table formatting and linking model at table and column config scope: rendered cells still exist, but M2 does not introduce a cell-level format namespace in YAML—per-row presentation comes from data plus column-ID-first fields and templates.
Scope
- Link behavior at table/column level, including cross-column URL mapping.
- Formatting at table and column scope for M2.
- In-cell visual encodings (for example data bars and sparklines) as formatting-owned behavior.
- Cross-column mapping of source values to presentation attributes (URL, colors, font weight, etc.).
- Breaking adoption of
style.table / style.columns on table charts in docs and examples (no runtime migration or compatibility shims pre-launch).
Deliverables
- [x] Create initiative scaffold and attach M2 tasks.
- [x] Research external BI and table-library configuration patterns.
- [x] Propose unified option taxonomy for table formatting + linking.
- [x] Define recommended config organization and precedence model.
- [x] Define full M2 deliverable set for table format (single milestone).
Task Plan (M2)
Recommendation Snapshot
- Nest table presentation under chart
style: style.table (table-wide) and style.columns (per query column ID), alongside generic style chrome keys.
- Treat linking as a first-class concern at column scope; row-level URL variation via column ID on
link (column-ID-first) or URL templates with column placeholders.
- Keep in-cell visuals (bars/sparklines) under
style.columns.<id>.visual so one column can combine number formatting, link behavior, and micro-visualization coherently.
- For M2, keep logic/conditions in query/data output; formatter config maps values to presentation attributes (column-ID-first strings, no parallel
*FromColumn names).
- Table
value number/date formatting mirrors Vega-Lite (format / formatType); shared Python implementation with charts (see Vega-Lite format parity task).
- Duplicate YAML keys are compile errors everywhere dashboard YAML is loaded.
Links