M2 table config schema and precedence model
Problem
Design the JSON schema for table formatting and linking with clear precedence across table and column scopes, while enforcing M2's query-layer logic model (including Jinja-generated helper columns referenced via unified keys using literal-vs-column-ID resolution).
Context
- The table initiative needs a stable schema before implementation, docs, and QA can converge.
- The key architectural constraint is presentation-only config in the table layer, with logic left in queries and helper columns.
- Precedence must stay simple enough that authors can predict outcomes from
style.tableandstyle.columns.
Possible Solutions
- A - Support many overlapping scopes and resolve conflicts loosely at runtime: flexible, but confusing.
- B - Minimize the schema to a few hardcoded presets and skip richer formatting: simple, but underpowered.
- C - Recommended: define a compact schema with table and column scopes, explicit precedence, and compile-time validation for collisions and invalid references.
Plan
- Write the normative config model for
style.tableandstyle.columns. - Define resolution rules for literals, column IDs, duplicate keys, and missing references.
- Map the schema to compile-time validation and renderer defaults.
- Use the model to drive docs, examples, and downstream implementation tasks.
Implementation Progress
QA Exploration
- [ ] QA exploration completed (or N/A for non-UI tasks)
Review Feedback
- [ ] Review cleared