Legislation · public publication pilot
canonical-markdown-fingerprints: schema and stability
Generated reference for this publication’s exact JSON Schema sidecar. Field constraints below come directly from the sidecar; JSON Schema does not reproduce every Effect refinement.
Published stability metadata
- Schema version
- 1.0.0
- Digest meaning
- exact-file-bytes
- Empty file meaning
- not-record-oriented
- Additive changes
- artifact-added, field-added
- Breaking changes
- artifact-bytes-changed, artifact-removed, contract-digest-changed, digest-framing-changed, field-removed, path-pattern-changed, schema-digest-changed
Identifier stability rules
[
{
"identifierName": "digest",
"mechanicalInputs": "sha256 digest of the governed file or text bytes",
"stabilityRule": "content-addressed",
"uniquenessScope": "artifact-family"
},
{
"identifierName": "slug",
"mechanicalInputs": "source descriptor slug",
"stabilityRule": "stable-while-source-descriptor-stable",
"uniquenessScope": "dataset"
}
]Fields (8)
| Variant | Field | Required | Published constraints |
|---|---|---|---|
| Common | algorithm | Yes | {
"enum": [
"sha256"
],
"type": "string"
} |
| Common | digest | Yes | {
"allOf": [
{
"pattern": "^[0-9a-f]{64}$"
}
],
"type": "string"
} |
| Common | fileCount | Yes | {
"type": "integer"
} |
| Common | files | Yes | {
"items": {
"allOf": [
{
"pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\/\\/)[^\\0\\r\\n]+\\.md$"
}
],
"type": "string"
},
"type": "array"
} |
| Common | schemaVersion | Yes | {
"type": "string"
} |
| Common | scope | Yes | {
"enum": [
"canonical-markdown-only"
],
"type": "string"
} |
| Common | slug | Yes | {
"allOf": [
{
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
}
],
"type": "string"
} |
| Common | versionDate | Yes | {
"allOf": [
{
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
}
],
"type": "string"
} |
Complete JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"algorithm": {
"enum": [
"sha256"
],
"type": "string"
},
"digest": {
"allOf": [
{
"pattern": "^[0-9a-f]{64}$"
}
],
"type": "string"
},
"fileCount": {
"type": "integer"
},
"files": {
"items": {
"allOf": [
{
"pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))(?!.*\\/\\/)[^\\0\\r\\n]+\\.md$"
}
],
"type": "string"
},
"type": "array"
},
"schemaVersion": {
"type": "string"
},
"scope": {
"enum": [
"canonical-markdown-only"
],
"type": "string"
},
"slug": {
"allOf": [
{
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
}
],
"type": "string"
},
"versionDate": {
"allOf": [
{
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
}
],
"type": "string"
}
},
"required": [
"schemaVersion",
"scope",
"algorithm",
"slug",
"versionDate",
"digest",
"fileCount",
"files"
],
"type": "object",
"x-legislation": {
"artifactFamilyKey": "canonical-markdown-fingerprints",
"artifactPathPattern": ".tooling/canonical-markdown-fingerprints/<slug>.json",
"derivationMode": "effect-derived",
"schemaPath": ".tooling/schemas/canonical-markdown-fingerprints.schema.json",
"schemaVersion": "1.0.0",
"shapeKind": "encoded-json",
"sourceEffectExport": "CanonicalMarkdownFingerprintJson",
"sourceEffectModule": "src/domain/canonicalMarkdownFingerprint.ts"
}
}a6de85cccf489b7b121dcec0cddf38c459fff4af3f64d1bc4fde69b4753ec0c5