[
  {
    "id": "study_name_present",
    "dimension": "study",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "The study-level metadata carries no study name.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "dataset_label_present",
    "dimension": "dataset",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A dataset has no label.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "dataset_keys_resolve",
    "dimension": "dataset",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A dataset's key variables are not all defined in the spec.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "dataset_comment_resolves",
    "dimension": "dataset",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A dataset references a comment id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_label_present",
    "dimension": "variable",
    "severity": "note",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable has no label.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_length_positive",
    "dimension": "variable",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable has a non-positive length.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_sigdigits_nonneg",
    "dimension": "variable",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable has negative significant digits.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_method_resolves",
    "dimension": "variable",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable references a method id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_comment_resolves",
    "dimension": "variable",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable references a comment id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_derived_has_method",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable with Origin='Derived' has no method.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_order_positive",
    "dimension": "variable",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable order is not a positive integer.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_length_for_text",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A string/integer variable has no length.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "value_whereclause_present",
    "dimension": "value",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A value-level row has no where-clause.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "value_variable_resolves",
    "dimension": "value",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A value-level row names a variable not in the dataset.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "value_method_resolves",
    "dimension": "value",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A value-level row references a method id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "value_comment_resolves",
    "dimension": "value",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A value-level row references a comment id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "value_codelist_resolves",
    "dimension": "value",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A value-level row references a codelist id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "codelist_comment_resolves",
    "dimension": "codelist",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A codelist references a comment id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "codelist_terms_present",
    "dimension": "codelist",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A referenced codelist defines no terms.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "method_id_unique",
    "dimension": "method",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A method id is defined more than once.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "method_description_present",
    "dimension": "method",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A referenced method has a blank description.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "method_document_resolves",
    "dimension": "method",
    "severity": "note",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A method references a document id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "comment_id_unique",
    "dimension": "comment",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A comment id is defined more than once.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "comment_description_present",
    "dimension": "comment",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A referenced comment has a blank description.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "comment_document_resolves",
    "dimension": "comment",
    "severity": "note",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A comment references a document id that is not defined.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "document_id_unique",
    "dimension": "document",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A document id is defined more than once.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "method_unused",
    "dimension": "method",
    "severity": "note",
    "requires_data": false,
    "scope": "whole-spec",
    "status": "implemented",
    "description": "A method is defined but referenced by nothing.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "comment_unused",
    "dimension": "comment",
    "severity": "note",
    "requires_data": false,
    "scope": "whole-spec",
    "status": "implemented",
    "description": "A comment is defined but referenced by nothing.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "document_unused",
    "dimension": "document",
    "severity": "note",
    "requires_data": false,
    "scope": "whole-spec",
    "status": "implemented",
    "description": "A document is defined but referenced by nothing.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "ct_value_in_codelist",
    "dimension": "ct",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A data value is not among the codelist's terms.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "ct_term_unused",
    "dimension": "ct",
    "severity": "note",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A codelist term is defined in the spec but absent from the data.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_present_in_data",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A spec variable has no column in the supplied data.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_name_length",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable name exceeds the SAS XPORT v5 8-character limit.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_label_length",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable label exceeds the SAS XPORT v5 / FDA 40-byte limit.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "cross_dataset_label",
    "dimension": "variable",
    "severity": "note",
    "requires_data": false,
    "scope": "whole-spec",
    "status": "implemented",
    "description": "A variable shared across datasets carries inconsistent labels.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "cross_dataset_type",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": false,
    "scope": "whole-spec",
    "status": "implemented",
    "description": "A variable shared across datasets carries inconsistent data types.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "key_sequence_contiguous",
    "dimension": "dataset",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A dataset's keySequence values are not 1..k without gaps or duplicates.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "key_sequence_matches_keys",
    "dimension": "dataset",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A dataset's keySequence disagrees with its declared keys.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "variable_order_unique",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A dataset declares the same order value for more than one variable.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "itemoid_unique",
    "dimension": "variable",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "implemented",
    "description": "A variable itemOID is declared more than once across the spec.",
    "reason": null,
    "engine": "spec"
  },
  {
    "id": "missing_variable",
    "dimension": "variable",
    "severity": "error",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A spec variable is absent from the data.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "extra_variable",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A data column is not declared in the spec.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "type_mismatch",
    "dimension": "variable",
    "severity": "note",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A column's storage differs from the spec dataType (informational; integer-valued doubles coerce cleanly).",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "length_overflow",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A character value is longer than the spec length.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "codelist_membership",
    "dimension": "ct",
    "severity": "error",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A data value is outside its codelist.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "display_format",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A date/datetime/time variable has a displayFormat that is not a recognized SAS format of that family.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "missing_permissible",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A permissible (non-mandatory) spec variable is absent from the data.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "char_length_limit",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A character value exceeds the SAS XPORT v5 / FDA 200-byte limit.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "label_match",
    "dimension": "variable",
    "severity": "note",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A column's label attribute differs from the spec label.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "key_uniqueness",
    "dimension": "dataset",
    "severity": "error",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "The spec-declared key variables do not uniquely identify the data rows.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "variable_name",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A data column name violates the XPORT naming rules (length or characters).",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "dataset_name",
    "dimension": "dataset",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "The dataset name violates the XPORT naming rules (length or characters).",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "label_length",
    "dimension": "variable",
    "severity": "warning",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A column label attribute exceeds the SAS XPORT v5 / FDA 40-byte limit.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "integer_overflow",
    "dimension": "variable",
    "severity": "error",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "An integer-typed variable holds values beyond R's 32-bit integer range.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "codelist_membership_extensible",
    "dimension": "ct",
    "severity": "note",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A value is outside an extensible codelist's enumerated terms.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "arm_result_metadata",
    "dimension": "arm",
    "severity": "error",
    "requires_data": false,
    "scope": "scoped",
    "status": "deferred",
    "description": "Analysis Results Metadata integrity.",
    "reason": "needs ARM slots artoo does not carry",
    "engine": "spec"
  },
  {
    "id": "codelist_term_standard_ct",
    "dimension": "codelist",
    "severity": "warning",
    "requires_data": false,
    "scope": "scoped",
    "status": "deferred",
    "description": "Codelist term/decode is a valid NCI CT pair.",
    "reason": "needs a bundled NCI CT library",
    "engine": "spec"
  },
  {
    "id": "codelist_decode_present",
    "dimension": "codelist",
    "severity": "note",
    "requires_data": false,
    "scope": "scoped",
    "status": "deferred",
    "description": "A coded term has no decoded value.",
    "reason": "cannot distinguish enumerated value lists (no decode expected) from coded terms",
    "engine": "spec"
  },
  {
    "id": "integer_fraction",
    "dimension": "variable",
    "severity": "error",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "An integer-typed variable holds fractional values; coercion would truncate them.",
    "reason": null,
    "engine": "data"
  },
  {
    "id": "iso8601_format",
    "dimension": "variable",
    "severity": "error",
    "requires_data": true,
    "scope": "scoped",
    "status": "implemented",
    "description": "A character date/datetime/time variable holds values that are not valid ISO 8601 text (complete, right-truncated partial, or SDTMIG hyphen-placeholder form).",
    "reason": null,
    "engine": "data"
  }
]
