{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "confidence": {
      "enum": [
        "exact",
        "contextual"
      ],
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "referenceText": {
      "type": "string"
    },
    "schemaVersion": {
      "type": "string"
    },
    "slug": {
      "allOf": [
        {
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
        }
      ],
      "type": "string"
    },
    "sourceArtifactKind": {
      "enum": [
        "file",
        "directory-index",
        "document-frontmatter",
        "document-contents",
        "document-preamble"
      ],
      "type": "string"
    },
    "sourceArtifactRelativePath": {
      "allOf": [
        {
          "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\/\\/)[^\\0\\r\\n]+\\.md$"
        }
      ],
      "type": "string"
    },
    "sourceCanonicalPath": {
      "allOf": [
        {
          "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\/\\/)[^\\0\\r\\n]+$"
        }
      ],
      "type": "string"
    },
    "sourceHeadingText": {
      "type": "string"
    },
    "sourceHeadingTrail": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "sourceLineNumber": {
      "type": "integer"
    },
    "sourceLineText": {
      "type": "string"
    },
    "sourceMatchText": {
      "type": "string"
    },
    "sourceStructuralPath": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "sourceTextUrl": {
      "allOf": [
        {
          "pattern": "^https:\\/\\/www\\.legislation\\.gov\\.au\\/.+$"
        }
      ],
      "type": "string"
    },
    "targetArtifactKind": {
      "enum": [
        "file",
        "directory-index",
        "document-frontmatter",
        "document-contents",
        "document-preamble",
        "structural-container"
      ],
      "type": "string"
    },
    "targetArtifactRelativePath": {
      "allOf": [
        {
          "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\/\\/)[^\\0\\r\\n]+$"
        }
      ],
      "type": "string"
    },
    "targetCanonicalPath": {
      "allOf": [
        {
          "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\/\\/)[^\\0\\r\\n]+$"
        }
      ],
      "type": "string"
    },
    "targetHeadingText": {
      "type": "string"
    },
    "targetHeadingTrail": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "targetKind": {
      "enum": [
        "chapter",
        "part",
        "division",
        "subdivision",
        "schedule",
        "section",
        "subsection",
        "paragraph",
        "subparagraph",
        "clause",
        "subclause"
      ],
      "type": "string"
    },
    "targetLocatorText": {
      "type": "string"
    },
    "targetResolutionKind": {
      "enum": [
        "artifact",
        "intra-artifact"
      ],
      "type": "string"
    },
    "targetRootIdentifier": {
      "type": "string"
    },
    "targetRootKind": {
      "enum": [
        "chapter",
        "part",
        "division",
        "subdivision",
        "schedule",
        "section",
        "clause"
      ],
      "type": "string"
    },
    "targetScope": {
      "enum": [
        "intra-document"
      ],
      "type": "string"
    },
    "targetStructuralPath": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "targetSubordinatePath": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "titleId": {
      "type": "string"
    },
    "versionDate": {
      "allOf": [
        {
          "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
        }
      ],
      "type": "string"
    }
  },
  "required": [
    "schemaVersion",
    "slug",
    "titleId",
    "name",
    "versionDate",
    "sourceTextUrl",
    "sourceCanonicalPath",
    "sourceArtifactRelativePath",
    "sourceArtifactKind",
    "sourceStructuralPath",
    "sourceHeadingTrail",
    "sourceHeadingText",
    "sourceLineNumber",
    "sourceLineText",
    "sourceMatchText",
    "referenceText",
    "confidence",
    "targetScope",
    "targetKind",
    "targetResolutionKind",
    "targetRootKind",
    "targetRootIdentifier",
    "targetSubordinatePath",
    "targetLocatorText",
    "targetCanonicalPath",
    "targetArtifactRelativePath",
    "targetArtifactKind",
    "targetStructuralPath",
    "targetHeadingTrail",
    "targetHeadingText"
  ],
  "type": "object",
  "x-legislation": {
    "artifactFamilyKey": "cross-references",
    "artifactPathPattern": ".tooling/cross-references/<slug>.jsonl",
    "derivationMode": "effect-derived",
    "schemaPath": ".tooling/schemas/cross-references.schema.json",
    "schemaVersion": "1.0.0",
    "shapeKind": "encoded-jsonl-record",
    "sourceEffectExport": "CrossReferenceRecordJson",
    "sourceEffectModule": "src/domain/crossReference.ts"
  }
}
