[
  {
    "type": "alter_table",
    "description": "Spec 050 Kiosk API v1: add stores.uiTextOverrides JSON — the per-store kiosk COPY block (EN/ES), authored in the Tablet admin page and served in GET /api/v1/config under config.copy.{lang}. Shape { en:{ uiText:{key:val,...}, disclosure:'full T&C text' }, es:{...} }. uiText holds ONLY genuine string overrides (blank/unknown/equal-to-default dropped, app keeps its built-in defaults); disclosure is the full legal terms behind 'Read the full terms' (omitted/blank -> app uses bundled default). NULL = nothing authored (config.copy emits empty uiText maps, no disclosure). Net-new, additive, nullable — all v1 endpoints keep working pre-migration via graceful fallback.",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'kiosk_buykiosk' AND TABLE_NAME = 'stores' AND COLUMN_NAME = 'uiTextOverrides'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `uiTextOverrides` JSON DEFAULT NULL COMMENT 'Spec 050: per-store kiosk UI string overrides served under /api/v1/config config.copy. NULL = none (app defaults).'"
  }
]
