{
  "product": "Specification (reference)",
  "title": "Calculator",
  "summary": "Arithmetic that behaves the way a pocket calculator does, including the awkward parts.",
  "category": "apps",
  "entries": [
    {
      "path": [
        "AI",
        "Arithmetic",
        "Four operations with correct precedence"
      ],
      "value": "+ − × ÷",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Arithmetic",
        "Decimal input and display"
      ],
      "value": "",
      "status": "yes",
      "note": "one decimal point per number"
    },
    {
      "path": [
        "AI",
        "Arithmetic",
        "Sign toggle, percent, square root"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Arithmetic",
        "Division by zero is an error state, not a crash"
      ],
      "value": "",
      "status": "yes",
      "note": "cleared by C"
    },
    {
      "path": [
        "AI",
        "Arithmetic",
        "Floating-point display rounding"
      ],
      "value": "0.1 + 0.2 shows 0.3",
      "status": "yes",
      "note": "documented precision"
    },
    {
      "path": [
        "AI",
        "Sequence",
        "Repeated equals repeats the last operation"
      ],
      "value": "",
      "status": "yes",
      "note": "2 + 3 = = gives 8"
    },
    {
      "path": [
        "AI",
        "Sequence",
        "Operator replacement before an operand"
      ],
      "value": "",
      "status": "yes",
      "note": "2 + × 3 uses ×"
    },
    {
      "path": [
        "AI",
        "Sequence",
        "Chained operations evaluate left to right"
      ],
      "value": "",
      "status": "yes",
      "note": "unless precedence applies"
    },
    {
      "path": [
        "AI",
        "Memory",
        "M+, M−, MR, MC"
      ],
      "value": "",
      "status": "yes",
      "note": "indicator when memory is non-empty"
    },
    {
      "path": [
        "AI",
        "Editing",
        "Clear entry versus clear all"
      ],
      "value": "CE / C",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Editing",
        "Backspace removes the last digit"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "History",
        "Recent calculations recallable"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Display",
        "Current entry and the pending expression"
      ],
      "value": "",
      "status": "yes",
      "note": "both visible"
    },
    {
      "path": [
        "UI",
        "Display",
        "Long numbers switch to exponent notation"
      ],
      "value": "",
      "status": "yes",
      "note": "never overflow the display"
    },
    {
      "path": [
        "UI",
        "Input",
        "Full keyboard support"
      ],
      "value": "",
      "status": "yes",
      "note": "digits, operators, Enter, Escape, Backspace"
    },
    {
      "path": [
        "UI",
        "Input",
        "Button press feedback"
      ],
      "value": "",
      "status": "yes",
      "note": "visual and via keyboard focus"
    },
    {
      "path": [
        "UI",
        "Layout",
        "Responsive grid that stays reachable one-handed"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
