%unimsg 0 genealogy/windsor-charles/v0 -- FOURTEEN LIVING AND RECENTLY LIVING PEOPLE, from published record: the King, -- the parents he descends from, and the two generations below him with the -- people they married. Every date and place here is a matter of public record -- and none of it is private information; the document carries no address, no -- medical fact and no unpublished relation. -- -- IT EXISTS FOR THE SHAPES THE OTHER SAMPLES DO NOT HAVE: -- -- A PERSON MARRIED TWICE, where the first marriage ENDED BY DIVORCE and the -- second began nine years later. The layout has to place one person beside -- two spouses without implying the two spouses are married to each other, -- which is the fault a-couple-is-a-unit-and-a-unit-has-two-sides was written -- for. -- -- A MARRIAGE THAT ENDED WITHOUT A DEATH. :divorce is a relation-ending event -- and the tree still has to draw the line, because the children of that -- marriage descend from it whatever happened afterwards. -- -- A MARRIAGE WITH NO CHILDREN, which is a union whose junction has nothing -- hanging from it — the degenerate case for the cubic that fans out of a -- family node. -- -- FOUR GENERATIONS AND TWO SIBLING BRANCHES, each with children of its own, -- so the tidy-tree layout has two subtrees of unequal width to centre a -- parent over. -- -- CONVERTED WITH tools/ged2umsg from windsor-charles.ged, which is the only -- source it cites. The converter reported two GEDCOM structures it does not -- act on — a SOUR citation and a FORM — and both are recorded in this -- document's own coverage rather than being dropped silently. -- Converted from GEDCOM by tools/ged2umsg, under -- @mapping/genealogy/gedcom/v0. Every assertion here is the FILE's, not the -- converter's, and every one of them is :possible: an imported tree states -- facts and states nothing about what they rest on. genealogy @genealogy/windsor-charles/v0 { conforms -> @vocab/genealogy/v0 title "Charles III, his parents, and his descendants with their spouses" status :draft at 2026-09-09 researcher "Compiled from published record" scope "King Charles III, his parents, and his descendants with their spouses" naming-practices { gedcom-slash-parse { means "the FILE's assumption: one or more given names and an inherited family name, the family name written between slashes or in a SURN substructure. It is a fact about the file and not a finding about the people in it" order [ :given, :family ] inherited [ :family ] } } sources { file { kind :compiled-work title "Published biographical record" author "Compiled from published record" date 2026-09-09 reference "genealogy-windsor-charles.ged" note "Imported by tools/ged2umsg under @mapping/genealogy/gedcom/v0. FOUR CHOICES ARE THE CONVERTER'S AND NOT THE FILE'S. An ABT date is given a 5-year tolerance. A date with no calendar escape is read as :gregorian, which is wrong for every pre-1752 English date and cannot be detected. A union's :formality is inferred :religious where the marriage place name reads as a place of worship — those carry a :because naming the place — and :civil otherwise. And every assertion is :possible, because a compiled tree states facts and says nothing about what they rest on. THREE THINGS ARE TRUE OF EVERY ENTITY HERE AND ARE SAID ONLY HERE. Each :record is one 0-level GEDCOM record, and its :made is that record's own CHAN date where it had one and this file's date where it did not. Each :place is one distinct PLAC string, typed :unlocated and NOT split at its commas — the commas are not a hierarchy and the file states no PLAC FORM. Each person unifies exactly one persona, because one imported record depicts one person and the unification asserts nothing beyond that. A :parent-of carries a :because only where the file qualified the link itself, through PEDI or _FREL or _MREL. An unqualified link is :presumed-birth, which is PEDI's own default and is a presumption stated as one." } } records { i1 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I1@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I1@ INDI 1 NAME Philip /Mountbatten/ 2 GIVN Philip 2 SURN Mountbatten 1 SEX M 1 BIRT 2 DATE 10 JUN 1921 2 PLAC Mon Repos, Corfu, Greece 1 DEAT 2 DATE 9 APR 2021 2 PLAC Windsor Castle, Berkshire, England 1 FAMS @F1@" } i2 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I2@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I2@ INDI 1 NAME Elizabeth /Windsor/ 2 GIVN Elizabeth 2 SURN Windsor 2 TYPE also known as 1 NAME Elizabeth Alexandra Mary /Windsor/ 2 GIVN Elizabeth Alexandra Mary 2 SURN Windsor 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 21 APR 1926 2 PLAC Mayfair, London, England 1 DEAT 2 DATE 8 SEP 2022 2 PLAC Balmoral Castle, Aberdeenshire, Scotland 1 FAMS @F1@" } i3 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I3@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I3@ INDI 1 NAME Charles /Mountbatten-Windsor/ 2 GIVN Charles 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME Charles Philip Arthur George /Mountbatten-Windsor/ 2 GIVN Charles Philip Arthur George 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX M 1 BIRT 2 DATE 14 NOV 1948 2 PLAC Buckingham Palace, London, England 1 FAMC @F1@ 1 FAMS @F2@ 1 FAMS @F3@" } i4 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I4@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I4@ INDI 1 NAME Diana /Spencer/ 2 GIVN Diana 2 SURN Spencer 2 TYPE also known as 1 NAME Diana Frances /Spencer/ 2 GIVN Diana Frances 2 SURN Spencer 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 1 JUL 1961 2 PLAC Park House, Sandringham, Norfolk, England 1 DEAT 2 DATE 31 AUG 1997 2 PLAC Paris, France 1 FAMS @F2@" } i5 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I5@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I5@ INDI 1 NAME Camilla /Shand/ 2 GIVN Camilla 2 SURN Shand 2 TYPE also known as 1 NAME Camilla Rosemary /Shand/ 2 GIVN Camilla Rosemary 2 SURN Shand 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 17 JUL 1947 2 PLAC London, England 1 FAMS @F3@" } i6 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I6@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I6@ INDI 1 NAME William /Mountbatten-Windsor/ 2 GIVN William 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME William Arthur Philip Louis /Mountbatten-Windsor/ 2 GIVN William Arthur Philip Louis 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX M 1 BIRT 2 DATE 21 JUN 1982 2 PLAC St Mary's Hospital, Paddington, London, England 1 FAMC @F2@ 1 FAMS @F4@" } i7 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I7@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I7@ INDI 1 NAME Catherine /Middleton/ 2 GIVN Catherine 2 SURN Middleton 2 TYPE also known as 1 NAME Catherine Elizabeth /Middleton/ 2 GIVN Catherine Elizabeth 2 SURN Middleton 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 9 JAN 1982 2 PLAC Reading, Berkshire, England 1 FAMS @F4@" } i8 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I8@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I8@ INDI 1 NAME George /Mountbatten-Windsor/ 2 GIVN George 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME George Alexander Louis /Mountbatten-Windsor/ 2 GIVN George Alexander Louis 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX M 1 BIRT 2 DATE 22 JUL 2013 2 PLAC St Mary's Hospital, Paddington, London, England 1 FAMC @F4@" } i9 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I9@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I9@ INDI 1 NAME Charlotte /Mountbatten-Windsor/ 2 GIVN Charlotte 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME Charlotte Elizabeth Diana /Mountbatten-Windsor/ 2 GIVN Charlotte Elizabeth Diana 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 2 MAY 2015 2 PLAC St Mary's Hospital, Paddington, London, England 1 FAMC @F4@" } i10 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I10@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I10@ INDI 1 NAME Louis /Mountbatten-Windsor/ 2 GIVN Louis 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME Louis Arthur Charles /Mountbatten-Windsor/ 2 GIVN Louis Arthur Charles 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX M 1 BIRT 2 DATE 23 APR 2018 2 PLAC St Mary's Hospital, Paddington, London, England 1 FAMC @F4@" } i11 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I11@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I11@ INDI 1 NAME Harry /Mountbatten-Windsor/ 2 GIVN Harry 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME Henry Charles Albert David /Mountbatten-Windsor/ 2 GIVN Henry Charles Albert David 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX M 1 BIRT 2 DATE 15 SEP 1984 2 PLAC St Mary's Hospital, Paddington, London, England 1 FAMC @F2@ 1 FAMS @F5@" } i12 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I12@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I12@ INDI 1 NAME Meghan /Markle/ 2 GIVN Meghan 2 SURN Markle 2 TYPE also known as 1 NAME Rachel Meghan /Markle/ 2 GIVN Rachel Meghan 2 SURN Markle 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 4 AUG 1981 2 PLAC Canoga Park, Los Angeles, California, United States 1 FAMS @F5@" } i13 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I13@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I13@ INDI 1 NAME Archie /Mountbatten-Windsor/ 2 GIVN Archie 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME Archie Harrison /Mountbatten-Windsor/ 2 GIVN Archie Harrison 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX M 1 BIRT 2 DATE 6 MAY 2019 2 PLAC Portland Hospital, London, England 1 FAMC @F5@" } i14 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@I14@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @I14@ INDI 1 NAME Lilibet /Mountbatten-Windsor/ 2 GIVN Lilibet 2 SURN Mountbatten-Windsor 2 TYPE also known as 1 NAME Lilibet Diana /Mountbatten-Windsor/ 2 GIVN Lilibet Diana 2 SURN Mountbatten-Windsor 2 TYPE birth 1 SEX F 1 BIRT 2 DATE 4 JUN 2021 2 PLAC Santa Barbara, California, United States 1 FAMC @F5@" } f1 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@F1@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @F1@ FAM 1 HUSB @I1@ 1 WIFE @I2@ 1 CHIL @I3@ 1 MARR 2 DATE 20 NOV 1947 2 PLAC Westminster Abbey, London, England" } f2 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@F2@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @F2@ FAM 1 HUSB @I3@ 1 WIFE @I4@ 1 CHIL @I6@ 1 CHIL @I11@ 1 MARR 2 DATE 29 JUL 1981 2 PLAC St Paul's Cathedral, London, England 1 DIV 2 DATE 28 AUG 1996" } f3 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@F3@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @F3@ FAM 1 HUSB @I3@ 1 WIFE @I5@ 1 MARR 2 DATE 9 APR 2005 2 PLAC Windsor Guildhall, Windsor, Berkshire, England" } f4 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@F4@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @F4@ FAM 1 HUSB @I6@ 1 WIFE @I7@ 1 CHIL @I8@ 1 CHIL @I9@ 1 CHIL @I10@ 1 MARR 2 DATE 29 APR 2011 2 PLAC Westminster Abbey, London, England" } f5 { in -> @source/file locator [ | element value | "file" "genealogy-windsor-charles.ged" | "xref" "@F5@" ] kind :compiled made { calendar :gregorian, form :on, value 2026-09-09 } transcription "0 @F5@ FAM 1 HUSB @I11@ 1 WIFE @I12@ 1 CHIL @I13@ 1 CHIL @I14@ 1 MARR 2 DATE 19 MAY 2018 2 PLAC St George's Chapel, Windsor Castle, Berkshire, England" } } places { mon-repos-corfu-greece { name "Mon Repos, Corfu, Greece" type :unlocated as-recorded [ "Mon Repos, Corfu, Greece" ] } windsor-castle-berkshire-england { name "Windsor Castle, Berkshire, England" type :unlocated as-recorded [ "Windsor Castle, Berkshire, England" ] } mayfair-london-england { name "Mayfair, London, England" type :unlocated as-recorded [ "Mayfair, London, England" ] } balmoral-castle-aberdeenshire-scotland { name "Balmoral Castle, Aberdeenshire, Scotland" type :unlocated as-recorded [ "Balmoral Castle, Aberdeenshire, Scotland" ] } buckingham-palace-london-england { name "Buckingham Palace, London, England" type :unlocated as-recorded [ "Buckingham Palace, London, England" ] } park-house-sandringham-norfolk-england { name "Park House, Sandringham, Norfolk, England" type :unlocated as-recorded [ "Park House, Sandringham, Norfolk, England" ] } paris-france { name "Paris, France" type :unlocated as-recorded [ "Paris, France" ] } london-england { name "London, England" type :unlocated as-recorded [ "London, England" ] } st-mary-s-hospital-paddington-london-england { name "St Mary's Hospital, Paddington, London, England" type :unlocated as-recorded [ "St Mary's Hospital, Paddington, London, England" ] } reading-berkshire-england { name "Reading, Berkshire, England" type :unlocated as-recorded [ "Reading, Berkshire, England" ] } canoga-park-los-angeles-california-united-states { name "Canoga Park, Los Angeles, California, United States" type :unlocated as-recorded [ "Canoga Park, Los Angeles, California, United States" ] } portland-hospital-london-england { name "Portland Hospital, London, England" type :unlocated as-recorded [ "Portland Hospital, London, England" ] } santa-barbara-california-united-states { name "Santa Barbara, California, United States" type :unlocated as-recorded [ "Santa Barbara, California, United States" ] } westminster-abbey-london-england { name "Westminster Abbey, London, England" type :unlocated as-recorded [ "Westminster Abbey, London, England" ] } st-paul-s-cathedral-london-england { name "St Paul's Cathedral, London, England" type :unlocated as-recorded [ "St Paul's Cathedral, London, England" ] } windsor-guildhall-windsor-berkshire-england { name "Windsor Guildhall, Windsor, Berkshire, England" type :unlocated as-recorded [ "Windsor Guildhall, Windsor, Berkshire, England" ] } st-george-s-chapel-windsor-castle-berkshire-england { name "St George's Chapel, Windsor Castle, Berkshire, England" type :unlocated as-recorded [ "St George's Chapel, Windsor Castle, Berkshire, England" ] } } personas { i1 { in-record -> @record/i1 as-named { parts [ | part type | "Philip" :given | "Mountbatten" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ { value "Philip /Mountbatten/", what "NAME" } ] } i2 { in-record -> @record/i2 as-named { parts [ | part type | "Elizabeth" :given | "Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Elizabeth /Windsor/" | "NAME" "Elizabeth Alexandra Mary /Windsor/" ] } i3 { in-record -> @record/i3 as-named { parts [ | part type | "Charles" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ | what value | "NAME" "Charles /Mountbatten-Windsor/" | "NAME" "Charles Philip Arthur George /Mountbatten-Windsor/" ] } i4 { in-record -> @record/i4 as-named { parts [ | part type | "Diana" :given | "Spencer" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Diana /Spencer/" | "NAME" "Diana Frances /Spencer/" ] } i5 { in-record -> @record/i5 as-named { parts [ | part type | "Camilla" :given | "Shand" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Camilla /Shand/" | "NAME" "Camilla Rosemary /Shand/" ] } i6 { in-record -> @record/i6 as-named { parts [ | part type | "William" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ | what value | "NAME" "William /Mountbatten-Windsor/" | "NAME" "William Arthur Philip Louis /Mountbatten-Windsor/" ] } i7 { in-record -> @record/i7 as-named { parts [ | part type | "Catherine" :given | "Middleton" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Catherine /Middleton/" | "NAME" "Catherine Elizabeth /Middleton/" ] } i8 { in-record -> @record/i8 as-named { parts [ | part type | "George" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ | what value | "NAME" "George /Mountbatten-Windsor/" | "NAME" "George Alexander Louis /Mountbatten-Windsor/" ] } i9 { in-record -> @record/i9 as-named { parts [ | part type | "Charlotte" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Charlotte /Mountbatten-Windsor/" | "NAME" "Charlotte Elizabeth Diana /Mountbatten-Windsor/" ] } i10 { in-record -> @record/i10 as-named { parts [ | part type | "Louis" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ | what value | "NAME" "Louis /Mountbatten-Windsor/" | "NAME" "Louis Arthur Charles /Mountbatten-Windsor/" ] } i11 { in-record -> @record/i11 as-named { parts [ | part type | "Harry" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ | what value | "NAME" "Harry /Mountbatten-Windsor/" | "NAME" "Henry Charles Albert David /Mountbatten-Windsor/" ] } i12 { in-record -> @record/i12 as-named { parts [ | part type | "Meghan" :given | "Markle" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Meghan /Markle/" | "NAME" "Rachel Meghan /Markle/" ] } i13 { in-record -> @record/i13 as-named { parts [ | part type | "Archie" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "M" as-stated [ | what value | "NAME" "Archie /Mountbatten-Windsor/" | "NAME" "Archie Harrison /Mountbatten-Windsor/" ] } i14 { in-record -> @record/i14 as-named { parts [ | part type | "Lilibet" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :as-recorded } role :subject sex-as-recorded "F" as-stated [ | what value | "NAME" "Lilibet /Mountbatten-Windsor/" | "NAME" "Lilibet Diana /Mountbatten-Windsor/" ] } } persons { i1 { unifies { of [ -> @persona/i1 ] assertion { from [ @evidence/7fca6c4749c6d3c9f3db9c064131d932e2348b588316bc87d90f1dcf48576df5 { record -> @record/i1 says "Philip /Mountbatten/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/bbc1b7bcac597077fd9e05158b2ca363321593ca3df34528286d24b83d51de02 { parts [ | part type | "Philip" :given | "Mountbatten" :family ] practice :gedcom-slash-parse use :as-recorded assertion { from [ @evidence/ad69b77ab48716835f13acf5dff412443aa7d804849fe3287f8c54dd1844b4b9 { record -> @record/i1 says "Philip /Mountbatten/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i1 ] } i2 { unifies { of [ -> @persona/i2 ] assertion { from [ @evidence/f8ade862c764944d8e1a4c8a074ee5023ecdf32cb1880c52f80e27c75f7953ea { record -> @record/i2 says "Elizabeth /Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/54c332d376d8b5fa38371285d50bc0bec800f5118177cc868bec674439fc162e { parts [ | part type | "Elizabeth" :given | "Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/79e0da40767d1d14329ee2eca8479767645f868494481495773c223210d0d445 { record -> @record/i2 says "Elizabeth /Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/f98783312e2fe676fef0e6891fea2c4a446ac45e332592eeb45305c85d13db9e { parts [ | part type | "Elizabeth Alexandra Mary" :given | "Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/d9bbc95d5efcdcaec9dc78d02797dac1df0c305492b1304b9a5d677ae2c6a608 { record -> @record/i2 says "Elizabeth Alexandra Mary /Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i2 ] } i3 { unifies { of [ -> @persona/i3 ] assertion { from [ @evidence/1813e974b1d1b1179848eeae7933294215da96fedf40ae4ce9814869717160b4 { record -> @record/i3 says "Charles /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/69fd47a4380a362e68dfdaac26dfe5a74a9413494beaf549d59541b67b9c2e3c { parts [ | part type | "Charles" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/11d721f1c86b6f20b69c708eef7282c06061c067494221c4ba4b636bc506afde { record -> @record/i3 says "Charles /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/1915537e6a34e15cfd309617365aebbf3164fc6227394066d1acbc6d1401039b { parts [ | part type | "Charles Philip Arthur George" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/e6c2f86a03f2130690ccf0c52572f5b2625ed3d37940627138b014dad4211ce7 { record -> @record/i3 says "Charles Philip Arthur George /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i3 ] } i4 { unifies { of [ -> @persona/i4 ] assertion { from [ @evidence/d5bfdff66e61674736fb2bafa6b7cc7e4c317e4d3dac59648edb3ac6873e115c { record -> @record/i4 says "Diana /Spencer/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/387c341bfe0413cec074efdeb2524f19401b79ecad973493eb3e5c2fc12ca116 { parts [ | part type | "Diana" :given | "Spencer" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/499b13f8d256e397cfc85355a46afb55d6cd7dc9eb1709d69873b24474953e2c { record -> @record/i4 says "Diana /Spencer/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/23df513d65fa082c1ec2dbeac506b0da19cc805acea5c4935bd31691689d8009 { parts [ | part type | "Diana Frances" :given | "Spencer" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/0eedb347426651e6151184ce1bcdc2a0392a0c3327c0dcfe2602637a4b05900b { record -> @record/i4 says "Diana Frances /Spencer/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i4 ] } i5 { unifies { of [ -> @persona/i5 ] assertion { from [ @evidence/860e58ff5da9d8a9db4f1f8ecef8cf80758aabb08ec7e255911ad52621226a00 { record -> @record/i5 says "Camilla /Shand/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/dd16a74d994e522715770f75614198d803c0c408f9052626b5353bc51901c055 { parts [ | part type | "Camilla" :given | "Shand" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/11d7aff52fd84fb0a655b1776383b5f19a3dc698c1df39d1f5b7b33e40c77e22 { record -> @record/i5 says "Camilla /Shand/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/87dfca6dd69a1e65ccf98f316bb243b712658a2c75850acd96e025f7deee5785 { parts [ | part type | "Camilla Rosemary" :given | "Shand" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/b4bf347a62ca4ba396630d05ea98ae4e47241b12d26d232345987e1361599447 { record -> @record/i5 says "Camilla Rosemary /Shand/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i5 ] } i6 { unifies { of [ -> @persona/i6 ] assertion { from [ @evidence/b1c8df9558c2eb44796296e6b2e15d82696a722bd6014f0545d22ffe11b9af5b { record -> @record/i6 says "William /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/4b0edcba19a26f066543b70076335bb8bb7e0f5c28f39b7b964fbcff994beb62 { parts [ | part type | "William" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/9e84fdea2c978f3dc9f46f24f4cdbb73935795690d0df7a5bfe6cac210a61b94 { record -> @record/i6 says "William /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/58e50f4750b2e4085ba12ad59bf702f192c1ff15b7cbc9d510fa1216ec894e08 { parts [ | part type | "William Arthur Philip Louis" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/91263dd9c90ebda7c0346df8eca682ee385a2fcb53c8e9215fdfbd64bb190fc5 { record -> @record/i6 says "William Arthur Philip Louis /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i6 ] } i7 { unifies { of [ -> @persona/i7 ] assertion { from [ @evidence/24812291957eb765b1429cc28b69a84e3f1bd59f10e36a7dc530a213cb498fe4 { record -> @record/i7 says "Catherine /Middleton/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/680c92e4917a4774c9d617c55af0288f58ae5db3bb4bbff7c251d3cddd0f81bd { parts [ | part type | "Catherine" :given | "Middleton" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/ca6aec3cf16379c8c8035b7150e072485ebef7bc84058703af2f60ff06ca1d01 { record -> @record/i7 says "Catherine /Middleton/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/79e04246ed0fe499f1eb8e13fc57e705fa60ee05e333185d87f993547f3b1ca5 { parts [ | part type | "Catherine Elizabeth" :given | "Middleton" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/c84df507c62f4dec694c65dbb6bb0f7a2431e4007be587af9fe1237d8d507ed4 { record -> @record/i7 says "Catherine Elizabeth /Middleton/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i7 ] } i8 { unifies { of [ -> @persona/i8 ] assertion { from [ @evidence/ab7325bd77fb3ee59a47a17ea186be316405638d10e93ee21fab6689f5ce9f33 { record -> @record/i8 says "George /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/adcb0c7d96723a0d62a74148f0592a5da3c5d2c0690139fec0335fb9aac71a32 { parts [ | part type | "George" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/871feb5639fe9d30dc5c3b6287404c851f4d308a8615dc203472c614056f06e9 { record -> @record/i8 says "George /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/ccb4c4f219d452bc074ca4d0cc6bf2a2bfe697f87f2e929fe0be5534a7bcb11d { parts [ | part type | "George Alexander Louis" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/eb985f55680d423c5843ce159938cb4fd22412d5011fdb61b30af964b231ea7a { record -> @record/i8 says "George Alexander Louis /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i8 ] } i9 { unifies { of [ -> @persona/i9 ] assertion { from [ @evidence/dc3bd9640f7d8f02945f926be41acda9fafbdeece869276f2cc78f4648100d3f { record -> @record/i9 says "Charlotte /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/90537ab0fdf56d8573e80b0d58571ca545c4d1e2d5621cb30ed8c03f303ce63f { parts [ | part type | "Charlotte" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/d2359725b406d0671db495248fbf9736c9f49bab84253baba975f954166ea203 { record -> @record/i9 says "Charlotte /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/5a4a370725c82effa192e2d4a9a7f77f2ea49640da66cd39c2e4340bdc96e87c { parts [ | part type | "Charlotte Elizabeth Diana" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/8865923f9a7494060748c3ccb3868d757dec58ff4abb9538d26341aa0215a642 { record -> @record/i9 says "Charlotte Elizabeth Diana /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i9 ] } i10 { unifies { of [ -> @persona/i10 ] assertion { from [ @evidence/0aa661018569d54f966fc4e925b243e6ffe9e66191552251fdf928e5e032e173 { record -> @record/i10 says "Louis /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/975b75767d9682ff58e1125c88ef61bdfc2f416f55309bc4495ca1d769f815b8 { parts [ | part type | "Louis" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/388dbac2f0ade88ab895066937e665a4d99b051b52efbc8043ad53fc23df674a { record -> @record/i10 says "Louis /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/1e94324a30ee0292df2afada4370ab0e482b0bec8e954970c4431aba0d52914e { parts [ | part type | "Louis Arthur Charles" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/bd8b35697dd5f00eae8adb8cf196c86fac08834b06b08bb121da273469bd6623 { record -> @record/i10 says "Louis Arthur Charles /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i10 ] } i11 { unifies { of [ -> @persona/i11 ] assertion { from [ @evidence/6e1ffd8fa9d9823fd875dfe887dac2e9b8c7efc7f910b5786469ca4cb62be63f { record -> @record/i11 says "Harry /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/952a1811ede7a5a808aa8ad20e18d6d55152bcf4b43f12b9b51d0740e5e57400 { parts [ | part type | "Harry" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/6c5ba0cae07984bb1fe603086687ef69ddeec5b96a08c38c92cfe19183afcaf1 { record -> @record/i11 says "Harry /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/4736659a45bfbc6c5c85661a8ec6c96ec3411ec48ed9059bd97ee1e0e0f163bd { parts [ | part type | "Henry Charles Albert David" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/113c5463b5b95f0b0b7bca1e27e9677636a7c1d69348e1fd643880eaa2adf259 { record -> @record/i11 says "Henry Charles Albert David /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i11 ] } i12 { unifies { of [ -> @persona/i12 ] assertion { from [ @evidence/43c24587490c909d8af9c1de27930dea5902d822227fb0670bddeb1b6680874d { record -> @record/i12 says "Meghan /Markle/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/55da15ffd41def5b60e75c93b308b60fa176d1ce4f005197842997a08871b149 { parts [ | part type | "Meghan" :given | "Markle" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/97763bd55e48a0a09738aabb899f381b21fe307d99a9bba6c44a520a68901623 { record -> @record/i12 says "Meghan /Markle/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/b3f427528dc0ea6cf299ca0b5666e847057e7ebe353924148c4423e2cbe7d7d2 { parts [ | part type | "Rachel Meghan" :given | "Markle" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/2ab2642740fc6c32d6a237cb4a8c3e1b7372083e7d30d63066f193c07ca94329 { record -> @record/i12 says "Rachel Meghan /Markle/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i12 ] } i13 { unifies { of [ -> @persona/i13 ] assertion { from [ @evidence/f62ddbbe6c20fa783a652482130588c74864601ad859da04b6f95ba89cb93d9a { record -> @record/i13 says "Archie /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/f8cf5760ece6f606ee5e10c1275cb344c729c098c3a36686b7e28f15f4afb74a { parts [ | part type | "Archie" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/ec55e35c903a28d4c27c62957a0f2299ef81ac4cec73d3f3df83d7c263bc030c { record -> @record/i13 says "Archie /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/14cde338345ed1878cbb606d867bb1e89023b5415f03f26b71db12647355f31b { parts [ | part type | "Archie Harrison" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/61a910f508e0eeb08a39e067285899d36e012a7826c9f823cbbc21b610e01f7a { record -> @record/i13 says "Archie Harrison /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i13 ] } i14 { unifies { of [ -> @persona/i14 ] assertion { from [ @evidence/8985c88f3000f2a4ab963c02fe64ef29e7071424a3280b8904a95d7f38e636ed { record -> @record/i14 says "Lilibet /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } names [ @name/ec33b654a386149a215e797318ea1016fb7ba2b3ec2145e1346e2acd4ea53a13 { parts [ | part type | "Lilibet" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :called-by assertion { from [ @evidence/d883deb59400cabceed8c03a6cb55fc29957bb3a34a799ae448895fee99984f2 { record -> @record/i14 says "Lilibet /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @name/bf0fb6f4c5cfb1d23e646f7309ea6a823ab6f2201eefd49c69a80d173fa34586 { parts [ | part type | "Lilibet Diana" :given | "Mountbatten-Windsor" :family ] practice :gedcom-slash-parse use :legal assertion { from [ @evidence/9f01f7ff1ba6fd39c5c31d259a86c658f9336c0a8440a9dbdc5f8abc7c54bb58 { record -> @record/i14 says "Lilibet Diana /Mountbatten-Windsor/" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] media [ -> @media/portrait-i14 ] } } media { portrait-i1 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:679fea5d9df5c9c698a3722d8d214cda4c8d3d754f8b9ab325bf90f2fbbabd6e kind :photo title "Prince Philip, Duke of Edinburgh, 1992" description "A photograph of Prince Philip, Duke of Edinburgh, 1992, reduced to 120 pixels wide for the card" rights "CC BY-SA 3.0. Photograph by Allan Warren, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Duke_of_Edinburgh_33_Allan_Warren.jpg" } portrait-i2 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:84e50b658363613fde25c9ece105401ab62eb7ad7ce264f902482dceac6f20f6 kind :photo title "Queen Elizabeth II, 1958" description "A photograph of Queen Elizabeth II, 1958, reduced to 120 pixels wide for the card" rights "Public domain. Photograph by Donald McKague, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Queen_Elizabeth_II_official_portrait_for_1959_tour_(retouched)_(cropped)_(3-to-4_aspect_ratio).jpg" } portrait-i3 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:b60dc8c70a3ebbdd2607cb3ad8007588ab5b59ce113b2e74266ef693a5f46cce kind :photo title "King Charles III, 2023" description "A photograph of King Charles III, 2023, reduced to 120 pixels wide for the card" rights "Public domain. Photograph by White House, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:King_Charles_III_(July_2023).jpg" sensitivity :living } portrait-i4 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:240e1bf8accb24fe93215ccec607236c86fee17f5b8ba94809ed6a4c245ab29e kind :photo title "Diana, Princess of Wales, 1997" description "A photograph of Diana, Princess of Wales, 1997, reduced to 120 pixels wide for the card" rights "CC BY-SA 2.0. Photograph by John Mathew Smith & www.celebrity-photos.com from Laurel, Maryland, USA, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Diana,_Princess_of_Wales_1997_(2).jpg" } portrait-i5 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:3f518db1a45d129acf0fd1dfadefd7ac8477e1e8e0ec4c1963aca4ea6911206a kind :photo title "Camilla, then Duchess of Cornwall, 2019" description "A photograph of Camilla, then Duchess of Cornwall, 2019, reduced to 120 pixels wide for the card" rights "CC BY 4.0. Photograph by Mark Tantrum, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Queen_Camilla_in_Aotearoa_2019.jpg" sensitivity :living } portrait-i6 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:5501bff8014de9af2332cccfc5895de6bceb95bc609155f72ba6b0a6e54b0674 kind :photo title "William, Prince of Wales, 2025" description "A photograph of William, Prince of Wales, 2025, reduced to 120 pixels wide for the card" rights "Public domain. Photograph by Daniel Torok/White House, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Prince_of_Wales_at_State_Banquet_2025-09-17_(0.75_crop).jpg" sensitivity :living } portrait-i7 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:ed36d609f2b8966138bbd13fbac2cdc3c29269837bbb3028e8b1d77ae8b56474 kind :photo title "Catherine, Princess of Wales, 2025" description "A photograph of Catherine, Princess of Wales, 2025, reduced to 120 pixels wide for the card" rights "Public domain. Photograph by Daniel Torok/White House, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Princess_of_Wales_at_State_Banquet_2025-09-17_(0.75_crop).jpg" sensitivity :living } portrait-i8 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:fb3d83e83aae7bbee12c769d2a80ebe02ab20280078edf3d2e66455f3289392b kind :photo title "Prince George of Wales, 2023" description "A photograph of Prince George of Wales, 2023, reduced to 120 pixels wide for the card" rights "OGL 3. Photograph by Simon Dawson / No 10 Downing Street, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Trooping_the_Colour_2023_(GovPM_41)_crop_2.jpg" sensitivity :living } portrait-i9 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:eaf3a7c7c22c5d0dc52e149920fff03a498b61919a3100e47b5630447a69c2c8 kind :photo title "Princess Charlotte of Wales, 2023" description "A photograph of Princess Charlotte of Wales, 2023, reduced to 120 pixels wide for the card" rights "CC BY-SA 4.0. Photograph by Katie Chan, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Princess_Charlotte-Trooping_the_Colour_2023_(cropped).jpg" sensitivity :living } portrait-i10 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:ef773f52aec2630626655cc4a07e9157d0b9a318286cd742a3053b28b6ee25f4 kind :photo title "Prince Louis of Wales, 2024" description "A photograph of Prince Louis of Wales, 2024, reduced to 120 pixels wide for the card" rights "OGL 3. Photograph by Simon Dawson/No 10 Downing Street, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Prince_Louis_(carriage_window_crop)_2024_(cropped).jpg" sensitivity :living } portrait-i11 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:e61bc9ecfd849331b6abff7c41d5ca36a9d781079b4f8c584fbf962ec5b3f088 kind :photo title "Prince Harry, Duke of Sussex, 2019" description "A photograph of Prince Harry, Duke of Sussex, 2019, reduced to 120 pixels wide for the card" rights "CC BY-SA 4.0. Photograph by Ministerie van Defensie, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:Prince_Harry_launching_the_2020_Invictus_Games_(cropped).jpg" sensitivity :living } portrait-i12 { media-type "image/jpeg" bytes ~b64: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 digest #sha256:5d2761b7f2944468173b91e1c4f28f0717ecd33ddd89a721dce93b30022176f2 kind :photo title "Meghan, Duchess of Sussex, 2024" description "A photograph of Meghan, Duchess of Sussex, 2024, reduced to 120 pixels wide for the card" rights "CC BY 4.0. Photograph by Fuzheado, from Wikimedia Commons: https://commons.wikimedia.org/wiki/File:SXSW-2024-OB7A9986-alih-Meghan,_Duchess_of_Sussex_(cropped).jpg" sensitivity :living } portrait-i13 { media-type "image/svg+xml" bytes ~b64:PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCI+PHJlY3Qgd2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjODA3MzRmIi8+PGVsbGlwc2UgY3g9IjMwIiBjeT0iMjUiIHJ4PSI5IiByeT0iMTAiIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iLjMiLz48cGF0aCBkPSJNMTIgNjAgQzEyIDQ1IDIwIDM5IDMwIDM5IEM0MCAzOSA0OCA0NSA0OCA2MCBaIiBmaWxsPSIjZmZmZmZmIiBmaWxsLW9wYWNpdHk9Ii4zIi8+PHRleHQgeD0iMzAiIHk9IjM2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2ZmZmZmZiI+QU08L3RleHQ+PC9zdmc+ digest #sha256:f8277feedfccaa5d79f6add34288c617378e3838537445432cc0073cee8067d0 kind :electronic title "Placeholder portrait for Archie Mountbatten-Windsor" description "A generated placeholder and not a likeness: a head-and-shoulders outline behind the initials on a plain ground. No openly licensed photograph of this child is published; their parents have kept them out of public photography" sensitivity :living } portrait-i14 { media-type "image/svg+xml" bytes ~b64:PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCI+PHJlY3Qgd2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjNjU2MDhhIi8+PGVsbGlwc2UgY3g9IjMwIiBjeT0iMjUiIHJ4PSI5IiByeT0iMTAiIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iLjMiLz48cGF0aCBkPSJNMTIgNjAgQzEyIDQ1IDIwIDM5IDMwIDM5IEM0MCAzOSA0OCA0NSA0OCA2MCBaIiBmaWxsPSIjZmZmZmZmIiBmaWxsLW9wYWNpdHk9Ii4zIi8+PHRleHQgeD0iMzAiIHk9IjM2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNiIgZm9udC13ZWlnaHQ9IjYwMCIgZmlsbD0iI2ZmZmZmZiI+TE08L3RleHQ+PC9zdmc+ digest #sha256:dc02caf4ce1a42596a98a19da1497ec3828711a2920cdeb22f37a886e13f5469 kind :electronic title "Placeholder portrait for Lilibet Mountbatten-Windsor" description "A generated placeholder and not a likeness: a head-and-shoulders outline behind the initials on a plain ground. No openly licensed photograph of this child is published; their parents have kept them out of public photography" sensitivity :living } } events { i1-birth { type :birth participants [ @participant/ec6af6a6c88fb22ffb31da1841980c9c8ce9cb469f3148bad53fb939c134b47b { role :subject, who -> @person/i1 } ] date { calendar :gregorian, form :on, value 1921-06-10 } place -> @place/mon-repos-corfu-greece of-record -> @record/i1 assertion { from [ @evidence/55213ee327293312bcd89e12f18680e8ad5c9f159064e539151ff8748460d669 { record -> @record/i1 says "BIRT 10 JUN 1921, Mon Repos, Corfu, Greece" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i1-death { type :death participants [ @participant/c9dcfc0111dc6d47871c73ba47314645014736ac42d5cb21dc32ac7c93ae98c2 { role :subject, who -> @person/i1 } ] date { calendar :gregorian, form :on, value 2021-04-09 } place -> @place/windsor-castle-berkshire-england of-record -> @record/i1 assertion { from [ @evidence/ce3f73db3cd0b2c0ffc182d4340c452193c384b3d77c14248ef71c27465edfb2 { record -> @record/i1 says "DEAT 9 APR 2021, Windsor Castle, Berkshire, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i2-birth { type :birth participants [ @participant/a6f2e5aa6ef38b6ab56c84451efdc15c73d995564ddfea7788d2ff89b49bba6d { role :subject, who -> @person/i2 } ] date { calendar :gregorian, form :on, value 1926-04-21 } place -> @place/mayfair-london-england of-record -> @record/i2 assertion { from [ @evidence/637dda7d1a9157c728fb484bb8e1818808cdaf4c3c8d520d258def3776c60550 { record -> @record/i2 says "BIRT 21 APR 1926, Mayfair, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i2-death { type :death participants [ @participant/ed79539561f360d01fbb2df0f984065ce0430cedcfa55a6945eac82ed1d17495 { role :subject, who -> @person/i2 } ] date { calendar :gregorian, form :on, value 2022-09-08 } place -> @place/balmoral-castle-aberdeenshire-scotland of-record -> @record/i2 assertion { from [ @evidence/a56068785d0e9e6c36366b937e2496b129b4279378ec5b50d26e8a223c92abfa { record -> @record/i2 says "DEAT 8 SEP 2022, Balmoral Castle, Aberdeenshire, Scotland" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i3-birth { type :birth participants [ @participant/646efa5f85c58684b12534509fac61b90e456389478167ea6c35991906353137 { role :subject, who -> @person/i3 } ] date { calendar :gregorian, form :on, value 1948-11-14 } place -> @place/buckingham-palace-london-england of-record -> @record/i3 assertion { from [ @evidence/c7854a3abb77a0106d9e48b3b1a3bf153b021e3c2e8a62f9f8833be679c3599c { record -> @record/i3 says "BIRT 14 NOV 1948, Buckingham Palace, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i4-birth { type :birth participants [ @participant/d288adfe9d451110d7edb9d14e607cc38a7268bb39919ccad21a38ce176fef36 { role :subject, who -> @person/i4 } ] date { calendar :gregorian, form :on, value 1961-07-01 } place -> @place/park-house-sandringham-norfolk-england of-record -> @record/i4 assertion { from [ @evidence/f32149be52279cbcd2f3d9ea2a83acccbf3c3fa963479f49abfff03ead148f80 { record -> @record/i4 says "BIRT 1 JUL 1961, Park House, Sandringham, Norfolk, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i4-death { type :death participants [ @participant/68b44a0511dc7693a084db1d7647ea5d634046d67a7631539237ea8e77aec648 { role :subject, who -> @person/i4 } ] date { calendar :gregorian, form :on, value 1997-08-31 } place -> @place/paris-france of-record -> @record/i4 assertion { from [ @evidence/df470bfe12fc512681d92644c18afa6f364a1e6146e166012a9641a50166a6fc { record -> @record/i4 says "DEAT 31 AUG 1997, Paris, France" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i5-birth { type :birth participants [ @participant/da4975c6adcf7ebed8bc4676736df3b366671cc021678c62a165b64d64c7bde2 { role :subject, who -> @person/i5 } ] date { calendar :gregorian, form :on, value 1947-07-17 } place -> @place/london-england of-record -> @record/i5 assertion { from [ @evidence/4551a08dd7d428e314e90eaae3a85f0b598068a12aab73be54788da4cfdad6a1 { record -> @record/i5 says "BIRT 17 JUL 1947, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i6-birth { type :birth participants [ @participant/41d3a4549bd0e4727fa470920db4efd8a6ee2b11586b31bacc11f0a9b3aee230 { role :subject, who -> @person/i6 } ] date { calendar :gregorian, form :on, value 1982-06-21 } place -> @place/st-mary-s-hospital-paddington-london-england of-record -> @record/i6 assertion { from [ @evidence/f7430c488df758c6fdf97248936f868ba0fc2582bcbb3b431b08407aba53802d { record -> @record/i6 says "BIRT 21 JUN 1982, St Mary's Hospital, Paddington, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i7-birth { type :birth participants [ @participant/7600dbe92505dd081cbd0214a21738c20666621470c18abe8fb3f687ce8362f4 { role :subject, who -> @person/i7 } ] date { calendar :gregorian, form :on, value 1982-01-09 } place -> @place/reading-berkshire-england of-record -> @record/i7 assertion { from [ @evidence/348f2b9d4b781a649b77d5f8e63a3ba6a3e4213bcdf4503cf299fb257994af19 { record -> @record/i7 says "BIRT 9 JAN 1982, Reading, Berkshire, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i8-birth { type :birth participants [ @participant/1d3b2a23dd5a8259575d695fc5a2d931f74b4e039703f2e78efa199259da6415 { role :subject, who -> @person/i8 } ] date { calendar :gregorian, form :on, value 2013-07-22 } place -> @place/st-mary-s-hospital-paddington-london-england of-record -> @record/i8 assertion { from [ @evidence/2b5adc4d92f96d331b7bccc99d23c1b4139f8f801e4afc8a1d15a5c5034e3cec { record -> @record/i8 says "BIRT 22 JUL 2013, St Mary's Hospital, Paddington, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i9-birth { type :birth participants [ @participant/8cae85fa0803691d0e4d0b59f1bd2767076180612b169511ef8b7020bd4ed77a { role :subject, who -> @person/i9 } ] date { calendar :gregorian, form :on, value 2015-05-02 } place -> @place/st-mary-s-hospital-paddington-london-england of-record -> @record/i9 assertion { from [ @evidence/1f8740799c079b3e72112e357f5dcac758884f287a9f0ee26f8324c281b3e674 { record -> @record/i9 says "BIRT 2 MAY 2015, St Mary's Hospital, Paddington, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i10-birth { type :birth participants [ @participant/b6b648ce3442f991ed033331ce6a225d912280e672c2292cf371dc245cc252a2 { role :subject, who -> @person/i10 } ] date { calendar :gregorian, form :on, value 2018-04-23 } place -> @place/st-mary-s-hospital-paddington-london-england of-record -> @record/i10 assertion { from [ @evidence/b64bf04467bbb4bbacd1778e2761178d434177a7cc0a220a808ed5eb0bed2b47 { record -> @record/i10 says "BIRT 23 APR 2018, St Mary's Hospital, Paddington, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i11-birth { type :birth participants [ @participant/d3918e38cf8f296895125bae0b949565ef75c1d21bee69729949ea46d7e143d4 { role :subject, who -> @person/i11 } ] date { calendar :gregorian, form :on, value 1984-09-15 } place -> @place/st-mary-s-hospital-paddington-london-england of-record -> @record/i11 assertion { from [ @evidence/49aeebbb3fa2c36d8b8f3c05a415d435070c7550133019b2d2af653584afb338 { record -> @record/i11 says "BIRT 15 SEP 1984, St Mary's Hospital, Paddington, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i12-birth { type :birth participants [ @participant/d5d5c49f67e0934f8cd3058b61458beb0ead4eb53b1894d46592b4d40e6284d4 { role :subject, who -> @person/i12 } ] date { calendar :gregorian, form :on, value 1981-08-04 } place -> @place/canoga-park-los-angeles-california-united-states of-record -> @record/i12 assertion { from [ @evidence/4c8413a70ed732743f868da77fa3c6ceb06deed25645579f0bc9727017aaabf6 { record -> @record/i12 says "BIRT 4 AUG 1981, Canoga Park, Los Angeles, California, United States" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i13-birth { type :birth participants [ @participant/9d22723c25859c3c685209fb4e9178ba9219712b90653f75c22765a59483cc74 { role :subject, who -> @person/i13 } ] date { calendar :gregorian, form :on, value 2019-05-06 } place -> @place/portland-hospital-london-england of-record -> @record/i13 assertion { from [ @evidence/52bd8113993413a4b13ec3ec1e987e8599cd26ae358fbde6e8e00de0e501d9b5 { record -> @record/i13 says "BIRT 6 MAY 2019, Portland Hospital, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } i14-birth { type :birth participants [ @participant/db5d436a6ac42701acad587a1b4995d8642edc877d19c3d4d521dca87370b6fc { role :subject, who -> @person/i14 } ] date { calendar :gregorian, form :on, value 2021-06-04 } place -> @place/santa-barbara-california-united-states of-record -> @record/i14 assertion { from [ @evidence/af0fa582d7eb1781cada6e063a5b468ede4ed999f7608e5128f2f5b87b879474 { record -> @record/i14 says "BIRT 4 JUN 2021, Santa Barbara, California, United States" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } f1-marriage { type :marriage participants [ @participant/cdde35ebada1d1df71278cd2ba90974b09f1b725af47b0dd59d58a3b2c99ac63 { who -> @person/i1, role :spouse } @participant/ef670596a151a528875b798ccf0529a145cd8c5b8eff179e156445b970827dea { who -> @person/i2, role :spouse } ] date { calendar :gregorian, form :on, value 1947-11-20 } place -> @place/westminster-abbey-london-england of-record -> @record/f1 assertion { from [ @evidence/85b3301dc29d072dfb97a5551bf4c1f0fe4a34fea731f811259da89424867914 { record -> @record/f1 says "MARR 20 NOV 1947, Westminster Abbey, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } f2-marriage { type :marriage participants [ @participant/71895f57dd1101e1e188c568b4120d3e4ac13c3aa62d975c6cd178390732b193 { who -> @person/i3, role :spouse } @participant/456452a23d8bfeb25b242860708e92463c107366c9d4322a87d1e852a275240d { who -> @person/i4, role :spouse } ] date { calendar :gregorian, form :on, value 1981-07-29 } place -> @place/st-paul-s-cathedral-london-england of-record -> @record/f2 assertion { from [ @evidence/afda5da54c3acba692bd465b43da435cd8e6bde1a52c0139afe0d97ef2a89eb5 { record -> @record/f2 says "MARR 29 JUL 1981, St Paul's Cathedral, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } f2-separation { type :separation manner :divorce participants [ @participant/5ef408a02de3a1a79454967e1be5ae3feab96b90a3a6addd9435349d666b9e2f { who -> @person/i3, role :spouse } @participant/cfbe4940c38210c5611a48dc770347f0df69ad5ccfe64e3f8147b1c6183c4bef { who -> @person/i4, role :spouse } ] date { calendar :gregorian, form :on, value 1996-08-28 } of-record -> @record/f2 assertion { from [ @evidence/a40f9cdd834481be9a349181022f3b90d51d5e0c41708a58dad991d1239aca85 { record -> @record/f2 says "DIV 28 AUG 1996" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } f3-marriage { type :marriage participants [ @participant/c624d262b2e6686eb2f1e9c5093ca56c514b7cfa18a5e0a2d1a6f9d501eb14c4 { who -> @person/i3, role :spouse } @participant/f0d41a7ac2c08d800a38f817bc0ae68bc17355c8ce899db77c66ff614dbe54e9 { who -> @person/i5, role :spouse } ] date { calendar :gregorian, form :on, value 2005-04-09 } place -> @place/windsor-guildhall-windsor-berkshire-england of-record -> @record/f3 assertion { from [ @evidence/c3867e5d583fa1184878278cf6d03522da17cbea09a48fc0e600695f06697032 { record -> @record/f3 says "MARR 9 APR 2005, Windsor Guildhall, Windsor, Berkshire, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } f4-marriage { type :marriage participants [ @participant/a78fb7db0ca7bbed7f703872a0d56d0637d6a2c05d51b6008a902d5151aa736e { who -> @person/i6, role :spouse } @participant/2a0b7026a84e07a0cdbd643b3db111894b6e5187e7d198de1df95fecc535ea3c { who -> @person/i7, role :spouse } ] date { calendar :gregorian, form :on, value 2011-04-29 } place -> @place/westminster-abbey-london-england of-record -> @record/f4 assertion { from [ @evidence/f0486e3b3961ecf187e7e22a58ec01024a24e61e54bb89e4c2e08e78e08c49b2 { record -> @record/f4 says "MARR 29 APR 2011, Westminster Abbey, London, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } f5-marriage { type :marriage participants [ @participant/903696ce089c9db3b4a8df168090a12a5ed521865ddecc74f1bf08addc1efdfb { who -> @person/i11, role :spouse } @participant/94fcf7545d134f57831b5abd6c2aff2609013ff4be2bc7c1f04048688884fc75 { who -> @person/i12, role :spouse } ] date { calendar :gregorian, form :on, value 2018-05-19 } place -> @place/st-george-s-chapel-windsor-castle-berkshire-england of-record -> @record/f5 assertion { from [ @evidence/130be4c006a0efdbf9a4c0fd06ed172839f6c6696a6b0a8229412d2131b1c396 { record -> @record/f5 says "MARR 19 MAY 2018, St George's Chapel, Windsor Castle, Berkshire, England" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } } relations [ @relation/5fb1e59cde00eb32232d447ad962b20e1c5b9781966ddcf07251d42d20c5c1b9 { type :spouse-of from -> @person/i1 to -> @person/i2 formality :religious began { calendar :gregorian, form :on, value 1947-11-20 } assertion { from [ @evidence/35e99681f7f5ce6a7ccd8e805352bfc3601924cafc1382b0e0d07d985f99cc9e { record -> @record/f1 says "HUSB @I1@, WIFE @I2@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible because "inferred by the converter from the marriage place name \"Westminster Abbey, London, England\", which reads as a place of worship. It is a heuristic and is recorded as one" } } @relation/fa3ff6fbf82b1c2a0ef97744fcef3364c61c559cfd433020e19622b8e8195c4b { type :parent-of from -> @person/i1 to -> @person/i3 basis :presumed-birth assertion { from [ @evidence/df2085d3e33afe1058427e794d9064fe7053fa0b8d660ea3504fc8ef2778dfc3 { record -> @record/f1 says "CHIL @I3@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/5b542deea6015dc5c70f372e73013c137fa1bb32980a5ebda72eb9250c81f1d1 { type :parent-of from -> @person/i2 to -> @person/i3 basis :presumed-birth assertion { from [ @evidence/777b3b63f8077ecda9675f66e505db218496e6126432fcd9fcb6d092fcc5032e { record -> @record/f1 says "CHIL @I3@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/daa2d32c8a22de6413be765f5bca28d911202dbe676c536a00a027b0d9707093 { type :spouse-of from -> @person/i3 to -> @person/i4 formality :religious began { calendar :gregorian, form :on, value 1981-07-29 } assertion { from [ @evidence/a2760b12021b302867dfea0ee774c7e5b058504ec2f5ddd275491174edce1b94 { record -> @record/f2 says "HUSB @I3@, WIFE @I4@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible because "inferred by the converter from the marriage place name \"St Paul's Cathedral, London, England\", which reads as a place of worship. It is a heuristic and is recorded as one" } } @relation/ff5425415d974b972869246bd132dbf2f693b7aa4ebaa15f5c7b1cb00c08826f { type :parent-of from -> @person/i3 to -> @person/i6 basis :presumed-birth assertion { from [ @evidence/aed4a05c377f5d40c20c39c7cdedf4de3bbb505678fa1b3eed272a7441bd3e6d { record -> @record/f2 says "CHIL @I6@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/6969259cf163e811ffd56f4f724db0b66938ef7c8827a3ea5e76cda1ab7cca81 { type :parent-of from -> @person/i4 to -> @person/i6 basis :presumed-birth assertion { from [ @evidence/6321d2ed9151d5154cbb45ee903c8ebd7e3d663d84785b23bfe52015a7a00a07 { record -> @record/f2 says "CHIL @I6@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/050f98229074ebf86b4383bdfc634ea97000f3537d58cd3b35810b6bd19396be { type :parent-of from -> @person/i3 to -> @person/i11 basis :presumed-birth assertion { from [ @evidence/b5bdfcef05425d5df783d6762c8d3b25d9ea2b58067a402582cb058b57916af3 { record -> @record/f2 says "CHIL @I11@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/6ae0e437e3d6a9c0ec422d21d615fc1cb31b080ba58bbc15e4076fe306e46662 { type :parent-of from -> @person/i4 to -> @person/i11 basis :presumed-birth assertion { from [ @evidence/9206d8a181028efab8fe46749795c32c536382d983033b49feda095c23b02c0f { record -> @record/f2 says "CHIL @I11@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/a54b35360bc08fffe847d46cf3ee6327c741870060b3e67a0cbb9dba5389b9eb { type :spouse-of from -> @person/i3 to -> @person/i5 formality :civil began { calendar :gregorian, form :on, value 2005-04-09 } assertion { from [ @evidence/224d1f79c3c83e72dddeb8cfeee06a4a8b21d6c76f3b38dd0ad35892dcf3a7a5 { record -> @record/f3 says "HUSB @I3@, WIFE @I5@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/e926c88aa66c8c6117f5582dd2031454d84565372705fb703ee52df87e07bd7b { type :spouse-of from -> @person/i6 to -> @person/i7 formality :religious began { calendar :gregorian, form :on, value 2011-04-29 } assertion { from [ @evidence/137b3b3ae4e0b0f5ec863a0ca9807c7b1676ed8a584c670399a310e58be72008 { record -> @record/f4 says "HUSB @I6@, WIFE @I7@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible because "inferred by the converter from the marriage place name \"Westminster Abbey, London, England\", which reads as a place of worship. It is a heuristic and is recorded as one" } } @relation/e5a090aa10cf8137d4279281b80065de354458d90b7abb317b3d710803da38a6 { type :parent-of from -> @person/i6 to -> @person/i8 basis :presumed-birth assertion { from [ @evidence/e891dbee6e0126dba102a4c98dc2040674055619172b31ec4e926a5d2b77d17a { record -> @record/f4 says "CHIL @I8@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/03248df7d6abfbf71d25c3b83011ec2d8e6d65e37071aa07ce0c020396b7bc31 { type :parent-of from -> @person/i7 to -> @person/i8 basis :presumed-birth assertion { from [ @evidence/a74d770c58ea3e5e511154b0942c9877cdf2fffe4eed4bdb27c8fa503e1135c6 { record -> @record/f4 says "CHIL @I8@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/bf2cbe46ecfd8c3497bae5a61a2a8158b9444386117139d6d86d8d4e34b7621c { type :parent-of from -> @person/i6 to -> @person/i9 basis :presumed-birth assertion { from [ @evidence/76e8bdfd2cff4d9a2348482cb32b756087b1409f9d14630ec2e7f95f98f2e630 { record -> @record/f4 says "CHIL @I9@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/4fc32feb0233c31acf5fea4784a1eb4b2d9d424629bcbb14be034863049823da { type :parent-of from -> @person/i7 to -> @person/i9 basis :presumed-birth assertion { from [ @evidence/5c65d29b8d34882043a9b07e7a831c30f74db61f6d6d8490032ddfab1e089be1 { record -> @record/f4 says "CHIL @I9@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/bd4364a4d1022d6103b4a27cf6d5272562047047cef5c63adb5bab113e19fb95 { type :parent-of from -> @person/i6 to -> @person/i10 basis :presumed-birth assertion { from [ @evidence/0d8fd7160ba3cdca27d9c7ed4e0f9e1b768dee0dcd6c1bff2a8a51a39cae02bb { record -> @record/f4 says "CHIL @I10@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/50a9b60f7c15ec6219fc65c02ae81ad5aaa921c8a2fe777a9bd8fbd23639d2f9 { type :parent-of from -> @person/i7 to -> @person/i10 basis :presumed-birth assertion { from [ @evidence/4f33e360b73ac202a19bd5226e166eaf7084c1b2d0ea8e489e1781bf62dc7bfe { record -> @record/f4 says "CHIL @I10@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/2310b31af1d84de63d0b6ad9a721eb3b02bff026142b5e77a7b0b6e4d36097e1 { type :spouse-of from -> @person/i11 to -> @person/i12 formality :religious began { calendar :gregorian, form :on, value 2018-05-19 } assertion { from [ @evidence/e837d3f31cf8daca48d469e0d5c49edf22ef8a846b98f6c0ed33382df803fc60 { record -> @record/f5 says "HUSB @I11@, WIFE @I12@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible because "inferred by the converter from the marriage place name \"St George's Chapel, Windsor Castle, Berkshire, England\", which reads as a place of worship. It is a heuristic and is recorded as one" } } @relation/67d71c7241246a512fbb43adedc8973edfcd8328de2ac990e10f81a13cbabc3e { type :parent-of from -> @person/i11 to -> @person/i13 basis :presumed-birth assertion { from [ @evidence/fdc2ff32fcbf0fe85385834f2b57913ada79b0f01407ad21d1b21a25b0281289 { record -> @record/f5 says "CHIL @I13@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/c715b1c659b075978e13250f96828202173a92df408544988c4df960964fd0d4 { type :parent-of from -> @person/i12 to -> @person/i13 basis :presumed-birth assertion { from [ @evidence/caa05ec0e965e5ba7c1aa04a3f10b8efccc93bb4275b9a607c1cadfd313b69a2 { record -> @record/f5 says "CHIL @I13@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/ad711ce2e31dc6b9f7d1a111d78ab664e3b00f9b8239717a991934fefe9666d4 { type :parent-of from -> @person/i11 to -> @person/i14 basis :presumed-birth assertion { from [ @evidence/7134659345aa45dcc91bf8fc53849ee2aea318414f7c4b5cdf62f184eb573f43 { record -> @record/f5 says "CHIL @I14@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } @relation/bc72197007149a7ea7cd6751a7863954b13cae5daa0982219d638165719b3926 { type :parent-of from -> @person/i12 to -> @person/i14 basis :presumed-birth assertion { from [ @evidence/9c093a253e8c8b093c1eb60be9e9c8b55c808e96fd6e79f7cbe2e89e7fd79bdb { record -> @record/f5 says "CHIL @I14@" bearing :supports originality :authored informant :undetermined directness :direct } ] confidence :possible } } ] coverage { depth :outline as-of 2026-09-09 method "Converted whole from a GEDCOM file by tools/ged2umsg. Nothing here was read from a record: every assertion is the file's, at :possible, with one evidence entry citing the file's own entry for the person or family concerned." omits "Nothing was deliberately left out: the file was converted whole. What is ABSENT is everything the file never had — no source citation becomes a record of a register, no search is recorded, no reasoning is written, and no place is located. A reader should treat this document as a starting point that carries its own provenance, not as research." note "Imported by tools/ged2umsg under @mapping/genealogy/gedcom/v0. FOUR CHOICES ARE THE CONVERTER'S AND NOT THE FILE'S. An ABT date is given a 5-year tolerance. A date with no calendar escape is read as :gregorian, which is wrong for every pre-1752 English date and cannot be detected. A union's :formality is inferred :religious where the marriage place name reads as a place of worship — those carry a :because naming the place — and :civil otherwise. And every assertion is :possible, because a compiled tree states facts and says nothing about what they rest on. THREE THINGS ARE TRUE OF EVERY ENTITY HERE AND ARE SAID ONLY HERE. Each :record is one 0-level GEDCOM record, and its :made is that record's own CHAN date where it had one and this file's date where it did not. Each :place is one distinct PLAC string, typed :unlocated and NOT split at its commas — the commas are not a hierarchy and the file states no PLAC FORM. Each person unifies exactly one persona, because one imported record depicts one person and the unification asserts nothing beyond that. A :parent-of carries a :because only where the file qualified the link itself, through PEDI or _FREL or _MREL. An unqualified link is :presumed-birth, which is PEDI's own default and is a presumption stated as one." } } -- Embedded display declarations: standalone until registry resolution is available. genealogy-interface-view @presentation/genealogy-explorer/v0 { conforms -> @vocab/presentation/v0 of -> @genealogy/windsor-charles/v0 title "The family tree, with every person's record a click away" status :draft at 2026-09-08 over -> @vocab/genealogy/v0 emits :interface projections { descendants { start -> @subject.persons resolve -> @subject.persons via { edges -> @subject.relations type :parent-of typed-by :type from :from to :to direction :descending carry [ :basis ] beside [ :spouse-of ] adjacent :spouse-of } -- THE RECORD'S OWN WORD FOR SEX, reached through the persona the person -- unifies. It is NOT a claim about gender: the vocabulary keeps those -- apart on purpose, :sex-as-recorded is `what the record said, in the -- record's own vocabulary`, and a view drawing it must not relabel it as -- anything else. See recorded-sex-and-gender-are-different-claims. join { recorded-sex { from -> @subject.personas, keyed-by :unifies.of.0, take :sex-as-recorded } sex-symbol { from -> @tables.sex-reads, keyed-by :recorded-sex, take :symbol } sex-reads { from -> @tables.sex-reads, keyed-by :recorded-sex, take :as } -- WHEN THEY LIVED, read from the events that name them. A person holds -- no events of their own, so this is an INVERSE join: the birth whose -- participant is this person as :subject, never a parent's. born { from -> @subject.events, keyed-by :key, where { type :birth }, naming { in :participants, by :who, where { role :subject } }, take :date.value } died { from -> @subject.events, keyed-by :key, where { type :death }, naming { in :participants, by :who, where { role :subject } }, take :date.value } -- THE FIRST PICTURE LINKED TO THEM, which is the author's choice where -- :framing marks one :primary. A link is not a claim about who is in -- it, and a card is where a reader expects a portrait to be. thumbnail { from -> @subject.media, keyed-by :media.0, take :file } -- OR THE PICTURE ITSELF, where the document embeds it. A :media entry -- carries :bytes, :file or :identifiers, and a view that read only -- :file drew nothing for a document that carries its pictures whole. portrait { from -> @subject.media, keyed-by :media.0, take :bytes } portrait-type { from -> @subject.media, keyed-by :media.0, take :media-type } } -- :unifies.of.0 IS EMITTED BECAUSE THE JOIN ABOVE KEYS ON IT. A walk -- resolves an EMITTED path against the node it arrives at, and a join -- reads a field OF THE ROW — so the path a join keys on has to be on the -- row before the join runs, and putting it in :emit is what puts it -- there. It is the persona this person unifies, which is where the -- record's own word for sex lives. emit [ :key, :ordinal, :unifies.of.0, :generation, :centre, :arrivals, :spouse-of, :recorded-sex, :sex-symbol, :sex-reads, :names.0.parts.part, :names.0.parts.0.part, :names.0.parts.1.part, :media.0, :thumbnail, :portrait, :portrait-type ] order { kind :walk } } events { start -> @subject.events join { who { from -> @subject.persons, keyed-by :participants.0.who, take :key } reads { from -> @tables.event-reads, keyed-by :type, take :as } -- A JOIN MAY LOOK UP IN THE VIEW, so the specific word for an ending -- comes from this document's own table. It is null where the event -- carries no :manner, and the surface falls back to :reads. manner { from -> @tables.manner-reads, keyed-by :manner, take :as } where { from -> @subject.places, keyed-by :place, take :name } } emit [ :key, :type, :reads, :manner, :who, :date.value, :where ] order { kind :sorted, by :key, direction :ascending, tie :arrival, tie-direction :ascending } doc "every recorded event. :who is the KEY of the person it is about, so the region showing one person's events compares keys and not the spelling of a reference." } unions { start -> @subject.relations join { one-given { from -> @subject.persons, keyed-by :from, take :names.0.parts.0.part } one-family { from -> @subject.persons, keyed-by :from, take :names.0.parts.1.part } other-given { from -> @subject.persons, keyed-by :to, take :names.0.parts.0.part } other-family { from -> @subject.persons, keyed-by :to, take :names.0.parts.1.part } one-key { from -> @subject.persons, keyed-by :from, take :key } other-key { from -> @subject.persons, keyed-by :to, take :key } reads { from -> @tables.relation-reads, keyed-by :type, take :as } inverse { from -> @tables.relation-reads, keyed-by :type, take :inverse } } emit [ :arrival, :type, :reads, :inverse, :one-given, :one-family, :other-given, :other-family, :one-key, :other-key, :formality, :began.value ] order { kind :sorted, by :type, direction :ascending, tie :arrival, tie-direction :ascending } doc "every relation of every type, with the KEY of each end so a region can show the relations of whoever is open." } } -- =================================================================== -- WHAT A CLOSED SET READS AS -- =================================================================== -- -- A DOCUMENT SAYS :residence-recorded AND A PERSON READS `Lived at`. The -- subject holds neither phrase and could not: what a type MEANS is a fact -- about the vocabulary, and how it READS is a decision about presentation, -- which is what a view is for. -- -- @vocab/genealogy/v0 DECLARES TWENTY-TWO EVENT TYPES AND TWELVE RELATION -- TYPES. One guarded element each is thirty-four blocks of boilerplate, and a -- type the author forgot renders as NOTHING, which is worse than the symbol. -- So they are a table, and the projections join to it. See -- a-JOIN-may-look-up-in-the-VIEW. messages { full-name { text "{given} {family}", params { given :text, family :text } } at-place { text "at {place}", params { place :text } } } uses [ -> @library/ui/v0, -> @library/presentation/v0 ] defaults { locale { language "en", direction :ltr } targets [ external -> @ui/target/web/v0 ] } state { open-person { type :text, initial "" } } content { role :surface name "Genealogy" layout { axis :block, gap :loose } -- A WORKSPACE AND NOT A PAGE OF PROSE, so it takes the window: :fill is -- "the space the parent has left", and a surface's parent is the window. size { inline :fill } children [ { role :split -- THE PANEL IS AS WIDE AS THE NAMES AND THE TREE TAKES THE REST. A -- fraction of the window was tried twice and was wrong both times: a -- quarter was too narrow to read a name in, and two fifths left a -- column of empty pane between the names and the tree, because what -- the panel needs is the width of a name and not a share of anything. -- It says so itself, below, with :size — so these weights are what a -- target that cannot hug falls back to, and never what the web draws. layout { axis :inline, gap :loose, divide { weights [ 2, 3 ], movable false } } children [ -- THE SIDEPANEL IS THE COLLAPSIBLE THING, not the list inside it. -- :disclosure is `content that expands and collapses under a summary -- that is always visible`, which is a panel: collapsed, the summary -- remains and the pane gives its room back to the tree. Openness is -- implicit state the effects own, so this costs the view no state, -- and :initially says which way it starts. -- -- IT STARTS CLOSED BECAUSE THE TREE IS THE VIEW. The panel is where a -- reader GOES to find somebody the tree has pushed off-screen; it is -- not the thing they came to look at. Starting it open spent a -- quarter of the window, permanently, on a list nobody had asked for -- yet — and made the tree the smaller half of its own view. -- -- IT IS ALSO THE KEYBOARD ROUTE a-figure-is-not-the-only-way-in -- requires, because every person in it is a focusable control. That -- route does not depend on the panel being open: a closed disclosure -- is still focusable and still opens from the keyboard, which is the -- whole reason the rule accepts a disclosure as the answer. { role :disclosure -- THE NAME IS WHAT IT IS CALLED AND THE SYMBOL IS WHAT IS DRAWN. -- A reader who cannot see the mark is told `People`; one who can -- gets ☰, which is the same word everywhere and takes a corner -- instead of a column. See -- a-SUMMARY-IS-A-CONTROL-AND-THE-SAME-HOLE-WAS-UNDER-IT. name "People" symbol :menu initially :closed -- AS WIDE AS THE LONGEST NAME IN IT, open or shut. :hug is intent -- and not measurement, which is the only kind of width a view is -- allowed to have: the view does not know the reader's window, the -- reader does not know how long a name in this document is, and -- between them that is the whole answer. size { inline :hug } style { colour :surface-variant, space :normal, shape :rounded } children [ { role :list name "Everybody in this document" each { of -> @projections.descendants, as :person, key bound -> @person.key } children [ { -- NO :layout HERE. element-keys gives :list-item :children -- and nothing else, so how its parts sit is the target's -- business and not this view's. The first draft put an -- inline layout here and the compiler dropped it without -- saying so, which is how the mark ended up on its own line. role :list-item children [ -- A BULLET SAYS `ANOTHER ITEM`, WHICH THE READER CAN SEE. -- A mark that says WHICH KIND of item is worth the space a -- bullet was taking, and the target's list CSS drops the -- bullet where a row leads with one. -- -- IT IS NAMED, so the distinction is in the semantic tree -- and not only in the glyph or the colour. { role :icon symbol [ :if, [ :present, bound -> @person.sex-symbol ], bound -> @person.sex-symbol, :person ] name [ :if, [ :present, bound -> @person.sex-reads ], bound -> @person.sex-reads, "sex not recorded" ] style { colour :muted } }, { role :button name { message -> @messages.full-name, with { given bound -> @person.names.0.parts.0.part, family bound -> @person.names.0.parts.1.part } } text { message -> @messages.full-name, with { given bound -> @person.names.0.parts.0.part, family bound -> @person.names.0.parts.1.part } } style { prominence :quiet } on { activate [ { do :set, at -> @state.open-person, value bound -> @person.key } ] } }, ] }, ] }, ] }, -- THE TREE. Selecting here and selecting in the panel are the same -- act: both set one piece of state, and the card below reads it. { role :figure name "Descent, as a tree of cards" each { of -> @projections.descendants, as :person, key bound -> @person.key } on { activate [ { do :set, at -> @state.open-person, value bound -> @person.key } ] } source { space { width :fit, height :fit, unit :user, y-axis :down } precision { coordinate 0.25, rounding :half-even } scales { across { over -> @projections.descendants.centre, kind :linear, domain :extent, range [ 20, 20 ], pitch 240 } down { over -> @projections.descendants.generation, kind :linear, domain :extent, range [ 20, 20 ], pitch 160 } } -- WRITTEN AS BLOCKS AND NOT AS A TABLE, because the two marks do -- not carry the same keys: a connector has a :to and no label, a -- card has a label and nothing to point at. A table would need a -- placeholder in every cell one of them does not use. series [ -- A MARRIAGE AND ITS CHILDREN ARE ONE MARK. Two lines per child, -- one to each parent, is twelve lines leaving a couple with six -- children, crossing each other in the gap between the rows. The -- marriage line already exists; the junction on it is where a -- printed pedigree puts the family, and the children hang from -- there. See a-FAMILY-is-a-junction-on-the-marriage-line. ] -- EVERY DRAWING HERE IS A DOCUMENT'S. The marriage lines, the joins, -- the descents and the cards are entries of @library/presentation/v0, -- which this document carries below as it carries @library/ui/v0 — so -- it draws the same in a viewer that was built before they were -- written. See docs/80. marks [ { mark -> @library/presentation/v0.marriages with { rows -> @projections.descendants to -> @row.spouse-of key-field "key" x-field "centre" y-field "generation" order-field "ordinal" parents-field "arrivals" x-scale :across y-scale :down width 220 height 92 stroke "#9aa0a6" stroke-width 1 node-radius 5 node-fill "#b06a3b" node-stroke "#7d4726" node-width 1 } } { mark -> @library/presentation/v0.descents with { rows -> @projections.descendants key-field "key" x-field "centre" y-field "generation" parents-field "arrivals" spouse-field "spouse-of" x-scale :across y-scale :down width 220 height 92 stroke "#9aa0a6" stroke-width 1 } } { mark -> @library/presentation/v0.side-joins with { rows -> @projections.descendants to -> @row.sibling-of key-field "key" x-field "centre" y-field "generation" order-field "ordinal" x-scale :across y-scale :down width 220 height 92 stroke "#6a8fb0" stroke-width 1 dash [ 4, 3 ] name [ :concat, -> @other, "-", [ :get, -> @row, "key" ] ] } } { mark -> @library/presentation/v0.side-joins with { rows -> @projections.descendants to -> @row.guardian-of key-field "key" x-field "centre" y-field "generation" order-field "ordinal" x-scale :across y-scale :down width 220 height 92 stroke "#7f8b5b" stroke-width 1 dash [ 2, 3 ] name [ :concat, -> @other, "-", [ :get, -> @row, "key" ] ] } } { mark -> @library/presentation/v0.side-joins with { rows -> @projections.descendants to -> @row.godparent-of key-field "key" x-field "centre" y-field "generation" order-field "ordinal" x-scale :across y-scale :down width 220 height 92 stroke "#8b6a9a" stroke-width 1 dash [ 2, 3 ] name [ :concat, -> @other, "-", [ :get, -> @row, "key" ] ] } } { mark -> @library/presentation/v0.side-joins with { rows -> @projections.descendants to -> @row.household-with key-field "key" x-field "centre" y-field "generation" order-field "ordinal" x-scale :across y-scale :down width 220 height 92 stroke "#9aa0a6" stroke-width 1 dash [ 1, 4 ] name [ :concat, -> @other, "-", [ :get, -> @row, "key" ] ] } } { mark -> @library/presentation/v0.cards with { rows -> @projections.descendants key -> @row.key x -> @row.centre y -> @row.generation x-scale :across y-scale :down width 220 height 92 radius 6 fill "#eef2f7" stroke "#5b6b7f" stroke-width 1 label -> @row.names.0.parts.part label-baseline 22 label-leading 18 font [ "sans-serif" ] size 14 label-paint "#16202c" detail-one -> @row.born detail-one-prefix "b. " detail-two -> @row.died detail-two-prefix "d. " detail-join " " detail-baseline 82 detail-size 9 detail-paint "#5b6b7f" pictured [ :any, -> @projections.descendants, [ :or, [ :present, -> @it.portrait ], [ :present, -> @it.thumbnail ] ] ] image-source -> @row.thumbnail image-bytes -> @row.portrait image-type -> @row.portrait-type image-box [ 8, 20, 52, 52 ] image-clip :round -- A FACE IS AT THE TOP OF ITS FRAME, so a centred crop takes the -- crown. Keeping the top keeps the head. image-align-y :start ring { stroke { paint "#5b6b7f", width 1.5 }, fill { paint :none } } } } ] } }, ] }, -- THE CARD. sixty-roles-is-a-result-and-not-a-target says a card IS a -- group with appearance tokens, so that is what this is: a group carrying -- :colour, :space and :shape, holding a heading, then what happened, then -- who they are to somebody else. No role was needed for it. { role :text when [ :empty, -> @state.open-person ] style { colour :muted } text "Choose somebody in the panel, or click a card in the tree." }, { role :group each { of -> @projections.descendants, as :person, key bound -> @person.key } layout { axis :block, gap :none } children [ { role :group when [ :eq, bound -> @person.key, -> @state.open-person ] style { colour :surface-variant, space :loose, shape :rounded } layout { axis :block, gap :normal } children [ { role :heading text { message -> @messages.full-name, with { given bound -> @person.names.0.parts.0.part, family bound -> @person.names.0.parts.1.part } } }, -- THEIR PICTURE, WHERE THE DOCUMENT CARRIES ONE. A link to a -- picture is not a claim about who is in it; this is the picture -- the author linked first, which is where a reader expects a -- portrait to be. { role :image when [ :present, bound -> @person.portrait ] name { message -> @messages.full-name, with { given bound -> @person.names.0.parts.0.part, family bound -> @person.names.0.parts.1.part } } source { media-type bound -> @person.portrait-type, bytes bound -> @person.portrait } }, { role :group name "What happened" layout { axis :block, gap :tight } children [ { role :text, style { type :caption, colour :muted }, text "LIFE" }, { role :group each { of -> @projections.events, as :event, key bound -> @event.key } layout { axis :block, gap :tight } children [ { role :group when [ :eq, bound -> @event.who, -> @state.open-person ] layout { axis :inline, across :baseline, gap :normal } children [ -- THE SPECIFIC WORD WHERE THE DOCUMENT SAYS WHICH, -- and the general one where it does not. :manner is -- null for every event that is not a :separation and -- for a separation whose kind the record omits. { role :text, style { emphasis :strong }, text [ :if, [ :present, bound -> @event.manner ], bound -> @event.manner, bound -> @event.reads ] }, { role :text, style { colour :muted }, text bound -> @event.date.value }, { role :text style { colour :muted } when [ :present, bound -> @event.where ] text { message -> @messages.at-place, with { place bound -> @event.where } } }, ] }, ] }, ] }, { role :group name "Who they are to somebody else" layout { axis :block, gap :tight } children [ { role :text, style { type :caption, colour :muted }, text "FAMILY" }, { role :group each { of -> @projections.unions, as :union, key bound -> @union.arrival } layout { axis :block, gap :tight } children [ { role :group when [ :or, [ :eq, bound -> @union.one-key, -> @state.open-person ], [ :eq, bound -> @union.other-key, -> @state.open-person ] ] layout { axis :inline, across :baseline, gap :normal } children [ { role :text style { colour :muted } text [ :if, [ :eq, bound -> @union.one-key, -> @state.open-person ], bound -> @union.reads, bound -> @union.inverse ] }, { role :text style { emphasis :strong } text { message -> @messages.full-name, with { given [ :if, [ :eq, bound -> @union.one-key, -> @state.open-person ], bound -> @union.other-given, bound -> @union.one-given ], family [ :if, [ :eq, bound -> @union.one-key, -> @state.open-person ], bound -> @union.other-family, bound -> @union.one-family ] } } }, { role :text style { colour :muted, type :caption } when [ :present, bound -> @union.began.value ] text bound -> @union.began.value }, ] }, ] }, ] }, ] }, ] }, ] } tables { -- WHAT A RECORD'S SEX WORD DRAWS AS. Keyed by the record's own vocabulary, -- which for a GEDCOM is M and F and for another source may be anything at -- all; a value this table does not hold falls through to the neutral mark, -- which is the correct answer and not a gap. -- -- THE SYMBOL CARRIES IT AND NOT THE COLOUR. colour-may-not-be-the-only-carrier -- refuses a distinction visible only in colour, because colour is outside the -- conformance comparison — so a reader who cannot see the hue, and a -- conformance run that cannot see it either, both still get the fact. sex-reads { M { symbol :person-male, as "recorded male" } F { symbol :person-female, as "recorded female" } } event-reads { birth { as "Born" } baptism { as "Baptised" } coming-of-age { as "Came of age" } betrothal { as "Betrothed" } marriage { as "Married" } -- TRUE OF ALL FOUR THINGS THE TYPE COVERS. Where the document states a -- :manner, the join below replaces this with the specific word. separation { as "Marriage ended" } death { as "Died" } burial { as "Buried" } probate { as "Will proved" } will-made { as "Made a will" } census-enumeration { as "Enumerated" } migration { as "Moved" } naturalisation { as "Naturalised" } military-service { as "Served" } occupation-recorded { as "Worked as" } residence-recorded { as "Lived at" } apprenticeship { as "Apprenticed" } ordination { as "Ordained" } adoption { as "Adopted" } guardianship { as "Placed under guardianship" } manumission { as "Freed" } } -- THE SPECIFIC WORD, WHERE THE DOCUMENT SAYS WHICH. A view may not invent one -- where it does not: a-union-ENDS-in-more-than-one-way-and-the-difference-is- -- not-cosmetic. manner-reads { divorce { as "Divorced" } annulment { as "Marriage annulled" } dissolution { as "Partnership dissolved" } judicial-separation { as "Judicially separated" } separation-recorded { as "Parted" } undetermined { as "Marriage ended" } } relation-reads { parent-of { as "Parent of", inverse "Child of" } spouse-of { as "Married to", inverse "Married to" } sibling-of { as "Sibling of", inverse "Sibling of" } guardian-of { as "Guardian of", inverse "Ward of" } godparent-of { as "Godparent of", inverse "Godchild of" } milk-kin-of { as "Milk kin of", inverse "Milk kin of" } enslaver-of { as "Enslaver of", inverse "Enslaved by" } master-of { as "Master of", inverse "Apprenticed to" } employer-of { as "Employer of", inverse "Employed by" } household-with { as "In a household with", inverse "In a household with" } associate-of { as "Associate of", inverse "Associate of" } } -- A NAME IS TWO PARTS AND A SENTENCE IS NOT CONCATENATION. -- a-substituted-string-is-a-message: `"Nancy" + " " + "Higazy"` is three -- fragments and their order is a fact about English. The whole form is -- declared here with named holes, so a translator gets a sentence. } rationale { the-PICTURE-did-not-have-to-CHANGE "WHICH IS THE WHOLE ARGUMENT. A MARK MUST NOT CARRY AN ACTION. Behaviour inside a figure is an applet, and @vocab/graphic/v0's equality is over resolved coordinates precisely so that a picture is inert and two implementations that draw it can be compared. NOTHING FOLLOWS ABOUT THE SURFACE THAT HOLDS IT. This view's :figure carries the :each and the :activate; the scene inside it is what the picture view emits. A reader points at a card, the surface looks up the mark's name among its members, and the effects run in that member's scope. THE NAMES WERE ALREADY THERE. Every card is a :group named by the person's key. Nothing was added to the graphic document to make this work." a-CONNECTOR-belongs-to-NO-MEMBER "AND IS THEREFORE DRAWN AND NOT ACTIVE. A union's path is named for the PAIR it joins, and no row of any projection here has that name, so no member claims it and pointing at it does nothing. That is the honest outcome rather than a defect: a marriage is a relation BETWEEN two members, and selecting it needs a member that IS the marriage. SO THE PERSON'S REGION SHOWS THEIR RELATIONS, with the formality and the date the document records. Opening a person opens their marriages too, which is the question a reader pointing at a junction was asking." } } -- Local UI derivation library used by the display view. library @library/ui/v0 { conforms -> @vocab/ui/v0 title "The widgets, decomposed into the kernel that was said to hold them" status :draft at 2026-08-26 doc "WHAT A CONSUMER MEETS TODAY IS SIXTY PRIMITIVES AND NOTHING ELSE, and the reasonable conclusion from that is that the vocabulary cannot express a real interface. It can. What it could not do was SHOW that it can, because the library the argument rests on was never written. EVERY ENTRY HERE IS THE ARGUMENT BEING PAID FOR. The role table removed a card, a chip, a snackbar, an avatar, a wizard, a rating and a date range on the explicit grounds that each is a derivation. Those seven are the first seven entries below, written out, so the subtraction can be checked rather than believed. AN ENTRY EARNS ITS PLACE BY BEING WANTED AND DECOMPOSABLE. A widget with no honest decomposition belongs in the kernel and is not here; a widget nobody asks for is not here either, however easy it would be." -- =================================================================== -- THE SEVEN THE KERNEL SUBTRACTED -- =================================================================== derived { card { doc "a grouped surface with an optional heading, holding arbitrary content" params { heading :text, content :children } native { web "article", flutter "Card" } body { role :group style { colour :surface-variant, shape :rounded, space :normal } layout { axis :block, gap :normal } children [ { role :heading, text bound -> @params.heading, style { type :heading } }, { role :group, layout { axis :block, gap :normal }, children -> @params.content }, ] } } chip { doc "a compact action, shaped as a pill. An action, not a state — see filter-chip" params { label :text, on-choose :reference } body { role :button name bound -> @params.label style { shape :pill, prominence :quiet, space :tight } on { activate [ { do :emit, intent -> @params.on-choose } ] } } } filter-chip { doc "a chip that is on or off. A checkbox, because that is what it MEANS — the pill is appearance and the state is not" params { label :text, at :reference } body { role :checkbox name bound -> @params.label value bound -> @params.at style { shape :pill, space :tight } } } snackbar { doc "a transient message over the interface, with an optional single action" params { message :message, action-label :text, on-action :reference } native { web "output", flutter "SnackBar" } body { role :overlay layout { anchor :center-bottom } overflow :clip children [ { role :wrap style { colour :surface-variant, shape :rounded, space :normal } layout { axis :inline, across :center, gap :normal } overflow :wrap children [ { role :status, text { message -> @params.message } }, { role :button name bound -> @params.action-label when [:present, -> @params.action-label] style { prominence :quiet } on { activate [ { do :emit, intent -> @params.on-action } ] } }, ] }, ] } } avatar { doc "a person or thing, as a circular image. The name is required and is not decorative — an avatar with no name is a decoration and should say so by being an :image" params { name :text, source :text } body { role :image name bound -> @params.name source bound -> @params.source style { shape :circle } } } rating { doc "a score out of five, as one choice from five. THE EXAMPLE THE KERNEL USED TO ILLUSTRATE DERIVATION AND COULD NOT EXPRESS UNTIL :option-symbol EXISTED — see issues/002" params { name :text, at :reference } native { web "radiogroup", flutter "RatingBar" } body { role :radio-group name bound -> @params.name value bound -> @params.at options [ | value label | 1 "1 star" | 2 "2 stars" | 3 "3 stars" | 4 "4 stars" | 5 "5 stars" ] option-symbol "star" } } date-range { doc "two dates that must not cross. The constraint is the whole reason this is one element and not two" params { name :text, from :reference, to :reference } body { role :field-group name bound -> @params.name layout { axis :inline, across :baseline, gap :normal } children [ @from-field { role :date-field name "From" value bound -> @params.from }, @to-field { role :date-field name "To" value bound -> @params.to constraints [ | must message | [:not, [:lt, -> @params.to, -> @params.from]] "The end date cannot be before the start date" ] }, ] } } -- ================================================================= -- CONTROLS THE GLYPH GAP USED TO BLOCK -- ================================================================= icon-button { doc "a control shown as a glyph alone. The name is required and stays the accessible name — the glyph is what it looks like, never what it is called. See issues/002" params { name :text, symbol :text, on-activate :reference } native { web "button", flutter "IconButton" } body { role :button name bound -> @params.name symbol bound -> @params.symbol style { labelling :symbol-only, shape :circle, prominence :quiet } on { activate [ { do :emit, intent -> @params.on-activate } ] } } } close-button { doc "the affordance every platform ships and this vocabulary could not write. An icon-button with the name already decided, because `Close` named anything else is the defect" params { on-close :reference } body { role :button name "Close" symbol "close" style { labelling :symbol-only, shape :circle, prominence :quiet } on { activate [ { do :emit, intent -> @params.on-close } ] } } } search-bar { doc "a search field carrying its glyph, committing on the platform's search action" params { name :text, at :reference, on-search :reference } body { role :search-field name bound -> @params.name value bound -> @params.at symbol "search" style { shape :pill } on { submit [ { do :emit, intent -> @params.on-search, payload { query bound -> @params.at } } ] } } } -- ================================================================= -- CONTROLS -- ================================================================= segmented-control { doc "one of a small closed set, laid out as adjacent segments. A radio group, because that is its tree; the segments are appearance" params { name :text, at :reference, choices :reference } native { web "radiogroup", flutter "SegmentedButton" } body { role :radio-group name bound -> @params.name value bound -> @params.at options bound -> @params.choices option-label -> @option.label option-value -> @option.value style { shape :pill, density :compact } } } tag-input { doc "several values typed or chosen, shown as tokens. A combobox with :multiple — the tokens are how a target draws a multiple selection" params { name :text, at :reference, choices :reference } body { role :combobox name bound -> @params.name value bound -> @params.at options bound -> @params.choices option-label -> @option.label option-value -> @option.value multiple true } } quantity { doc "a bounded count with a label beside it" params { label :text, at :reference, low :int, high :int } body { role :wrap layout { axis :inline, across :center, gap :normal } overflow :wrap children [ { role :label, text bound -> @params.label, labels -> @control }, @control { role :stepper name bound -> @params.label value bound -> @params.at min bound -> @params.low max bound -> @params.high step 1 }, ] } } colour-swatch { doc "a colour choice shown as the colour itself. A colour-field — the swatch is the target's rendering of one" params { name :text, at :reference } body { role :colour-field name bound -> @params.name value bound -> @params.at style { shape :circle } } } switch-row { doc "a setting as a full-width row: what it is on one side, a switch on the other" params { label :text, help :text, at :reference } body { role :wrap layout { axis :inline, along :between, across :center, gap :normal } overflow :wrap children [ { role :group layout { axis :block, gap :tight } children [ { role :label, text bound -> @params.label, labels -> @switch }, { role :text, text bound -> @params.help, when [:present, -> @params.help], style { type :caption, colour :muted } }, ] }, @switch { role :toggle, name bound -> @params.label, value bound -> @params.at }, ] } } -- ================================================================= -- STRUCTURE AND NAVIGATION -- ================================================================= page-header { doc "a title, an optional subtitle, and the actions that belong to the page" params { heading :text, subtitle :text, actions :children } body { role :wrap layout { axis :inline, along :between, across :start, gap :loose } overflow :wrap children [ { role :group layout { axis :block, gap :tight } children [ { role :heading, text bound -> @params.heading, style { type :title } }, { role :text, text bound -> @params.subtitle, when [:present, -> @params.subtitle], style { colour :muted } }, ] }, { role :toolbar, layout { axis :inline, gap :tight }, children -> @params.actions }, ] } } accordion-section { doc "one titled, collapsible section. An accordion is several of these in a stack, which is why the group is not part of the entry" params { heading :text, content :children } body { role :disclosure name bound -> @params.heading children -> @params.content } } confirm-dialog { doc "a question with two answers, the destructive one never the default" params { heading :text, question :message, confirm-label :text, on-confirm :reference, on-cancel :reference } native { web "dialog", flutter "AlertDialog" } body { role :dialog name bound -> @params.heading layout { axis :block, gap :normal } children [ { role :text, text { message -> @params.question } }, { role :wrap layout { axis :inline, along :end, gap :normal } overflow :wrap children [ { role :button name "Cancel" style { prominence :quiet } on { activate [ { do :emit, intent -> @params.on-cancel } ] } }, { role :button name bound -> @params.confirm-label style { prominence :strong } on { activate [ { do :emit, intent -> @params.on-confirm } ] } }, ] }, ] } } drawer { doc "content from the edge of the surface, over what was there" params { heading :text, content :children, on-close :reference } native { web "dialog", flutter "Drawer" } body { role :sheet name bound -> @params.heading layout { axis :block, gap :normal } children [ { role :wrap layout { axis :inline, along :between, across :center } overflow :wrap children [ { role :heading, text bound -> @params.heading, style { type :heading } }, { role -> @derived.close-button, with { on-close -> @params.on-close } }, ] }, { role :scroll, children -> @params.content }, ] } } list-row { doc "the row every list on every platform has: a glyph, a title, a second line, and something at the end" params { title :text, subtitle :text, symbol :text, trailing :children } body { role :list-item children [ { role :wrap layout { axis :inline, across :center, gap :normal } overflow :wrap children [ { role :icon, symbol bound -> @params.symbol, when [:present, -> @params.symbol], decorative true }, { role :group layout { axis :block, gap :tight } children [ { role :text, text bound -> @params.title }, { role :text, text bound -> @params.subtitle, when [:present, -> @params.subtitle], style { type :caption, colour :muted } }, ] }, { role :group, layout { axis :inline, gap :tight }, children -> @params.trailing }, ] }, ] } } tree-item { doc "one node of a hierarchy: its own label, and the nested list its children live in. A tree is a :list of these, and the nesting is the tree" params { label :text, expanded :reference, children-of :reference, on-toggle :reference } native { web "treeitem", flutter "ExpansionTile" } body { role :list-item state { expanded bound -> @params.expanded } children [ { role :button name bound -> @params.label symbol "chevron" style { labelling :symbol-and-name, prominence :quiet } on { activate [ { do :emit, intent -> @params.on-toggle } ] } }, { role :list name bound -> @params.label when bound -> @params.expanded each { of -> @params.children-of, as :child, key -> @child.id } children [ { role :list-item, children [ { role :text, text bound -> @child.label } ] }, ] }, ] } } sortable-column { doc "a table column that can be ordered by. The direction is in the tree, because a column that sorts silently is the commonest data-table defect there is" params { label :text, direction :symbol, on-sort :reference } body { role :table-header text bound -> @params.label sort bound -> @params.direction on { activate [ { do :emit, intent -> @params.on-sort, payload { column bound -> @params.label } } ] } } } pagination { doc "which page of many, and how to reach the others" params { name :text, pages :reference, on-choose :reference } body { role :navigation name bound -> @params.name each { of -> @params.pages, as :page, key -> @page.number } children [ @page-link { role :link name bound -> @page.label state { current bound -> @page.is-current } on { activate [ { do :emit, intent -> @params.on-choose, payload { page bound -> @page.number } } ] } }, ] } } wizard { doc "steps in order, where a later step is unreachable until the ones before it are done. Tabs, with the reachability in :enabled-when" params { name :text, at :reference, steps :children } body { role :tabs name bound -> @params.name value bound -> @params.at children -> @params.steps } } -- ================================================================= -- STATUS AND FEEDBACK -- ================================================================= empty-state { doc "what to show where content would be, and the one thing to do about it" params { heading :text, explanation :message, action-label :text, on-action :reference } body { role :group layout { axis :block, across :center, gap :normal } children [ { role :icon, symbol "empty", decorative true }, { role :heading, text bound -> @params.heading, style { type :heading } }, { role :text, text { message -> @params.explanation }, style { colour :muted } }, { role :button name bound -> @params.action-label when [:present, -> @params.action-label] style { prominence :strong } on { activate [ { do :emit, intent -> @params.on-action } ] } }, ] } } banner { doc "a standing message about the whole surface, with an optional action. An :alert, so it is announced" params { message :message, action-label :text, on-action :reference } body { role :wrap style { colour :warning, shape :rounded, space :normal } layout { axis :inline, across :center, gap :normal } overflow :wrap children [ { role :icon, symbol "warning", decorative true }, { role :alert, text { message -> @params.message } }, { role :button name bound -> @params.action-label when [:present, -> @params.action-label] style { prominence :quiet } on { activate [ { do :emit, intent -> @params.on-action } ] } }, ] } } stat { doc "one number with what it counts. The caption is the label and the number is the value, in that order in the tree and the other way round on screen" params { label :text, at :reference } body { role :group layout { axis :block, gap :tight } children [ { role :label, text bound -> @params.label, labels -> @figure }, @figure { role :text, value bound -> @params.at, style { type :display } }, ] } } field-with-help { doc "a text field, its label, and the help line that is announced with it rather than after it" params { label :text, help :text, at :reference } body { role :group layout { axis :block, gap :tight } children [ { role :label, text bound -> @params.label, labels -> @input }, @input { role :text-field name bound -> @params.label value bound -> @params.at description bound -> @params.help }, { role :text, text bound -> @params.help, style { type :caption, colour :muted } }, ] } } } rationale { -- =================================================================== -- WHAT THIS FILE IS NOT -- =================================================================== it-is-not-a-design-system "THERE ARE NO COLOURS, SIZES OR SPACINGS BEYOND TOKENS, because the kernel forbids them and a library that smuggled them in would defeat the one property that makes a document portable. SO TWO TARGETS RENDERING `card` WILL NOT LOOK ALIKE, and are not meant to. They will MEAN alike, which is what the conformance comparison tests." it-is-not-CLOSED "A LIBRARY THAT CLAIMED COMPLETENESS WOULD BE MAKING THE KERNEL'S MISTAKE ONE LAYER UP. Anybody may write another of these, and no generator has to be told. The measure of this file is whether the widgets an author reaches for first are here, not whether every widget is." -- =================================================================== -- WHAT IS DELIBERATELY ABSENT -- =================================================================== absent [ | widget why-not | "a rich text editor" "no portable decomposition and no portable capability. :rich-text exists as a capability precisely so a document can refuse rather than pretend" | "a data grid" "not one widget. A table, sortable columns, a pagination and a toolbar are four entries here, and gluing them into one would hide which part an author wanted" | "a chart" "@vocab/diagram/v0 and @vocab/graphic/v0 exist and this is not their kernel" | "a map" "a viewport onto an external tile service is a capability nobody has portably" | "a carousel" "asked for often and decomposes to a :scroll with :overflow :page. An entry would add a name and nothing else" | "a toast queue" "snackbar is the widget; a QUEUE is application state, and this library holds no state" | "a virtualised list" "a rendering strategy, not a tree. The tree of a virtualised list and a plain one are identical, which is exactly why it is not here" | "a range slider" "WITHDRAWN AFTER IT WAS WRITTEN. Flutter has one RangeSlider and the web has no two-handled range, so the two targets project different trees and the vocabulary pinned neither. See a-range-is-not-two-of-anything" ] the-absences-are-the-same-test "EACH ROW ABOVE FAILS ONE OF THE TWO CONDITIONS: it has no honest decomposition, or it decomposes to something already writable in one line. A library that admitted the second kind would grow without bound and teach authors to look here before looking at the kernel, which is the habit that made the kernel look small." -- =================================================================== -- SCRUTINY -- =================================================================== scrutiny "WHERE TO ATTACK THIS FILE. NOT ONE ENTRY HAS BEEN GENERATED YET. They parse and they typecheck against the element contract, and that is all that is known. Until a document using these runs through both tools/uigen and the Flutter generator and the two trees are diffed, this is a set of claims about decomposition rather than a demonstration of it. `native` IS UNTESTED EVERYWHERE. Several entries carry hints and no generator reads them. If they turn out to be unimplementable the entries are still correct — the hint is advisory by construction — but the file would be advertising a route nobody has walked. THE PARAMETER LISTS ARE GUESSES. `card` takes a heading and content; the first real use will want a footer, a media area, or a click target for the whole card. Each of those is a new parameter or a second entry, and which one is the interesting question this file cannot answer alone. AND `tree-item` IS THE WEAKEST ENTRY. Its nested list projects as nested lists, not as a native tree, so a target with a real tree control has to recognise the derivation to reach it. That is the mechanism working as designed, but it is also the case where expanding the body gives noticeably the worse interface, and it should be checked before anybody relies on it." } } mark-library @library/presentation/v0 { conforms -> @vocab/presentation/v0 title "The drawings, decomposed into the scene kernel that was said to hold them" status :draft at 2026-09-20 doc "THE FIRST ENTRY IS THE ONE THE DESIGN WAS WRITTEN AGAINST. docs/80 said the kernel fails if a floor plan cannot be written over it without a primitive that names a storey, a wall or a room. floor-plan and footprints are that test paid out: between them they use :cells, :repeat, :shape, :text, :section and :centroid, and no word of theirs means anything to a building. AN ENTRY NAMES THE VARIABLES ITS BODY BINDS, in its :doc, because an argument is substituted where the body places it: a caller writing -> @row.tint means the tint of the row the body is drawing. That is the contract, and it is why every :doc here ends with the names in hand." derived { footprints { doc "ONE LAYER OF A PLAN: for each row, every prism :shapes names, cut by the band from :from to :to and seen along :up, as one even-odd path — and, where :label is given, the row's label at the centre of the first footprint it drew. BINDS :row, a row of :rows, and :fp, one footprint of the section. A caller's :tint, :label and :paint are read in the row's scope, so they are written -> @row.something." params { rows :expression shapes :expression block :expression from :expression to :expression up { kind :expression, default :z } paint { kind :expression, default :none } tint { kind :expression, default null } stroke { kind :expression, default null } label { kind :expression, default null } font { kind :expression, default [ :sans ] } size { kind :expression, default 3 } label-paint { kind :expression, default "#1d1d1b" } } body [ { mark :repeat each { of -> @params.rows, as :row } marks [ -- THE FOOTPRINTS, in the order the row lists its shapes. A shape the -- band does not meet is not in the section at all, so nothing here -- says which storey a wall belongs to; the band does. { mark :repeat each { of [ :section, -> @params.shapes, -> @params.block, -> @params.up, -> @params.from, -> @params.to ], as :fp } marks [ { mark :shape rings -> @fp fill { paint [ :if, [ :present, -> @params.tint ], -> @params.tint, -> @params.paint ], rule :evenodd } stroke { paint -> @params.stroke, width 1 } } ] } -- AND THE LABEL AT THE CENTRE OF THE FIRST ONE. Where the row drew -- nothing the centroid is null, and a mark with a null position is -- not drawn — which is the whole of "a label only where it drew". { mark :text at [ :centroid, [ :at, [ :at, [ :section, -> @params.shapes, -> @params.block, -> @params.up, -> @params.from, -> @params.to ], 0 ], 0 ] ] text -> @params.label anchor :middle font -> @params.font size -> @params.size fill { paint -> @params.label-paint } } ] } ] } cards { doc "ONE CARD PER ROW: a box at the row's own place, a picture where it has one, its label over as many lines as the parts and the wrapping give it, and a second line of up to two fields with their prefixes. BINDS :row. Every field a caller names is read in the row's scope, so they are written -> @row.something. THE TEXT MOVES RIGHT OF THE PICTURE ONLY WHERE SOME ROW HAS ONE, which no single row can know: the caller says so in :pictured, which is an :any over the same projection. See a-card-knows-what-its-whole-projection-holds." params { rows :expression key :expression x :expression y :expression x-scale :expression y-scale :expression width :expression height :expression radius { kind :expression, default null } fill { kind :expression, default :none } stroke { kind :expression, default null } stroke-width { kind :expression, default 1 } label { kind :expression, default null } label-baseline { kind :expression, default 0 } label-leading { kind :expression, default 0 } font { kind :expression, default [ :sans ] } size { kind :expression, default 10 } label-paint { kind :expression, default "#000000" } detail-one { kind :expression, default null } detail-one-prefix { kind :expression, default "" } detail-two { kind :expression, default null } detail-two-prefix { kind :expression, default "" } detail-join { kind :expression, default " " } detail-baseline { kind :expression, default 0 } detail-size { kind :expression, default 9 } detail-paint { kind :expression, default "#000000" } pictured { kind :expression, default false } image-source { kind :expression, default null } image-bytes { kind :expression, default null } image-type { kind :expression, default null } image-box { kind :expression, default null } image-clip { kind :expression, default :box } image-fit { kind :expression, default null } image-align-x { kind :expression, default null } image-align-y { kind :expression, default null } ring { kind :expression, default null } } body [ { mark :repeat each { of -> @params.rows, as :row } marks [ { mark :group name -> @params.key marks [ -- THE BOX, at the place the row's own columns scale to. { mark :rect box [ [ :scaled, -> @params.x-scale, -> @params.x ], [ :scaled, -> @params.y-scale, -> @params.y ], -> @params.width, -> @params.height ] radius -> @params.radius fill { paint -> @params.fill } stroke { paint -> @params.stroke, width -> @params.stroke-width } } -- THE PICTURE, where the row has one and the caller gave a box. { mark :image box [ [ :add, [ :scaled, -> @params.x-scale, -> @params.x ], [ :at, -> @params.image-box, 0 ] ], [ :add, [ :scaled, -> @params.y-scale, -> @params.y ], [ :at, -> @params.image-box, 1 ] ], [ :at, -> @params.image-box, 2 ], [ :at, -> @params.image-box, 3 ] ] source -> @params.image-source bytes -> @params.image-bytes media-type -> @params.image-type clip -> @params.image-clip fit -> @params.image-fit align-x -> @params.image-align-x align-y -> @params.image-align-y ring -> @params.ring } -- THE LABEL, centred in what the picture leaves of the box. { mark :text at [ [ :add, [ :add, [ :scaled, -> @params.x-scale, -> @params.x ], [ :if, -> @params.pictured, [ :add, [ :at, -> @params.image-box, 0 ], [ :at, -> @params.image-box, 2 ] ], 0 ] ], [ :div, [ :sub, -> @params.width, [ :if, -> @params.pictured, [ :add, [ :at, -> @params.image-box, 0 ], [ :at, -> @params.image-box, 2 ] ], 0 ] ], 2 ] ], [ :add, [ :scaled, -> @params.y-scale, -> @params.y ], -> @params.label-baseline ] ] text -> @params.label anchor :middle font -> @params.font size -> @params.size fill { paint -> @params.label-paint } wrap { width [ :sub, -> @params.width, [ :if, -> @params.pictured, [ :add, [ :at, -> @params.image-box, 0 ], [ :at, -> @params.image-box, 2 ] ], 0 ] ], leading -> @params.label-leading } } -- AND THE SECOND LINE: the fields the caller named, each after -- its prefix, joined — and a field the row lacks left out, -- separator and all. { mark :text at [ [ :add, [ :add, [ :scaled, -> @params.x-scale, -> @params.x ], [ :if, -> @params.pictured, [ :add, [ :at, -> @params.image-box, 0 ], [ :at, -> @params.image-box, 2 ] ], 0 ] ], [ :div, [ :sub, -> @params.width, [ :if, -> @params.pictured, [ :add, [ :at, -> @params.image-box, 0 ], [ :at, -> @params.image-box, 2 ] ], 0 ] ], 2 ] ], [ :add, [ :scaled, -> @params.y-scale, -> @params.y ], -> @params.detail-baseline ] ] text [ :if, [ :and, [ :present, -> @params.detail-one ], [ :present, -> @params.detail-two ] ], [ :concat, -> @params.detail-one-prefix, [ :written, -> @params.detail-one ], -> @params.detail-join, -> @params.detail-two-prefix, [ :written, -> @params.detail-two ] ], [ :if, [ :present, -> @params.detail-one ], [ :concat, -> @params.detail-one-prefix, [ :written, -> @params.detail-one ] ], [ :if, [ :present, -> @params.detail-two ], [ :concat, -> @params.detail-two-prefix, [ :written, -> @params.detail-two ] ], null ] ] ] anchor :middle font -> @params.font size -> @params.detail-size fill { paint -> @params.detail-paint } } ] } ] } ] } marriages { doc "THE LINE BETWEEN TWO PARTNERS AND THE CHILDREN THAT HANG FROM IT, as one path: the join between their facing edges, a stem dropping from its junction to the foot of the row, and a move and a cubic to each child's top centre. join-drawing steps 3 to 7, and a node drawn on the junction where the caller asks for one. BINDS :row, :other (the partner's key), :far (the partner's row), :lx :rx :ly :ry (the facing edges and their midlines), :deep (the depth a blocked line dips to), :blocked, :jx :jy (the junction) and :foot (the stem's). A caller names its columns by FIELD — :key-field, :x-field, :y-field, :order-field and :parents-field — because a partner's and a child's are read on rows the caller cannot bind." params { rows :expression to :expression key-field :expression x-field :expression y-field :expression order-field :expression parents-field :expression x-scale :expression y-scale :expression width :expression height :expression stroke { kind :expression, default null } stroke-width { kind :expression, default 1 } fill { kind :expression, default :none } node-radius { kind :expression, default null } node-fill { kind :expression, default null } node-stroke { kind :expression, default null } node-width { kind :expression, default 1 } } body [ { mark :repeat each { of -> @params.rows, as :row } marks [ { mark :repeat each { of [ :if, [ :present, [ :count, -> @params.to ] ], -> @params.to, [ -> @params.to ] ], as :other } marks [ { mark :repeat each { of [ [ :at, [ :filter, -> @params.rows, [ :eq, [ :get, -> @it, -> @params.key-field ], -> @other ] ], 0 ] ], as :far } marks [ { mark :repeat each { of [ [ :add, [ :min, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], -> @params.width ] ], as :lx } marks [ { mark :repeat each { of [ [ :max, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ] ], as :rx } marks [ { mark :repeat each { of [ [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ], [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ] ] ], as :lyTop } marks [ { mark :repeat each { of [ [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ] ] ], as :ryTop } marks [ { -- THE FOOT OF THE ROW, which the stem drops to. mark :repeat each { of [ [ :add, [ :max, -> @lyTop, -> @ryTop ], -> @params.height ] ], as :rowFoot } marks [ { mark :repeat each { of [ [ :any, -> @params.rows, [ :and, [ :ne, [ :get, -> @it, -> @params.key-field ], [ :get, -> @row, -> @params.key-field ] ], [ :ne, [ :get, -> @it, -> @params.key-field ], -> @other ], [ :eq, [ :scaled, -> @params.y-scale, [ :get, -> @it, -> @params.y-field ] ], -> @lyTop ], [ :gte, [ :scaled, -> @params.x-scale, [ :get, -> @it, -> @params.x-field ] ], -> @lx ], [ :lte, [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @it, -> @params.x-field ] ], -> @params.width ], -> @rx ] ] ] ], as :blocked } marks [ { -- THE JUNCTION: the midpoint of the line where -- it is a line, and of the cubic where it dips, -- which is an eighth of each end and three -- eighths of each control point. mark :repeat each { of [ [ :div, [ :add, -> @lx, -> @rx ], 2 ] ], as :jx } marks [ { mark :repeat each { of [ [ :if, -> @blocked, [ :div, [ :add, [ :add, [ :add, -> @lyTop, [ :div, -> @params.height, 2 ] ], [ :add, -> @ryTop, [ :div, -> @params.height, 2 ] ] ], [ :mul, 6, [ :add, -> @rowFoot, -> @params.height ] ] ], 8 ], [ :div, [ :add, [ :add, -> @lyTop, [ :div, -> @params.height, 2 ] ], [ :add, -> @ryTop, [ :div, -> @params.height, 2 ] ] ], 2 ] ] ], as :jy } marks [ { -- A DIPPED JUNCTION IS ALREADY BELOW THE ROW. mark :repeat each { of [ [ :max, -> @rowFoot, -> @jy ] ], as :foot } marks [ { mark :repeat each { of [ [ :filter, -> @params.rows, [ :and, [ :includes, [ :get, -> @it, -> @params.parents-field ], [ :get, -> @row, -> @params.key-field ] ], [ :includes, [ :get, -> @it, -> @params.parents-field ], -> @other ] ] ] ], as :kids } marks [ { -- THE WHOLE MARRIAGE AS ONE PATH: the -- line, the stem, and a move and a -- curve to each child. mark :path when [ :lt, [ :get, -> @row, -> @params.order-field ], [ :get, -> @far, -> @params.order-field ] ] name [ :concat, [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], [ :get, -> @row, -> @params.key-field ], -> @other ], "-", [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], -> @other, [ :get, -> @row, -> @params.key-field ] ] ] from [ -> @lx, [ :add, -> @lyTop, [ :div, -> @params.height, 2 ] ] ] segments [ :concat, [ :if, -> @blocked, [ { to [ -> @rx, [ :add, -> @ryTop, [ :div, -> @params.height, 2 ] ] ], via [ [ -> @lx, [ :add, -> @rowFoot, -> @params.height ] ], [ -> @rx, [ :add, -> @rowFoot, -> @params.height ] ] ] } ], [ [ -> @rx, [ :add, -> @ryTop, [ :div, -> @params.height, 2 ] ] ] ] ], [ :if, [ :gt, [ :count, -> @kids ], 0 ], [ { move [ -> @jx, -> @jy ] }, [ -> @jx, -> @foot ] ], [] ], [ :flatten, [ :map, -> @kids, [ { move [ -> @jx, -> @foot ] }, { to [ [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @it, -> @params.x-field ] ], [ :div, -> @params.width, 2 ] ], [ :scaled, -> @params.y-scale, [ :get, -> @it, -> @params.y-field ] ] ], via [ [ -> @jx, [ :div, [ :add, -> @foot, [ :scaled, -> @params.y-scale, [ :get, -> @it, -> @params.y-field ] ] ], 2 ] ], [ [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @it, -> @params.x-field ] ], [ :div, -> @params.width, 2 ] ], [ :div, [ :add, -> @foot, [ :scaled, -> @params.y-scale, [ :get, -> @it, -> @params.y-field ] ] ], 2 ] ] ] } ] ] ] ] fill { paint -> @params.fill } stroke { paint -> @params.stroke, width -> @params.stroke-width } } { -- AND THE NODE ON THE JUNCTION, where -- the caller asks for one: a square of -- twice the radius, centred on it. mark :rect when [ :and, [ :lt, [ :get, -> @row, -> @params.order-field ], [ :get, -> @far, -> @params.order-field ] ], [ :present, -> @params.node-radius ] ] name [ :concat, [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], [ :get, -> @row, -> @params.key-field ], -> @other ], "-", [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], -> @other, [ :get, -> @row, -> @params.key-field ] ], "-union" ] box [ [ :sub, -> @jx, -> @params.node-radius ], [ :sub, -> @jy, -> @params.node-radius ], [ :mul, -> @params.node-radius, 2 ], [ :mul, -> @params.node-radius, 2 ] ] fill { paint -> @params.node-fill } stroke { paint -> @params.node-stroke, width -> @params.node-width } } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } descents { doc "A CURVE FROM A PARENT DOWN TO A CHILD, for a child whose parents are not a couple — a marriage line has nowhere to hang it from, and inventing one would assert a union the document does not record. join-drawing step 2. BINDS :row (the child), :parent (a key it names) and :far (that parent's row). Columns are named by FIELD, as the other entries name them." params { rows :expression key-field :expression x-field :expression y-field :expression parents-field :expression spouse-field :expression x-scale :expression y-scale :expression width :expression height :expression stroke { kind :expression, default null } stroke-width { kind :expression, default 1 } fill { kind :expression, default :none } } body [ { mark :repeat each { of -> @params.rows, as :row } marks [ { mark :repeat each { of [ [ :get, -> @row, -> @params.parents-field ] ], as :parents } marks [ { -- A COUPLE IS TWO PARENTS ONE OF WHOM NAMES THE OTHER. mark :repeat each { of [ [ :and, [ :present, [ :at, -> @parents, 1 ] ], [ :includes, [ :get, [ :at, [ :filter, -> @params.rows, [ :eq, [ :get, -> @it, -> @params.key-field ], [ :at, -> @parents, 0 ] ] ], 0 ], -> @params.spouse-field ], [ :at, -> @parents, 1 ] ] ] ], as :coupled } marks [ { mark :repeat each { of -> @parents, as :parent } marks [ { mark :repeat each { of [ [ :at, [ :filter, -> @params.rows, [ :eq, [ :get, -> @it, -> @params.key-field ], -> @parent ] ], 0 ] ], as :far } marks [ { mark :path when [ :not, -> @coupled ] name [ :concat, -> @parent, "-", [ :get, -> @row, -> @params.key-field ] ] from [ [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ], [ :div, -> @params.width, 2 ] ], [ :add, [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ], -> @params.height ] ] segments [ { to [ [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :div, -> @params.width, 2 ] ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ] ], via [ [ [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ], [ :div, -> @params.width, 2 ] ], [ :div, [ :add, [ :add, [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ], -> @params.height ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ] ], 2 ] ], [ [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :div, -> @params.width, 2 ] ], [ :div, [ :add, [ :add, [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ], -> @params.height ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ] ], 2 ] ] ] } ] fill { paint -> @params.fill } stroke { paint -> @params.stroke, width -> @params.stroke-width } } ] } ] } ] } ] } ] } ] } side-joins { doc "A JOIN BETWEEN TWO BOXES, edge to edge, drawn once per pair by the row the projection reaches first — and dipping below the row where a third box is in the way, since a card is opaque and a line behind one reads as two joins to it. join-drawing steps 3 to 5. BINDS :row, :other (the key it joins), :far (the row of that key), :lx and :rx (the two facing edges), :ly and :ry (their midlines) and :deep (the depth an obstructed join dips to). A caller names its columns by FIELD — :key-field, :x-field, :y-field, :order-field — because the far box's are read on a row the caller cannot bind. A REPEAT OVER ONE MEMBER IS A BINDING, which is how each of those names is given a value once instead of being written out at every use. See a-repeat-over-one-member-is-how-a-mark-binds." params { rows :expression to :expression key-field :expression x-field :expression y-field :expression order-field :expression x-scale :expression y-scale :expression width :expression height :expression stroke { kind :expression, default null } stroke-width { kind :expression, default 1 } dash { kind :expression, default null } name { kind :expression, default null } } body [ { mark :repeat each { of -> @params.rows, as :row } marks [ { -- A ROW MAY NAME ONE OR SEVERAL, and a count tells them apart: a -- sequence has one and anything else has none. mark :repeat each { of [ :if, [ :present, [ :count, -> @params.to ] ], -> @params.to, [ -> @params.to ] ], as :other } marks [ { mark :repeat each { of [ [ :at, [ :filter, -> @params.rows, [ :eq, [ :get, -> @it, -> @params.key-field ], -> @other ] ], 0 ] ], as :far } marks [ { -- LEFT IS THE BOX WITH THE SMALLER x, and the join runs -- from its right edge to the other's left. mark :repeat each { of [ [ :add, [ :min, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], -> @params.width ] ], as :lx } marks [ { mark :repeat each { of [ [ :max, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ] ], as :rx } marks [ { mark :repeat each { of [ [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ], [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ] ] ], as :lyTop } marks [ { mark :repeat each { of [ [ :if, [ :lt, [ :scaled, -> @params.x-scale, [ :get, -> @row, -> @params.x-field ] ], [ :scaled, -> @params.x-scale, [ :get, -> @far, -> @params.x-field ] ] ], [ :scaled, -> @params.y-scale, [ :get, -> @far, -> @params.y-field ] ], [ :scaled, -> @params.y-scale, [ :get, -> @row, -> @params.y-field ] ] ] ], as :ryTop } marks [ { -- AND THE DEPTH AN OBSTRUCTED JOIN DIPS TO: -- the lower of the two feet, a height below. mark :repeat each { of [ [ :add, [ :max, -> @lyTop, -> @ryTop ], [ :mul, -> @params.height, 2 ] ] ], as :deep } marks [ { mark :repeat each { of [ [ :any, -> @params.rows, [ :and, [ :ne, [ :get, -> @it, -> @params.key-field ], [ :get, -> @row, -> @params.key-field ] ], [ :ne, [ :get, -> @it, -> @params.key-field ], -> @other ], [ :eq, [ :scaled, -> @params.y-scale, [ :get, -> @it, -> @params.y-field ] ], -> @lyTop ], [ :gte, [ :scaled, -> @params.x-scale, [ :get, -> @it, -> @params.x-field ] ], -> @lx ], [ :lte, [ :add, [ :scaled, -> @params.x-scale, [ :get, -> @it, -> @params.x-field ] ], -> @params.width ], -> @rx ] ] ] ], as :blocked } marks [ { -- THE LINE, where nothing is in the way. mark :path when [ :and, [ :lt, [ :get, -> @row, -> @params.order-field ], [ :get, -> @far, -> @params.order-field ] ], [ :not, -> @blocked ] ] name -> @params.name from [ -> @lx, [ :add, -> @lyTop, [ :div, -> @params.height, 2 ] ] ] segments [ [ -> @rx, [ :add, -> @ryTop, [ :div, -> @params.height, 2 ] ] ] ] stroke { paint -> @params.stroke, width -> @params.stroke-width, dash -> @params.dash } } { -- AND THE DIP, where something is. mark :path when [ :and, [ :lt, [ :get, -> @row, -> @params.order-field ], [ :get, -> @far, -> @params.order-field ] ], -> @blocked ] name -> @params.name from [ -> @lx, [ :add, -> @lyTop, [ :div, -> @params.height, 2 ] ] ] segments [ { to [ -> @rx, [ :add, -> @ryTop, [ :div, -> @params.height, 2 ] ] ], via [ [ -> @lx, -> @deep ], [ -> @rx, -> @deep ] ] } ] stroke { paint -> @params.stroke, width -> @params.stroke-width, dash -> @params.dash } } ] } ] } ] } ] } ] } ] } ] } ] } ] } ] } solids { doc "ONE BODY PER ROW, holding the prisms :shapes names, each triangulated by solid-mesh. BINDS :row, a row of :rows. A body is named by the row's key, under :within where one is given, because that is the name a host's :each reaches it by. A caller's :shapes, :key and :tint are read in the row's scope, so they are written -> @row.something." params { rows :expression shapes :expression block :expression key :expression within { kind :expression, default null } base-colour { kind :expression, default null } opacity { kind :expression, default null } tint { kind :expression, default null } } body [ { mark :repeat each { of -> @params.rows, as :row } marks [ { mark :body name [ :if, [ :present, -> @params.within ], [ :concat, -> @params.within, "/", -> @params.key ], -> @params.key ] shapes -> @params.shapes in -> @params.block material { base-colour [ :if, [ :present, -> @params.tint ], -> @params.tint, -> @params.base-colour ] opacity -> @params.opacity } } ] } ] } floor-plan { doc "EVERY LEVEL SIDE BY SIDE AT ONE SCALE, each cut :cut above its own floor and seen from above, under its heading. BINDS :level, a row of :levels; a caller's :floor and :heading-text are read in that scope, so they are written -> @level.something. Its :layers are marks — footprints entries, usually — drawn inside every cell with :level in scope, so a layer's band is -> @level.floor." params { levels :expression layers :marks heading-text { kind :expression, default null } heading-font { kind :expression, default [ :sans ] } heading-size { kind :expression, default 14 } heading-paint { kind :expression, default "#1d1d1b" } floor :expression } body [ { mark :cells each { of -> @params.levels, as :level } -- A LEVEL WITH NO FLOOR IS NO LEVEL. It takes no cell, rather than an -- empty one, so the scale is shared by the cells that drew. when [ :number, -> @params.floor ] heading { text -> @params.heading-text font -> @params.heading-font size -> @params.heading-size fill { paint -> @params.heading-paint } } marks -> @params.layers } ] } } }