{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://example.com/root.json",
"type": "object",
"required": [
"scrutin",
"circonscription",
"avancement",
"renseignementsGeneraux",
"resultatsParFonction"
],
"properties": {
"scrutin": {
"$id": "#/properties/scrutin",
"type": "object",
"required": ["code", "ordre", "libelle", "libelleCourt", "portee", "systemeElectoral", "quorum", "fonctions", "postesAPourvoir", "candidats", "listes"],
"properties": {
"code": { "type": "string", "examples": ["202603PG"] },
"ordre": { "type": "integer", "examples": [1] },
"libelle": { "type": "string", "examples": ["Procureur général"] },
"libelleCourt": { "type": "string", "examples": ["Procureur général"] },
"portee": { "type": "string", "examples": ["Cantonale"] },
"systemeElectoral": { "type": "string", "examples": ["MAJORITAIRE"] },
"quorum": { "type": "number", "examples": [50.0] },
"fonctions": {
"type": "array",
"items": {
"type": "object",
"required": ["code", "libelle", "libelleMasculin", "libelleFeminin"],
"properties": {
"code": { "type": "string", "examples": ["PROC-GE"] },
"libelle": { "type": "string", "examples": ["Procureure générale ou procureur général"] },
"libelleMasculin": { "type": "string", "examples": ["Procureur général"] },
"libelleFeminin": { "type": "string", "examples": ["Procureure générale"] }
}
}
},
"postesAPourvoir": {
"type": "array",
"items": {
"type": "object",
"required": ["ordre", "fonctionRef", "nbSieges", "nbSiegesSuppleants"],
"properties": {
"ordre": { "type": "integer", "examples": [1] },
"fonctionRef": { "type": "string", "examples": ["PROC-GE"] },
"nbSieges": { "type": "integer", "examples": [1] },
"nbSiegesSuppleants": { "type": "integer", "examples": [0] }
}
}
},
"candidats": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "nom", "prenom", "genre"],
"properties": {
"id": { "type": "integer", "examples": [375] },
"nom": { "type": "string", "examples": ["BAYENET"] },
"prenom": { "type": "string", "examples": ["Pierre"] },
"genre": { "type": "string", "examples": ["MASCULIN"] }
}
}
},
"listes": {
"type": "array",
"items": {
"type": "object",
"required": ["numero", "libelle", "libelleCourt", "sigle", "apparentement", "sousApparentement", "candidatures"],
"properties": {
"numero": { "type": "integer", "examples": [1] },
"libelle": { "type": "string", "examples": ["Pierre Bayenet, impartial et humain pour la sécurité de toutes et tous"] },
"libelleCourt": { "type": "string", "examples": ["Pierre Bayenet"] },
"sigle": { "type": "string", "examples": ["PB"] },
"apparentement": { "type": "integer", "examples": [0] },
"sousApparentement": { "type": "integer", "examples": [0] },
"candidatures": {
"type": "array",
"items": {
"type": "object",
"required": ["numero", "candidatRef", "fonctionRef", "cumul", "tauxCharge"],
"properties": {
"numero": { "type": "string", "examples": ["1"] },
"candidatRef": { "type": "integer", "examples": [375] },
"fonctionRef": { "type": "string", "examples": ["PROC-GE"] },
"cumul": { "type": "boolean", "examples": [false] },
"tauxCharge": { "type": "number", "examples": [1.0] }
}
}
}
}
}
}
}
},
"circonscription": {
"$id": "#/properties/circonscription",
"type": "object",
"required": ["type", "id", "numero", "libelle"],
"properties": {
"type": { "type": "string", "examples": ["Local de vote"] },
"id": { "type": "string", "examples": ["2801"] },
"numero": { "type": "string", "examples": ["28-01"] },
"libelle": { "type": "string", "examples": ["Grand-Lancy"] }
}
},
"avancement": {
"$id": "#/properties/avancement",
"type": "object",
"required": ["etat", "texte", "dateheure", "composition"],
"properties": {
"etat": { "type": "string", "examples": ["Provisoires"] },
"texte": { "type": "string", "examples": ["Résultats provisoires du 29.03.2026 à 12:01"] },
"dateheure": { "type": "string", "examples": ["29.03.2026 12:01"] },
"composition": { "type": "string", "examples": ["Correspondance, Urne"] }
}
},
"renseignementsGeneraux": {
"$id": "#/properties/renseignementsGeneraux",
"type": "object",
"required": ["electorat", "cartesRecues", "participation", "bulletinsRecus", "bulletinsNuls", "bulletinsBlancs", "bulletinsValables"],
"properties": {
"electorat": { "type": "integer", "examples": [9264] },
"cartesRecues": { "type": "integer", "examples": [2] },
"participation": { "type": "number", "examples": [0.02] },
"bulletinsRecus": { "type": "integer", "examples": [2] },
"bulletinsNuls": { "type": "integer", "examples": [0] },
"bulletinsBlancs": { "type": "integer", "examples": [0] },
"bulletinsValables": { "type": "integer", "examples": [2] }
}
},
"resultatsParFonction": {
"$id": "#/properties/resultatsParFonction",
"type": "array",
"items": {
"type": "object",
"required": ["fonctionRef", "resultatsNominatifs"],
"properties": {
"fonctionRef": { "type": "string", "examples": ["PROC-GE"] },
"resultatsNominatifs": {
"type": "array",
"items": {
"type": "object",
"required": ["candidatRef", "ordre", "suffrages"],
"properties": {
"candidatRef": { "type": "integer", "examples": [375] },
"ordre": { "type": "integer", "examples": [1] },
"suffrages": { "type": "integer", "examples": [1] }
}
}
}
}
}
}
}
}