{
  "version": "xarts.concept-sequence/1",
  "family": "concept-sequence",
  "operation": "ordered-cards",
  "provenance": {
    "legacyId": "concept-chain"
  },
  "measurement": {
    "exportText": "glyph-advances"
  },
  "data": {
    "items": [
      {
        "id": "item-0",
        "title": "SQL sintácticamente válido",
        "detail": "el generador produce una consulta bien formada",
        "artifact": "",
        "moment": "",
        "role": "neutral"
      },
      {
        "id": "item-1",
        "title": "El motor la ejecuta",
        "detail": "no hay nada que objetar: es SQL legal",
        "artifact": "",
        "moment": "",
        "role": "neutral"
      },
      {
        "id": "item-2",
        "title": "Devuelve filas con formato correcto",
        "detail": "columnas, tipos y decimales en su sitio",
        "artifact": "",
        "moment": "",
        "role": "neutral"
      },
      {
        "id": "item-3",
        "title": "El usuario no ve la consulta",
        "detail": "solo ve el número, y lo da por bueno",
        "artifact": "",
        "moment": "",
        "role": "warning"
      }
    ]
  },
  "relationship": {
    "kind": "causal-chain",
    "order": [
      "item-0",
      "item-1",
      "item-2",
      "item-3"
    ]
  },
  "layout": {
    "margin": {
      "top": 32,
      "right": 32,
      "bottom": 48,
      "left": 32
    },
    "gap": 34,
    "minimumCardWidth": 40,
    "grid": 8,
    "padding": {
      "x": 14,
      "y": 12
    },
    "footerPlacement": "detached",
    "capacity": "reject",
    "roundHeight": "up"
  },
  "cards": {
    "radius": 4,
    "strokeWidth": 1.25,
    "detailGap": 8,
    "detailOpacity": 0.75,
    "focusDetailOpacity": 0.85,
    "title": {
      "size": 19,
      "weight": 700,
      "lineGap": 8,
      "maxLines": 3
    },
    "detail": {
      "size": 16,
      "weight": 400,
      "lineGap": 8,
      "maxLines": 3
    },
    "paints": {
      "neutral": {
        "fill": "surface",
        "stroke": "border",
        "text": "textPrimary",
        "dash": ""
      },
      "focus": {
        "fill": "series.blue",
        "stroke": "series.blue",
        "text": "surface",
        "dash": ""
      },
      "warning": {
        "fill": "surface",
        "stroke": "negative",
        "text": "negative",
        "dash": ""
      },
      "absent": {
        "fill": "none",
        "stroke": "textMuted",
        "text": "textMuted",
        "dash": "6 4"
      },
      "favorable": {
        "fill": "surfaceAlt",
        "stroke": "series.teal",
        "text": "textPrimary",
        "dash": ""
      }
    }
  },
  "sequence": {
    "mode": "arrows",
    "numbered": true,
    "numberHeight": 22,
    "numberOffset": -10,
    "numberSpacing": 0.08,
    "connectors": {
      "visible": true,
      "color": "textSecondary",
      "strokeWidth": 2,
      "inset": 7,
      "headLength": 9,
      "headHeight": 8
    },
    "axis": {
      "color": "border",
      "strokeWidth": 1.25,
      "gap": 16,
      "momentHeight": 26,
      "momentOffset": 18,
      "radius": 3.5
    },
    "artifact": {
      "gap": 10,
      "verticalPadding": 12,
      "font": {
        "size": 14,
        "weight": 700,
        "lineGap": 8,
        "maxLines": 2
      },
      "letterSpacing": 0.04,
      "color": "textMuted"
    },
    "moment": {
      "font": {
        "size": 22,
        "weight": 700,
        "lineGap": 4,
        "maxLines": 1
      },
      "color": "textPrimary",
      "offset": -10
    },
    "number": {
      "font": {
        "size": 14,
        "weight": 700,
        "lineGap": 4,
        "maxLines": 1
      },
      "color": "textMuted"
    }
  },
  "annotations": {
    "warningFit": "ellipsis",
    "warning": null,
    "band": {
      "text": "ningún eslabón avisa: los cuatro son legales por separado",
      "role": "warning"
    },
    "verdict": "Cuatro pasos correctos encadenados entregan un número falso.",
    "warningHeight": 32,
    "warningOffset": 12,
    "warningTextOffset": 10,
    "bandHeight": 48,
    "verdictHeight": 48,
    "bandGap": 18,
    "verdictGap": 6,
    "bandStroke": 4,
    "color": "textMuted",
    "verdictColor": "accent",
    "ruleWidth": 1.25,
    "stamp": {
      "size": 14,
      "weight": 700,
      "lineGap": 4,
      "maxLines": 1
    },
    "verdictFont": {
      "size": 22,
      "weight": 700,
      "lineGap": 4,
      "maxLines": 1
    },
    "stampSpacing": 0.06,
    "lineHeightFactor": 1.2
  },
  "document": {
    "header": {
      "title": "Cadena de una consulta SQL generada",
      "subtitle": "Cuatro pasos donde cada uno habilita el siguiente"
    },
    "footer": {
      "source": "xarts · ejemplo de demostración",
      "notes": "Esquema ilustrativo para explorar la forma y sustituirlo por el propio."
    },
    "spacing": {
      "horizontalPadding": 24,
      "topPadding": 22,
      "bottomPadding": 16,
      "minimumTextGap": 4
    }
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 940,
      "height": 414
    },
    "locale": "es-ES",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "concept-chain",
    "embedSpec": true,
    "geometryDecimals": 2
  }
}
