{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://example.com/root.json",
"type": "object",
"required": [
"scrutin",
"candidatRef",
"avancement",
"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] }
}
}
}
}
}
}
}
},
"candidatRef": {
"$id": "#/properties/candidatRef",
"type": "integer",
"examples": [375]
},
"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": ["67 locaux provisoires"] }
}
},
"resultatsParFonction": {
"$id": "#/properties/resultatsParFonction",
"type": "array",
"items": {
"type": "object",
"required": ["fonctionRef", "resultats"],
"properties": {
"fonctionRef": { "type": "string", "examples": ["PROC-GE"] },
"resultats": {
"$id": "#/properties/resultatsParFonction/items/properties/resultats",
"type": "object",
"required": ["circonscription", "ordre", "suffrages", "pourcentSuffrage", "ratioPourcentSuffrageScrutin", "elu", "egalite", "seraitElu", "circonscriptionsEnfantes"],
"properties": {
"circonscription": {
"type": "object",
"required": ["type", "id", "numero", "libelle"],
"properties": {
"type": { "type": "string", "examples": ["Canton"] },
"id": { "type": "string", "examples": ["25"] },
"numero": { "type": "string", "examples": ["01"] },
"libelle": { "type": "string", "examples": ["Canton de Genève"] }
}
},
"ordre": { "type": "integer", "examples": [1] },
"suffrages": { "type": "integer", "examples": [76] },
"pourcentSuffrage": { "type": "number", "examples": [54.29] },
"ratioPourcentSuffrageScrutin": { "type": "number", "examples": [100.0] },
"elu": { "type": "boolean", "examples": [false] },
"egalite": { "type": "boolean", "examples": [false] },
"seraitElu": { "type": "boolean", "examples": [true] },
"circonscriptionsEnfantes": {
"type": "array",
"items": {
"type": "object",
"required": ["circonscription", "suffrages", "pourcentSuffrage", "ratioPourcentSuffrageScrutin"],
"properties": {
"circonscription": {
"type": "object",
"required": ["type", "id", "numero", "libelle"],
"properties": {
"type": { "type": "string", "examples": ["Commune"] },
"id": { "type": "string", "examples": ["6601"] },
"numero": { "type": "string", "examples": ["01"] },
"libelle": { "type": "string", "examples": ["Aire-la-Ville"] }
}
},
"suffrages": { "type": "integer", "examples": [4] },
"pourcentSuffrage": { "type": "number", "examples": [50.0] },
"ratioPourcentSuffrageScrutin": { "type": "number", "examples": [92.11] },
"circonscriptionsEnfantes": {
"type": "array",
"items": {
"type": "object",
"required": ["circonscription", "suffrages", "pourcentSuffrage", "ratioPourcentSuffrageScrutin"],
"properties": {
"circonscription": {
"type": "object",
"required": ["type", "id", "numero", "libelle"],
"properties": {
"type": { "type": "string", "examples": ["Local de vote"] },
"id": { "type": "string", "examples": ["101"] },
"numero": { "type": "string", "examples": ["01"] },
"libelle": { "type": "string", "examples": ["Aire-la-Ville"] }
}
},
"suffrages": { "type": "integer", "examples": [4] },
"pourcentSuffrage": { "type": "number", "examples": [50.0] },
"ratioPourcentSuffrageScrutin": { "type": "number", "examples": [92.11] }
}
}
}
}
}
}
}
}
}
}
}
}
}