Skip to content

Instantly share code, notes, and snippets.

@AloiSama
Last active April 10, 2025 14:46
Show Gist options
  • Select an option

  • Save AloiSama/ebedc9090264d89bc9f6f884e920132d to your computer and use it in GitHub Desktop.

Select an option

Save AloiSama/ebedc9090264d89bc9f6f884e920132d to your computer and use it in GitHub Desktop.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Schema for Unified General Conditions for Construction Contract Tenders",
"description": "Defines the structure for JSON documents representing the 'Unified General Conditions for Construction Contract Tenders 2018' (الوثيقة (1-1) الشروط العامة الموحدة لمناقصات عقود المقاولات 2018) or similar structured legal/contractual documents.",
"type": "object",
"properties": {
"document_title": {
"type": "string",
"description": "The main title of the document."
},
"sections": {
"type": "array",
"description": "An array of main articles or sections within the document.",
"items": {
"$ref": "#/definitions/section"
}
}
},
"required": [
"document_title",
"sections"
],
"definitions": {
"section": {
"type": "object",
"description": "Represents a main article or section of the document.",
"properties": {
"article_number": {
"type": "integer",
"description": "The primary number identifying the article (e.g., 1, 2, 59)."
},
"title": {
"type": "string",
"description": "The title of the article."
},
"content": {
"type": "string",
"description": "The textual content of the article, present only if the article does not contain subsections."
},
"subsections": {
"type": "array",
"description": "An array of subsections within the article, present only if the article does not have direct content.",
"items": {
"$ref": "#/definitions/subsection"
}
}
},
"required": [
"article_number",
"title"
],
"oneOf": [
{
"required": [
"content"
],
"properties": {
"subsections": false
}
},
{
"required": [
"subsections"
],
"properties": {
"content": false
}
}
],
"additionalProperties": false
},
"subsection": {
"type": "object",
"description": "Represents a subsection within a main article.",
"properties": {
"subsection_number": {
"type": "string",
"description": "The number identifying the subsection, often including hyphens (e.g., '1-1', '7-2', '25-10')."
},
"title": {
"type": "string",
"description": "The title of the subsection."
},
"content": {
"type": "string",
"description": "The textual content of the subsection."
}
},
"required": [
"subsection_number",
"title",
"content"
],
"additionalProperties": false
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment