{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://demo-mutuelle.trainedpeople.com/ucp/schemas/mutuelle-quote.json","name":"com.trainedpeople.demo-mutuelle.mutuelle.quote","version":"2026-09-28","title":"Qualification et génération d’un devis de mutuelle fictif","description":"La ligne checkout représente une génération gratuite de devis, jamais une assurance. La cotisation fictive est mensuelle et uniquement informative.","requires":{"protocol":{"min":"2026-08-25","max":"2026-08-25"},"capabilities":{"dev.ucp.shopping.checkout":{"min":"2026-08-25","max":"2026-08-25"}}},"$defs":{"qualification":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postal_code":{"type":"string","pattern":"^(?:0[1-9]|[1-8][0-9]|9[0-8])[0-9]{3}$"},"adult_ages":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"integer","minimum":18,"maximum":100}},"child_count":{"type":"integer","minimum":0,"maximum":10},"requested_coverage":{"type":"string","enum":["essentiel","confort","premium","conseillez-moi"]},"priority":{"type":"string","enum":["equilibre","hospitalisation","dentaire","optique"]}},"required":["postal_code","adult_ages","child_count","requested_coverage","priority"],"additionalProperties":false},"mutuelle_quote":{"type":"object","required":["input"],"additionalProperties":false,"properties":{"input":{"$ref":"#/$defs/qualification"},"selected_plan":{"enum":["essentiel","confort","premium"]},"calculated_plan":{"enum":["essentiel","confort","premium"]},"monthly_price_cents":{"type":"integer","minimum":0},"currency":{"const":"EUR"},"valid_until":{"type":"string","format":"date-time"},"quote_number":{"type":"string"},"quote_url":{"type":"string","format":"uri"},"fictional":{"const":true}}},"dev.ucp.shopping.checkout":{"allOf":[{"$ref":"https://ucp.dev/2026-08-25/schemas/shopping/checkout.json"},{"type":"object","required":["mutuelle_quote"],"properties":{"mutuelle_quote":{"$ref":"#/$defs/mutuelle_quote"}}}]}}}