{
  "version": "1.4",
  "category": "decode",
  "description": "Blank line handling - strict mode errors on blank lines inside arrays, accepts blank lines outside arrays",
  "tests": [
    {
      "name": "throws on blank line inside list array",
      "input": "items[3]:\n  - a\n\n  - b\n  - c",
      "expected": null,
      "shouldError": true,
      "options": {
        "strict": true
      },
      "specSection": "14.2"
    },
    {
      "name": "throws on blank line inside tabular array",
      "input": "items[2]{id}:\n  1\n\n  2",
      "expected": null,
      "shouldError": true,
      "options": {
        "strict": true
      },
      "specSection": "14.2"
    },
    {
      "name": "throws on multiple blank lines inside array",
      "input": "items[2]:\n  - a\n\n\n  - b",
      "expected": null,
      "shouldError": true,
      "options": {
        "strict": true
      },
      "specSection": "14.2"
    },
    {
      "name": "throws on blank line with spaces inside array",
      "input": "items[2]:\n  - a\n  \n  - b",
      "expected": null,
      "shouldError": true,
      "options": {
        "strict": true
      },
      "specSection": "14.2"
    },
    {
      "name": "throws on blank line in nested list array",
      "input": "outer[2]:\n  - inner[2]:\n    - a\n\n    - b\n  - x",
      "expected": null,
      "shouldError": true,
      "options": {
        "strict": true
      },
      "specSection": "14.2"
    },
    {
      "name": "accepts blank line between root-level fields",
      "input": "a: 1\n\nb: 2",
      "expected": {
        "a": 1,
        "b": 2
      },
      "options": {
        "strict": true
      },
      "specSection": "12"
    },
    {
      "name": "accepts whitespace-only line at non-multiple indent as blank in strict mode",
      "input": "a: 1\n   \nb: 2",
      "expected": {
        "a": 1,
        "b": 2
      },
      "options": {
        "strict": true
      },
      "specSection": "12",
      "minSpecVersion": "3.2"
    },
    {
      "name": "accepts trailing newline at end of file",
      "input": "a: 1\n",
      "expected": {
        "a": 1
      },
      "options": {
        "strict": true
      },
      "specSection": "12"
    },
    {
      "name": "accepts multiple trailing newlines",
      "input": "a: 1\n\n\n",
      "expected": {
        "a": 1
      },
      "options": {
        "strict": true
      },
      "specSection": "12"
    },
    {
      "name": "accepts blank line after array ends",
      "input": "items[1]:\n  - a\n\nb: 2",
      "expected": {
        "items": ["a"],
        "b": 2
      },
      "options": {
        "strict": true
      },
      "specSection": "12"
    },
    {
      "name": "accepts blank line between nested object fields",
      "input": "a:\n  b: 1\n\n  c: 2",
      "expected": {
        "a": {
          "b": 1,
          "c": 2
        }
      },
      "options": {
        "strict": true
      },
      "specSection": "12"
    },
    {
      "name": "ignores blank lines inside list array when strict=false",
      "input": "items[3]:\n  - a\n\n  - b\n  - c",
      "expected": {
        "items": ["a", "b", "c"]
      },
      "options": {
        "strict": false
      },
      "specSection": "12"
    },
    {
      "name": "ignores blank lines inside tabular array when strict=false",
      "input": "items[2]{id,name}:\n  1,Alice\n\n  2,Bob",
      "expected": {
        "items": [
          { "id": 1, "name": "Alice" },
          { "id": 2, "name": "Bob" }
        ]
      },
      "options": {
        "strict": false
      },
      "specSection": "12"
    },
    {
      "name": "ignores multiple blank lines in arrays when strict=false",
      "input": "items[2]:\n  - a\n\n\n  - b",
      "expected": {
        "items": ["a", "b"]
      },
      "options": {
        "strict": false
      },
      "specSection": "12"
    }
  ]
}
