{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","description":"Master Services Agreement (MSA) — country-agnostic framework contract between a client and a service provider that governs repeated or multi-engagement service delivery. Per-engagement scope lives in Statements of Work (SOWs) referenced under this MSA. Models the classical common-law / civil-law hybrid template used across EU jurisdictions.","required":["parties","effective_date","term","scope_of_services_summary","sows_referenced","fees_mechanism","invoicing_terms","ip_ownership","liability_cap","indemnities","termination_for_convenience_days","termination_for_cause_provisions","governing_law","jurisdiction","signatories"],"additionalProperties":false,"properties":{"reference":{"type":"string","description":"Internal contract reference (optional)."},"parties":{"type":"object","required":["client","service_provider"],"additionalProperties":false,"properties":{"client":{"$ref":"#/$defs/party"},"service_provider":{"$ref":"#/$defs/party"}}},"effective_date":{"type":"string","format":"date"},"term":{"type":"object","required":["initial_months","notice_days"],"additionalProperties":false,"properties":{"initial_months":{"type":"integer","minimum":1},"renewal_months_optional":{"type":"integer","minimum":1,"description":"If set, the MSA auto-renews for this many months unless notice is given."},"notice_days":{"type":"integer","minimum":0,"description":"Notice period (days) for non-renewal."}}},"scope_of_services_summary":{"type":"string","minLength":1,"description":"High-level description of the services universe. Specific deliverables and scope live in SOWs."},"sows_referenced":{"type":"boolean","description":"True if per-engagement Statements of Work are the operational scope mechanism under this MSA."},"fees_mechanism":{"type":"string","minLength":1,"description":"Prose describing how fees are agreed (per-SOW, rate card, milestone, etc.)."},"invoicing_terms":{"type":"string","minLength":1,"description":"Invoicing cadence, format, payment term, late-payment interest mechanism (e.g. Dir. 2011/7/EU for B2B within the EU)."},"ip_ownership":{"type":"object","required":["work_product"],"additionalProperties":false,"properties":{"work_product":{"type":"string","enum":["client_owned","service_provider_owned","joint"],"description":"Who owns work product created under SOWs by default. Individual SOWs may derogate in writing."},"pre_existing_ip_license":{"type":"string","description":"Prose re. license for pre-existing / background IP used in deliverables."},"open_source_policy":{"type":"string"}}},"confidentiality_reference":{"type":"string","description":"Reference to NDA/DPA in force between the parties (e.g. 'DPA-2026-014 dated 2026-03-01'). Optional — an integrated confidentiality clause may apply instead."},"liability_cap":{"type":"object","required":["type","amount_or_formula"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["aggregate","per_claim","fees_paid_in_period"],"description":"Nature of the cap. 'fees_paid_in_period' is the typical EU services-contract pattern (12 months fees)."},"amount_or_formula":{"type":"string","minLength":1,"description":"Prose or formula, e.g. '12 months of fees paid by Client under this MSA' or 'EUR 500,000'."},"currency":{"type":"string","description":"ISO 4217 where amount_or_formula is a fixed amount."},"exclusions":{"type":"array","items":{"type":"string"},"description":"Carve-outs from the cap (gross negligence, wilful misconduct, IP indemnity, confidentiality breach)."}}},"indemnities":{"type":"string","minLength":1,"description":"Prose indemnity clause (typically mutual; IP indemnity from provider to client)."},"termination_for_convenience_days":{"type":"integer","minimum":0,"description":"Notice required for termination without cause."},"termination_for_cause_provisions":{"type":"string","minLength":1,"description":"Grounds and mechanism (cure period, insolvency, regulatory event)."},"governing_law":{"type":"string","minLength":1,"description":"Governing law (country / state)."},"jurisdiction":{"type":"string","minLength":1,"description":"Exclusive courts or arbitration seat."},"signatories":{"type":"array","minItems":2,"items":{"$ref":"#/$defs/signatory"}}},"$defs":{"party":{"type":"object","required":["legal_name","address","registration_number","representative_name","representative_role"],"additionalProperties":false,"properties":{"legal_name":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"registration_number":{"type":"string","minLength":1,"description":"Commercial register number (BCE/CBE, KVK, etc.)."},"vat_id":{"type":"string"},"representative_name":{"type":"string","minLength":1},"representative_role":{"type":"string","minLength":1},"contact_email":{"type":"string","format":"email"}}},"signatory":{"type":"object","required":["party","name","role"],"additionalProperties":false,"properties":{"party":{"type":"string","enum":["client","service_provider"]},"name":{"type":"string","minLength":1},"role":{"type":"string","minLength":1},"date":{"type":"string","format":"date"},"place":{"type":"string"}}}}}