[
 {
  "id": "mmd-fence",
  "tool": "mmd",
  "cat": "wrapper",
  "title": "Markdown fence copied with the diagram",
  "broken": "```mermaid\nflowchart LR\n  web[Web app] --> api[API]\n  api --> db[(Orders DB)]\n```",
  "fixed": "flowchart LR\n  web[Web app] --> api[API]\n  api --> db[(Orders DB)]"
 },
 {
  "id": "dot-prose",
  "tool": "dot",
  "cat": "wrapper",
  "title": "Explanation text left above the graph",
  "broken": "Here is the diagram:\ndigraph G {\n  web -> api -> db;\n}",
  "fixed": "digraph G {\n  web -> api -> db;\n}"
 },
 {
  "id": "puml-fence",
  "tool": "puml",
  "cat": "wrapper",
  "title": "Markdown fence copied with the diagram",
  "broken": "```plantuml\n@startuml\nrectangle Web\nrectangle API\nWeb --> API\n@enduml\n```",
  "fixed": "@startuml\nrectangle Web\nrectangle API\nWeb --> API\n@enduml"
 },
 {
  "id": "mmd-newshape",
  "tool": "mmd",
  "cat": "dialect",
  "title": "Shape syntax from a newer Mermaid",
  "broken": "flowchart LR\n  api[API] --> db@{ shape: cyl, label: \"Orders DB\" }",
  "fixed": "flowchart LR\n  api[API] --> db[(Orders DB)]"
 },
 {
  "id": "mmd-arrow",
  "tool": "mmd",
  "cat": "dialect",
  "title": "Graphviz arrow in Mermaid",
  "broken": "flowchart LR\n  web -> api",
  "fixed": "flowchart LR\n  web --> api"
 },
 {
  "id": "dot-undirected",
  "tool": "dot",
  "cat": "dialect",
  "title": "Directed edge inside an undirected graph",
  "broken": "graph G {\n  web -> api;\n}",
  "fixed": "digraph G {\n  web -> api;\n}"
 },
 {
  "id": "puml-mermaid",
  "tool": "puml",
  "cat": "dialect",
  "title": "Mermaid flowchart header in PlantUML",
  "broken": "@startuml\nflowchart LR\nrectangle Web\nrectangle API\nWeb --> API\n@enduml",
  "fixed": "@startuml\nleft to right direction\nrectangle Web\nrectangle API\nWeb --> API\n@enduml"
 },
 {
  "id": "dot-quote",
  "tool": "dot",
  "cat": "text",
  "title": "Unescaped quote inside a label",
  "broken": "digraph G {\n  api [label=\"The \"fast\" path\"];\n}",
  "fixed": "digraph G {\n  api [label=\"The \\\"fast\\\" path\"];\n}"
 },
 {
  "id": "dot-hyphen",
  "tool": "dot",
  "cat": "text",
  "title": "Hyphen in an unquoted node ID",
  "broken": "digraph G {\n  order-service -> db;\n}",
  "fixed": "digraph G {\n  \"order-service\" -> db;\n}"
 },
 {
  "id": "mmd-paren",
  "tool": "mmd",
  "cat": "text",
  "title": "Parentheses in an unquoted label",
  "broken": "flowchart LR\n  up[Upload (CSV)] --> api[API]",
  "fixed": "flowchart LR\n  up[\"Upload (CSV)\"] --> api[API]"
 },
 {
  "id": "puml-hyphen",
  "tool": "puml",
  "cat": "text",
  "title": "Hyphen in an alias",
  "broken": "@startuml\nrectangle \"Order service\" as order-service\nrectangle \"Orders DB\" as db\norder-service --> db\n@enduml",
  "fixed": "@startuml\nrectangle \"Order service\" as order_service\nrectangle \"Orders DB\" as db\norder_service --> db\n@enduml"
 },
 {
  "id": "mmd-noend",
  "tool": "mmd",
  "cat": "block",
  "title": "Subgraph without end",
  "broken": "flowchart LR\n  subgraph backend[Backend]\n    api[API]\n  web[Web app] --> api",
  "fixed": "flowchart LR\n  subgraph backend[Backend]\n    api[API]\n  end\n  web[Web app] --> api"
 },
 {
  "id": "dot-brace",
  "tool": "dot",
  "cat": "block",
  "title": "Missing closing brace",
  "broken": "digraph G {\n  subgraph cluster_backend {\n    label=\"Backend\";\n    api;\n  web -> api;\n}",
  "fixed": "digraph G {\n  subgraph cluster_backend {\n    label=\"Backend\";\n    api;\n  }\n  web -> api;\n}"
 },
 {
  "id": "puml-brace",
  "tool": "puml",
  "cat": "block",
  "title": "Package without closing brace",
  "broken": "@startuml\npackage \"Backend\" {\n  rectangle API\nrectangle Web\nWeb --> API\n@enduml",
  "fixed": "@startuml\npackage \"Backend\" {\n  rectangle API\n}\nrectangle Web\nWeb --> API\n@enduml"
 },
 {
  "id": "mmd-typo",
  "tool": "mmd",
  "cat": "silent",
  "title": "ID typo creates a second node",
  "broken": "flowchart LR\n  api[API] --> db[(Orders DB)]\n  worker[Worker] --> DB",
  "fixed": "flowchart LR\n  api[API] --> db[(Orders DB)]\n  worker[Worker] --> db"
 },
 {
  "id": "dot-cluster",
  "tool": "dot",
  "cat": "silent",
  "title": "Subgraph name without the cluster_ prefix",
  "broken": "digraph G {\n  subgraph backend {\n    label=\"Backend\";\n    api; auth;\n  }\n  web -> api -> auth;\n}",
  "fixed": "digraph G {\n  subgraph cluster_backend {\n    label=\"Backend\";\n    api; auth;\n  }\n  web -> api -> auth;\n}"
 },
 {
  "id": "puml-typo",
  "tool": "puml",
  "cat": "silent",
  "title": "ID typo creates a second element",
  "broken": "@startuml\nrectangle API as api\ndatabase \"Orders DB\" as db\napi --> Db\n@enduml",
  "fixed": "@startuml\nrectangle API as api\ndatabase \"Orders DB\" as db\napi --> db\n@enduml"
 }
]