{
  "conformance_vectors": [
    {
      "accepted": true,
      "output": {
        "format": "pdf"
      }
    },
    {
      "accepted": true,
      "output": {
        "format": "pdf",
        "standards": [
          "a-2b",
          "ua-1"
        ],
        "version": "1.7"
      }
    },
    {
      "accepted": true,
      "output": {
        "format": "pdf",
        "standards": [
          "a-4f"
        ],
        "version": "2.0"
      }
    },
    {
      "accepted": true,
      "output": {
        "format": "pdf",
        "standards": [
          "a-4"
        ]
      }
    },
    {
      "accepted": true,
      "output": {
        "format": "pdf",
        "pages": "1,3-6,8-"
      }
    },
    {
      "accepted": true,
      "output": {
        "format": "png",
        "page": 2,
        "ppi": 300
      }
    },
    {
      "accepted": true,
      "output": {
        "archive": "zip",
        "format": "png",
        "pages": "1-2"
      }
    },
    {
      "accepted": true,
      "output": {
        "archive": "zip",
        "format": "svg"
      }
    },
    {
      "accepted": true,
      "output": {
        "format": "svg",
        "page": 1
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "a-2b",
          "a-2b"
        ]
      },
      "rule": "duplicate_standards"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "a-2b",
          "a-3b"
        ]
      },
      "rule": "multiple_pdf_a_standards"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "a-2b",
          "a-3b"
        ],
        "version": "1.4"
      },
      "rule": "multiple_pdf_a_standards"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "a-4",
          "ua-1"
        ]
      },
      "rule": "ua_1_with_pdf_a_4"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "a-2b"
        ],
        "version": "1.4"
      },
      "rule": "version_conflicts_with_standard"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "ua-1"
        ],
        "version": "2.0"
      },
      "rule": "ua_1_with_pdf_2_0"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1",
        "standards": [
          "a-1a"
        ]
      },
      "rule": "pages_with_tagged_standard"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "png",
        "pages": "1-2"
      },
      "rule": "pages_requires_archive"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "archive": "zip",
        "format": "png",
        "page": 1
      },
      "rule": "page_with_archive"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
      },
      "rule": "page_selection_too_long"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
      },
      "rule": "page_selection_too_many_segments"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1-a"
      },
      "rule": "page_selection_malformed"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1\n"
      },
      "rule": "page_selection_malformed"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11"
      },
      "rule": "page_selection_malformed"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1, 2"
      },
      "rule": "page_selection_malformed"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "3-2"
      },
      "rule": "page_range_end_precedes_start"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100"
      },
      "rule": "page_selection_too_long"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,x"
      },
      "rule": "page_selection_too_many_segments"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "3-2,x"
      },
      "rule": "page_selection_malformed"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "ua-1",
          "a-4"
        ],
        "version": "1.7"
      },
      "rule": "ua_1_with_pdf_a_4"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "ua-1",
          "a-2b"
        ],
        "version": "2.0"
      },
      "rule": "version_conflicts_with_standard"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "1",
        "standards": [
          "ua-1"
        ],
        "version": "2.0"
      },
      "rule": "ua_1_with_pdf_2_0"
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "pages": "3-2",
        "standards": [
          "a-2b",
          "a-2b"
        ]
      },
      "rule": "page_range_end_precedes_start"
    },
    {
      "accepted": false,
      "code": "unsupported_format",
      "output": {
        "format": "tiff"
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "pdf",
        "standards": [
          "a-1b",
          "a-2b",
          "ua-1"
        ]
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "png",
        "ppi": 301
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "png",
        "ppi": 0
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "png",
        "ppi": 144.0
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "png",
        "page": 0
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "archive": "tar",
        "format": "png"
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "format": "svg",
        "ppi": 144
      }
    },
    {
      "accepted": false,
      "code": "invalid_request",
      "output": {
        "archive": "zip",
        "format": "pdf"
      }
    }
  ],
  "formats": [
    "pdf",
    "svg",
    "png"
  ],
  "image": {
    "archives": [
      "zip"
    ],
    "formats": [
      "png",
      "svg"
    ],
    "min_page": 1,
    "png": {
      "default_ppi": 144,
      "max_ppi": 300,
      "min_ppi": 1
    }
  },
  "output_rules_version": 1,
  "page_selection": {
    "max_length": 256,
    "max_length_unit": "unicode code points",
    "max_selections": 64,
    "selection_pattern": "[1-9][0-9]*(?:-(?:[1-9][0-9]*)?)?",
    "selection_pattern_flavour": "pcre",
    "selection_pattern_matches_whole_selection": true
  },
  "pdf": {
    "formats": [
      "pdf"
    ],
    "max_standards": 2,
    "pdf_a_4_standards": [
      "a-4",
      "a-4e",
      "a-4f"
    ],
    "pdf_a_version": {
      "a-1a": "1.4",
      "a-1b": "1.4",
      "a-2a": "1.7",
      "a-2b": "1.7",
      "a-2u": "1.7",
      "a-3a": "1.7",
      "a-3b": "1.7",
      "a-3u": "1.7",
      "a-4": "2.0",
      "a-4e": "2.0",
      "a-4f": "2.0"
    },
    "standards": [
      "a-1b",
      "a-1a",
      "a-2b",
      "a-2u",
      "a-2a",
      "a-3b",
      "a-3u",
      "a-3a",
      "a-4",
      "a-4f",
      "a-4e",
      "ua-1"
    ],
    "tagged_standards": [
      "a-1a",
      "a-2a",
      "a-3a",
      "ua-1"
    ],
    "versions": [
      "1.4",
      "1.5",
      "1.6",
      "1.7",
      "2.0"
    ]
  },
  "rule_evaluation": "rules are listed in the order Prelum applies them; the first to fail is the one reported in context.rule",
  "rules": [
    {
      "description": "pages must not exceed max_length (256) units of max_length_unit, counted before the selections are matched.",
      "error_code": "invalid_request",
      "id": "page_selection_too_long"
    },
    {
      "description": "pages must not exceed max_selections (64) comma-separated selections. Counted before the selections are matched, so a value breaking both this rule and selection_pattern reports this one.",
      "error_code": "invalid_request",
      "id": "page_selection_too_many_segments"
    },
    {
      "description": "Every comma-separated selection in pages must match selection_pattern in full. The grammar accepts ASCII digits only, matching Typst's own CLI.",
      "error_code": "invalid_request",
      "id": "page_selection_malformed"
    },
    {
      "description": "A closed range in pages must not end before it starts.",
      "error_code": "invalid_request",
      "id": "page_range_end_precedes_start"
    },
    {
      "description": "pdf.standards must not name the same standard twice.",
      "error_code": "invalid_request",
      "id": "duplicate_standards"
    },
    {
      "description": "At most one PDF/A standard \u2014 one entry of pdf_a_version \u2014 may be selected. The second permitted entry is ua-1, which is not a PDF/A profile.",
      "error_code": "invalid_request",
      "id": "multiple_pdf_a_standards"
    },
    {
      "description": "ua-1 cannot be combined with a PDF/A-4 profile: a-4, a-4f or a-4e.",
      "error_code": "invalid_request",
      "id": "ua_1_with_pdf_a_4"
    },
    {
      "description": "An explicit pdf.version must equal the version the selected PDF/A standard requires, as given by pdf_a_version. Omitting version is always accepted: Typst then uses the version the standard requires.",
      "error_code": "invalid_request",
      "id": "version_conflicts_with_standard"
    },
    {
      "description": "ua-1 cannot be combined with an explicit pdf.version of 2.0.",
      "error_code": "invalid_request",
      "id": "ua_1_with_pdf_2_0"
    },
    {
      "description": "pdf.pages cannot be combined with a standard that requires tagging \u2014 an entry of tagged_standards \u2014 because Typst disables tagging when pages are selected.",
      "error_code": "invalid_request",
      "id": "pages_with_tagged_standard"
    },
    {
      "description": "An image output's pages requires archive: a single image file holds one page.",
      "error_code": "invalid_request",
      "id": "pages_requires_archive"
    },
    {
      "description": "An image output's page cannot be combined with archive; select pages instead.",
      "error_code": "invalid_request",
      "id": "page_with_archive"
    }
  ]
}
