{
  "kind": "aarloven.case.v1",
  "title": "Table to chart",
  "about": "A vendor delivers a small tool that turns a table into a bar chart. The buyer picks the points to check and types the numbers. The numbers are toy data, made up on the page.",
  "clauses": [
    { "id": "D", "clause": "The tool draws a chart from the table.", "test": "tests/draw.test.mjs", "always": true },
    { "id": "T1", "clause": "The total under the chart is the sum of the table.", "test": "tests/t1.test.mjs" },
    { "id": "T2", "clause": "Each negative value in the table is drawn below the zero line, at its size.", "test": "tests/t2.test.mjs" },
    { "id": "T3", "clause": "Every row of the table is drawn as a labelled bar.", "test": "tests/t3.test.mjs" }
  ],
  "builds": {
    "v2.1": { "file": "builds/v2.1/chart.mjs", "about": "The vendor's current delivery." },
    "v2.0": { "file": "builds/v2.0/chart.mjs", "about": "An earlier delivery: it treats a negative value as 0." }
  },
  "files": ["data/table.json", "tests/check.mjs", "tests/draw.test.mjs", "tests/t1.test.mjs", "tests/t2.test.mjs", "tests/t3.test.mjs"],
  "limits": { "rows_min": 2, "rows_max": 8, "value_min": -9999, "value_max": 9999, "labels": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"] }
}
