{
  "version": "xarts.graph-relations/1",
  "family": "graph-relations",
  "operation": "ordered-messages",
  "provenance": {
    "legacyId": "concept-sequence"
  },
  "data": {
    "participants": [
      {
        "id": "p1",
        "label": "Comercial",
        "order": 0,
        "classification": "persona",
        "note": "cierra el trato",
        "role": "neutral"
      },
      {
        "id": "p2",
        "label": "Motor de precios",
        "order": 1,
        "classification": "sistema",
        "note": "calcula el descuento",
        "role": "neutral"
      },
      {
        "id": "p3",
        "label": "Control de gestión",
        "order": 2,
        "classification": "equipo",
        "note": "autoriza la excepción",
        "role": "neutral"
      },
      {
        "id": "p4",
        "label": "Facturación",
        "order": 3,
        "classification": "sistema",
        "note": "emite y envía",
        "role": "neutral"
      }
    ],
    "messages": [
      {
        "id": "m1",
        "label": "pide una excepción",
        "source": "p1",
        "target": "p2",
        "order": 1,
        "kind": "call",
        "replyTo": null,
        "condition": "fuera de tarifa",
        "loopSide": "auto",
        "status": "declared",
        "role": "neutral"
      },
      {
        "id": "m2",
        "label": "devuelve el precio",
        "source": "p2",
        "target": "p1",
        "order": 2,
        "kind": "reply",
        "replyTo": null,
        "condition": "ya rebajado",
        "loopSide": "auto",
        "status": "declared",
        "role": "neutral"
      },
      {
        "id": "m3",
        "label": "pide autorización",
        "source": "p2",
        "target": "p3",
        "order": 3,
        "kind": "call",
        "replyTo": null,
        "condition": "sin bloquear a nadie",
        "loopSide": "auto",
        "status": "declared",
        "role": "neutral"
      },
      {
        "id": "m4",
        "label": "cierra el pedido",
        "source": "p1",
        "target": "p4",
        "order": 4,
        "kind": "call",
        "replyTo": null,
        "condition": "sin esperar respuesta",
        "loopSide": "auto",
        "status": "declared",
        "role": "focus"
      },
      {
        "id": "m5",
        "label": "emite la factura",
        "source": "p4",
        "target": "p4",
        "order": 5,
        "kind": "call",
        "replyTo": null,
        "condition": "el precio ya sale",
        "loopSide": "left",
        "status": "declared",
        "role": "warning"
      },
      {
        "id": "m6",
        "label": "autoriza la excepción",
        "source": "p3",
        "target": "p2",
        "order": 6,
        "kind": "reply",
        "replyTo": null,
        "condition": "dos días después",
        "loopSide": "auto",
        "status": "declared",
        "role": "neutral"
      },
      {
        "id": "m7",
        "label": "avisa si la deniega",
        "source": "p3",
        "target": "p1",
        "order": 7,
        "kind": "call",
        "replyTo": null,
        "condition": "nadie lo envía",
        "loopSide": "auto",
        "status": "not-sent",
        "role": "absent"
      }
    ]
  },
  "relationship": {
    "kind": "ordered-participant-messages",
    "assertionStatus": "authored-unverified",
    "ordering": "ordinal-key-with-stable-declaration-ties-nulls-last",
    "timeEncoding": "none",
    "synchronization": "not-inferred",
    "execution": "not-executed",
    "replyCorrelation": "explicit-or-unlinked",
    "absence": "declared-not-sent"
  },
  "typography": {
    "body": {
      "size": 19,
      "weight": 700,
      "lineHeight": 27
    },
    "note": {
      "size": 16,
      "weight": 400,
      "lineHeight": 24
    },
    "stamp": {
      "size": 14,
      "weight": 700,
      "lineHeight": 22
    },
    "title": {
      "size": 22,
      "weight": 700,
      "lineHeight": 32
    }
  },
  "fontFamily": "'Inter', system-ui, -apple-system, sans-serif",
  "measurement": {
    "exportText": "glyph-advances"
  },
  "paints": {
    "neutral": {
      "fill": "surface",
      "stroke": "textSecondary",
      "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": ""
    }
  },
  "layout": {
    "margin": {
      "top": 24,
      "right": 24,
      "bottom": 24,
      "left": 24
    },
    "grid": 8,
    "actorGap": 8,
    "minimumActorWidth": 96,
    "headerGap": 24,
    "lifelineTail": 16,
    "loopWidth": 40,
    "loopHeight": 24,
    "stepSlack": 32,
    "padding": {
      "x": 6,
      "y": 12
    },
    "maximumActorLines": 2,
    "maximumNoteLines": 1,
    "maximumMessageLines": 2,
    "maximumConditionLines": 1,
    "textOverflow": "whole-words",
    "messageLabelPlacement": "between-lifelines"
  },
  "marks": {
    "boxRadius": 4,
    "thin": 1.25,
    "medium": 2,
    "thick": 4,
    "connector": "textSecondary",
    "arrowLength": 9,
    "arrowHeight": 8,
    "lifelineOpacity": 0.4,
    "stampOpacity": 0.75
  },
  "labels": {
    "numberMessages": true,
    "letterSpacing": 0.06,
    "orderingNotice": "el paso entre mensajes ordena, no mide",
    "modelNotice": "Conversación declarada, sin ejecución ni sincronía acreditadas. Las claves ordenan los mensajes; los huecos y flechas no miden duración. Las respuestas sin replyTo no se vinculan automáticamente a una llamada. El mensaje ausente está declarado como no enviado y no prueba un evento observado. Las condiciones son texto del modelo, no reglas evaluadas.",
    "showModelNotice": true
  },
  "annotations": {
    "band": {
      "text": "en ningún punto un envío espera a la respuesta del mensaje anterior",
      "role": "absent"
    },
    "verdict": "El control llega dos pasos tarde: cuando autoriza, la factura ya se ha emitido.",
    "verdictLines": 2,
    "bandHeight": 48,
    "noteColor": "textMuted",
    "verdictColor": "accent",
    "separatorOpacity": 0.5
  },
  "document": {
    "textOverflow": "preserve",
    "header": {
      "title": "La factura sale antes de que llegue la autorización",
      "subtitle": "Excepción de precio de una venta B2B: el cierre del pedido (4) no espera a la respuesta de Control de gestión (6), y el aviso de denegación no lo envía nadie"
    },
    "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": 1112
    },
    "locale": "es-ES",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "concept-sequence",
    "embedSpec": true,
    "geometryDecimals": 2
  }
}
