{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Fiche brise-glace icebreaker.insuffle.com",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "slug",
    "nom",
    "statut",
    "resume",
    "meta_description",
    "intention",
    "contextes",
    "duree_min",
    "duree_max",
    "taille_min",
    "taille_max",
    "formats",
    "connaissance",
    "climats",
    "engagement",
    "materiel",
    "codir",
    "preparation",
    "avec_qui",
    "dans_le_planning",
    "consigne",
    "deroule",
    "debrief",
    "variantes",
    "quand_ne_pas",
    "pieges",
    "inclusion",
    "exemple",
    "origine",
    "terrain",
    "faq",
    "liens",
    "proches",
    "mots_cles",
    "date_publication",
    "date_maj"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
    },
    "nom": {
      "type": "string",
      "minLength": 3,
      "maxLength": 60
    },
    "autres_noms": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "statut": {
      "enum": [
        "publie",
        "brouillon"
      ]
    },
    "title_seo": {
      "type": "string",
      "maxLength": 50,
      "description": "Sans le suffixe | Insuffle (ajouté au rendu, 60 caractères au total)."
    },
    "resume": {
      "type": "string",
      "minLength": 120,
      "maxLength": 340,
      "description": "Deux phrases : ce que c'est, ce que ça produit dans le groupe."
    },
    "meta_description": {
      "type": "string",
      "minLength": 110,
      "maxLength": 155
    },
    "intention": {
      "enum": [
        "creer-du-lien",
        "faire-emerger-les-attentes",
        "ouvrir-le-sujet",
        "reveiller-l-energie",
        "faire-entendre-chaque-voix",
        "clore"
      ]
    },
    "intentions_secondaires": {
      "type": "array",
      "items": {
        "enum": [
          "creer-du-lien",
          "faire-emerger-les-attentes",
          "ouvrir-le-sujet",
          "reveiller-l-energie",
          "faire-entendre-chaque-voix",
          "clore"
        ]
      }
    },
    "contextes": {
      "type": "array",
      "minItems": 1,
      "items": {
        "enum": [
          "reunion-equipe",
          "visio",
          "seminaire",
          "formation",
          "codir",
          "nouvelle-equipe",
          "reunion-tendue",
          "grand-groupe",
          "cinq-minutes",
          "rentree",
          "nouvel-arrivant"
        ]
      }
    },
    "duree_min": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120
    },
    "duree_max": {
      "type": "integer",
      "minimum": 1,
      "maximum": 180
    },
    "taille_min": {
      "type": "integer",
      "minimum": 2
    },
    "taille_max": {
      "type": "integer",
      "minimum": 3,
      "maximum": 1000
    },
    "formats": {
      "type": "array",
      "minItems": 1,
      "items": {
        "enum": [
          "presentiel",
          "visio",
          "hybride"
        ]
      }
    },
    "connaissance": {
      "type": "array",
      "minItems": 1,
      "items": {
        "enum": [
          "inconnu",
          "un-peu",
          "se-connait"
        ]
      }
    },
    "climats": {
      "type": "array",
      "minItems": 1,
      "items": {
        "enum": [
          "serein",
          "tendu",
          "fatigue",
          "sceptique"
        ]
      }
    },
    "engagement": {
      "enum": [
        "leger",
        "engageant",
        "profond"
      ]
    },
    "materiel": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "codir": {
      "type": "boolean"
    },
    "preparation": {
      "type": "string",
      "minLength": 20
    },
    "avec_qui": {
      "type": "string",
      "minLength": 80,
      "description": "Pour quels publics ça marche, et pour lesquels non."
    },
    "dans_le_planning": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "moment",
        "reunion_1h",
        "journee"
      ],
      "properties": {
        "moment": {
          "type": "string",
          "minLength": 30
        },
        "reunion_1h": {
          "type": "string",
          "minLength": 40
        },
        "journee": {
          "type": "string",
          "minLength": 40
        }
      }
    },
    "consigne": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "vous",
        "tu"
      ],
      "properties": {
        "vous": {
          "type": "array",
          "minItems": 3,
          "items": {
            "type": "string"
          }
        },
        "tu": {
          "type": "array",
          "minItems": 3,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "deroule": {
      "type": "array",
      "minItems": 3,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "minute",
          "duree",
          "animateur",
          "groupe"
        ],
        "properties": {
          "minute": {
            "type": "integer",
            "minimum": 0
          },
          "duree": {
            "type": "integer",
            "minimum": 1
          },
          "animateur": {
            "type": "string"
          },
          "groupe": {
            "type": "string"
          }
        }
      }
    },
    "debrief": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "question",
        "relance",
        "pont"
      ],
      "properties": {
        "question": {
          "type": "string"
        },
        "relance": {
          "type": "string"
        },
        "pont": {
          "type": "string",
          "minLength": 40
        }
      }
    },
    "variantes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "visio",
        "grand_groupe",
        "petit_groupe",
        "groupe_tendu"
      ],
      "properties": {
        "visio": {
          "type": "string",
          "minLength": 40
        },
        "grand_groupe": {
          "type": "string",
          "minLength": 40
        },
        "petit_groupe": {
          "type": "string",
          "minLength": 40
        },
        "groupe_tendu": {
          "type": "string",
          "minLength": 40
        }
      }
    },
    "quand_ne_pas": {
      "type": "array",
      "minItems": 2,
      "items": {
        "type": "string"
      }
    },
    "pieges": {
      "type": "array",
      "minItems": 2,
      "items": {
        "type": "string"
      }
    },
    "inclusion": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "a_qui_ca_peut_faire_du_mal",
        "handicap",
        "langue",
        "timidite",
        "culture"
      ],
      "properties": {
        "a_qui_ca_peut_faire_du_mal": {
          "type": "string",
          "minLength": 30
        },
        "handicap": {
          "type": "string",
          "minLength": 40
        },
        "langue": {
          "type": "string",
          "minLength": 30
        },
        "timidite": {
          "type": "string",
          "minLength": 30
        },
        "culture": {
          "type": "string",
          "minLength": 30
        }
      }
    },
    "avertissement": {
      "type": "string",
      "description": "Obligatoire si le format touche à l'exposition personnelle, au corps, au classement."
    },
    "exemple": {
      "type": "string",
      "minLength": 120,
      "description": "Une scène type, sans nom de client, sans chiffre inventé."
    },
    "origine": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "texte",
        "licence"
      ],
      "properties": {
        "texte": {
          "type": "string"
        },
        "licence": {
          "enum": [
            "domaine-public",
            "pratique-courante",
            "attribue",
            "creation-insuffle"
          ]
        },
        "auteur": {
          "type": "string"
        },
        "source_url": {
          "type": "string"
        }
      }
    },
    "terrain": {
      "type": "boolean"
    },
    "terrain_source": {
      "type": "string"
    },
    "faq": {
      "type": "array",
      "minItems": 3,
      "maxItems": 6,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "q",
          "r"
        ],
        "properties": {
          "q": {
            "type": "string"
          },
          "r": {
            "type": "string",
            "minLength": 60
          }
        }
      }
    },
    "liens": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "questions",
        "canevas",
        "ateliers"
      ],
      "properties": {
        "questions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "canevas": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ateliers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "proches": {
      "type": "array",
      "minItems": 3,
      "maxItems": 3,
      "items": {
        "type": "string"
      }
    },
    "mots_cles": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "principal",
        "secondaires"
      ],
      "properties": {
        "principal": {
          "type": "string"
        },
        "secondaires": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "date_publication": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "date_maj": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^https://"
      },
      "description": "Pages publiques où ce format est décrit ou attribué, citées avec lien."
    }
  }
}