{
  "fixtures": [
    {
      "id": "list-dedupe-only-01",
      "label": "Deduplicate only (case-insensitive, trim)",
      "kind": "pipeline",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "pipeline": [
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": true
          }
        }
      ]
    },
    {
      "id": "list-trim-dedupe-02",
      "label": "Trim → deduplicate",
      "kind": "pipeline",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "pipeline": [
        {
          "op": "trimText",
          "mode": "lines"
        },
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": true
          }
        }
      ]
    },
    {
      "id": "list-sort-dedupe-03",
      "label": "Sort → deduplicate (no trim)",
      "kind": "pipeline",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "pipeline": [
        {
          "op": "sortLines",
          "options": {
            "direction": "asc",
            "caseSensitive": false,
            "numeric": false
          }
        },
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": false
          }
        }
      ]
    },
    {
      "id": "list-trim-dedupe-sort-04",
      "label": "Trim → deduplicate → natural sort",
      "kind": "pipeline",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "pipeline": [
        {
          "op": "trimText",
          "mode": "lines"
        },
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": true
          }
        },
        {
          "op": "sortLines",
          "options": {
            "direction": "asc",
            "caseSensitive": false,
            "numeric": true
          }
        }
      ]
    },
    {
      "id": "list-case-sensitive-05",
      "label": "Case-sensitive duplicates",
      "kind": "pipeline",
      "input": "Alpha\nalpha\nALPHA\nAlpha",
      "pipeline": [
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": true,
            "trimLines": true
          }
        }
      ]
    },
    {
      "id": "list-case-insensitive-06",
      "label": "Case-insensitive duplicates",
      "kind": "pipeline",
      "input": "Alpha\nalpha\nALPHA\nAlpha",
      "pipeline": [
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": true
          }
        }
      ]
    },
    {
      "id": "list-unicode-accent-07",
      "label": "Accent vs ASCII lookalike",
      "kind": "pipeline",
      "input": "Café\nCafe\nCAFÉ",
      "pipeline": [
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": true
          }
        }
      ]
    },
    {
      "id": "list-numeric-sort-08",
      "label": "Numeric/natural sort vs lexical",
      "kind": "pipeline",
      "input": "Item 10\nItem 2\nItem 1",
      "pipeline": [
        {
          "op": "sortLines",
          "options": {
            "direction": "asc",
            "numeric": true,
            "caseSensitive": false
          }
        }
      ]
    },
    {
      "id": "list-lexical-sort-09",
      "label": "Lexical sort of numbered items",
      "kind": "pipeline",
      "input": "Item 10\nItem 2\nItem 1",
      "pipeline": [
        {
          "op": "sortLines",
          "options": {
            "direction": "asc",
            "numeric": false,
            "caseSensitive": false
          }
        }
      ]
    },
    {
      "id": "list-empty-lines-10",
      "label": "Empty and whitespace-only lines",
      "kind": "pipeline",
      "input": "Keep\n\n   \nKeep",
      "pipeline": [
        {
          "op": "trimText",
          "mode": "lines"
        },
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": true,
            "trimLines": true,
            "removeEmpty": false
          }
        }
      ]
    },
    {
      "id": "list-number-before-11",
      "label": "Numbering before deduplication",
      "kind": "observation",
      "status": "manual-review",
      "summary": "If you number lines first (1. Apple, 2. Apple), dedupe will not merge them. Prefer dedupe before numbering.",
      "input": "1. Apple\n2. Apple\n3. Banana"
    },
    {
      "id": "list-number-after-12",
      "label": "Numbering after deduplication",
      "kind": "pipeline",
      "input": "Apple\nApple\nBanana",
      "pipeline": [
        {
          "op": "removeDuplicateLines",
          "options": {
            "caseSensitive": false,
            "trimLines": true
          }
        },
        {
          "op": "identity"
        }
      ],
      "notes": "After dedupe, numbering is a separate Number Lines step; this fixture confirms the cleaned list."
    }
  ]
}
