{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/arrhes/PCG/versions/2023/pcg_2023.schema.json", "title": "Plan Comptable Général - Version 2023", "description": "Fichier fusionné du Plan Comptable Général français pour l'année 2023, contenant les formats hiérarchique, à plat, et les différences par rapport à la version précédente.", "type": "object", "properties": { "version": { "type": "integer", "description": "L'année de la version du plan comptable.", "const": 2023 }, "flat": { "type": "array", "description": "Version à plat avec référence au compte parent.", "items": { "$ref": "#/$defs/flatAccount" } }, "nested": { "type": "array", "description": "Version hiérarchique avec sous-comptes imbriqués.", "items": { "$ref": "#/$defs/nestedAccount" } } }, "required": [ "version", "flat", "nested" ], "additionalProperties": false, "$defs": { "flatAccount": { "type": "object", "properties": { "number": { "type": "integer", "description": "Le numéro du compte." }, "label": { "type": "string", "description": "Le libellé du compte." }, "system": { "type": "string", "enum": [ "condensed", "base", "developed" ], "description": "Le système minimal dans lequel s'inscrit le compte: condensed (système abrégé), base (système de base), developed (système développé)." }, "parent": { "type": [ "integer", "null" ], "description": "Le numéro du compte parent, ou null pour les comptes racines (classes)." } }, "required": [ "number", "label", "system", "parent" ], "additionalProperties": false }, "nestedAccount": { "type": "object", "properties": { "number": { "type": "integer", "description": "Le numéro du compte." }, "label": { "type": "string", "description": "Le libellé du compte." }, "system": { "type": "string", "enum": [ "condensed", "base", "developed" ], "description": "Le système minimal dans lequel s'inscrit le compte: condensed (système abrégé), base (système de base), developed (système développé)." }, "accounts": { "type": "array", "description": "La liste des sous-comptes (structure récursive).", "items": { "$ref": "#/$defs/nestedAccount" } } }, "required": [ "number", "label", "system", "accounts" ], "additionalProperties": false }, "changeValue": { "type": "object", "properties": { "from": { "type": "string" }, "to": { "type": "string" } }, "required": [ "from", "to" ], "additionalProperties": false } } }