Dataface Tasks

M2 table formatting and linking architecture

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.