vocabulary Health; vocabulary BasicTypes; each Integer is written as an Int; each Code is written as a String(16); each ID is written as an Auto Counter; each Date is written as a Date; each Text is written as a String; each Name is written as a String; each Number is written as an Integer; vocabulary PartyRoles; each Party is identified by its ID; each Stakeholder is a kind of Party; each Policy Holder is a kind of Stakeholder; each Claimant is a kind of Stakeholder; vocabulary InsurerProducts; // Insurer, Product, Available Coverage each Insurer [static, separate] is identified by its Name; each Product Offering [static, separate] is identified by its Name; Product Offering is offered by one Insurer; each Coverage Type [separate] is identified by its Name; Coverage Type has at most one descriptive- Text; each Available Coverage [static] is where Coverage Type is available in Product Offering, Product Offering offers Coverage Type; vocabulary Policies; // Policy, Policy Coverage each Policy Number is written as an Integer; each Policy is identified by Insurer and Policy Number where that Policy is from one Insurer, that Insurer issued that Policy, that Policy has one Policy Number; Policy is held by one Policy Holder; Policy was purchased from one Product Offering; Policy was purchased on one [satellite stable] Date; each Policy Coverage is where Policy includes Coverage Type; each Coverage Level is written as an Integer; Policy Coverage is at at most one Coverage Level; some Policy includes some Coverage Type only if that Policy was purchased from some Product Offering that offers that Coverage Type; vocabulary Incidents; // Incident each Incident Type [static, separate] is identified by its Name; each Incident [separate] is identified by its ID; each Incident is of one Incident Type; each Incident occurred on one Date; Incident has at most one descriptive- Text; Incident affected one (according to Praneet, because we don't want to handle class actions yet, as agreed on 25 September by Clifford) Claimant; vocabulary Claims; // Claim and Details each Claim [separate] is identified by its Number; Claim concerns one Incident, Incident resulted in at most one Claim; each Claim Details is where some Claim claims against some Policy Coverage on some Date, that Policy Coverage is claimed under that Claim for that Date; vocabulary ClaimPayments; // Claim Payment Claim Payment [separate] is identified by Claim Details where Claim Payment is for one Claim Details, Claim Details is paid by at most one Claim Payment; Claim Payment Type [independent, static] is identified by its Code; Claim Payment Type has at most one descriptive-Text; Claim Payment is of one Claim Payment Type;