{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.2/classifications/classifications.schema.json",
  "$comment": "OpenEik 0.2: folded by tools/fold-schemas.mjs from the proposal classifications, which 0.2 makes a rule (decision D5). Written by hand from the text, not generated.",
  "title": "A record's classification references",
  "description": "Codes of classification systems that OpenEik does not list (Part II, 11): each names its system, by its name or a URI, a code of it, the system's edition where it matters, and the code's own URI as its publisher gives it. One reference is not carried twice; the list's order has no meaning. OpenEik does not check that a code is one of its system's.",
  "type": "array",
  "minItems": 1,
  "maxItems": 100,
  "uniqueItems": true,
  "items": {
    "$ref": "#/$defs/reference"
  },
  "$defs": {
    "reference": {
      "type": "object",
      "properties": {
        "system": {
          "description": "The classification system, by its name or a URI.",
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "code": {
          "description": "A code of the system.",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "edition": {
          "description": "The system's edition.",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "uri": {
          "description": "The code's URI, as its publisher gives it (a bSDD URI, say): an absolute URI (RFC 3986).",
          "type": "string",
          "minLength": 3,
          "maxLength": 2000,
          "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:[^\\s]+$"
        }
      },
      "required": [
        "system",
        "code"
      ],
      "x-eik-closed": true
    }
  }
}
