Files

109 lines
4.3 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://oto.dtp/schemas/faisabilite/brief.schema.json",
"title": "Brief d'entrée du générateur Faisabilité 4 volets",
"description": "Données projet SOURCÉES fournies au générateur. Le générateur ne fabrique aucun chiffre (#6) : tout champ absent devient un placeholder et rétrograde le statut. Les paramètres canoniques (3%/8.5%/52% · USD+DOP · Cardnet · Letter US) ne figurent PAS ici — ils sont imposés par le générateur.",
"type": "object",
"required": ["projet"],
"additionalProperties": true,
"properties": {
"projet": { "type": "string", "pattern": "^P0[1-9]$", "description": "Code projet canonique (P01..P09) · domaine ancré sur CLAUDE.md §Projets." },
"nom": { "type": "string" },
"synthetique": { "type": "boolean", "description": "true = fixture de test, jamais publiable." },
"sources": {
"type": "array",
"items": { "type": "string" },
"description": "Références archives justifiant les chiffres (axe Traçabilité §7)."
},
"masterplan": {
"type": "object",
"properties": {
"localisation": { "type": "string" },
"terrain_m2": { "type": ["number", "null"] },
"terrain_tareas": { "type": ["number", "null"] },
"zonage": { "type": "string" },
"nb_unites": { "type": ["integer", "null"] },
"nb_phases": { "type": ["integer", "null"] },
"cos": { "type": "string" },
"acces": { "type": "string" },
"ref_plan_masse": { "type": "string" },
"phasage": { "type": "string" }
}
},
"architecture": {
"type": "object",
"properties": {
"parti_archi": { "type": "string" },
"nb_batiments": { "type": ["integer", "null"] },
"nb_niveaux": { "type": ["integer", "null"] },
"ref_rendus": { "type": "string" },
"taux_conversion": {
"type": "object",
"properties": {
"taux": { "type": ["number", "null"] },
"date": { "type": "string" },
"source": { "type": "string" }
}
},
"typologies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"nom": { "type": "string" },
"quantite": { "type": ["integer", "null"] },
"surface_interieure_m2": { "type": ["number", "null"] },
"surface_terrasse_m2": { "type": ["number", "null"] },
"surface_totale_m2": { "type": ["number", "null"] },
"prix_usd": { "type": ["number", "null"] },
"prix_dop": { "type": ["number", "null"] }
}
}
}
}
},
"paysage": {
"type": "object",
"properties": {
"concept_paysage": { "type": "string" },
"amenities": { "type": "array", "items": { "type": "string" } },
"services_inclus": { "type": "array", "items": { "type": "string" } },
"experience": { "type": "string" },
"durabilite": { "type": "string" }
}
},
"ingenierie": {
"type": "object",
"properties": {
"structure": { "type": "string" },
"reseaux": { "type": "string" },
"contraintes_site": { "type": "string" },
"cout_construction_usd": { "type": ["number", "null"] },
"revenu_brut_usd": { "type": ["number", "null"] },
"marge_pct": { "type": ["number", "null"] },
"regime_fiscal": { "type": "string" }
}
},
"commercial": {
"type": "object",
"description": "Chaînes libres commerciales, langue par langue. Le générateur 4 volets consomme le FR (positionnement §40_llm_outputs) ; le générateur bancable consomme FR/EN/ES pour la section Positionnement du dossier bancable. Une langue absente reste un placeholder (jamais traduite automatiquement · #6).",
"properties": {
"positionnement_fr": { "type": "string" },
"positionnement_en": { "type": "string" },
"positionnement_es": { "type": "string" }
}
},
"rendus": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fichier": { "type": "string" },
"vue": { "type": "string" },
"hero": { "type": "boolean" }
}
}
}
}
}