export type ClientOptions = { baseUrl: 'https://api.example.com/v1' | (string & {}); }; export type Error = { error: { /** * Machine-readable error code */ code: string; /** * Human-readable error description */ message: string; /** * Additional structured detail about the error */ details?: { [key: string]: unknown; }; }; }; export type PaginatedEstateList = { /** * Page of estate records */ items: Array; /** * Opaque cursor to fetch the next page; absent when hasMore is false */ cursor?: string; /** * Whether further pages are available */ hasMore: boolean; }; export type ImportResult = { /** * Identifier assigned to the newly imported estate */ estateId: string; /** * Highest conformance level achieved: * 1 = Schema Valid, 2 = Referentially Intact, 3 = Jurisdiction Complete * */ conformanceLevel: 1 | 2 | 3; /** * Non-fatal warnings produced during import */ warnings?: Array; /** * Count of each entity type created during import */ entitiesCreated?: { persons?: number; relationships?: number; kinships?: number; properties?: number; assets?: number; liabilities?: number; bequests?: number; trusts?: number; executors?: number; guardians?: number; wishes?: number; documents?: number; attestations?: number; proxyAuthorisations?: number; dealerInterests?: number; nonprobateTransfers?: number; }; }; export type ExportJsonRequest = { /** * List of extension identifiers to include in the export */ includeExtensions?: Array; /** * Minimum conformance level required for export */ conformanceLevel?: 1 | 2 | 3; }; export type ExportPdfRequest = { /** * PDF template to use for rendering */ template: 'full' | 'summary' | 'professional'; /** * List of extension identifiers to include in the PDF */ includeExtensions?: Array; /** * Name of the person receiving the PDF (used in the document header) */ recipientName?: string; }; export type CompanionLink = { /** * UUID of the estate to link as a companion (e.g. a spouse's estate) */ companionEstateId: string; }; export type EstateSummary = { /** * Unique identifier for the estate */ estateId: string; /** * Current lifecycle status of the estate */ status: 'draft' | 'active' | 'locked' | 'archived'; jurisdiction: Jurisdiction; /** * Count of each entity type present in the estate */ entityCounts: { persons?: number; relationships?: number; kinships?: number; properties?: number; assets?: number; liabilities?: number; bequests?: number; trusts?: number; executors?: number; guardians?: number; wishes?: number; documents?: number; attestations?: number; proxyAuthorisations?: number; dealerInterests?: number; nonprobateTransfers?: number; }; totalEstimatedValue?: Money; totalLiabilities?: Money; netEstimatedValue?: Money; /** * Current conformance level: * 0 = Not validated, 1 = Schema Valid, * 2 = Referentially Intact, 3 = Jurisdiction Complete * */ conformanceLevel: 0 | 1 | 2 | 3; /** * Key completeness indicators for the estate */ completeness?: { hasWill?: boolean; hasExecutor?: boolean; hasGuardian?: boolean; hasAttestation?: boolean; allBequestsHaveBeneficiary?: boolean; }; /** * Indicators used to assess estate complexity */ complexityIndicators?: { /** * Number of distinct jurisdictions involved */ jurisdictionCount?: number; hasTrusts?: boolean; hasForcedHeirship?: boolean; hasNonprobateTransfers?: boolean; hasCrossJurisdictionAssets?: boolean; }; /** * Date the estate was last modified (ISO 8601) */ lastModifiedAt: string; }; /** * AiProvenance * * Records which AI model produced a piece of data and whether a human has verified it. Basic provenance is in INHERIT core; implementation-specific detail (exact model version, pipeline, reasoning, cost) should use x-inherit-* extension properties */ export type AiProvenance = { /** * AI model family that generated this data */ model?: 'claude' | 'gpt' | 'gemini' | 'grok' | 'llama' | 'mistral' | 'other' | string; /** * Confidence score 0–100 indicating how certain the AI is about the generated data */ confidence?: number; /** * When the AI produced this data */ generatedAt?: string; /** * Whether a human has verified this AI-generated data */ humanReviewed?: boolean; /** * Person ID or role of the reviewer who verified this data */ reviewedBy?: string; /** * When the human review occurred */ reviewedAt?: string; [key: string]: { [key: string]: unknown; } | 'claude' | 'gpt' | 'gemini' | 'grok' | 'llama' | 'mistral' | 'other' | string | number | string | boolean | string | undefined; }; /** * Provenance * * Consolidated provenance metadata for any entity — replaces the 5-7 scattered provenance fields that were previously repeated on every entity. Tracks how the data was created, by whom, and whether a human has verified it */ export type Provenance = { /** * How this entity's data was originally created */ source?: 'import' | 'manual' | 'ai_generated'; /** * Overall confidence score for this entity's data (0.0 = no confidence, 1.0 = fully verified) */ confidence?: number; /** * References importSources[].id on the root document — identifies which import source produced this entity's data. Plain string, not UUID */ importSourceId?: string; /** * AI provenance metadata — which AI model produced this data and whether a human has verified it */ aiProvenance?: AiProvenance; /** * Human review verdict on AI-generated or imported data */ humanVerdict?: 'approved' | 'rejected' | 'modified' | 'pending_review'; /** * Reason for rejecting or modifying data */ rejectionReason?: string; /** * When the human verdict was recorded */ verdictAt?: string; /** * ID of the agent task that created or modified this entity — links to the agent orchestration system */ agentTaskId?: string; }; /** * Attestation * * A first-class attestation entity recording will execution formalities. Each attestation has its own identity — supports tracking multiple attestation events independently (original will, codicils, re-execution after marriage). Reused by estate, codicils, trusts, extensions. Supports written (E&W Wills Act s.9), oral (Islamic/customary), seal-based (Japanese inkan), kinyan-based (Jewish) */ export type Attestation = { /** * Unique identifier for this attestation within the INHERIT document */ id: string; /** * Date and time the document was executed. Use T00:00:00Z for date-only precision. Time precision recommended for video-witnessed, RON, or electronically signed documents */ attestationDate?: string; /** * Person IDs of the witnesses. Most jurisdictions require at least two witnesses. Some (e.g. holographic wills) require none */ witnessPersonIds?: Array; /** * Detailed witness information as recorded on the will. Witnesses are often not estate participants — their names and addresses appear on the document but they may not be in the people array. Coexists with witnessPersonIds for backward compatibility */ witnesses?: Array<{ /** * Reference to a person in the people array, if this witness is also an estate participant */ personId?: string; /** * Full name of the witness as recorded on the will */ name: string; /** * Address of the witness at the time of execution, as recorded on the will */ address?: string; /** * Occupation of the witness as recorded on the will */ occupation?: string; }>; /** * The method by which the will or document was executed */ method?: 'in_person' | 'video' | 'remote' | 'none' | 'kinyan_sudar' | 'kinyan_agav' | 'seal_based' | 'inkan_registered'; /** * The form of attestation used */ attestationType?: 'written_signed' | 'oral_witnessed' | 'oral_community' | 'seal_based'; /** * Whether a solicitor or legal professional supervised the execution. Reduces (but does not eliminate) the risk of challenges */ solicitorSupervised?: boolean; /** * Whether the testator signed (or acknowledged their signature) in the presence of both witnesses simultaneously. Required under the Wills Act 1837 s.9(c) */ testatorSignedInPresenceOfWitnesses?: boolean; /** * Whether each witness signed in the presence of the testator. Required under the Wills Act 1837 s.9(d) */ witnessesSignedInPresenceOfTestator?: boolean; /** * Whether a conflict check was performed to ensure no witness is a beneficiary. Under English law, a beneficiary-witness loses their gift (Wills Act 1837 s.15) */ witnessConflictCheck?: boolean; /** * The legal standard applied when checking for witness conflicts */ witnessConflictCheckScope?: 'english_law' | 'halachic_broad' | 'shariah_standard' | 'civil_law_standard' | 'customary_oral' | 'community_testimony'; /** * Additional notes on attestation — unusual circumstances, concerns about formalities, or cultural context */ notes?: string; /** * Whether the will was executed physically, electronically, or via a combination of both */ executionType?: 'physical' | 'electronic' | 'hybrid'; /** * FK to organisation — Florida qualified custodian (F.S. 732.524) */ qualifiedCustodianOrganisationId?: string; /** * Human-readable display name for the referenced qualified custodian organisation */ qualifiedCustodianOrganisationIdDisplay?: string; /** * Name of the e-will storage platform */ custodianSystemName?: string; /** * Name or identifier of the entity holding the authoritative copy of the electronic will */ authoritativeCopyHolder?: string; /** * e.g. SHA-256, blockchain notarisation */ tamperEvidenceMethod?: string; /** * The hash or signature value */ tamperEvidenceValue?: string; /** * Remote Online Notarisation session identifier */ ronSessionId?: string; /** * RON platform, e.g. Notarize, DocVerify */ ronPlatform?: string; /** * URL of the uninterrupted audio-video recording of the RON session */ ronRecordingContentUrl?: string; /** * Number of years the RON recording must be retained */ ronRecordingRetentionYears?: number; /** * Method used to verify the identity of the principal during remote online notarisation */ identityVerificationMethod?: 'government_id' | 'credential_analysis' | 'knowledge_based_authentication' | 'biometric' | 'personal_knowledge'; /** * Description of the biological aspect or physical act used to authenticate the testator's electronic signature */ authenticationCharacteristic?: string; /** * Whether a self-proving affidavit was executed alongside the will, allowing probate without live witness testimony */ selfProvingAffidavit?: boolean; /** * Link to the video witnessing recording */ videoRecordingContentUrl?: string; /** * MIME type, e.g. video/mp4 */ videoRecordingMediaType?: string; /** * Duration of the video witnessing recording in ISO 8601 duration format */ videoRecordingDuration?: string; /** * Whether the video recording was uninterrupted and unedited throughout the execution */ videoUninterrupted?: boolean; /** * Name of the video platform used for witnessing, e.g. Zoom, Microsoft Teams */ videoPlatform?: string; /** * Person IDs of all participants in the video witnessing session */ videoParticipantPersonIds?: Array; /** * Whether the video was live (not pre-recorded) */ videoLive?: boolean; /** * Date from which video witnessing became legally valid in the relevant jurisdiction */ videoJurisdictionValidFrom?: string; /** * End of validity period — null means still valid. W3C VC validUntil */ videoJurisdictionValidUntil?: string; /** * A person recording themselves declaring the will is correct — distinct from witnessing */ videoDeclaration?: { /** * Person making the declaration */ declarantPersonId: string; /** * Human-readable display name for the referenced declarant person */ declarantPersonIdDisplay?: string; declarationType: 'testamentary_intent' | 'codicil_confirmation' | 'capacity_demonstration' | 'other'; /** * Link to the video recording (schema.org contentUrl) */ contentUrl?: string; recordingMediaType?: string; recordingDate?: string; recordingDuration?: string; /** * Text transcript of what was said */ transcript?: string; transcriptVerified?: boolean; legalWeight?: 'evidential' | 'supplementary' | 'non_binding' | 'unknown'; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Total number of pages in the executed document */ pageCount?: number; /** * Number of pages signed by the testator */ pagesSignedByTestator?: number; /** * Number of pages signed by the witnesses */ pagesSignedByWitnesses?: number; /** * Whether all pages have been signed by the testator and all witnesses */ allPagesSigned?: boolean; [key: string]: { [key: string]: unknown; } | string | string | Array | Array<{ /** * Reference to a person in the people array, if this witness is also an estate participant */ personId?: string; /** * Full name of the witness as recorded on the will */ name: string; /** * Address of the witness at the time of execution, as recorded on the will */ address?: string; /** * Occupation of the witness as recorded on the will */ occupation?: string; }> | 'in_person' | 'video' | 'remote' | 'none' | 'kinyan_sudar' | 'kinyan_agav' | 'seal_based' | 'inkan_registered' | 'written_signed' | 'oral_witnessed' | 'oral_community' | 'seal_based' | boolean | 'english_law' | 'halachic_broad' | 'shariah_standard' | 'civil_law_standard' | 'customary_oral' | 'community_testimony' | string | 'physical' | 'electronic' | 'hybrid' | string | string | string | string | number | 'government_id' | 'credential_analysis' | 'knowledge_based_authentication' | 'biometric' | 'personal_knowledge' | string | string | string | Array | string | { /** * Person making the declaration */ declarantPersonId: string; /** * Human-readable display name for the referenced declarant person */ declarantPersonIdDisplay?: string; declarationType: 'testamentary_intent' | 'codicil_confirmation' | 'capacity_demonstration' | 'other'; /** * Link to the video recording (schema.org contentUrl) */ contentUrl?: string; recordingMediaType?: string; recordingDate?: string; recordingDuration?: string; /** * Text transcript of what was said */ transcript?: string; transcriptVerified?: boolean; legalWeight?: 'evidential' | 'supplementary' | 'non_binding' | 'unknown'; } | Provenance | number | number | undefined; }; /** * Jurisdiction * * A legal jurisdiction identified by ISO 3166 codes. Succession law varies not just by country but by subdivision — Scotland differs from England and Wales, and US states have radically different rules */ export type Jurisdiction = { /** * ISO 3166-1 alpha-2 country code. Always uppercase, exactly two letters */ country: string; /** * ISO 3166-2 subdivision code identifying a state, province, or territory with its own succession law */ subdivision?: string; /** * The legal traditions governing succession in this jurisdiction. Multiple entries indicate a plural legal system (e.g. Singapore: common_law + islamic_law) */ legalSystems?: Array<'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'>; /** * Human-readable jurisdiction name for display purposes. Not authoritative — the country and subdivision codes are the canonical identifiers */ name?: string; }; /** * Money * * Monetary value in integer minor currency units with ISO 4217 code. Never floating point */ export type Money = { /** * Value in the smallest currency unit (pence, cents, sen). The consumer must apply the ISO 4217 exponent to convert to a display value */ amount: number; /** * ISO 4217 three-letter currency code. Use the code for the currency of the amount, not the reporting currency */ currency: string; /** * Number of decimal places for this currency. Display value = amount / 10^exponent. Most currencies use 2 (default). JPY/KRW use 0. KWD/BHD/OMR use 3 */ exponent?: number; }; /** * Record of testamentary capacity assessment. The testator must understand the nature of making a will, the extent of their estate, and the claims of those they are excluding */ export type TestamentaryCapacity = { /** * Whether a capacity assessment was carried out */ assessed?: boolean; /** * Date the capacity assessment took place */ assessmentDate?: string; /** * Name of the person who assessed capacity */ assessorName?: string; /** * Professional role of the assessor — typically a GP, psychiatrist, or solicitor */ assessorRole?: string; /** * Whether the assessor confirmed the testator has testamentary capacity */ capacityConfirmed?: boolean; /** * Whether the 'golden rule' was followed — a medical practitioner assessing capacity for elderly or seriously ill testators */ goldenRuleComplied?: boolean; /** * Additional notes on the capacity assessment */ notes?: string; }; /** * An amendment to an existing will. Codicils must be executed with the same formalities as the will itself */ export type Codicil = { /** * Unique identifier for this codicil */ id: string; /** * Date the codicil was executed */ codicilDate: string; /** * Summary of what this codicil changes in the original will */ description?: string; /** * Execution formalities for this codicil */ attestation?: Attestation; /** * Reference to the Document entity storing the codicil text */ documentId?: string; /** * Clause identifiers in the original will that this codicil amends. Enables computing the effective will after amendments */ amendsClauseIds?: Array; /** * Clause identifiers in the original will that this codicil revokes entirely */ revokesClauseIds?: Array; /** * Identifier of the will or codicil that this codicil amends — links to the Document entity of the prior instrument */ priorDocumentId?: string; /** * Date when this codicil takes effect, if different from the execution date — supports conditional or deferred codicils */ effectiveDate?: string; }; /** * Forced heirship regime details. Many civil law jurisdictions reserve a portion of the estate for certain heirs regardless of the will */ export type ForcedHeirship = { /** * Whether forced heirship rules apply to this estate */ applies?: boolean; /** * Percentage of the estate reserved for protected heirs. In France, this is 50% for one child, 66.67% for two, 75% for three or more */ reservedPortion?: number; /** * Percentage of the estate the testator may freely dispose of by will */ disposableQuota?: number; /** * The jurisdiction whose forced heirship rules apply */ jurisdiction?: Jurisdiction; /** * The legal nature of the forced heir's claim — whether they receive property, cash, or a court-determined provision */ claimNature?: 'property_share' | 'cash_claim' | 'usufruct' | 'court_discretion'; /** * How the reserved portion is calculated */ calculationBasis?: 'fixed' | 'per_child_sliding' | 'court_discretion' | 'conditional'; /** * Which categories of heir are protected by forced heirship */ applicableTo?: 'children_only' | 'children_and_spouse' | 'all_descendants' | 'all_heirs'; /** * Rule for deferring forced heirship claims — e.g. life interest to surviving spouse with remainder to children */ deferralRule?: string; /** * Date when the applicable forced heirship rules came into force. Important for reform transitions */ effectiveDate?: string; /** * The specific legislative reform establishing these rules */ reformVersion?: string; /** * Additional notes on forced heirship — exceptions, pending challenges, or reform context */ notes?: string; }; /** * A court or authority with jurisdiction over this estate or part of it. Plural legal systems may have multiple adjudicating bodies for the same estate */ export type AdjudicatingBody = { /** * The type of adjudicating body */ type: 'secular_court' | 'religious_court' | 'beth_din' | 'shariah_court' | 'tribal_court' | 'family_court' | 'family_council' | 'community_elders' | 'partition_meeting' | 'karta_decision' | 'maori_land_court' | 'high_court'; /** * Name of the specific court or body */ name?: string; /** * Jurisdiction this adjudicating body operates in */ jurisdiction?: Jurisdiction; /** * Case or filing reference number */ caseReference?: string; /** * Whether this body's decisions are binding. A beth din ruling may be persuasive but not enforceable without secular court recognition */ authoritative?: boolean; }; /** * A parallel distribution scheme operating alongside the primary estate distribution. Common in plural legal systems where statutory and customary/religious distributions run concurrently */ export type ParallelDistribution = { /** * The legal system governing this parallel distribution */ system: string; /** * Jurisdiction where this parallel distribution applies */ jurisdiction?: Jurisdiction; /** * Summary of how this system distributes the estate */ description?: string; /** * Additional context or conflict notes */ notes?: string; }; /** * A grant of probate or letters of administration issued by a court. Without a grant, executors have no legal authority to administer the estate */ export type ProbateGrant = { /** * The type of grant issued */ grantType?: string; /** * Date the grant was issued by the court */ grantDate?: string; /** * Court reference number for the grant */ grantReference?: string; /** * Name of the court or registry that issued the grant */ issuingCourt?: string; /** * Jurisdiction that issued this grant */ jurisdiction?: Jurisdiction; /** * Additional notes about the grant */ notes?: string; }; /** * Details of the testator's death. Establishes the date from which succession takes effect and the domicile at death (which determines governing law for moveables) */ export type DeathRecord = { /** * Date of death in ISO 8601 format */ dateOfDeath?: string; /** * Place where death occurred */ placeOfDeath?: string; /** * Death certificate reference number */ deathCertificateRef?: string; /** * The testator's domicile at the time of death. This determines which succession law governs moveable property */ domicileAtDeath?: Jurisdiction; /** * Additional notes about the death record */ notes?: string; }; /** * A conflict between legal systems regarding succession for this estate. Common in plural jurisdictions and cross-border estates */ export type SuccessionConflict = { /** * Summary of the conflict between legal systems */ description: string; /** * The legal systems in conflict */ systems?: Array; /** * Current status of this conflict */ resolutionStatus?: 'unresolved' | 'resolved' | 'pending_court' | 'pending_arbitration'; /** * Additional context or resolution details */ notes?: string; }; /** * Completeness assessment of estate data against a jurisdiction-specific probate form. This is data completeness, NOT legal validation */ export type ProbateReadiness = { /** * The jurisdiction this assessment applies to */ jurisdiction: Jurisdiction; /** * Form identifier from form-requirements.json */ targetForm: string; /** * Number of required fields that are populated */ requiredFieldsPresent: number; /** * Total number of required fields for this form */ requiredFieldsTotal: number; /** * INHERIT field paths that are required by the form but not yet populated */ missingFields?: Array; /** * When this assessment was performed */ assessedAt: string; /** * Who or what performed the assessment */ assessedBy?: 'system' | 'solicitor' | 'willscan' | 'manual' | string; /** * Additional context about the assessment */ notes?: string; }; /** * A reference to this estate in an external system — practice management software, court filing systems, government portals */ export type ExternalReference = { /** * The external system name */ system: string; /** * The matter/case/action ID in the external system */ referenceId: string; /** * What type of entity this references in the external system */ referenceType: 'matter' | 'contact' | 'document' | 'case' | 'action' | 'filing' | 'other' | string; /** * Deep link to the entity in the external system */ referenceUrl?: string; /** * When this reference was last synchronised */ syncedAt?: string; /** * Additional context about this reference */ notes?: string; }; /** * Estate * * The root estate record — will, intestacy, or trust-based succession plan. Contains testator details, jurisdiction, will formalities, forced heirship, probate grants, death record, multi-jurisdiction administration, and tax treaty positions */ export type Estate = { /** * Unique identifier for this estate record */ id: string; /** * Reference to the Person.id of the testator (the person whose estate this is) */ testatorPersonId: string; /** * Human-readable display name for the referenced testator person */ testatorPersonIdDisplay?: string; /** * The lifecycle status of this estate record. Progresses from planning through to closure */ status: 'planning' | 'confirmed' | 'pre_probate' | 'in_administration' | 'distributed' | 'closed'; /** * The testator's domicile — the jurisdiction whose succession law governs moveable property by default. For cross-border estates, individual assets may declare their own applicableLaw */ domicile: Jurisdiction; /** * The type of will. Extension types use x-inherit- prefix */ willType?: 'secular' | 'religious' | 'dual' | 'composite' | 'oral_witnessed' | 'oral_customary' | 'holographic' | 'notarised' | 'privileged_will' | string; /** * Links to a companion estate record — either a parallel estate under a different legal system, or a household companion's estate */ companionEstateId?: string; /** * Reference to the companion estate's id when this will was created as a mirror of the companion's will. Mirror wills have substantially the same provisions — typically leaving everything to each other and then to shared beneficiaries. This field records the intent, not a guarantee that the wills remain identical (either partner may subsequently diverge) */ mirrorWillId?: string; /** * Current state of the companion estate link. Absent if the estate has never been linked to a companion */ companionLinkStatus?: 'invited' | 'active' | 'decoupling' | 'decoupled'; /** * ISO 8601 timestamp when the companion link became active */ linkedAt?: string; /** * ISO 8601 timestamp when the companion link was severed */ decoupledAt?: string; /** * The primary instrument governing succession for this estate */ primaryInstrument?: 'will' | 'revocable_trust' | 'both' | 'intestacy'; /** * The default marital property regime for this estate. Determines which assets the testator may freely dispose of */ defaultPropertyRegime?: 'community_property' | 'separate_property' | 'equitable_distribution' | 'deferred_community' | 'universal_community' | 'participation_in_acquisitions' | 'islamic_dower'; /** * Estimated total value of the estate before liabilities. In minor currency units */ totalEstimatedValue?: Money; /** * Will execution formalities — witnesses, signing method, and compliance checks */ attestation?: Attestation; /** * Record of testamentary capacity assessment for the testator */ testamentaryCapacity?: TestamentaryCapacity; /** * Amendments to the will. Each codicil must be executed with proper formalities */ codicils?: Array; /** * Document IDs of prior wills or instruments this estate record expressly revokes */ revokesDocumentIds?: Array; /** * Whether the will contains a general revocation clause ('I revoke all former wills and testamentary dispositions') */ revocationClause?: boolean; /** * Forced heirship regime applicable to this estate, if any */ forcedHeirship?: ForcedHeirship; /** * Courts and bodies with jurisdiction over this estate. Plural legal systems may involve multiple courts */ adjudicatingBodies?: Array; /** * Parallel distribution schemes under different legal systems — customary, religious, or statutory */ parallelDistributions?: Array; /** * The probate grant or letters of administration for this estate */ probateGrant?: ProbateGrant; /** * Details of the testator's death */ deathRecord?: DeathRecord; /** * Known conflicts between legal systems regarding succession for this estate */ successionConflicts?: Array; /** * Choice of law declaration under the Brussels IV Regulation (EU Succession Regulation 650/2012) or equivalent. Allows the testator to choose which jurisdiction's succession law applies */ choiceOfLaw?: { /** * The jurisdiction whose law the testator has chosen to govern succession */ chosenLaw?: Jurisdiction; /** * Legal basis for the choice of law */ basis?: string; /** * Reference to the document containing the choice of law declaration */ documentRef?: string; }; /** * Surviving spouse's elective share right (US). Allows the spouse to claim a statutory share of the estate regardless of the will's provisions */ electiveShareRight?: { /** * Whether elective share is available in this jurisdiction */ available?: boolean; /** * The amount elected by the surviving spouse, if the election has been made */ electedAmount?: Money; /** * The statute governing elective share in this jurisdiction */ statute?: string; /** * Additional notes on the elective share */ notes?: string; }; /** * A prior matrimonial claim against the estate — typically from a former spouse under a financial order */ priorMatrimonialClaim?: { /** * Whether a prior matrimonial claim exists */ exists?: boolean; /** * Description of the claim */ description?: string; /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Additional context */ notes?: string; }; /** * In terrorem (no-contest) clause — a provision that a beneficiary forfeits their gift if they challenge the will. Enforceability varies by jurisdiction */ noContestClause?: { /** * Whether the will contains a no-contest clause */ present?: boolean; /** * Enforceability status in the governing jurisdiction */ enforceability?: string; /** * Additional context about the clause */ notes?: string; }; /** * Claims by pretermitted heirs — children born or adopted after the will was executed who are not mentioned in it */ pretermittedHeirClaims?: Array<{ /** * Reference to the Person.id of the pretermitted heir */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Current status of this claim */ status?: string; /** * Additional context about the claim */ notes?: string; }>; /** * Claims under the Law Reform (Testamentary Promises) Act 1949 (New Zealand). Allows claims by persons who provided services to the deceased in reliance on a promise of testamentary provision */ testamentaryPromises?: Array<{ /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Description of the promise made by the testator */ promiseDescription?: string; /** * Current status of this claim */ status?: string; /** * Additional context */ notes?: string; }>; /** * Court power to vary a will to make reasonable financial provision for family and dependants. Applies in England and Wales (Inheritance Act 1975), New Zealand, and similar jurisdictions */ judicialVariationPower?: { /** * Whether judicial variation is available in this jurisdiction */ available?: boolean; /** * The statute granting variation power */ statute?: string; /** * Additional context */ notes?: string; }; /** * Commorientes rule — the legal presumption for order of death when two or more people die in the same event. Critical for determining which estate inherits from which */ commorientesRule?: { /** * Whether the commorientes rule is relevant to this estate */ applicable?: boolean; /** * The applicable commorientes rule */ rule?: string; /** * Jurisdiction whose commorientes rule applies */ jurisdiction?: Jurisdiction; /** * Additional context — e.g. specific facts of the case */ notes?: string; /** * Person IDs of those who died in the same event */ affectedPersonIds?: Array; /** * Person IDs in proved order of death, if established by evidence. First ID died first */ provedSurvivalOrder?: Array | null; /** * The governing statute for commorientes in this jurisdiction */ statute?: string; }; /** * Ancillary probate proceedings in jurisdictions other than the primary domiciliary jurisdiction. Required when the estate includes assets in foreign jurisdictions */ ancillaryProbate?: Array<{ /** * The jurisdiction where ancillary probate is needed */ jurisdiction: Jurisdiction; /** * Reference to the Person.id of the local fiduciary or administrator */ fiduciaryPersonId?: string; /** * Human-readable display name for the referenced fiduciary person */ fiduciaryPersonIdDisplay?: string; /** * Current status of ancillary probate in this jurisdiction */ status?: 'not_started' | 'applied' | 'granted' | 'completed' | 'waived'; /** * Local grant reference number */ grantReference?: string; /** * Name of local legal counsel handling this jurisdiction */ localCounsel?: string; /** * Additional notes */ notes?: string; }>; /** * Registrations of the will with official will registries. Not all jurisdictions have will registries, and registration is rarely compulsory */ registrations?: Array<{ /** * Name of the will registry */ registry: string; /** * Registration reference number */ registrationNumber?: string; /** * What the registration covers — may be limited to certain jurisdictions or asset classes */ jurisdictionScope?: string; /** * Date the will was registered */ registrationDate?: string; }>; /** * The currency used for probate reporting and estate accounts. All values in this estate may need converting to this currency */ reportingCurrency?: string; /** * Exchange rates used when converting foreign-currency assets to the reporting currency. Document the rate and date to satisfy probate courts */ conversionRates?: Array<{ /** * Source currency code (ISO 4217) */ fromCurrency: string; /** * Target currency code (ISO 4217) */ toCurrency: string; /** * Exchange rate — one unit of fromCurrency equals this many units of toCurrency */ rate: number; /** * Date this exchange rate was sourced */ rateDate: string; /** * Source of the exchange rate */ source?: string; }>; /** * Tax treaty positions relevant to the estate. Documents which treaties are being relied upon for double taxation relief */ taxTreatyPositions?: Array<{ /** * Name of the bilateral tax treaty */ treaty: string; /** * The jurisdiction with primary taxing rights under this treaty */ primaryTaxingJurisdiction?: Jurisdiction; /** * Tax credits claimed under this treaty */ claimedCredits?: string; /** * The specific treaty article being relied upon */ relevantArticle?: string; /** * Additional context */ notes?: string; }>; /** * Informational list of practitioner activity codes suggesting the types of professional help this estate may need. Computed from estate complexity, not user-entered */ suggestedPractitionerNeeds?: Array; /** * Timestamp when this estate record was first created */ readonly createdAt: string; /** * Timestamp when this estate record was last modified */ readonly lastModifiedAt: string; /** * Date the will was formally executed (signed with proper attestation). Enables look-back period calculations when combined with lifetime transfers */ executionDate?: string; /** * Estate administration details. Tracks the journey from death through grant, tax clearance, distribution, and closure */ administration?: { /** * Date of death — the date from which succession takes effect */ dateOfDeath?: string; /** * Date the probate grant or letters of administration were issued */ dateOfGrant?: string; /** * Type of grant authorising estate administration */ grantType?: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'succession_certificate' | 'certificate_of_inheritance' | 'court_appointment' | 'resealing' | 'european_certificate_of_succession' | 'other'; /** * Court reference number for the grant */ grantReference?: string; /** * Name of the issuing court or registry */ court?: string; /** * Gross value of the estate at date of death, before deducting liabilities */ grossEstateValue?: Money; /** * Net value of the estate after deducting liabilities */ netEstateValue?: Money; /** * Total inheritance/estate tax liability */ taxLiability?: Money; /** * Amount of inheritance/estate tax paid so far */ taxPaid?: Money; /** * Tax clearance status — confirmation from the tax authority that no further tax is owed */ taxClearance?: { /** * Current status of tax clearance */ status?: 'not_applied' | 'applied' | 'received' | 'not_required'; /** * Date clearance was received */ clearanceDate?: string; /** * Tax clearance reference number */ reference?: string; }; /** * Record of distributions made to beneficiaries during administration */ distributions?: Array<{ /** * Person ID of the beneficiary receiving the distribution */ beneficiaryPersonId: string; /** * Reference to the Bequest being fulfilled */ bequestId?: string; /** * Date the distribution was made */ distributionDate: string; /** * Asset ID if a specific asset was transferred */ assetId?: string; /** * Property ID if a property was transferred */ propertyId?: string; /** * Cash amount distributed, in minor currency units */ cashAmount?: Money; /** * Whether a receipt/acknowledgement has been obtained from the beneficiary */ receipt?: boolean; /** * Additional distribution notes */ notes?: string; }>; /** * Whether the estate accounts have been prepared and filed/approved */ estateAccountsFiled?: boolean; /** * Additional administration notes */ notes?: string; }; /** * The default succession regime for all assets and properties in this estate. Individual assets/properties may override with their own successionRegime */ defaultSuccessionRegime?: { /** * The default governing law for succession */ governingLaw?: { /** * Jurisdiction whose succession law applies by default */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; }; /** * The testator's faith-based wishes for succession. Explicitly separate from legal succession regime — may or may not be binding depending on jurisdiction */ religiousConsideration?: { /** * The religious legal tradition the testator wishes to follow */ tradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Whether this religious consideration is legally binding in the estate's jurisdiction */ binding?: boolean; /** * Context for the religious consideration */ notes?: string; }; /** * Free-text notes about the estate. Use for anything not captured by structured fields */ notes?: string; /** * Date of the death certificate */ deathCertificateDate?: string; /** * Death certificate reference number */ deathCertificateReference?: string; /** * Target deadline for completing estate administration */ administrationDeadline?: string; /** * Source or basis for the administration deadline */ administrationDeadlineSource?: string; /** * Machine-generated completeness assessments against jurisdiction-specific probate form requirements. This is data completeness, NOT legal validation — it says 'you haven't entered the death certificate reference yet', not 'this estate is legally ready for probate' */ probateReadiness?: Array; /** * References to this estate in external systems — practice management software, court filing systems, government portals. Enables round-trip synchronisation between INHERIT and PMS */ externalReferences?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Conflict of laws rules governing this estate — determines which jurisdiction's succession law applies to which assets */ jurisdictionRules?: { /** * Whether moveable and immoveable property are governed by different laws (scission) or the same law (unity) */ doctrine?: 'scission' | 'unity' | 'hybrid'; /** * Which law governs immoveable property (real estate) */ immoveableRule?: 'lex_situs' | 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; /** * Which law governs moveable property */ moveableRule?: 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; choiceOfLaw?: { chosenJurisdiction?: Jurisdiction; basis?: 'nationality' | 'habitual_residence' | 'domicile'; instrument?: 'brussels_iv' | 'hague_convention' | 'bilateral_treaty' | 'domestic_law'; /** * Jurisdiction codes where this choice is recognised, e.g. ["EU"] for Brussels IV */ validIn?: Array; }; }; /** * Structured assessment of grounds on which this will could be contested — the challenge surface */ contestability?: { status: 'not_assessed' | 'assessed_no_grounds' | 'grounds_identified'; grounds?: Array<{ ground: 'lack_of_testamentary_capacity' | 'undue_influence' | 'fraud' | 'forgery' | 'lack_of_knowledge_and_approval' | 'want_of_due_execution'; jurisdiction: Jurisdiction; legalTest?: string; limbs?: Array<{ name: string; satisfied?: boolean | null; }>; assessedBy?: string; assessedDate?: string; }>; influenceFactors?: Array<{ influencerPersonId: string; subjectPersonId: string; relationshipType?: string; cohabiting?: boolean; financialDependency?: 'none' | 'subject_on_influencer' | 'influencer_on_subject' | 'mutual'; giftsDuringLifetime?: boolean; }>; }; /** * Double taxation treaties affecting this estate — determines which jurisdiction taxes which assets and how double taxation is relieved */ taxTreaties?: Array<{ between: [ string, string ]; treatyType: 'estate_and_inheritance' | 'gift_tax' | 'income_tax' | 'comprehensive'; primaryTaxingRight?: { immoveable?: 'situs' | 'domicile' | 'nationality'; moveable?: 'domicile' | 'nationality' | 'situs'; }; reliefMethod?: 'credit' | 'exemption' | 'deduction'; treatyReference?: string; }>; /** * Verification of the testator's death — addresses the delegation trigger gap identified by the OpenID Foundation */ deathVerification?: { method?: 'death_certificate' | 'coroner_report' | 'civil_registry' | 'court_order' | 'medical_certificate' | 'community_declaration' | 'presumption_of_death'; issuingAuthority?: string; jurisdiction?: Jurisdiction; referenceNumber?: string; dateOfDeath?: string; /** * Date death was officially registered — may differ from dateOfDeath */ registrationDate?: string; verifiedAt?: string; verifiedBy?: string; /** * Trust level of the death verification — maps to emerging digital estate delegation trust frameworks */ trustLevel?: 'government_certified' | 'medical_certified' | 'platform_detected' | 'community_declared' | 'self_reported'; /** * URI pointing to the FHIR Patient resource whose death triggered the estate. Enables data exchange between healthcare systems and INHERIT */ fhirPatientRef?: string; }; /** * Escheatment — the reversion of unclaimed estate property to the state. Applies when no valid heirs can be identified after statutory dormancy periods */ escheatment?: { /** * Jurisdiction whose escheatment laws apply */ jurisdiction?: Jurisdiction; /** * Statutory dormancy period in years before escheatment */ dormancyPeriodYears?: number; /** * Date on which escheatment takes effect (or is projected to take effect) */ escheatDate?: string; /** * Name of the government authority claiming the escheated property */ claimingAuthority?: string; /** * Current status of the escheatment */ status?: 'at_risk' | 'dormancy_running' | 'escheated' | 'reclaimed'; /** * Asset IDs affected by escheatment */ affectedAssetIds?: Array; notes?: string; }; /** * Testamentary scenarios — declarative conditions for mirror wills, survivorship, commorientes, and remarriage revocation */ testamentaryScenarios?: Array<{ id: string; description: string; conditions: Array<{ personId: string; event: 'death' | 'survives' | 'remarriage' | 'commorientes' | 'incapacity'; order?: number; rule?: string; jurisdiction?: Jurisdiction; presumption?: string; }>; /** * Bequest IDs that activate under this scenario */ activeBequests?: Array; /** * Executor IDs that activate under this scenario */ activeExecutors?: Array; notes?: string; }>; /** * Cryptographic digest of the canonical form of this document, excluding the integrity field itself — used for tamper detection and signing readiness */ integrity?: { /** * Hash algorithm used to compute the digest */ algorithm: 'sha-256' | 'sha-384' | 'sha-512'; /** * Hex-encoded digest value */ digest: string; }; /** * Persons whom the testator has explicitly excluded from inheriting. Distinguishes deliberate exclusion from oversight — critical for family provision and forced heirship claims */ disinheritedPersons?: Array<{ /** * Reference to the Person.id of the excluded individual */ personId: string; /** * Human-readable label for the excluded person, for display purposes only */ personIdDisplay?: string; /** * The testator's own words regarding the exclusion, as recorded in the will or codicil */ statement?: string; /** * Reference to the clause or section of the will containing the exclusion — e.g. 'clause 5', 'schedule 2 para 3' */ clauseReference?: string; /** * Practitioner-recorded reason for the exclusion, separate from the testator's own statement */ reason?: string; }>; /** * Jurisdictions governing succession for this estate, with scope. Use when multiple legal systems apply to different assets (e.g. lex situs for immovable property abroad). Per-asset law is recorded on each asset/property via applicableLaw; this array provides the estate-level coordination map */ governingJurisdictions?: Array<{ jurisdiction: Jurisdiction; /** * Whether this jurisdiction applies to the whole estate or specific assets */ scope: 'default' | 'specific_assets'; /** * Asset IDs governed by this jurisdiction (when scope is specific_assets) */ assetIds?: Array; /** * Property IDs governed by this jurisdiction (when scope is specific_assets) */ propertyIds?: Array; /** * Governing statute */ statute?: string; notes?: string; }>; /** * A binding mutual will agreement — two testators promise not to revoke their wills without notice. Creates a constructive trust on the survivor's estate. Distinct from mirror wills (which are independent) */ mutualWillAgreement?: { exists?: boolean; /** * The other testator bound by the agreement */ counterpartyPersonId?: string; /** * Reference to the counterparty's estate document, if available */ counterpartyEstateId?: string; binding?: boolean; /** * Reference to Document.id recording the mutual promise */ agreementDocumentId?: string; /** * Summary of the agreement terms */ terms?: string; revocable?: boolean; }; /** * Conflicts between parallel legal systems where the will cannot override customary or statutory rights */ parallelSuccessionConflicts?: Array<{ /** * The legal system asserting the right */ legalSystem: string; affectedPersonId?: string; /** * Description of the customary right that conflicts with the will */ natureOfRight: string; overridableByWill?: boolean; statutoryBasis?: string; resolution?: 'pending' | 'resolved_by_will' | 'resolved_by_court' | 'irreconcilable'; }>; /** * Ongoing care provisions for dependent adults, linking person, trust, and guardian */ careProvisions?: Array<{ dependantPersonId: string; trustId?: string; guardianId?: string; annualEstimatedCost?: Money; careNeeds?: string; }>; /** * Potential or actual family provision claims against the estate. Tracks claims under statutes like the Inheritance (Provision for Family and Dependants) Act 1975 */ familyProvisionClaims?: Array<{ claimantPersonId: string; claimType: 'spouse' | 'cohabitant' | 'child' | 'dependant' | 'maintained_person'; jurisdiction?: Jurisdiction; statute?: string; status?: 'potential' | 'filed' | 'settled' | 'dismissed'; amount?: Money; notes?: string; }>; /** * Non-familial connections between people in the estate. Directed: fromPersonId has the connection to toPersonId */ connections?: Array<{ fromPersonId: string; toPersonId: string; connectionType: 'friend' | 'solicitor' | 'financial_adviser' | 'accountant' | 'employer' | 'employee' | 'colleague' | 'neighbour' | 'carer' | 'religious_leader' | 'medical_practitioner' | 'business_partner' | 'other'; description?: string; }>; /** * Interpretive and construction rules expressed in the will */ constructionClauses?: Array<{ clauseType: 'gender_neutrality' | 'severability' | 'governing_law' | 'interpretation_rule' | 'definitions' | 'custom'; content: string; clauseReference?: string; }>; /** * Ongoing validity state of the will. Records life events that may invalidate the document */ validityStatus?: Array<{ conditionType: 'unmarried' | 'not_divorced' | 'not_converted' | 'domiciled_in' | 'testamentary_capacity' | 'no_subsequent_will' | 'custom'; description?: string; status?: 'satisfied' | 'breached' | 'unknown'; breachedDate?: string; statute?: string; }>; /** * Universal priority phases for estate administration. Lower priority numbers satisfied first */ administrationPhases?: Array<{ priority: number; category: 'funeral_expenses' | 'testamentary_expenses' | 'secured_debts' | 'unsecured_debts' | 'distribution' | 'custom'; description?: string; }>; /** * Statutory and express powers granted to executors/trustees for estate administration */ executorPowers?: Array<{ powerType: 'statutory_default' | 'sale_and_conversion' | 'postponement' | 'appropriation' | 'insurance' | 'investment' | 'delegation' | 'custom'; /** * The statute conferring or modifying this power */ statute?: string; /** * The specific power as expressed in the will */ description?: string; clauseReference?: string; }>; /** * Statutes explicitly excluded from applying to this estate. Common: Apportionment Act 1870, Trustee Act 2000 s.31/s.32 */ statutoryExclusions?: Array<{ statute: string; /** * Specific sections excluded */ sections?: string; jurisdiction?: Jurisdiction; /** * What the exclusion means in practice */ effect?: string; clauseReference?: string; }>; [key: string]: { [key: string]: unknown; } | string | string | 'planning' | 'confirmed' | 'pre_probate' | 'in_administration' | 'distributed' | 'closed' | Jurisdiction | 'secular' | 'religious' | 'dual' | 'composite' | 'oral_witnessed' | 'oral_customary' | 'holographic' | 'notarised' | 'privileged_will' | string | 'invited' | 'active' | 'decoupling' | 'decoupled' | string | 'will' | 'revocable_trust' | 'both' | 'intestacy' | 'community_property' | 'separate_property' | 'equitable_distribution' | 'deferred_community' | 'universal_community' | 'participation_in_acquisitions' | 'islamic_dower' | Money | Attestation | TestamentaryCapacity | Array | Array | boolean | ForcedHeirship | Array | Array | ProbateGrant | DeathRecord | Array | { /** * The jurisdiction whose law the testator has chosen to govern succession */ chosenLaw?: Jurisdiction; /** * Legal basis for the choice of law */ basis?: string; /** * Reference to the document containing the choice of law declaration */ documentRef?: string; } | { /** * Whether elective share is available in this jurisdiction */ available?: boolean; /** * The amount elected by the surviving spouse, if the election has been made */ electedAmount?: Money; /** * The statute governing elective share in this jurisdiction */ statute?: string; /** * Additional notes on the elective share */ notes?: string; } | { /** * Whether a prior matrimonial claim exists */ exists?: boolean; /** * Description of the claim */ description?: string; /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Additional context */ notes?: string; } | { /** * Whether the will contains a no-contest clause */ present?: boolean; /** * Enforceability status in the governing jurisdiction */ enforceability?: string; /** * Additional context about the clause */ notes?: string; } | Array<{ /** * Reference to the Person.id of the pretermitted heir */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Current status of this claim */ status?: string; /** * Additional context about the claim */ notes?: string; }> | Array<{ /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Description of the promise made by the testator */ promiseDescription?: string; /** * Current status of this claim */ status?: string; /** * Additional context */ notes?: string; }> | { /** * Whether judicial variation is available in this jurisdiction */ available?: boolean; /** * The statute granting variation power */ statute?: string; /** * Additional context */ notes?: string; } | { /** * Whether the commorientes rule is relevant to this estate */ applicable?: boolean; /** * The applicable commorientes rule */ rule?: string; /** * Jurisdiction whose commorientes rule applies */ jurisdiction?: Jurisdiction; /** * Additional context — e.g. specific facts of the case */ notes?: string; /** * Person IDs of those who died in the same event */ affectedPersonIds?: Array; /** * Person IDs in proved order of death, if established by evidence. First ID died first */ provedSurvivalOrder?: Array | null; /** * The governing statute for commorientes in this jurisdiction */ statute?: string; } | Array<{ /** * The jurisdiction where ancillary probate is needed */ jurisdiction: Jurisdiction; /** * Reference to the Person.id of the local fiduciary or administrator */ fiduciaryPersonId?: string; /** * Human-readable display name for the referenced fiduciary person */ fiduciaryPersonIdDisplay?: string; /** * Current status of ancillary probate in this jurisdiction */ status?: 'not_started' | 'applied' | 'granted' | 'completed' | 'waived'; /** * Local grant reference number */ grantReference?: string; /** * Name of local legal counsel handling this jurisdiction */ localCounsel?: string; /** * Additional notes */ notes?: string; }> | Array<{ /** * Name of the will registry */ registry: string; /** * Registration reference number */ registrationNumber?: string; /** * What the registration covers — may be limited to certain jurisdictions or asset classes */ jurisdictionScope?: string; /** * Date the will was registered */ registrationDate?: string; }> | string | Array<{ /** * Source currency code (ISO 4217) */ fromCurrency: string; /** * Target currency code (ISO 4217) */ toCurrency: string; /** * Exchange rate — one unit of fromCurrency equals this many units of toCurrency */ rate: number; /** * Date this exchange rate was sourced */ rateDate: string; /** * Source of the exchange rate */ source?: string; }> | Array<{ /** * Name of the bilateral tax treaty */ treaty: string; /** * The jurisdiction with primary taxing rights under this treaty */ primaryTaxingJurisdiction?: Jurisdiction; /** * Tax credits claimed under this treaty */ claimedCredits?: string; /** * The specific treaty article being relied upon */ relevantArticle?: string; /** * Additional context */ notes?: string; }> | Array | string | { /** * Date of death — the date from which succession takes effect */ dateOfDeath?: string; /** * Date the probate grant or letters of administration were issued */ dateOfGrant?: string; /** * Type of grant authorising estate administration */ grantType?: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'succession_certificate' | 'certificate_of_inheritance' | 'court_appointment' | 'resealing' | 'european_certificate_of_succession' | 'other'; /** * Court reference number for the grant */ grantReference?: string; /** * Name of the issuing court or registry */ court?: string; /** * Gross value of the estate at date of death, before deducting liabilities */ grossEstateValue?: Money; /** * Net value of the estate after deducting liabilities */ netEstateValue?: Money; /** * Total inheritance/estate tax liability */ taxLiability?: Money; /** * Amount of inheritance/estate tax paid so far */ taxPaid?: Money; /** * Tax clearance status — confirmation from the tax authority that no further tax is owed */ taxClearance?: { /** * Current status of tax clearance */ status?: 'not_applied' | 'applied' | 'received' | 'not_required'; /** * Date clearance was received */ clearanceDate?: string; /** * Tax clearance reference number */ reference?: string; }; /** * Record of distributions made to beneficiaries during administration */ distributions?: Array<{ /** * Person ID of the beneficiary receiving the distribution */ beneficiaryPersonId: string; /** * Reference to the Bequest being fulfilled */ bequestId?: string; /** * Date the distribution was made */ distributionDate: string; /** * Asset ID if a specific asset was transferred */ assetId?: string; /** * Property ID if a property was transferred */ propertyId?: string; /** * Cash amount distributed, in minor currency units */ cashAmount?: Money; /** * Whether a receipt/acknowledgement has been obtained from the beneficiary */ receipt?: boolean; /** * Additional distribution notes */ notes?: string; }>; /** * Whether the estate accounts have been prepared and filed/approved */ estateAccountsFiled?: boolean; /** * Additional administration notes */ notes?: string; } | { /** * The default governing law for succession */ governingLaw?: { /** * Jurisdiction whose succession law applies by default */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; } | { /** * The religious legal tradition the testator wishes to follow */ tradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Whether this religious consideration is legally binding in the estate's jurisdiction */ binding?: boolean; /** * Context for the religious consideration */ notes?: string; } | string | string | Array | Array | Provenance | { /** * Whether moveable and immoveable property are governed by different laws (scission) or the same law (unity) */ doctrine?: 'scission' | 'unity' | 'hybrid'; /** * Which law governs immoveable property (real estate) */ immoveableRule?: 'lex_situs' | 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; /** * Which law governs moveable property */ moveableRule?: 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; choiceOfLaw?: { chosenJurisdiction?: Jurisdiction; basis?: 'nationality' | 'habitual_residence' | 'domicile'; instrument?: 'brussels_iv' | 'hague_convention' | 'bilateral_treaty' | 'domestic_law'; /** * Jurisdiction codes where this choice is recognised, e.g. ["EU"] for Brussels IV */ validIn?: Array; }; } | { status: 'not_assessed' | 'assessed_no_grounds' | 'grounds_identified'; grounds?: Array<{ ground: 'lack_of_testamentary_capacity' | 'undue_influence' | 'fraud' | 'forgery' | 'lack_of_knowledge_and_approval' | 'want_of_due_execution'; jurisdiction: Jurisdiction; legalTest?: string; limbs?: Array<{ name: string; satisfied?: boolean | null; }>; assessedBy?: string; assessedDate?: string; }>; influenceFactors?: Array<{ influencerPersonId: string; subjectPersonId: string; relationshipType?: string; cohabiting?: boolean; financialDependency?: 'none' | 'subject_on_influencer' | 'influencer_on_subject' | 'mutual'; giftsDuringLifetime?: boolean; }>; } | Array<{ between: [ string, string ]; treatyType: 'estate_and_inheritance' | 'gift_tax' | 'income_tax' | 'comprehensive'; primaryTaxingRight?: { immoveable?: 'situs' | 'domicile' | 'nationality'; moveable?: 'domicile' | 'nationality' | 'situs'; }; reliefMethod?: 'credit' | 'exemption' | 'deduction'; treatyReference?: string; }> | { method?: 'death_certificate' | 'coroner_report' | 'civil_registry' | 'court_order' | 'medical_certificate' | 'community_declaration' | 'presumption_of_death'; issuingAuthority?: string; jurisdiction?: Jurisdiction; referenceNumber?: string; dateOfDeath?: string; /** * Date death was officially registered — may differ from dateOfDeath */ registrationDate?: string; verifiedAt?: string; verifiedBy?: string; /** * Trust level of the death verification — maps to emerging digital estate delegation trust frameworks */ trustLevel?: 'government_certified' | 'medical_certified' | 'platform_detected' | 'community_declared' | 'self_reported'; /** * URI pointing to the FHIR Patient resource whose death triggered the estate. Enables data exchange between healthcare systems and INHERIT */ fhirPatientRef?: string; } | { /** * Jurisdiction whose escheatment laws apply */ jurisdiction?: Jurisdiction; /** * Statutory dormancy period in years before escheatment */ dormancyPeriodYears?: number; /** * Date on which escheatment takes effect (or is projected to take effect) */ escheatDate?: string; /** * Name of the government authority claiming the escheated property */ claimingAuthority?: string; /** * Current status of the escheatment */ status?: 'at_risk' | 'dormancy_running' | 'escheated' | 'reclaimed'; /** * Asset IDs affected by escheatment */ affectedAssetIds?: Array; notes?: string; } | Array<{ id: string; description: string; conditions: Array<{ personId: string; event: 'death' | 'survives' | 'remarriage' | 'commorientes' | 'incapacity'; order?: number; rule?: string; jurisdiction?: Jurisdiction; presumption?: string; }>; /** * Bequest IDs that activate under this scenario */ activeBequests?: Array; /** * Executor IDs that activate under this scenario */ activeExecutors?: Array; notes?: string; }> | { /** * Hash algorithm used to compute the digest */ algorithm: 'sha-256' | 'sha-384' | 'sha-512'; /** * Hex-encoded digest value */ digest: string; } | Array<{ /** * Reference to the Person.id of the excluded individual */ personId: string; /** * Human-readable label for the excluded person, for display purposes only */ personIdDisplay?: string; /** * The testator's own words regarding the exclusion, as recorded in the will or codicil */ statement?: string; /** * Reference to the clause or section of the will containing the exclusion — e.g. 'clause 5', 'schedule 2 para 3' */ clauseReference?: string; /** * Practitioner-recorded reason for the exclusion, separate from the testator's own statement */ reason?: string; }> | Array<{ jurisdiction: Jurisdiction; /** * Whether this jurisdiction applies to the whole estate or specific assets */ scope: 'default' | 'specific_assets'; /** * Asset IDs governed by this jurisdiction (when scope is specific_assets) */ assetIds?: Array; /** * Property IDs governed by this jurisdiction (when scope is specific_assets) */ propertyIds?: Array; /** * Governing statute */ statute?: string; notes?: string; }> | { exists?: boolean; /** * The other testator bound by the agreement */ counterpartyPersonId?: string; /** * Reference to the counterparty's estate document, if available */ counterpartyEstateId?: string; binding?: boolean; /** * Reference to Document.id recording the mutual promise */ agreementDocumentId?: string; /** * Summary of the agreement terms */ terms?: string; revocable?: boolean; } | Array<{ /** * The legal system asserting the right */ legalSystem: string; affectedPersonId?: string; /** * Description of the customary right that conflicts with the will */ natureOfRight: string; overridableByWill?: boolean; statutoryBasis?: string; resolution?: 'pending' | 'resolved_by_will' | 'resolved_by_court' | 'irreconcilable'; }> | Array<{ dependantPersonId: string; trustId?: string; guardianId?: string; annualEstimatedCost?: Money; careNeeds?: string; }> | Array<{ claimantPersonId: string; claimType: 'spouse' | 'cohabitant' | 'child' | 'dependant' | 'maintained_person'; jurisdiction?: Jurisdiction; statute?: string; status?: 'potential' | 'filed' | 'settled' | 'dismissed'; amount?: Money; notes?: string; }> | Array<{ fromPersonId: string; toPersonId: string; connectionType: 'friend' | 'solicitor' | 'financial_adviser' | 'accountant' | 'employer' | 'employee' | 'colleague' | 'neighbour' | 'carer' | 'religious_leader' | 'medical_practitioner' | 'business_partner' | 'other'; description?: string; }> | Array<{ clauseType: 'gender_neutrality' | 'severability' | 'governing_law' | 'interpretation_rule' | 'definitions' | 'custom'; content: string; clauseReference?: string; }> | Array<{ conditionType: 'unmarried' | 'not_divorced' | 'not_converted' | 'domiciled_in' | 'testamentary_capacity' | 'no_subsequent_will' | 'custom'; description?: string; status?: 'satisfied' | 'breached' | 'unknown'; breachedDate?: string; statute?: string; }> | Array<{ priority: number; category: 'funeral_expenses' | 'testamentary_expenses' | 'secured_debts' | 'unsecured_debts' | 'distribution' | 'custom'; description?: string; }> | Array<{ powerType: 'statutory_default' | 'sale_and_conversion' | 'postponement' | 'appropriation' | 'insurance' | 'investment' | 'delegation' | 'custom'; /** * The statute conferring or modifying this power */ statute?: string; /** * The specific power as expressed in the will */ description?: string; clauseReference?: string; }> | Array<{ statute: string; /** * Specific sections excluded */ sections?: string; jurisdiction?: Jurisdiction; /** * What the exclusion means in practice */ effect?: string; clauseReference?: string; }> | undefined; }; /** * PostalAddress * * A physical address. Culturally neutral — supports any global addressing convention */ export type Address = { /** * The full address as a single formatted string, suitable for display. Preserves the original representation from the source document. Must not be the sole address representation — always populate structured fields where possible */ formattedAddress?: string; /** * Street number and name. For Japanese addresses, use the block and building number (chōme-ban-gō) */ streetAddress?: string; /** * Secondary address line — flat, suite, building, or floor. Use when the primary street address is insufficient */ addressLine2?: string; /** * City, town, village, or ward. For Japanese addresses, this is the city or special ward (ku) */ addressLocality?: string; /** * State, prefecture, province, or county. The administrative division below national level */ addressRegion?: string; /** * Postal or ZIP code. Format varies by country — UK postcodes, US ZIP codes, Japanese 〒 codes, etc */ postalCode?: string; /** * ISO 3166-1 alpha-2 country code. Always uppercase */ addressCountry?: string; /** * Geographic latitude in decimal degrees. Useful for properties in jurisdictions without formal addressing systems */ latitude?: number; /** * Geographic longitude in decimal degrees. Pair with latitude for precise property location */ longitude?: number; /** * A nearby landmark used to locate the address. Essential in jurisdictions without formal street addressing — India, Nigeria, and rural areas worldwide */ landmark?: string; /** * Free-form directions to reach the address when no formal address system exists. Common in rural communities across Africa, South Asia, and the Pacific Islands */ directionNotes?: string; /** * The addressing convention that governs the display order of this address. Defaults to 'western' if omitted */ addressOrder?: 'western' | 'japanese' | 'indian' | 'arabic' | 'custom'; }; /** * Identifier * * A typed external identifier. Use 'system' to namespace identifiers and prevent collisions across jurisdictions and organisations */ export type Identifier = { /** * Namespace URI or name identifying the issuing authority or system. Use URN format where possible for unambiguous identification */ system?: string; /** * Human-readable type label describing what kind of identifier this is */ type?: string; }; /** * FieldProvenance * * Records how a specific field's value was obtained — manual entry, AI extraction, import, OCR, or computation */ export type FieldProvenance = { /** * The field name this provenance record applies to */ field: string; /** * How the field value was obtained */ method: 'manual_entry' | 'ai_extracted' | 'imported' | 'computed' | 'ocr_scanned' | string; /** * Confidence in the field value (0-100) */ confidence?: number; /** * When this field was last verified */ verifiedAt?: string; /** * Who verified this field */ verifiedBy?: string; /** * Reference to the document.json entity this value was extracted from */ sourceDocumentId?: string; /** * Page number in the source document where this value was found */ sourcePageNumber?: number; /** * Location within the page where this value was found */ sourceRegion?: string; /** * The raw text as extracted before any normalisation or structuring. Preserves exactly what the source document said */ originalText?: string; /** * Writing system of the source document. Critical for handwritten wills in non-Latin scripts */ originalScript?: 'latin' | 'kanji' | 'hiragana' | 'katakana' | 'arabic' | 'hebrew' | 'devanagari' | 'tamil' | 'chinese_simplified' | 'chinese_traditional' | 'hangul' | 'cyrillic' | 'thai' | 'mixed' | 'other' | string; /** * OCR engine or extraction tool used to obtain this value */ ocrEngine?: string; /** * When this value was extracted from the source document */ extractedAt: string; /** * The third-party source that provided this field value. Enables attribution credits and the data source kill switch */ dataSource?: { /** * Short identifier for the data source */ source?: string; /** * URL to the source's website or the specific page this data came from */ sourceUrl?: string; /** * When this data was retrieved from the source */ retrievedAt?: string; }; }; /** * Visibility * * Reusable visibility level controlling which parties can see an entity. Used across dealer interests, asset interests, and other privacy-sensitive records */ export type Visibility = 'testator_only' | 'proxy_visible' | 'companion_visible' | 'executor_visible' | 'beneficiary_visible' | 'all_parties'; /** * Person * * A person involved in the estate. Schema.org name alignment. Any Unicode script. Supports CJK phonetic readings, chieftaincy titles, clan/lineage identifiers, dual legal personalities, and tax residency across multiple jurisdictions */ export type Person = { /** * Unique identifier for this person within the INHERIT document. Must be referenced consistently across all entities */ id: string; /** * The person's given (first) name. For cultures where given name follows family name (e.g. Japanese, Chinese), this is still the given name — display ordering is a presentation concern */ givenName: string; /** * The person's family name (surname). Some cultures do not use family names — Tamil, Icelandic patronymic, and mononymous naming conventions are all valid without this field */ familyName?: string; /** * Middle name(s) or additional given names. Multiple middle names should be space-separated */ additionalName?: string; /** * Name the person prefers to be called. May differ from legal name — use this for correspondence and display where appropriate */ preferredName?: string; /** * Phonetic reading of the person's name. Essential for CJK names to ensure correct pronunciation by non-native speakers and systems */ phoneticReading?: { /** * Phonetic reading of the given name */ givenName?: string; /** * Phonetic reading of the family name */ familyName?: string; /** * Phonetic reading of the complete name as a single string */ fullName?: string; }; /** * Formal titles held by this person. Multiple titles are common — a person may hold academic, professional, and traditional titles simultaneously */ titles?: Array<{ /** * The title text itself */ title: string; type?: 'chieftaincy' | 'traditional' | 'religious' | 'professional' | 'honorific' | 'clan' | 'academic' | 'military' | 'other'; }>; /** * Clan, tribe, lineage, or gotra affiliation. In some legal systems (Hindu, customary African), this determines inheritance rights and succession order */ clanOrLineage?: string; /** * The person's date of birth in ISO 8601 format. Used to determine age-dependent inheritance rights and guardianship requirements */ dateOfBirth?: string; /** * The person's date of death in ISO 8601 format, if deceased. Relevant for determining predecease rules, commorientes, and survivorship */ dateOfDeath?: string; /** * The person's gender. Optional, but required where inheritance rules are gender-dependent (e.g. Islamic faraid, Hindu succession) */ gender?: 'male' | 'female' | 'non_binary' | 'other' | 'prefer_not_to_say' | 'unknown'; /** * The person's legal domicile. Domicile — not nationality or residence — determines which succession law governs moveable property */ domicile?: Jurisdiction; /** * The roles this person plays in the estate. A person may hold multiple roles simultaneously (e.g. beneficiary and executor) */ roles: Array<'testator' | 'beneficiary' | 'executor' | 'guardian' | 'trustee' | 'witness' | 'attorney' | 'proxy' | 'protector' | 'enforcer'>; /** * Contact details for this person. All fields are optional — some parties may have no known contact information */ contact?: { /** * Postal address for this person */ address?: Address; }; /** * This person's preferred communication channel. Helps executors and professionals contact the right people in the right way */ preferredChannel?: 'email' | 'phone' | 'post' | 'in_person' | 'video_call' | 'messaging'; /** * External identifiers for this person — passport numbers, national ID, tax reference numbers, etc. Used for probate applications and cross-border identification */ identifiers?: Array; /** * The person's name within a religious naming tradition. Required for religious court filings, halachic documents, and Shariah proceedings */ ritualName?: { /** * The full ritual or religious name as used in religious proceedings */ name: string; /** * The patronymic element of the ritual name (ben/bat, ibn/bint, etc.) */ patronymic?: string; /** * The religious or cultural naming tradition this name follows */ nameSystem?: string; }; /** * Legal personalities this person holds across different legal systems. A single person may have distinct legal identities under statutory, customary, and religious law simultaneously */ legalPersonalities?: Array<{ /** * The legal system under which this personality exists */ system: 'statutory' | 'customary' | 'religious' | 'traditional'; /** * The person's role or status within this legal system */ role: string; /** * The jurisdiction where this legal personality is recognised */ jurisdiction?: Jurisdiction; /** * Additional context about this legal personality */ notes?: string; }>; /** * Tax residency declarations for one or more jurisdictions. A person may be simultaneously tax-resident in multiple countries, triggering reporting obligations under FATCA, CRS, and bilateral treaties */ taxResidency?: Array<{ /** * The jurisdiction where this person is tax-resident */ jurisdiction: Jurisdiction; /** * The person's tax identification number in this jurisdiction */ taxpayerIdentifier?: string; /** * Any relevant tax treaty claim that affects estate tax liability in this jurisdiction */ treatyPosition?: string; /** * FATCA (Foreign Account Tax Compliance Act) classification for this person */ fatcaStatus?: 'us_person' | 'non_us_person' | 'exempt' | 'unknown'; }>; /** * Whether this person record is shared with the companion estate. When true, changes sync between linked estates */ sharedWithCompanion?: boolean; /** * BCP 47 language tag for the person's preferred language. Used for correspondence and document generation */ language?: string; /** * Free-text notes about this person. Use for anything not captured by structured fields — health conditions, access requirements, or context for professionals */ notes?: string; /** * Per-field provenance records — how each field's value was obtained */ fieldProvenance?: Array; /** * Discussion comments on this entity */ comments?: Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }>; /** * Accessibility requirements for communicating with and providing services to this person */ accessibilityNeeds?: { /** * Preferred document format */ preferredFormat?: 'standard' | 'large_print' | 'audio' | 'braille' | 'easy_read' | 'other'; /** * Whether the person uses a screen reader */ screenReaderUser?: boolean; /** * Whether the person requires reduced motion in digital interfaces */ reducedMotion?: boolean; /** * Preferred method of communication */ communicationPreference?: 'email' | 'phone' | 'post' | 'in_person' | 'video_call'; /** * Additional accessibility notes */ notes?: string; }; /** * URIs identifying this entity elsewhere (schema.org sameAs). e.g. Wikidata, LinkedIn, DBpedia */ sameAs?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Extension-specific roles that the core roles enum cannot cover — e.g. faraid_heir, karta, okpara */ jurisdictionRoles?: Array<{ /** * Extension id, e.g. islamic-succession, hindu-succession */ extension: string; /** * Role within that extension, e.g. faraid_heir, karta, okpara */ role: string; }>; /** * The person's wishes regarding posthumous AI recreation of their likeness or identity. Typically set on the testator and possibly their spouse */ posthumousAiConsent?: { aiRecreation?: 'permitted' | 'prohibited' | 'limited'; likenessUse?: 'permitted' | 'prohibited' | 'limited'; /** * If limited, describes what is permitted (e.g. memorial video only, no interactive chatbot) */ scope?: string; recordedAt?: string; notes?: string; }; /** * Canonical identity for cross-document person matching. The fingerprint is deterministic: same inputs always produce the same key */ identity?: { fingerprint?: string | null; algorithm?: 'inherit-ici-v1'; components?: { familyName?: string; givenName?: string; dateOfBirth?: string; countryOfBirth?: string; }; externalIds?: Array<{ system: string; value?: string; type: string; redacted?: boolean; }>; confidence?: 'high' | 'medium' | 'low'; }; /** * The person's religious affiliation as a legal status. In jurisdictions where religion determines succession law (Singapore AMLA, Malaysian faraid, Israeli rabbinical courts), this is a jurisdictional switch, not a personal belief declaration */ religion?: { faith?: 'animist' | 'buddhist' | 'christian' | 'confucian' | 'hindu' | 'jain' | 'jewish' | 'muslim' | 'shinto' | 'sikh' | 'taoist' | 'zoroastrian' | 'none' | 'other'; /** * Specific denomination if relevant */ denomination?: string; /** * Date this religious status was last confirmed */ asAtDate?: string; }; [key: string]: { [key: string]: unknown; } | string | string | string | { /** * Phonetic reading of the given name */ givenName?: string; /** * Phonetic reading of the family name */ familyName?: string; /** * Phonetic reading of the complete name as a single string */ fullName?: string; } | Array<{ /** * The title text itself */ title: string; type?: 'chieftaincy' | 'traditional' | 'religious' | 'professional' | 'honorific' | 'clan' | 'academic' | 'military' | 'other'; }> | string | 'male' | 'female' | 'non_binary' | 'other' | 'prefer_not_to_say' | 'unknown' | Jurisdiction | Array<'testator' | 'beneficiary' | 'executor' | 'guardian' | 'trustee' | 'witness' | 'attorney' | 'proxy' | 'protector' | 'enforcer'> | { /** * Postal address for this person */ address?: Address; } | 'email' | 'phone' | 'post' | 'in_person' | 'video_call' | 'messaging' | Array | { /** * The full ritual or religious name as used in religious proceedings */ name: string; /** * The patronymic element of the ritual name (ben/bat, ibn/bint, etc.) */ patronymic?: string; /** * The religious or cultural naming tradition this name follows */ nameSystem?: string; } | Array<{ /** * The legal system under which this personality exists */ system: 'statutory' | 'customary' | 'religious' | 'traditional'; /** * The person's role or status within this legal system */ role: string; /** * The jurisdiction where this legal personality is recognised */ jurisdiction?: Jurisdiction; /** * Additional context about this legal personality */ notes?: string; }> | Array<{ /** * The jurisdiction where this person is tax-resident */ jurisdiction: Jurisdiction; /** * The person's tax identification number in this jurisdiction */ taxpayerIdentifier?: string; /** * Any relevant tax treaty claim that affects estate tax liability in this jurisdiction */ treatyPosition?: string; /** * FATCA (Foreign Account Tax Compliance Act) classification for this person */ fatcaStatus?: 'us_person' | 'non_us_person' | 'exempt' | 'unknown'; }> | boolean | string | string | Array | Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }> | { /** * Preferred document format */ preferredFormat?: 'standard' | 'large_print' | 'audio' | 'braille' | 'easy_read' | 'other'; /** * Whether the person uses a screen reader */ screenReaderUser?: boolean; /** * Whether the person requires reduced motion in digital interfaces */ reducedMotion?: boolean; /** * Preferred method of communication */ communicationPreference?: 'email' | 'phone' | 'post' | 'in_person' | 'video_call'; /** * Additional accessibility notes */ notes?: string; } | Array | Provenance | Array<{ /** * Extension id, e.g. islamic-succession, hindu-succession */ extension: string; /** * Role within that extension, e.g. faraid_heir, karta, okpara */ role: string; }> | { aiRecreation?: 'permitted' | 'prohibited' | 'limited'; likenessUse?: 'permitted' | 'prohibited' | 'limited'; /** * If limited, describes what is permitted (e.g. memorial video only, no interactive chatbot) */ scope?: string; recordedAt?: string; notes?: string; } | { fingerprint?: string | null; algorithm?: 'inherit-ici-v1'; components?: { familyName?: string; givenName?: string; dateOfBirth?: string; countryOfBirth?: string; }; externalIds?: Array<{ system: string; value?: string; type: string; redacted?: boolean; }>; confidence?: 'high' | 'medium' | 'low'; } | { faith?: 'animist' | 'buddhist' | 'christian' | 'confucian' | 'hindu' | 'jain' | 'jewish' | 'muslim' | 'shinto' | 'sikh' | 'taoist' | 'zoroastrian' | 'none' | 'other'; /** * Specific denomination if relevant */ denomination?: string; /** * Date this religious status was last confirmed */ asAtDate?: string; } | undefined; }; /** * A partner in the relationship. Uses non-gendered terminology and ordinal positioning */ export type Partner = { /** * Reference to a Person.id */ personId: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * Optional non-gendered label for display purposes. Avoids gendered terms like 'husband' and 'wife' */ displayLabel?: string; /** * Position in the partner list (1-based). Determines default display order */ ordinal: number; }; /** * A chronological event in the relationship timeline. The current relationship status is derived from the most recent event */ export type RelationshipEvent = { /** * The type of relationship event */ type: 'ceremony' | 'registration' | 'engagement' | 'marriage_contract' | 'property_regime_change' | 'separation_informal' | 'separation_legal' | 'divorce_filed' | 'divorce_finalised' | 'financial_order' | 'annulment' | 'dissolution' | 'death_of_partner' | 'reconciliation' | 'void_declaration' | 'mahr_payment' | 'lobola_payment'; /** * Date this event occurred */ eventDate: string; /** * Jurisdiction where this event took place or was registered */ jurisdiction?: Jurisdiction; /** * Additional context about this event */ notes?: string; }; /** * How a specific jurisdiction recognises (or fails to recognise) this relationship. Critical for modelling civil/religious status divergence */ export type JurisdictionalRecognition = { /** * The jurisdiction whose recognition status is recorded */ jurisdiction: Jurisdiction; /** * Whether this jurisdiction recognises the relationship */ recognised: boolean; /** * What this jurisdiction recognises the relationship as, if different from its declared type */ recognisedAs?: string; /** * Additional context on recognition */ notes?: string; }; /** * A financial instrument associated with the relationship — mahr, ketubah, lobola, prenuptial agreement, or marriage settlement */ export type FinancialInstrument = unknown & { /** * The type of financial instrument */ type: 'mahr' | 'ketubah' | 'lobola' | 'prenuptial_agreement' | 'postnuptial_agreement' | 'marriage_settlement'; /** * Monetary value of the instrument, in minor currency units */ value?: Money; /** * Payment status of this financial instrument */ status?: 'agreed' | 'paid' | 'partially_paid' | 'deferred' | 'disputed' | 'waived'; /** * Free-text description of the instrument */ description?: string; /** * Reference to a Document.id storing the instrument */ documentRef?: string; /** * Date the instrument was signed or executed */ instrumentDate?: string; /** * How this instrument affects inheritance distribution */ inheritanceImpact?: string; /** * Structured mahr details. Required when the financial instrument type is MAHR */ maharDetails?: { /** * Whether the mahr is prompt, deferred, or a combination */ maharType?: 'prompt' | 'deferred' | 'combination'; /** * Reference to the Person.id of the mahr recipient (the wife) */ recipientPersonId?: string; /** * Human-readable display name for the referenced recipient person */ recipientPersonIdDisplay?: string; /** * Reference to the Liability.id representing the deferred mahr as an estate debt */ linkedLiabilityId?: string; }; /** * Structured ketubah details. Required when the financial instrument type is KETUBAH */ ketubahDetails?: { /** * The ikkar ketubah — the standard principal amount */ principalAmount?: Money; /** * The tosefet ketubah — the groom's voluntary additional amount */ tosefetAmount?: Money; /** * The nedunya — dowry brought by the bride into the marriage */ nedunya?: Money; /** * The bride's status at the time of marriage, which determines the ikkar amount */ brideStatus?: 'virgin' | 'widow' | 'divorcee'; /** * Person IDs of the ketubah witnesses. Under halacha, witnesses must be male, adult, and observant */ witnessPersonIds?: Array; /** * Name of the rabbi who officiated the ceremony */ officiatingRabbi?: string; }; /** * Structured lobola details for African customary marriages */ lobolaDetails?: { /** * The family or person with whom the lobola was negotiated */ negotiatedWith?: string; /** * Whether the lobola includes livestock (cattle are traditional in many Southern African customs) */ includesLivestock?: boolean; /** * Number of livestock included in the lobola */ livestockCount?: number; }; }; /** * Relationship * * Spousal/partnership relationship. N-partner support (no structural two-partner limit). Event-based timeline (status derived from events). No gendered role names. Financial instruments with MAHR/KETUBAH subtype validation. Cross-jurisdiction recognition for dual civil/religious status */ export type Relationship = { /** * Unique identifier for this relationship within the INHERIT document */ id: string; /** * The legal form of the relationship */ type: 'marriage_civil' | 'marriage_religious' | 'marriage_customary' | 'marriage_common_law' | 'civil_partnership' | 'civil_union' | 'domestic_partnership' | 'de_facto' | 'cohabitation' | 'engagement'; /** * The specific religious marriage form, when the type is MARRIAGE_RELIGIOUS */ religiousSubtype?: string; /** * How the parties themselves describe this relationship, which may differ from the legal classification */ selfDeclaredType?: string; /** * The people in this relationship. Minimum 2, no structural upper limit — supports polygamous marriages valid in their jurisdiction */ partners: Array; /** * Chronological events determining relationship status. The authoritative status should be derived from the most recent event */ events?: Array; /** * The current status of the relationship. A convenience denormalisation — consumers should derive from the events array when available */ currentStatus?: 'active' | 'separated_informal' | 'separated_legal' | 'divorced' | 'annulled' | 'dissolved' | 'widowed' | 'void' | 'putative'; /** * Primary jurisdiction where this relationship was formed or registered */ jurisdiction?: Jurisdiction; /** * How other jurisdictions recognise (or do not recognise) this relationship. Essential for cross-border estates */ jurisdictionalRecognition?: Array; /** * Financial instruments associated with this relationship — mahr, ketubah, lobola, prenuptial agreements, etc */ financialInstruments?: Array; /** * The marital property regime governing this relationship. Determines which assets the testator may freely dispose of */ propertyRegime?: 'community_of_property' | 'separation_of_property' | 'community_of_acquests' | 'deferred_community' | 'separate_as_modified' | 'islamic_dower' | 'us_community_property' | 'us_community_with_survivorship' | 'us_quasi_community' | 'hindu_separate'; /** * Free-text notes about this relationship */ notes?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'marriage_civil' | 'marriage_religious' | 'marriage_customary' | 'marriage_common_law' | 'civil_partnership' | 'civil_union' | 'domestic_partnership' | 'de_facto' | 'cohabitation' | 'engagement' | string | Array | Array | 'active' | 'separated_informal' | 'separated_legal' | 'divorced' | 'annulled' | 'dissolved' | 'widowed' | 'void' | 'putative' | Jurisdiction | Array | Array | 'community_of_property' | 'separation_of_property' | 'community_of_acquests' | 'deferred_community' | 'separate_as_modified' | 'islamic_dower' | 'us_community_property' | 'us_community_with_survivorship' | 'us_quasi_community' | 'hindu_separate' | string | Provenance | undefined; }; /** * Kinship * * A familial bond between two people. Essential for intestacy calculation — inheritance rules in every jurisdiction depend on parent-child, sibling, and other familial relationships. Direction: fromPersonId is the parent/elder, toPersonId is the child/younger (for parent-child types). Indian extensions may add parent_child_coparcenary, karta_member. See extensions/hindu-succession/hindu-succession.json */ export type Kinship = unknown & { /** * Unique identifier for this kinship bond within the INHERIT document */ id: string; /** * The type of familial bond. Use the lineage property to distinguish paternal from maternal lines (critical for Islamic faraid, Hindu succession, matrilineal African systems). Use bloodDegree for whole/half-blood distinction (English, Hong Kong, New Zealand intestacy) */ kinshipType: 'parent_child_biological' | 'parent_child_adopted' | 'parent_child_step' | 'parent_child_foster' | 'parent_child_acknowledged' | 'sibling' | 'half_sibling' | 'step_sibling' | 'grandparent_grandchild' | 'uncle_aunt' | 'cousin'; /** * The parent, elder, or senior person in this kinship bond (Person.id). For parent-child types, this is always the parent */ fromPersonId: string; /** * Human-readable display name for the referenced from person */ fromPersonIdDisplay?: string; /** * The child, younger, or junior person in this kinship bond (Person.id). For parent-child types, this is always the child */ toPersonId: string; /** * Human-readable display name for the referenced to person */ toPersonIdDisplay?: string; /** * The legal recognition status of this familial bond */ legalStatus?: 'recognised' | 'contested' | 'pending' | 'unrecognised'; /** * Legitimacy status. Many modern jurisdictions have abolished this distinction, but it remains critical for Islamic and some customary inheritance systems */ legitimacy?: 'legitimate' | 'illegitimate' | 'legitimated' | 'not_applicable'; /** * Date of the adoption order, for PARENT_CHILD_ADOPTED kinships */ adoptionDate?: string; /** * Court order reference or adoption certificate number */ courtOrderRef?: string; /** * Free-text notes about this kinship. Use for context on contested kinships, acknowledgement records, or customary recognition */ notes?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Date this family relationship became effective (e.g. date of marriage for step-child, date of adoption order) */ effectiveFrom?: string; /** * Date this family relationship ended (e.g. date of divorce). Null means ongoing. Missing means unknown */ effectiveTo?: string | null; /** * The legal basis for this family relationship — determines inheritance rights in jurisdiction-specific calculators */ legalBasis?: 'biological' | 'adoption_order' | 'marriage' | 'civil_partnership' | 'treated_as_child' | 'surrogacy_order' | 'parental_order' | 'customary_adoption'; /** * Jurisdictions where this relationship is legally recognised. A same-sex adoption may be recognised in GB-ENG but not in SA */ recognisedIn?: Array<{ jurisdiction: Jurisdiction; recognised: boolean; }>; /** * Details of a parental order (surrogacy), when legalBasis is parental_order */ parentalOrderDetails?: { orderDate?: string; orderingCourt?: string; surrogatePersonId?: string; biologicalParentIds?: Array; }; [key: string]: { [key: string]: unknown; } | string | 'parent_child_biological' | 'parent_child_adopted' | 'parent_child_step' | 'parent_child_foster' | 'parent_child_acknowledged' | 'sibling' | 'half_sibling' | 'step_sibling' | 'grandparent_grandchild' | 'uncle_aunt' | 'cousin' | string | 'recognised' | 'contested' | 'pending' | 'unrecognised' | 'legitimate' | 'illegitimate' | 'legitimated' | 'not_applicable' | string | string | string | Provenance | string | null | 'biological' | 'adoption_order' | 'marriage' | 'civil_partnership' | 'treated_as_child' | 'surrogacy_order' | 'parental_order' | 'customary_adoption' | Array<{ jurisdiction: Jurisdiction; recognised: boolean; }> | { orderDate?: string; orderingCourt?: string; surrogatePersonId?: string; biologicalParentIds?: Array; } | undefined; }; /** * Cultural Disposition * * Cultural, religious, and regulatory constraints on how an asset or property may be disposed of. Covers sacred status, disposal restrictions, export controls, and whether the item can be bequeathed */ export type CulturalDisposition = { /** * Whether this item has religious or spiritual significance that restricts disposal */ sacredStatus?: 'secular' | 'consecrated' | 'ritually_significant' | 'inalienable_endowment'; /** * The cultural weight of this item — determines who should be consulted about its disposition */ culturalSignificance?: 'personal' | 'family_heirloom' | 'community' | 'national_heritage'; /** * Whether this item can be willed to another person. False for waqf endowments, some ancestral property, and inalienable cultural artefacts */ bequeathable?: boolean; /** * Specific restrictions on how this item may be disposed of, with the authority that imposes each restriction */ disposalRestrictions?: Array<{ /** * Name of the authority imposing this restriction */ authority?: string; /** * Category of the authority */ authorityType?: 'religious_body' | 'family_council' | 'clan_association' | 'tribal_council' | 'government' | 'heritage_authority'; /** * What the restriction requires */ requirement: string; /** * Jurisdiction where this restriction applies */ jurisdiction?: Jurisdiction; }>; /** * Legal restrictions on exporting this item from its current jurisdiction */ exportRestrictions?: Array<{ /** * Jurisdiction imposing the export restriction */ jurisdiction: Jurisdiction; /** * Category of export restriction */ restrictionType: 'cultural_property' | 'national_treasure' | 'antiquity' | 'protected_species' | 'controlled_goods'; /** * The government body or agency that controls export */ authority?: string; /** * Whether a licence or permit is required for export */ licenceRequired?: boolean; /** * Additional details about the restriction */ notes?: string; }>; }; /** * Media * * A media attachment — photograph, video, or document scan. Used for identification, valuation, condition documentation, and provenance records */ export type Media = { /** * URI pointing to the media file. May be an HTTPS URL, S3 URI, or other storage reference */ url: string; /** * Human-readable description of what this media shows */ caption?: string; /** * MIME type of the media file. Maps to Schema.org encodingFormat */ mediaType?: string; /** * Base64-encoded media content for self-contained documents. Use for small files (attestation scans, signatures, certificates) that must travel with the estate plan. For large files (photos, videos), use url instead */ content?: string; /** * The purpose of this media — what question does it answer? Enables executors and dealers to find specific documentation without scrolling through galleries */ viewType?: 'overview' | 'identification' | 'condition' | 'provenance' | 'maker_mark' | 'serial_number' | 'damage' | 'scale_reference' | 'label' | 'certificate' | 'receipt' | 'environment'; /** * When this media was captured. Useful for establishing condition at a point in time */ takenAt?: string; /** * URI for a smaller preview version of the media. Maps to Schema.org thumbnail */ thumbnailUrl?: string; }; /** * Property * * Real estate. Supports individual ownership, communal/family property (Nigeria), HUF coparcenary (India), government-vested land (Land Use Act), US community property, and informal/unregistered holdings */ export type Property = { /** * Unique identifier for this property within the INHERIT document */ id: string; /** * Display name for this property — a familiar label or street address. Should be recognisable to all parties involved in the estate */ name: string; /** * Territory-neutral property type. Use reference-data/local-term-mappings.json to display jurisdiction-appropriate labels in UIs */ propertyType?: 'detached' | 'attached' | 'apartment' | 'land' | 'commercial' | 'mixed_use' | 'rural' | 'mobile' | 'watercraft' | 'other'; /** * Physical address of the property */ address?: Address; /** * Owner's estimate of the property's current market value, in minor currency units */ estimatedValue?: Money; /** * Professional surveyor or valuer's assessment of the property value, in minor currency units */ professionalValuation?: Money; /** * Date the most recent valuation (estimated or professional) was performed */ valuationDate?: string; /** * Level of confidence in the stated valuation */ valuationConfidence?: 'estimated' | 'professional' | 'official' | 'unknown'; /** * Whether this is the testator's primary residence. Relevant for residence nil rate band (UK), homestead exemption (US), and similar tax reliefs */ isPrimaryResidence?: boolean; /** * How ownership of this property is legally structured */ ownershipType?: 'sole' | 'joint_tenants' | 'tenants_in_common' | 'trust' | 'tenancy_by_entirety'; /** * The testator's ownership share as a percentage. For joint tenants, typically 50% for two co-owners. For tenants in common, may be any split */ ownershipPercentage?: number; /** * The cultural or legal model of ownership. Goes beyond the simple legal title to capture communal and customary ownership forms */ ownershipModel?: 'individual' | 'joint' | 'communal_family' | 'huf_coparcenary' | 'tribal' | 'government_vested' | 'trust_held'; /** * How the property was acquired. Determines which succession law applies in India and other jurisdictions */ acquisitionType?: 'self_acquired' | 'ancestral_joint' | 'ancestral_severed' | 'inherited' | 'gifted' | 'stridhan' | 'communal' | 'waqf_endowed'; /** * Territory-neutral tenure type. Use reference-data/local-term-mappings.json to display jurisdiction-appropriate labels in UIs */ tenureType?: 'ownership' | 'lease' | 'communal' | 'customary' | 'informal' | 'government_allocated'; /** * Whether this property is formally registered with a land authority */ registrationStatus?: 'formally_registered' | 'informally_held' | 'community_acknowledged' | 'disputed' | 'undocumented'; /** * The type of evidence available to prove ownership. In many jurisdictions, informal evidence is the only kind available */ ownershipEvidence?: 'title_deed' | 'certificate_of_occupancy' | 'family_recognition' | 'community_testimony' | 'receipts_only' | 'none'; /** * Cultural, religious, and regulatory constraints on disposal of this property */ culturalDisposition?: CulturalDisposition; /** * The communal or family authority whose approval is required to dispose of this property */ communalAuthority?: { /** * Category of communal authority */ authorityType?: 'family_council' | 'clan_association' | 'religious_body' | 'tribal_council' | 'government'; /** * Whether approval from this authority is legally required before disposal */ approvalRequired?: boolean; /** * Name of the specific authority or person */ authorityName?: string; /** * Jurisdiction where this communal authority has legal standing */ jurisdiction?: Jurisdiction; }; /** * The succession regime governing this specific property. Overrides estate.defaultSuccessionRegime when present */ successionRegime?: { /** * The law governing succession for this property */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this property's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; }; /** * Reference to the Person.id of the current custodian of communal or family property. The custodian manages but does not own the property */ custodianPersonId?: string; /** * Human-readable display name for the referenced custodian person */ custodianPersonIdDisplay?: string; /** * Whether government or regulatory consent is required to transfer this property. Common in Nigeria (governor's consent) and for agricultural land in parts of India */ governmentConsentRequired?: boolean; /** * Whether this property is classified as immoveable, moveable, or mixed. Determines which conflict-of-laws rules apply */ mobilityType?: 'immoveable' | 'moveable' | 'mixed'; /** * Outstanding mortgage balance in minor currency units. If the property is mortgage-free, omit this field */ mortgageOutstanding?: Money; /** * Marital property character classification for US community property states. Determines whether the testator may dispose of the entire property or only their half */ characterClassification?: 'community' | 'separate' | 'quasi_community' | 'mixed' | 'not_applicable'; /** * US homestead exemption status. Protects the primary residence from creditors and may restrict the testator's ability to devise the property */ homesteadStatus?: { /** * Whether this property qualifies as a homestead */ isHomestead?: boolean; /** * Dollar value of the homestead exemption, if capped */ exemptionAmount?: Money; /** * Whether the homestead exemption has no dollar cap. True in Florida, Texas (rural), and several other states */ exemptionUnlimited?: boolean; /** * Whether this homestead is subject to restrictions on devise — e.g. Florida prohibits devising homestead away from a surviving spouse or minor children */ deviseRestriction?: boolean; /** * Additional notes on homestead status */ notes?: string; }; /** * Whether this property passes outside the probate estate — typically via joint tenancy with right of survivorship, a transfer-on-death deed, or a trust */ passesOutsideEstate?: boolean; /** * A life estate imposed by statute rather than by the will. The surviving spouse or other protected person has a right to occupy for life */ statutoryLifeEstate?: { /** * Reference to the Person.id of the life estate beneficiary */ beneficiaryPersonId?: string; /** * Human-readable display name for the referenced beneficiary person */ beneficiaryPersonIdDisplay?: string; /** * The statutory basis for this life estate */ basis?: string; /** * Any conditions on the life estate */ conditions?: string; }; /** * Free-text notes about this property. Use for unusual tenure arrangements, ongoing disputes, or planning considerations */ notes?: string; /** * Links to this property in external databases, portals, and registries — Land Registry, Rightmove, Zoopla, Zillow, council tax records, EPC certificates, etc */ externalLinks?: Array<{ /** * The external system or platform name */ system: string; /** * The platform-specific identifier for this property */ id: string; /** * Direct URL to the property's page on the external platform */ url?: string; /** * Human-readable label for display */ label?: string; /** * Timestamp when this link was last verified */ retrievedAt?: string; }>; /** * Photographs and videos of this property — exterior, interior, key rooms, any damage or features relevant to valuation */ images?: Array; /** * Controls who can see this property record */ visibility?: Visibility; /** * Per-field provenance records — how each field's value was obtained */ fieldProvenance?: Array; /** * Discussion comments on this entity */ comments?: Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }>; /** * Rental income details if the property is let — important for estate income tax and beneficiary entitlements */ rentalIncome?: { /** * Monthly rental income */ monthlyAmount?: Money; /** * Name of the current tenant */ tenantName?: string; /** * Date the current lease expires */ leaseEndDate?: string; /** * Organisation.id of the managing agent */ managingAgentOrganisationId?: string; /** * Human-readable display name for the referenced managing agent organisation */ managingAgentOrganisationIdDisplay?: string; }; /** * Energy Performance Certificate data. UK properties require an EPC for sale or letting. Rating A (most efficient) to G (least efficient). Legally significant — EPC below E cannot be let without exemption */ epc?: { /** * When this EPC data was retrieved from the register */ retrievedAt: string; /** * Overall EPC rating band */ rating?: 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G'; /** * Numeric energy efficiency score (1–100, higher is better) */ energyEfficiencyScore?: number; /** * Numeric environmental impact score (1–100, higher is better) */ environmentalImpactScore?: number; /** * When the EPC expires (valid for 10 years from issue) */ expiryDate?: string; /** * EPC certificate reference number */ certificateNumber?: string; /** * URL to the certificate on the EPC register */ certificateUrl?: string; /** * Total floor area in square metres */ floorArea?: number; /** * Primary heating system description */ heatingType?: string; }; /** * HM Land Registry data — title information, last sale price, and registered charges. Confirms ownership and surfaces encumbrances relevant to estate administration */ landRegistry?: { /** * When this data was retrieved from Land Registry */ retrievedAt: string; /** * Land Registry title number */ titleNumber?: string; /** * Class of title registered at Land Registry */ titleClass?: 'absolute' | 'qualified' | 'possessory' | 'good_leasehold' | string; /** * Last recorded sale price in minor units (pennies) */ lastSalePrice?: number; /** * Date of last recorded sale */ lastSaleDate?: string; /** * Tenure as recorded by Land Registry */ tenure?: 'freehold' | 'leasehold' | string; /** * Owner names as they appear on the register */ registeredOwners?: Array; /** * Number of registered charges (mortgages, restrictions, notices) */ chargesCount?: number; }; /** * Flood risk data from the Environment Agency (England) or equivalent national agency. Affects insurability, value, and estate planning decisions */ floodRisk?: { /** * When this flood risk data was retrieved */ retrievedAt: string; /** * Risk of flooding from rivers and the sea */ riverAndSeaRisk?: 'high' | 'medium' | 'low' | 'very_low' | string; /** * Risk of flooding from surface water */ surfaceWaterRisk?: 'high' | 'medium' | 'low' | 'very_low' | string; /** * Environment Agency flood zone designation */ floodZone?: '1' | '2' | '3a' | '3b' | string; /** * Name of the nearest river, stream, or watercourse */ nearestWatercourse?: string; /** * Whether the area has been affected by flooding in the past */ historicalFlooding?: boolean; }; /** * Leasehold-specific data — lease term, ground rent, service charge, freeholder. Relevant when tenureType is 'lease'. No conditional enforcement — allowed on any property for flexibility */ leasehold?: { /** * When this leasehold data was retrieved or last verified */ retrievedAt: string; /** * Date the lease commenced */ leaseStartDate?: string; /** * Original lease term in years */ leaseTerm?: number; /** * Approximate years remaining at retrievedAt. Below 80 years triggers mortgage difficulties; below 70 significantly impacts value */ yearsRemaining?: number; /** * Annual ground rent in minor units (pennies). Zero for peppercorn rents */ groundRent?: number; /** * Next ground rent review date */ groundRentReviewDate?: string; /** * Annual service charge in minor units (pennies) */ serviceCharge?: number; /** * Name of the freeholder or landlord */ freeholderName?: string; /** * Name of the managing agent or management company */ managementCompany?: string; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The jurisdiction whose succession law governs this item. Missing means defaults to estate domicile */ applicableLaw?: Jurisdiction; /** * Per-property tax treatment — how this property is classified for tax purposes */ taxTreatment?: { jurisdiction?: Jurisdiction; assetType?: 'immoveable' | 'moveable' | 'mixed' | 'exempt'; exemptions?: Array; reliefClaimed?: Array; }; /** * Tax relief eligibility for this asset or property (e.g. Agricultural Property Relief, Business Property Relief) */ taxReliefEligibility?: { /** * The type of tax relief claimed */ reliefType?: 'agricultural_property' | 'business_property' | 'woodland' | 'heritage' | 'charitable'; eligible?: boolean; /** * Relief percentage (e.g. 100 for full APR, 50 for partial BPR) */ percentage?: number; /** * Conditions for maintaining eligibility */ conditions?: string; jurisdiction?: Jurisdiction; statute?: string; }; [key: string]: { [key: string]: unknown; } | string | string | 'detached' | 'attached' | 'apartment' | 'land' | 'commercial' | 'mixed_use' | 'rural' | 'mobile' | 'watercraft' | 'other' | Address | Money | string | 'estimated' | 'professional' | 'official' | 'unknown' | boolean | 'sole' | 'joint_tenants' | 'tenants_in_common' | 'trust' | 'tenancy_by_entirety' | number | 'individual' | 'joint' | 'communal_family' | 'huf_coparcenary' | 'tribal' | 'government_vested' | 'trust_held' | 'self_acquired' | 'ancestral_joint' | 'ancestral_severed' | 'inherited' | 'gifted' | 'stridhan' | 'communal' | 'waqf_endowed' | 'ownership' | 'lease' | 'communal' | 'customary' | 'informal' | 'government_allocated' | 'formally_registered' | 'informally_held' | 'community_acknowledged' | 'disputed' | 'undocumented' | 'title_deed' | 'certificate_of_occupancy' | 'family_recognition' | 'community_testimony' | 'receipts_only' | 'none' | CulturalDisposition | { /** * Category of communal authority */ authorityType?: 'family_council' | 'clan_association' | 'religious_body' | 'tribal_council' | 'government'; /** * Whether approval from this authority is legally required before disposal */ approvalRequired?: boolean; /** * Name of the specific authority or person */ authorityName?: string; /** * Jurisdiction where this communal authority has legal standing */ jurisdiction?: Jurisdiction; } | { /** * The law governing succession for this property */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this property's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; } | string | 'immoveable' | 'moveable' | 'mixed' | 'community' | 'separate' | 'quasi_community' | 'mixed' | 'not_applicable' | { /** * Whether this property qualifies as a homestead */ isHomestead?: boolean; /** * Dollar value of the homestead exemption, if capped */ exemptionAmount?: Money; /** * Whether the homestead exemption has no dollar cap. True in Florida, Texas (rural), and several other states */ exemptionUnlimited?: boolean; /** * Whether this homestead is subject to restrictions on devise — e.g. Florida prohibits devising homestead away from a surviving spouse or minor children */ deviseRestriction?: boolean; /** * Additional notes on homestead status */ notes?: string; } | { /** * Reference to the Person.id of the life estate beneficiary */ beneficiaryPersonId?: string; /** * Human-readable display name for the referenced beneficiary person */ beneficiaryPersonIdDisplay?: string; /** * The statutory basis for this life estate */ basis?: string; /** * Any conditions on the life estate */ conditions?: string; } | string | Array<{ /** * The external system or platform name */ system: string; /** * The platform-specific identifier for this property */ id: string; /** * Direct URL to the property's page on the external platform */ url?: string; /** * Human-readable label for display */ label?: string; /** * Timestamp when this link was last verified */ retrievedAt?: string; }> | Array | Visibility | Array | Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }> | { /** * Monthly rental income */ monthlyAmount?: Money; /** * Name of the current tenant */ tenantName?: string; /** * Date the current lease expires */ leaseEndDate?: string; /** * Organisation.id of the managing agent */ managingAgentOrganisationId?: string; /** * Human-readable display name for the referenced managing agent organisation */ managingAgentOrganisationIdDisplay?: string; } | { /** * When this EPC data was retrieved from the register */ retrievedAt: string; /** * Overall EPC rating band */ rating?: 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G'; /** * Numeric energy efficiency score (1–100, higher is better) */ energyEfficiencyScore?: number; /** * Numeric environmental impact score (1–100, higher is better) */ environmentalImpactScore?: number; /** * When the EPC expires (valid for 10 years from issue) */ expiryDate?: string; /** * EPC certificate reference number */ certificateNumber?: string; /** * URL to the certificate on the EPC register */ certificateUrl?: string; /** * Total floor area in square metres */ floorArea?: number; /** * Primary heating system description */ heatingType?: string; } | { /** * When this data was retrieved from Land Registry */ retrievedAt: string; /** * Land Registry title number */ titleNumber?: string; /** * Class of title registered at Land Registry */ titleClass?: 'absolute' | 'qualified' | 'possessory' | 'good_leasehold' | string; /** * Last recorded sale price in minor units (pennies) */ lastSalePrice?: number; /** * Date of last recorded sale */ lastSaleDate?: string; /** * Tenure as recorded by Land Registry */ tenure?: 'freehold' | 'leasehold' | string; /** * Owner names as they appear on the register */ registeredOwners?: Array; /** * Number of registered charges (mortgages, restrictions, notices) */ chargesCount?: number; } | { /** * When this flood risk data was retrieved */ retrievedAt: string; /** * Risk of flooding from rivers and the sea */ riverAndSeaRisk?: 'high' | 'medium' | 'low' | 'very_low' | string; /** * Risk of flooding from surface water */ surfaceWaterRisk?: 'high' | 'medium' | 'low' | 'very_low' | string; /** * Environment Agency flood zone designation */ floodZone?: '1' | '2' | '3a' | '3b' | string; /** * Name of the nearest river, stream, or watercourse */ nearestWatercourse?: string; /** * Whether the area has been affected by flooding in the past */ historicalFlooding?: boolean; } | { /** * When this leasehold data was retrieved or last verified */ retrievedAt: string; /** * Date the lease commenced */ leaseStartDate?: string; /** * Original lease term in years */ leaseTerm?: number; /** * Approximate years remaining at retrievedAt. Below 80 years triggers mortgage difficulties; below 70 significantly impacts value */ yearsRemaining?: number; /** * Annual ground rent in minor units (pennies). Zero for peppercorn rents */ groundRent?: number; /** * Next ground rent review date */ groundRentReviewDate?: string; /** * Annual service charge in minor units (pennies) */ serviceCharge?: number; /** * Name of the freeholder or landlord */ freeholderName?: string; /** * Name of the managing agent or management company */ managementCompany?: string; } | Provenance | Jurisdiction | { jurisdiction?: Jurisdiction; assetType?: 'immoveable' | 'moveable' | 'mixed' | 'exempt'; exemptions?: Array; reliefClaimed?: Array; } | { /** * The type of tax relief claimed */ reliefType?: 'agricultural_property' | 'business_property' | 'woodland' | 'heritage' | 'charitable'; eligible?: boolean; /** * Relief percentage (e.g. 100 for full APR, 50 for partial BPR) */ percentage?: number; /** * Conditions for maintaining eligibility */ conditions?: string; jurisdiction?: Jurisdiction; statute?: string; } | undefined; }; /** * Financial Asset Properties * * Category-specific properties for financial assets: bank accounts, pensions, ISAs, shares, bonds, crypto wallets, insurance policies, debts receivable */ export type Financial = { /** * Detailed shareholding information — company, share class, voting rights, restrictions. Relevant for BPR (UK), stepped-up basis (US), and controlling interest calculations */ shareholding?: { /** * Name of the company in which shares are held */ companyName?: string; /** * Company registration number */ companyNumber?: string; /** * Class of shares held */ shareClass?: string; /** * Number of shares held */ numberOfShares?: number; /** * Total shares issued by the company (for calculating percentage ownership) */ totalSharesIssued?: number; /** * Whether these shares carry voting rights */ votingRights?: boolean; /** * Whether transfer of these shares is restricted (e.g. pre-emption rights, shareholder agreement) */ restrictedTransfer?: boolean; /** * Stock exchange where shares are listed, if publicly traded. Null/absent for private companies */ listedExchange?: string; /** * Stock ticker symbol */ ticker?: string; /** * CUSIP identifier (US/Canada). 9-character alphanumeric */ cusip?: string; /** * International Securities Identification Number */ isin?: string; }; /** * Detailed business interest information — partnership shares, LLP membership, sole trader business. Relevant for BPR (UK), QFOBI (US), and succession planning */ businessInterest?: { /** * Trading name of the business */ businessName?: string; /** * Legal structure of the business */ businessType?: 'sole_trader' | 'partnership' | 'llp' | 'limited_company' | 'plc' | 'franchise' | 'cooperative' | 'other'; /** * The testator's ownership percentage */ ownershipPercentage?: number; /** * Whether the testator holds a controlling interest. Affects BPR eligibility and valuation discounts */ controllingInterest?: boolean; /** * Whether a written partnership/operating agreement exists */ partnershipAgreement?: boolean; /** * What the partnership/operating agreement says about succession on death */ successionProvision?: string; /** * Approximate annual turnover — helps with BPR qualification and valuation */ annualTurnover?: Money; /** * Number of employees */ employees?: number; }; /** * Detailed pension information — scheme type, nominated beneficiaries, death benefits. Pensions often pass outside the estate via nomination */ pension?: { /** * The type of pension scheme */ schemeType?: 'defined_benefit' | 'defined_contribution' | 'sipp' | 'state_pension' | 'annuity' | 'drawdown' | 'other'; /** * Pension provider name */ provider?: string; /** * Policy or membership reference number */ policyReference?: string; /** * Person IDs of nominated beneficiaries. Pension trustees usually have discretion but will consider nominations */ nominatedBeneficiaries?: Array; /** * Date the beneficiary nomination was last updated */ nominationDate?: string; /** * Type of death benefit payable from this pension */ deathBenefitType?: 'lump_sum' | 'dependants_pension' | 'drawdown_transfer' | 'annuity_guarantee' | 'none'; /** * Whether the pension has been accessed/crystallised. Affects tax treatment on death (UK: pre-75 tax-free, post-75 taxed as income) */ crystallised?: boolean; /** * Percentage of lifetime allowance used (UK). Abolished April 2024 but transitional protections remain */ lifetimeAllowanceUsed?: number; /** * The broad pension category, covering international pension types */ pensionType?: 'occupational' | 'personal' | 'stakeholder' | 'sipp' | 'ssas' | 'workplace' | 'state' | 'cpf' | 'epf' | 'other' | string; /** * Reference to the Organisation.id of the pension provider */ pensionProviderOrganisationId?: string; /** * Membership or scheme reference number */ pensionMemberNumber?: string; /** * Structured death benefit nomination — who receives pension benefits on death, and the terms */ deathBenefitNomination?: { /** * Reference to the Person.id of the nominated beneficiary */ nomineePersonId?: string; /** * Date the nomination was made or last updated */ nominationDate?: string; /** * Date the nomination should next be reviewed */ nominationReviewDate?: string; /** * Whether the nomination is believed to be current and valid */ nominationCurrent?: boolean; /** * Date the nomination expires, if applicable */ nominationExpiryDate?: string; /** * Type of death benefit the nominee would receive */ benefitType?: 'lump_sum' | 'income' | 'pension' | 'discretionary'; /** * Estimated death benefit amount, in minor currency units */ estimatedAmount?: Money; }; /** * Date drawdown commenced, if the pension is in drawdown */ drawdownStartDate?: string; /** * Pension fund valuation at date of death */ pensionValuationAtDeath?: { /** * Estimated value at death */ estimatedValue?: Money; /** * Method used */ valuationMethod?: string; /** * Date of valuation */ valuationDate?: string; }; /** * Details of annuity continuation on death — whether payments continue and to whom */ annuityContinuation?: { /** * Whether an annuity is currently in force */ annuityInForce?: boolean; /** * Annual annuity amount in minor currency units */ annuityAmount?: Money; /** * What happens to the annuity on the holder's death */ continuationOnDeath?: 'terminates' | 'continues_to_spouse' | 'continues_to_beneficiary' | 'fixed_term'; /** * Person.id of the beneficiary who receives continuation payments */ continuationBeneficiaryPersonId?: string; }; }; /** * Life insurance policy details — type, sum assured, beneficiaries, trust status. Policies written in trust pass outside the estate */ insurancePolicy?: { /** * Type of insurance policy */ policyType?: 'term_life' | 'whole_life' | 'endowment' | 'critical_illness' | 'income_protection' | 'key_person' | 'other'; /** * Insurance company name */ provider?: string; /** * Policy reference number */ policyReference?: string; /** * The amount payable on death, in minor currency units */ sumAssured?: Money; /** * Whether the policy is written in trust. If true, proceeds pass outside the estate and are not subject to inheritance tax */ writtenInTrust?: boolean; /** * Names of the policy trustees, if written in trust */ trusteeNames?: Array; /** * Person IDs of named beneficiaries */ beneficiaryPersonIds?: Array; /** * How often premiums are paid */ premiumFrequency?: 'monthly' | 'annual' | 'single_premium' | 'paid_up'; /** * Policy expiry date (for term policies) */ expiryDate?: string; }; /** * Co-ownership details for assets held jointly or in common with others. Determines whether the asset passes by survivorship or under the will */ coOwnership?: { /** * Person IDs of co-owners */ coOwnerPersonIds?: Array; /** * How ownership is structured between co-owners */ ownershipType?: 'joint_tenants' | 'tenants_in_common' | 'community_property' | 'partnership' | 'other'; /** * The testator's ownership percentage */ ownershipPercentage?: number; /** * Date joint tenancy was severed to become tenants in common (if applicable) */ severanceDate?: string; }; /** * Intellectual property details — patents, copyrights, trademarks, trade secrets. IP succession varies by jurisdiction and type */ intellectualProperty?: { /** * Type of intellectual property */ ipType?: 'patent' | 'copyright' | 'trademark' | 'design_right' | 'trade_secret' | 'database_right' | 'other'; /** * Registration or application number */ registrationNumber?: string; /** * Intellectual property office where registered */ registrationOffice?: string; /** * Date the IP right expires */ expiryDate?: string; /** * Approximate annual revenue generated from this IP (licensing, royalties, etc.) */ annualRevenue?: Money; /** * Current licensees of this IP */ licensees?: Array; }; /** * Employee stock compensation details — options, RSUs, ESPPs. Vesting schedules and exercise windows are critical on death */ stockCompensation?: { /** * Type of stock compensation */ compensationType?: 'iso' | 'nso' | 'rsu' | 'espp' | 'phantom_stock' | 'sar' | 'other'; /** * Date the award was granted */ grantDate?: string; /** * Description of the vesting schedule */ vestingSchedule?: string; /** * Number of shares/units currently vested */ vestedQuantity?: number; /** * Number of shares/units not yet vested. May be forfeited on death depending on plan terms */ unvestedQuantity?: number; /** * Strike/exercise price per share for options */ exercisePrice?: Money; /** * Date the options expire. Estate typically has limited window to exercise after death */ expirationDate?: string; /** * Time allowed for estate to exercise options after death */ postDeathExerciseWindow?: string; /** * Whether unvested awards accelerate (fully vest) on death */ acceleratesOnDeath?: boolean; }; /** * Details of money owed to the testator by others. These are estate assets that the executor must collect */ debtReceivable?: { /** * Name of the person or organisation that owes the debt */ debtorName?: string; /** * Reference to Person.id if the debtor is in the people array */ debtorPersonId?: string; /** * Original amount of the debt */ originalAmount?: Money; /** * Amount currently outstanding */ outstandingAmount?: Money; /** * Annual interest rate on the debt, as a percentage */ interestRate?: number; /** * Whether the debt is secured against collateral */ secured?: boolean; /** * Reference to any loan agreement or promissory note */ documentRef?: string; /** * Likelihood of collecting this debt */ collectibility?: 'likely' | 'uncertain' | 'doubtful' | 'uncollectible'; }; }; /** * Vehicle Asset Properties * * Category-specific properties for vehicles: cars, motorcycles, boats, caravans, classic vehicles */ export type Vehicle = { /** * Structured vehicle data — identity, registration, and estate administration tracking. Present when category is 'vehicle'. Maps to schema:Vehicle in JSON-LD */ vehicle?: { /** * Vehicle registration number (number plate). Primary UK identifier. Format varies by jurisdiction */ registrationNumber?: string; /** * 17-character Vehicle Identification Number. International standard, globally unique per vehicle */ vin?: string; /** * Vehicle manufacturer. Use the DVLA-registered name where available */ make?: string; /** * Vehicle model name. DVLA VES API does not return this — must come from user input or VIN decode */ model?: string; /** * Trim level, edition, or variant */ variant?: string; /** * Four-digit year of manufacture */ yearOfManufacture?: number; /** * Date of first registration in the UK (or equivalent jurisdiction) */ dateOfFirstRegistration?: string; /** * DVLA-registered colour */ colour?: string; /** * Fuel type as reported by DVLA */ fuelType?: 'petrol' | 'diesel' | 'electric' | 'hybrid_petrol' | 'hybrid_diesel' | 'lpg' | 'other' | string; /** * Engine capacity in cubic centimetres (cc). Zero for electric vehicles */ engineCapacity?: number; /** * CO2 emissions in grams per kilometre */ co2Emissions?: number; /** * Type of vehicle */ vehicleType?: 'car' | 'motorcycle' | 'van' | 'motorhome' | 'trike' | 'sidecar_outfit' | 'other' | string; /** * Whether the vehicle is considered a classic or historic vehicle. In the UK, vehicles manufactured before 1 January 1977 are exempt from vehicle excise duty. Classic vehicles may need specialist valuation (Hagerty, auction houses) rather than standard guides */ isClassic?: boolean; /** * Whether the deceased was the registered keeper of this vehicle */ keeperStatus?: 'registered_keeper' | 'not_registered_keeper' | 'unknown' | string; /** * Status of the V5C registration document (logbook) */ v5cStatus?: 'held' | 'missing' | 'applied_for' | 'with_dvla' | string; /** * Type of finance arrangement on the vehicle. If HP or PCP, the vehicle is owned by the finance company, not the estate */ financeType?: 'none' | 'hp' | 'pcp' | 'lease' | 'loan' | 'unknown' | string; /** * Whether a Statutory Off Road Notification (SORN) is currently in effect */ sornDeclared?: boolean; /** * Tracks which estate administration steps have been completed for this vehicle */ deathActions?: { /** * Whether DVLA has been notified of the keeper's death */ dvlaNotified?: boolean; /** * When DVLA was notified */ dvlaNotifiedAt?: string; /** * Whether the vehicle insurer has been notified */ insurerNotified?: boolean; /** * When the insurer was notified */ insurerNotifiedAt?: string; /** * Whether the finance company has been notified (if applicable) */ financeCompanyNotified?: boolean; /** * Whether the finance has been settled or the vehicle returned */ financeSettled?: boolean; /** * Whether a refund has been claimed for remaining full months of vehicle tax */ taxRefundClaimed?: boolean; /** * What the executor intends to do with the vehicle */ intendedDisposal?: 'transfer_to_beneficiary' | 'sell' | 'scrap' | 'sorn_and_store' | 'undecided' | string; }; }; /** * Live vehicle check data from DVLA VES, DVSA MOT History, and HPI/finance check APIs. Point-in-time snapshot at retrievedAt */ vehicleCheck?: { /** * When this check data was fetched */ retrievedAt: string; /** * Current MOT expiry date */ motExpiry?: string; /** * Current MOT status */ motStatus?: 'valid' | 'expired' | 'no_mot_required' | 'sorn' | string; /** * Mileage at last MOT test */ lastMileage?: number; /** * Date of the last MOT mileage reading */ lastMileageDate?: string; /** * Number of advisory items at last MOT */ advisoryCount?: number; /** * Number of failure items at last MOT */ failureCount?: number; /** * DVLA vehicle tax status */ taxStatus?: 'taxed' | 'untaxed' | 'sorn' | 'not_taxed_for_on_road_use' | string; /** * When vehicle tax expires */ taxDueDate?: string; /** * Whether the vehicle appears insured on the Motor Insurance Database */ insuranceStatus?: 'insured' | 'not_insured' | 'unknown' | string; /** * Whether there is outstanding finance on the vehicle */ financeOutstanding?: boolean; /** * Finance settlement figure in minor units (pennies). The amount needed to clear the finance and take ownership */ financeSettlementAmount?: number; /** * Insurance write-off category, if applicable */ writeOffCategory?: 'A' | 'B' | 'S' | 'N' | 'none' | string; /** * Whether the vehicle is reported stolen */ stolenStatus?: 'clear' | 'reported_stolen' | 'unknown' | string; /** * Number of previous registered keepers */ previousKeepers?: number; /** * Number of registration plate changes in the vehicle's history */ plateChanges?: number; /** * Whether MOT mileage readings show a discrepancy (clocking indicator) */ mileageAnomaly?: boolean; }; }; /** * Digital Asset Properties * * Category-specific properties for digital assets: domains, social media, subscriptions, crypto wallets, cloud storage, NFTs, gaming accounts */ export type Digital = { /** * Structured access information for digital assets — login credentials, 2FA, recovery methods, and platform death policies. Critical for executors managing the digital estate */ digitalAccess?: { /** * Username or login identifier for this account */ username?: string; /** * Where the password is stored — a password manager, physical location, or person who holds it */ passwordStorageLocation?: string; /** * Name of the password manager holding credentials for this account */ passwordManager?: string; /** * Whether two-factor authentication is enabled on this account */ twoFactorEnabled?: boolean; /** * Methods available to recover access to this account if the primary credentials are unavailable */ recoveryMethods?: Array<{ /** * Type of recovery method */ type?: 'backup_codes' | 'email' | 'phone' | 'security_key'; /** * Where this recovery method or device is stored */ location?: string; }>; /** * The platform's policy for handling accounts after the holder's death */ platformDeathPolicy?: 'memorialise' | 'delete' | 'transfer' | 'archive' | 'unknown' | string; /** * Whether a legacy contact has been configured on the platform (e.g. Google Inactive Account Manager, Facebook Legacy Contact) */ legacyContactConfigured?: boolean; /** * Reference to the Person.id configured as the platform's legacy contact */ legacyContactPersonId?: string; }; /** * Social media account details for digital assets */ socialMedia?: { /** * The social media platform */ platform?: 'facebook' | 'instagram' | 'tiktok' | 'twitter_x' | 'linkedin' | 'threads' | 'youtube' | 'pinterest' | 'other' | string; /** * Username or handle */ username?: string; /** * Direct URL to the profile */ url?: string; /** * Number of followers */ followerCount?: number; /** * Whether the account generates revenue */ monetised?: boolean; /** * Preferred action after death */ postDeathAction?: 'memorialise' | 'delete' | 'transfer' | 'archive' | 'unknown' | string; /** * Person.id to transfer the account to */ transferToPersonId?: string; }; /** * Cryptocurrency wallet and key access information */ cryptoAccess?: { /** * The blockchain network */ blockchain?: 'bitcoin' | 'ethereum' | 'solana' | 'cardano' | 'other' | string; /** * Type of wallet */ walletType?: 'hardware' | 'software' | 'exchange' | 'custodian' | 'paper'; /** * Public wallet address */ walletAddress?: string; /** * Where the private key is stored — DO NOT store the key itself */ privateKeyLocation?: string; /** * Where the seed phrase is stored — DO NOT store it */ seedPhraseLocation?: string; /** * Organisation.id of the exchange */ exchangeOrganisationId?: string; /** * Original cost basis for CGT */ costBasis?: Money; }; /** * Cloud storage account details for digital assets — provider, usage, important folders, family photo access */ cloudStorage?: { /** * Cloud storage provider */ provider?: 'google_drive' | 'onedrive' | 'icloud' | 'dropbox' | 'aws_s3' | 'other' | string; /** * Amount of storage used */ storageUsed?: string; /** * Important folders that need attention during estate administration */ importantFolders?: Array<{ /** * Folder name */ name?: string; /** * Description of folder contents */ contents?: string; /** * What should happen to this folder */ action?: 'archive' | 'delete' | 'transfer'; }>; /** * Whether the account contains family photos that should be preserved and shared */ familyPhotoAccess?: boolean; }; /** * Domain name registration details — registrar, expiry, transfer locks. Critical for executors managing digital estates with web properties */ domainNameAccess?: { /** * The registered domain name */ domainName?: string; /** * Domain registrar name */ registrar?: string; /** * Organisation.id of the registrant, if the domain is held by an organisation */ registrantOrganisationId?: string; /** * Domain registration expiry date */ expiryDate?: string; /** * Whether automatic renewal is enabled */ autoRenew?: boolean; /** * Whether the domain has a transfer lock (registrar lock / clientTransferProhibited) */ transferLocked?: boolean; /** * Where the transfer auth code is stored — reference only, never the code itself */ authCodeLocation?: string; /** * Nameservers currently assigned to the domain */ nameservers?: Array; }; /** * Non-fungible token (NFT) details — blockchain, contract, token identifier, and marketplace information */ nftAccess?: { /** * The blockchain network hosting the NFT */ blockchain?: 'bitcoin' | 'ethereum' | 'solana' | 'cardano' | 'polygon' | 'other' | string; /** * Smart contract address for the NFT collection */ contractAddress?: string; /** * Token identifier — string because can be very large integers */ tokenId?: string; /** * The token standard used by the NFT contract */ tokenStandard?: 'erc_721' | 'erc_1155' | 'other' | string; /** * Primary marketplace where this NFT is listed or was purchased */ marketplace?: string; /** * Direct URL to the NFT listing on the marketplace */ marketplaceUrl?: string; /** * Points to off-chain metadata JSON (tokenURI) */ metadataUri?: string; }; /** * Monetised online content — YouTube channels, Substack newsletters, Patreon pages, and similar revenue-generating content platforms */ monetisedContentAccess?: { /** * Content platform */ platform?: 'youtube' | 'substack' | 'etsy' | 'patreon' | 'twitch' | 'spotify' | 'medium' | 'other' | string; /** * Direct URL to the channel or storefront */ channelUrl?: string; /** * Display name of the channel or storefront */ channelName?: string; /** * Number of subscribers or followers on the platform */ subscriberCount?: number; /** * Approximate monthly revenue from the platform, in minor currency units */ monthlyRevenue?: Money; /** * Current monetisation status of the content */ monetisationStatus?: 'active' | 'suspended' | 'demonetised' | 'pending' | 'none' | string; /** * Primary type of content produced */ contentType?: 'video' | 'audio' | 'written' | 'mixed' | 'other' | string; /** * How the content generates revenue */ revenueModel?: 'advertising' | 'subscription' | 'tips' | 'affiliate' | 'merchandise' | 'mixed' | string; }; /** * Loyalty programme points and rewards — airline miles, hotel points, retailer schemes. Some programmes permit post-death transfer; others forfeit on death */ loyaltyAccess?: { /** * Name of the loyalty programme */ programme?: string; /** * Organisation that operates the programme */ programmeProvider?: string; /** * Current points balance */ pointsBalance?: number; /** * Approximate cash equivalent of the points balance, in minor currency units */ cashEquivalent?: Money; /** * Date when the points expire if not used */ expiryDate?: string; /** * Whether the programme permits transfer of points after death */ transferable?: boolean; /** * URL to the programme's transfer or bereavement page */ transferUrl?: string; }; /** * Gaming platform account details — Steam, Xbox, PlayStation, and similar platforms with virtual currencies and digital game libraries */ gamingAccess?: { /** * Gaming platform */ platform?: 'steam' | 'xbox' | 'playstation' | 'nintendo' | 'epic' | 'roblox' | 'other' | string; /** * Account name or gamertag on the platform */ accountName?: string; /** * Balance of virtual currency on the platform */ virtualCurrencyBalance?: number; /** * Name of the virtual currency */ virtualCurrencyName?: string; /** * Whether the platform permits account or library transfer after death */ transferable?: boolean; /** * Estimated real-world value of the account's digital assets, in minor currency units */ estimatedRealValue?: Money; }; /** * Instructions for what should happen to a digital asset or account after death — memorialise, delete, transfer, archive, or preserve */ platformDelegation?: { /** * Desired post-death action for this digital asset */ action: 'memorialise' | 'delete' | 'transfer' | 'archive' | 'deactivate' | 'preserve' | string; /** * How long to wait before executing the action, as an ISO 8601 duration */ delayDuration?: string; /** * Person.id to transfer the asset to (when action is 'transfer') */ transferToPersonId?: string; /** * Free-text instructions for the executor regarding this digital asset */ specificInstructions?: string; /** * Whether the platform's native death/inactivity tool has been set up */ platformToolConfigured?: boolean; /** * Which platform tool has been configured, if any */ platformToolType?: 'inactive_account_manager' | 'legacy_contact' | 'digital_legacy' | 'memorialisation_request' | 'none' | 'other' | string; /** * Date when the platform tool was configured */ configuredDate?: string; }; /** * How a fiduciary (executor, personal representative) can gain lawful access to this digital asset after death */ fiduciaryAccess?: { /** * The method by which a fiduciary can access this digital asset */ accessMethod: 'designated_recipient' | 'legacy_contact' | 'inactive_account_manager' | 'court_order' | 'rufadaa_request' | 'platform_form' | 'credential_sharing' | 'none' | string; /** * Whether the chosen access method has been set up with the platform */ accessConfigured?: boolean; /** * Person.id of the designated recipient for this digital asset */ designatedRecipientPersonId?: string; /** * RUFADAA catalogue vs content distinction */ accessScope?: 'catalogue_only' | 'full_content' | 'restricted' | 'unknown' | string; /** * URL to the platform's terms of service or bereavement policy */ termsOfServiceUrl?: string; /** * Summary of key constraints from the platform's terms of service that affect fiduciary access */ termsOfServiceConstraints?: string; }; }; /** * Business Asset Properties * * Category-specific properties for business assets: partnerships, company holdings, intellectual property, stock compensation */ export type Business = { /** * Detailed business interest information — partnership shares, LLP membership, sole trader business. Relevant for BPR (UK), QFOBI (US), and succession planning */ businessInterest?: { /** * Trading name of the business */ businessName?: string; /** * Legal structure of the business */ businessType?: 'sole_trader' | 'partnership' | 'llp' | 'limited_company' | 'plc' | 'franchise' | 'cooperative' | 'other'; /** * The testator's ownership percentage */ ownershipPercentage?: number; /** * Whether the testator holds a controlling interest. Affects BPR eligibility and valuation discounts */ controllingInterest?: boolean; /** * Whether a written partnership/operating agreement exists */ partnershipAgreement?: boolean; /** * What the partnership/operating agreement says about succession on death */ successionProvision?: string; /** * Approximate annual turnover — helps with BPR qualification and valuation */ annualTurnover?: Money; /** * Number of employees */ employees?: number; }; /** * Intellectual property details — patents, copyrights, trademarks, trade secrets. IP succession varies by jurisdiction and type */ intellectualProperty?: { /** * Type of intellectual property */ ipType?: 'patent' | 'copyright' | 'trademark' | 'design_right' | 'trade_secret' | 'database_right' | 'other'; /** * Registration or application number */ registrationNumber?: string; /** * Intellectual property office where registered */ registrationOffice?: string; /** * Date the IP right expires */ expiryDate?: string; /** * Approximate annual revenue generated from this IP (licensing, royalties, etc.) */ annualRevenue?: Money; /** * Current licensees of this IP */ licensees?: Array; }; /** * Employee stock compensation details — options, RSUs, ESPPs. Vesting schedules and exercise windows are critical on death */ stockCompensation?: { /** * Type of stock compensation */ compensationType?: 'iso' | 'nso' | 'rsu' | 'espp' | 'phantom_stock' | 'sar' | 'other'; /** * Date the award was granted */ grantDate?: string; /** * Description of the vesting schedule */ vestingSchedule?: string; /** * Number of shares/units currently vested */ vestedQuantity?: number; /** * Number of shares/units not yet vested. May be forfeited on death depending on plan terms */ unvestedQuantity?: number; /** * Strike/exercise price per share for options */ exercisePrice?: Money; /** * Date the options expire. Estate typically has limited window to exercise after death */ expirationDate?: string; /** * Time allowed for estate to exercise options after death */ postDeathExerciseWindow?: string; /** * Whether unvested awards accelerate (fully vest) on death */ acceleratesOnDeath?: boolean; }; /** * Co-ownership details for assets held jointly or in common with others. Determines whether the asset passes by survivorship or under the will */ coOwnership?: { /** * Person IDs of co-owners */ coOwnerPersonIds?: Array; /** * How ownership is structured between co-owners */ ownershipType?: 'joint_tenants' | 'tenants_in_common' | 'community_property' | 'partnership' | 'other'; /** * The testator's ownership percentage */ ownershipPercentage?: number; /** * Date joint tenancy was severed to become tenants in common (if applicable) */ severanceDate?: string; }; }; /** * General Asset Properties * * Category-specific properties for general tangible assets: art, antiques, jewellery, collectibles, books, wine, clothing, firearms, musical instruments, property contents */ export type General = { /** * Result of a stolen art check against the Art Loss Register (ALR) or equivalent database. Required by auction houses before sale of art, antiques, and high-value collectibles */ stolenArtCheck?: { /** * When the check was performed */ retrievedAt: string; /** * Outcome of the stolen art check */ result?: 'clear' | 'flagged' | 'inconclusive' | string; /** * ALR certificate or search reference number */ certificateReference?: string; /** * URL to the ALR certificate or search result */ certificateUrl?: string; /** * Who performed the check — person name, organisation, or system identifier */ checkedBy?: string; }; /** * Structured gemological certificate data from GIA, AGS, or other grading laboratory. Confirms stone identity, quality grades, and weight — essential for insurance and sale valuation */ gemologicalCertificate?: { /** * When this certificate data was retrieved or verified */ retrievedAt: string; /** * The grading laboratory that issued the certificate */ laboratory?: 'gia' | 'ags' | 'igi' | 'hrd' | 'egl' | string; /** * Certificate or report number */ certificateNumber?: string; /** * URL to verify the certificate online with the issuing laboratory */ verificationUrl?: string; /** * Type of gemstone */ stoneType?: string; /** * Weight in carats */ caratWeight?: number; /** * Colour grade as assigned by the laboratory */ colourGrade?: string; /** * Clarity grade as assigned by the laboratory */ clarityGrade?: string; /** * Cut grade as assigned by the laboratory (diamonds only — not all labs grade cut for coloured stones) */ cutGrade?: string; }; }; /** * A single service, maintenance, or restoration record for a mechanical or valuable item. Used for watches, vehicles, clocks, musical instruments, and any item with a service lifecycle */ export type ServiceRecord = { /** * When the service was performed */ serviceDate: string; /** * Who performed the service (manufacturer service centre, independent specialist, etc.) */ provider?: string; /** * What was done */ description?: string; /** * Cost of the service, in minor currency units */ cost?: Money; /** * Reference to a service certificate, receipt, or MOT certificate */ documentReference?: string; }; /** * Asset * * A non-property asset: financial accounts, personal property, vehicles, digital assets, business interests, Islamic finance instruments, etc */ export type Asset = unknown & { /** * Unique identifier for this asset within the INHERIT document */ id: string; /** * Display name for this asset. Should be specific enough to identify the item during probate */ name: string; /** * Top-level category from the INHERIT Product Taxonomy. Use the `subcategory` field for finer classification. See `reference-data/category-guidance.json` for valid subcategories, recommended identifiers, and photography guidance per category */ category: 'financial' | 'vehicle' | 'digital' | 'business' | 'property_contents' | 'jewellery_watches' | 'art' | 'antiques' | 'collectibles' | 'musical_instruments' | 'books_manuscripts' | 'wine_spirits' | 'clothing_textiles' | 'firearms_sporting' | 'islamic_financial' | 'other'; /** * Finer classification within the top-level category. Values are defined in reference-data/category-guidance.json but the field is freeform to accommodate jurisdiction-specific asset types. Examples: financial → 'pension', collectibles → 'model_railways', vehicle → 'classic_vehicle' */ subcategory?: string; /** * Owner's estimate of the asset's current value, in minor currency units */ estimatedValue?: Money; /** * Professional valuation of the asset, in minor currency units */ professionalValuation?: Money; /** * Date of the most recent valuation */ valuationDate?: string; /** * Level of confidence in the stated valuation */ valuationConfidence?: 'estimated' | 'professional' | 'official' | 'unknown'; /** * Physical condition of the asset. Affects resale value — dealers use this to price items. Pair with conditionSystem and conditionGrade for domain-specific grading. Use 'not_applicable' for financial assets where condition is meaningless */ condition?: 'excellent' | 'good' | 'fair' | 'poor' | 'unknown' | 'not_applicable'; /** * Number of items if this represents multiple identical or similar items */ quantity?: number; /** * Where this asset is physically stored or held — a bank, safe, property, or institution */ location?: string; /** * Reference to a Property.id if this asset is located at a specific property in the estate */ propertyId?: string; /** * Reference to the AssetCollection.id this asset belongs to. An asset may belong to at most one collection. If set, this asset's value contributes to the collection's total */ assetCollectionId?: string; /** * Reference to a Space.id representing where this item is physically stored. Critical for collections spread across multiple properties or countries — affects probate jurisdiction and dealer collection logistics */ spaceId?: string | null; /** * External identifiers — serial numbers, account numbers, policy references, registration numbers, etc */ identifiers?: Array; /** * Links to this asset in external databases, marketplaces, and registries. The universal connector — any external system can be referenced without a schema change. Use identifiers for formal identifier schemes (ISBN, VIN, NINO); use externalLinks for platform-specific references, product pages, and database entries */ externalLinks?: Array<{ /** * The external system or platform name. Use lowercase, no spaces */ system: string; /** * The platform-specific identifier for this asset */ id: string; /** * Direct URL to the asset's page on the external platform. Optional — some systems are API-only */ url?: string; /** * Human-readable label for display. Optional — defaults to the system name */ label?: string; /** * Timestamp when this link was last verified or data was last retrieved */ retrievedAt?: string; }>; /** * URI pointing to the manufacturer's or retailer's official product page for this exact item. Distinct from storageRef (document storage) and externalLinks (database references). Enables direct linking to manufacturer specifications, manuals, and warranty information */ productPage?: string; /** * Prior ownership records — establishes the chain of provenance for the asset. Critical for art, antiques, and high-value collectibles */ provenanceChain?: Array<{ /** * Description of this provenance record */ description: string; /** * Name of the previous owner (may be anonymised) */ ownerName?: string; /** * Approximate start date of this ownership period */ fromDate?: string; /** * Approximate end date of this ownership period */ toDate?: string; /** * How the owner acquired the asset */ acquisitionMethod?: 'purchase' | 'inheritance' | 'gift' | 'commission' | 'restitution' | 'auction' | 'unknown'; /** * Where this provenance information came from */ source?: string; /** * Link to supporting evidence (sale record, catalogue entry, etc.) */ evidenceUrl?: string; }>; /** * Photographs, videos, and document scans. Vision-capable AI agents use these to identify items, assess condition, and find visual matches on marketplaces. Use viewType from media.json to categorize each media item */ images?: Array; /** * Whether the asset was held at death, is receivable post-death, or is contingent on a future event */ possessionStatus?: 'possessed_at_death' | 'receivable' | 'contingent'; /** * Whether this asset is classified as immoveable or moveable property. Affects which conflict-of-laws rules apply in cross-border estates */ mobilityType?: 'immoveable' | 'moveable' | 'mixed'; /** * How this asset was acquired. Determines succession rules in Indian and other customary systems */ acquisitionType?: 'self_acquired' | 'ancestral_joint' | 'ancestral_severed' | 'inherited' | 'gifted' | 'stridhan' | 'communal' | 'waqf_endowed'; /** * Whether ownership of this asset is formally registered or documented */ registrationStatus?: 'formally_registered' | 'informally_held' | 'community_acknowledged' | 'disputed' | 'undocumented'; /** * The type of evidence available to prove ownership of this asset */ ownershipEvidence?: 'title_deed' | 'certificate_of_occupancy' | 'family_recognition' | 'community_testimony' | 'receipts_only' | 'none'; /** * Cultural, religious, and regulatory constraints on disposal of this asset */ culturalDisposition?: CulturalDisposition; /** * The communal or family authority whose approval is required to dispose of this asset */ communalAuthority?: { /** * Category of communal authority */ authorityType?: 'family_council' | 'clan_association' | 'religious_body' | 'tribal_council' | 'government'; /** * Whether approval from this authority is legally required before disposal */ approvalRequired?: boolean; /** * Name of the specific authority or person */ authorityName?: string; /** * Jurisdiction where this communal authority has legal standing */ jurisdiction?: Jurisdiction; }; /** * The succession regime governing this specific asset. Overrides estate.defaultSuccessionRegime when present */ successionRegime?: { /** * The law governing succession for this asset */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this asset's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; }; /** * Named beneficiary designation for this asset. Assets with beneficiary designations pass outside the probate estate — the will does not control their distribution */ beneficiaryDesignation?: { /** * Person IDs of the primary beneficiaries */ primaryBeneficiaryPersonIds?: Array; /** * Person IDs of contingent beneficiaries (receive if primary beneficiaries predecease) */ contingentBeneficiaryPersonIds?: Array; /** * The type of beneficiary designation */ designationType?: 'retirement_account' | 'life_insurance' | 'superannuation' | 'pod_account' | 'other'; /** * Reference to the NonprobateTransfer entity that tracks this designation */ linkedNonprobateTransferId?: string; }; /** * Digital access consent under RUFADAA or equivalent legislation. Governs whether executors and fiduciaries can access the deceased's digital accounts and assets */ digitalAccessConsent?: { /** * Whether the account holder has given consent for fiduciary access */ consentGiven?: boolean; /** * The scope of access granted to fiduciaries */ scope?: 'full_access' | 'limited_access' | 'no_access'; /** * Reference to the Person.id designated to receive access to this digital asset */ designatedRecipientPersonId?: string; /** * Human-readable display name for the referenced designated recipient person */ designatedRecipientPersonIdDisplay?: string; /** * Whether the user set access directives through the platform's own tool (e.g. Google Inactive Account Manager, Facebook Legacy Contact). Platform directives take priority under RUFADAA */ onlineToolDirective?: boolean; }; /** * Whether this asset passes outside the probate estate. Beneficiary designations, POD accounts, and jointly held assets typically bypass the will */ passesOutsideEstate?: boolean; /** * Free-text notes about this asset. Use for provenance, sentimental value, special handling instructions, or anything not captured by structured fields */ notes?: string; /** * Structured description of the asset — what it is, its significance, and key details a dealer or executor would need. Distinct from 'notes' which is free-form */ description?: string; /** * The manufacturer or brand name. Accepts a plain string (backwards compatible) or a structured object with Wikidata linkage for rich product data. AI agents should use this as a primary search dimension when finding comparables */ brand?: string | { /** * Brand or manufacturer name */ name: string; /** * Wikidata Q-number for this brand. Resolves to structured data via the Wikidata API — founding year, country, parent company, logo, official website, product categories */ wikidataId?: string; /** * Official brand website */ website?: string; }; /** * The specific model, product line, or range name. Combined with brand and identifiers, this is the primary key for marketplace search. AI agents construct search queries from brand + model + subcategory */ model?: string; /** * Date the asset was acquired by the current owner. Used for capital gains tax calculations, insurance claims, and provenance. Maps to Schema.org purchaseDate */ purchaseDate?: string; /** * Whether original packaging, documentation, and accessories are present. Affects value by 20–40% across watches, model railways, jewellery, and many other domains */ originalPackaging?: 'complete' | 'partial' | 'box_only' | 'papers_only' | 'none' | 'unknown'; /** * Third party currently holding this asset — a bank (safe deposit), storage facility (bonded wine), repairer (watch at jeweller), gallery (art on loan), or institution. The executor needs to know who to contact */ custodian?: { /** * Name of the person or organisation holding the asset */ name?: string; /** * Email address for the custodian */ contactEmail?: string; /** * Phone number for the custodian */ contactPhone?: string; /** * The nature of the custodial relationship */ relationship?: string; /** * Account or reference number with the custodian */ reference?: string; }; /** * The grading system used for the conditionGrade value. Allows domain-specific condition assessment alongside the generic condition field */ conditionSystem?: 'goldmine' | 'sheldon' | 'ags' | 'bsc' | 'gia' | 'watch_trade' | 'classic_vehicle' | 'book_trade' | string; /** * The specific grade within the conditionSystem. Meaningful only when conditionSystem is set */ conditionGrade?: string; /** * URI pointing to the official documentation of the grading standard used. Enables tools to display the correct grading scale and interpret the conditionGrade value */ conditionStandard?: string; /** * How urgently this asset needs attention after the testator's death. Drives the executor's priority list */ urgency?: 'immediate' | 'within_7_days' | 'within_30_days' | 'none'; /** * Explanation of why this asset is urgent. Particularly important for 'immediate' items */ urgencyReason?: string; /** * Reference to another Asset.id if this asset is physically contained within or logically part of another asset. Enables hierarchical asset nesting — e.g. a watch inside a safe, tools inside a toolbox */ containedInAssetId?: string; /** * Insurance coverage for this asset. The executor needs to know what's insured, by whom, and whether cover continues after death */ insurance?: { /** * Name of the insurance provider */ provider?: string; /** * Policy reference number */ policyReference?: string; /** * The insured value in minor currency units */ insuredValue?: Money; /** * Next renewal date. Important — cover may lapse if not renewed after death */ renewalDate?: string; /** * Additional insurance notes */ notes?: string; }; /** * Where the asset was purchased or acquired from. Collectors track provenance — valuable for dealers and for establishing authenticity */ purchasedFrom?: string; /** * Provenance record when this entity was created by splitting a larger entity. The original entity is typically archived after the split */ splitFrom?: { /** * The type of entity that was split */ entityType: 'asset' | 'asset_collection'; /** * The id of the original entity that was split */ entityId: string; /** * When the split occurred */ splitAt: string; /** * Why the split was requested */ reason?: string; }; /** * How this specific entity's data was captured. Overrides the document-level default if set */ dataProvenance?: 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated'; /** * Keywords for marketplace search — AI-generated or human-curated. Memoization: once derived, cached here so subsequent agents reuse them instantly rather than re-deriving */ searchTerms?: Array; /** * Structured search instructions for comparable-finding agents. Acts as agent memory — the item teaches future agents how to find its peers */ comparableSearchProfile?: { /** * Marketplaces and platforms to search */ platforms?: Array; /** * Natural-language query an agent should use */ searchQuery?: string; /** * Key-value filters to narrow results. Agents map to platform-specific parameters */ filters?: { [key: string]: string; }; /** * Platforms explicitly excluded */ excludePlatforms?: Array; /** * When an agent last executed this search profile */ lastSearchedAt?: string; /** * How often this item should be re-searched */ searchFrequency?: 'once' | 'weekly' | 'monthly' | 'on_demand'; }; /** * AI-suggested subcategory refinement, kept separate from the human-set subcategory. Accepted when the user confirms. Provenance: always AI-generated */ suggestedSubcategory?: string; /** * Numeric reliability score (0-100) for the current valuation. Computed from: recency, method, corroborating comparables, variance between estimates. Companion to the categorical valuationConfidence enum — the enum captures source, this number captures trustworthiness now. Agents use this to prioritise which assets need re-valuation */ valuationReliability?: number; /** * When this entity's data was last verified by a human or authoritative source. Agents use this to decide whether to trust existing values or re-derive them */ lastVerifiedAt?: string; /** * Who or what verified this entity — a person's name, a tool, or 'owner' */ verifiedBy?: string; /** * Controls who can see this asset. Some assets (firearms, digital accounts, sensitive collections) may need restricted visibility */ visibility?: Visibility; /** * Per-field provenance records — how each field's value was obtained */ fieldProvenance?: Array; /** * Discussion comments on this entity */ comments?: Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }>; /** * Records that this entity was merged into another entity — the target entity is the canonical version */ mergedInto?: { /** * Type of the target entity */ entityType?: 'asset' | 'asset_collection'; /** * ID of the target entity */ entityId?: string; /** * When the merge occurred */ mergedAt?: string; /** * Why the entities were merged */ reason?: string; }; /** * Human-readable display name for the referenced storage location */ spaceIdDisplay?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The jurisdiction whose succession law governs this item. Missing means defaults to estate domicile */ applicableLaw?: Jurisdiction; /** * Per-asset tax treatment — how this asset is classified for tax purposes in a specific jurisdiction */ taxTreatment?: { jurisdiction?: Jurisdiction; assetType?: 'immoveable' | 'moveable' | 'mixed' | 'exempt'; exemptions?: Array; reliefClaimed?: Array; }; /** * Instructions for accessing this asset after death — steps, locations, holders. No secrets in the document, just instructions for finding them. Available for all asset categories (digital: crypto wallets, social media; physical: safes, storage units) */ accessInstructions?: { accessType?: string; platform?: string; visibility?: Visibility; /** * The estate role required to follow these instructions */ requiredRole?: string; steps?: Array<{ step: number; method: string; description?: string; location?: string; holderPersonId?: string; }>; memorialisation?: { preference?: 'transfer_to_beneficiary' | 'memorialise' | 'delete' | 'archive' | 'no_preference'; instructions?: string; }; lastVerified?: string; verifiedBy?: string; }; /** * The owner's current intention for this item. Absent means keeping (the default). Used by catalogue applications to track whether items are being actively managed, offered for sale, or allocated to specific people */ ownerIntent?: 'keeping' | 'considering' | 'thinning' | 'listed' | 'sold' | 'allocated' | 'donated'; /** * Active or historical listings of this item for sale on external channels. Tracks where the item is listed, its status, and sale outcome. Application-level data — not part of the estate interchange but carried alongside it for catalogue and dealer workflows */ listings?: Array<{ /** * The sales channel where this item is listed */ channel: 'ebay' | 'amazon' | 'shopify' | 'etsy' | 'own_website' | 'auction_house' | 'other'; /** * Human-readable name of the channel, especially when channel is other */ channelName?: string; /** * The platform-specific listing identifier */ listingId?: string; /** * Direct URL to the listing on the external platform */ listingUrl?: string; /** * Current status of this listing */ status: 'draft' | 'active' | 'sold' | 'withdrawn' | 'expired'; /** * The listed asking price */ askingPrice?: Money; /** * When this listing was created or last activated */ listedAt?: string; /** * When the item was sold via this listing, if applicable */ soldAt?: string | null; /** * The actual sale price, if sold */ soldPrice?: Money; }>; /** * Service, maintenance, and restoration records. Critical for watches (service intervals affect value), vehicles (MOT history, restoration), clocks, and musical instruments */ serviceHistory?: Array; /** * Insurance details for this item. Tracks which policy covers it, the agreed value, and when cover was last confirmed. Essential for executors who need to claim on the correct policy */ insuranceCover?: { /** * Name of the insurance company */ insurer?: string; /** * The insurance policy number */ policyNumber?: string; /** * The type of insurance policy covering this item */ policyType?: 'home_contents' | 'specialist_collectibles' | 'classic_vehicle' | 'individual_item' | 'fine_art' | 'jewellery' | 'other'; /** * The agreed or insured value, in minor currency units. May differ from market value */ agreedValue?: Money; /** * When the insurance cover for this item was last confirmed or reviewed */ coverConfirmedAt?: string; }; /** * How this item can be transported for selling or verification. Determines which logistics path the Deal Comparison uses */ shippingClass?: 'parcel' | 'large_item' | 'specialist_transport' | 'collection_only'; /** * Original documents, certificates, and packaging elements present with this item. Affects value significantly across many categories. Cross-category: watches, vehicles, books, art, and collectibles share some document types */ includedDocuments?: Array<'outer_box' | 'inner_box' | 'warranty_card' | 'cosc_certificate' | 'instruction_manual' | 'hang_tags' | 'service_booklet' | 'purchase_receipt' | 'original_invoice' | 'v5c_logbook' | 'mot_certificate' | 'provenance_letter' | 'certificate_of_authenticity' | 'appraisal_certificate' | 'export_licence' | 'customs_declaration' | string>; /** * Tax relief eligibility for this asset or property (e.g. Agricultural Property Relief, Business Property Relief) */ taxReliefEligibility?: { /** * The type of tax relief claimed */ reliefType?: 'agricultural_property' | 'business_property' | 'woodland' | 'heritage' | 'charitable'; eligible?: boolean; /** * Relief percentage (e.g. 100 for full APR, 50 for partial BPR) */ percentage?: number; /** * Conditions for maintaining eligibility */ conditions?: string; jurisdiction?: Jurisdiction; statute?: string; }; /** * Cultural, religious, sentimental, or professional significance beyond monetary value */ significance?: { type?: 'sentimental' | 'cultural' | 'religious' | 'historical' | 'family_heirloom' | 'professional'; description?: string; /** * Whether and how the testator has restricted disposal of this asset */ restrictionOnDisposal?: { exists?: boolean; nature?: string; }; }; [key: string]: { [key: string]: unknown; } | string | string | 'financial' | 'vehicle' | 'digital' | 'business' | 'property_contents' | 'jewellery_watches' | 'art' | 'antiques' | 'collectibles' | 'musical_instruments' | 'books_manuscripts' | 'wine_spirits' | 'clothing_textiles' | 'firearms_sporting' | 'islamic_financial' | 'other' | string | Money | string | 'estimated' | 'professional' | 'official' | 'unknown' | 'excellent' | 'good' | 'fair' | 'poor' | 'unknown' | 'not_applicable' | number | string | string | null | Array | Array<{ /** * The external system or platform name. Use lowercase, no spaces */ system: string; /** * The platform-specific identifier for this asset */ id: string; /** * Direct URL to the asset's page on the external platform. Optional — some systems are API-only */ url?: string; /** * Human-readable label for display. Optional — defaults to the system name */ label?: string; /** * Timestamp when this link was last verified or data was last retrieved */ retrievedAt?: string; }> | string | Array<{ /** * Description of this provenance record */ description: string; /** * Name of the previous owner (may be anonymised) */ ownerName?: string; /** * Approximate start date of this ownership period */ fromDate?: string; /** * Approximate end date of this ownership period */ toDate?: string; /** * How the owner acquired the asset */ acquisitionMethod?: 'purchase' | 'inheritance' | 'gift' | 'commission' | 'restitution' | 'auction' | 'unknown'; /** * Where this provenance information came from */ source?: string; /** * Link to supporting evidence (sale record, catalogue entry, etc.) */ evidenceUrl?: string; }> | Array | 'possessed_at_death' | 'receivable' | 'contingent' | 'immoveable' | 'moveable' | 'mixed' | 'self_acquired' | 'ancestral_joint' | 'ancestral_severed' | 'inherited' | 'gifted' | 'stridhan' | 'communal' | 'waqf_endowed' | 'formally_registered' | 'informally_held' | 'community_acknowledged' | 'disputed' | 'undocumented' | 'title_deed' | 'certificate_of_occupancy' | 'family_recognition' | 'community_testimony' | 'receipts_only' | 'none' | CulturalDisposition | { /** * Category of communal authority */ authorityType?: 'family_council' | 'clan_association' | 'religious_body' | 'tribal_council' | 'government'; /** * Whether approval from this authority is legally required before disposal */ approvalRequired?: boolean; /** * Name of the specific authority or person */ authorityName?: string; /** * Jurisdiction where this communal authority has legal standing */ jurisdiction?: Jurisdiction; } | { /** * The law governing succession for this asset */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this asset's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; } | { /** * Person IDs of the primary beneficiaries */ primaryBeneficiaryPersonIds?: Array; /** * Person IDs of contingent beneficiaries (receive if primary beneficiaries predecease) */ contingentBeneficiaryPersonIds?: Array; /** * The type of beneficiary designation */ designationType?: 'retirement_account' | 'life_insurance' | 'superannuation' | 'pod_account' | 'other'; /** * Reference to the NonprobateTransfer entity that tracks this designation */ linkedNonprobateTransferId?: string; } | { /** * Whether the account holder has given consent for fiduciary access */ consentGiven?: boolean; /** * The scope of access granted to fiduciaries */ scope?: 'full_access' | 'limited_access' | 'no_access'; /** * Reference to the Person.id designated to receive access to this digital asset */ designatedRecipientPersonId?: string; /** * Human-readable display name for the referenced designated recipient person */ designatedRecipientPersonIdDisplay?: string; /** * Whether the user set access directives through the platform's own tool (e.g. Google Inactive Account Manager, Facebook Legacy Contact). Platform directives take priority under RUFADAA */ onlineToolDirective?: boolean; } | boolean | string | string | { /** * Brand or manufacturer name */ name: string; /** * Wikidata Q-number for this brand. Resolves to structured data via the Wikidata API — founding year, country, parent company, logo, official website, product categories */ wikidataId?: string; /** * Official brand website */ website?: string; } | 'complete' | 'partial' | 'box_only' | 'papers_only' | 'none' | 'unknown' | { /** * Name of the person or organisation holding the asset */ name?: string; /** * Email address for the custodian */ contactEmail?: string; /** * Phone number for the custodian */ contactPhone?: string; /** * The nature of the custodial relationship */ relationship?: string; /** * Account or reference number with the custodian */ reference?: string; } | 'goldmine' | 'sheldon' | 'ags' | 'bsc' | 'gia' | 'watch_trade' | 'classic_vehicle' | 'book_trade' | string | 'immediate' | 'within_7_days' | 'within_30_days' | 'none' | { /** * Name of the insurance provider */ provider?: string; /** * Policy reference number */ policyReference?: string; /** * The insured value in minor currency units */ insuredValue?: Money; /** * Next renewal date. Important — cover may lapse if not renewed after death */ renewalDate?: string; /** * Additional insurance notes */ notes?: string; } | { /** * The type of entity that was split */ entityType: 'asset' | 'asset_collection'; /** * The id of the original entity that was split */ entityId: string; /** * When the split occurred */ splitAt: string; /** * Why the split was requested */ reason?: string; } | 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated' | Array | { /** * Marketplaces and platforms to search */ platforms?: Array; /** * Natural-language query an agent should use */ searchQuery?: string; /** * Key-value filters to narrow results. Agents map to platform-specific parameters */ filters?: { [key: string]: string; }; /** * Platforms explicitly excluded */ excludePlatforms?: Array; /** * When an agent last executed this search profile */ lastSearchedAt?: string; /** * How often this item should be re-searched */ searchFrequency?: 'once' | 'weekly' | 'monthly' | 'on_demand'; } | number | string | Visibility | Array | Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }> | { /** * Type of the target entity */ entityType?: 'asset' | 'asset_collection'; /** * ID of the target entity */ entityId?: string; /** * When the merge occurred */ mergedAt?: string; /** * Why the entities were merged */ reason?: string; } | Provenance | Jurisdiction | { jurisdiction?: Jurisdiction; assetType?: 'immoveable' | 'moveable' | 'mixed' | 'exempt'; exemptions?: Array; reliefClaimed?: Array; } | { accessType?: string; platform?: string; visibility?: Visibility; /** * The estate role required to follow these instructions */ requiredRole?: string; steps?: Array<{ step: number; method: string; description?: string; location?: string; holderPersonId?: string; }>; memorialisation?: { preference?: 'transfer_to_beneficiary' | 'memorialise' | 'delete' | 'archive' | 'no_preference'; instructions?: string; }; lastVerified?: string; verifiedBy?: string; } | 'keeping' | 'considering' | 'thinning' | 'listed' | 'sold' | 'allocated' | 'donated' | Array<{ /** * The sales channel where this item is listed */ channel: 'ebay' | 'amazon' | 'shopify' | 'etsy' | 'own_website' | 'auction_house' | 'other'; /** * Human-readable name of the channel, especially when channel is other */ channelName?: string; /** * The platform-specific listing identifier */ listingId?: string; /** * Direct URL to the listing on the external platform */ listingUrl?: string; /** * Current status of this listing */ status: 'draft' | 'active' | 'sold' | 'withdrawn' | 'expired'; /** * The listed asking price */ askingPrice?: Money; /** * When this listing was created or last activated */ listedAt?: string; /** * When the item was sold via this listing, if applicable */ soldAt?: string | null; /** * The actual sale price, if sold */ soldPrice?: Money; }> | Array | { /** * Name of the insurance company */ insurer?: string; /** * The insurance policy number */ policyNumber?: string; /** * The type of insurance policy covering this item */ policyType?: 'home_contents' | 'specialist_collectibles' | 'classic_vehicle' | 'individual_item' | 'fine_art' | 'jewellery' | 'other'; /** * The agreed or insured value, in minor currency units. May differ from market value */ agreedValue?: Money; /** * When the insurance cover for this item was last confirmed or reviewed */ coverConfirmedAt?: string; } | 'parcel' | 'large_item' | 'specialist_transport' | 'collection_only' | Array<'outer_box' | 'inner_box' | 'warranty_card' | 'cosc_certificate' | 'instruction_manual' | 'hang_tags' | 'service_booklet' | 'purchase_receipt' | 'original_invoice' | 'v5c_logbook' | 'mot_certificate' | 'provenance_letter' | 'certificate_of_authenticity' | 'appraisal_certificate' | 'export_licence' | 'customs_declaration' | string> | { /** * The type of tax relief claimed */ reliefType?: 'agricultural_property' | 'business_property' | 'woodland' | 'heritage' | 'charitable'; eligible?: boolean; /** * Relief percentage (e.g. 100 for full APR, 50 for partial BPR) */ percentage?: number; /** * Conditions for maintaining eligibility */ conditions?: string; jurisdiction?: Jurisdiction; statute?: string; } | { type?: 'sentimental' | 'cultural' | 'religious' | 'historical' | 'family_heirloom' | 'professional'; description?: string; /** * Whether and how the testator has restricted disposal of this asset */ restrictionOnDisposal?: { exists?: boolean; nature?: string; }; } | undefined; }; /** * Liability * * A debt or financial obligation. Includes mortgages, loans, credit cards, and cultural obligations (mahr, ketubah debt, lobola) that are priority debts in certain jurisdictions */ export type Liability = { /** * Unique identifier for this liability within the INHERIT document */ id: string; /** * The category of liability. Cultural and religious obligations are included because they are priority debts in their respective legal systems */ liabilityType: 'mortgage' | 'personal_loan' | 'credit_card' | 'overdraft' | 'student_loan' | 'car_finance' | 'hire_purchase' | 'mahr' | 'ketubah_debt' | 'lobola' | 'tax_liability' | 'funeral_costs' | 'care_fees' | 'mezonot' | 'other'; /** * Name of the creditor, institution, or person to whom the debt is owed */ creditor?: string; /** * Outstanding balance of this liability in minor currency units */ amount: Money; /** * Reference to a Property.id or Asset.id that this liability is secured against. Unsecured debts should omit this field */ securedAgainst?: string; /** * Regular monthly payment amount in minor currency units, if applicable */ monthlyPayment?: Money; /** * Annual interest rate as a percentage (e.g. 4.5 means 4.5% per annum). Zero for interest-free debts */ interestRate?: number; /** * Date the liability was incurred or the agreement began */ startDate?: string; /** * Date the liability is expected to be repaid in full, if known */ endDate?: string; /** * Account number, reference number, or policy number for this liability */ accountReference?: string; /** * Free-text notes about this liability. Use for payment protection insurance, disputes, or special arrangements */ notes?: string; visibility?: Visibility; /** * Student loan plan details. All UK student loans (Plans 1, 2, 4, 5, and Postgraduate) are written off on death — the estate does not need to repay. Confirming this prevents executors from incorrectly paying the balance */ studentLoanInfo?: { /** * When this information was confirmed with the Student Loans Company or equivalent */ retrievedAt: string; /** * The student loan plan type */ planType?: 'plan_1' | 'plan_2' | 'plan_4' | 'plan_5' | 'postgraduate' | string; /** * Whether this loan is written off on death. All UK student loans: true */ writtenOffOnDeath?: boolean; /** * Outstanding balance in minor units (pennies) at retrievedAt */ outstandingBalance?: number; /** * Annual income threshold for repayments in minor units (pennies). Below this income, no repayments are due */ repaymentThreshold?: number; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'mortgage' | 'personal_loan' | 'credit_card' | 'overdraft' | 'student_loan' | 'car_finance' | 'hire_purchase' | 'mahr' | 'ketubah_debt' | 'lobola' | 'tax_liability' | 'funeral_costs' | 'care_fees' | 'mezonot' | 'other' | string | Money | number | string | string | string | Visibility | { /** * When this information was confirmed with the Student Loans Company or equivalent */ retrievedAt: string; /** * The student loan plan type */ planType?: 'plan_1' | 'plan_2' | 'plan_4' | 'plan_5' | 'postgraduate' | string; /** * Whether this loan is written off on death. All UK student loans: true */ writtenOffOnDeath?: boolean; /** * Outstanding balance in minor units (pennies) at retrievedAt */ outstandingBalance?: number; /** * Annual income threshold for repayments in minor units (pennies). Below this income, no repayments are due */ repaymentThreshold?: number; } | Provenance | undefined; }; /** * An organisation that receives a bequest — charity, company, trust, or unincorporated association */ export type BeneficiaryOrganisation = { /** * Name of the beneficiary organisation */ name: string; /** * The legal form of the organisation */ type: 'charity' | 'company' | 'unincorporated_association' | 'trust' | 'other'; /** * Charity registration number, company number, or other official registration */ registrationNumber?: string; /** * Jurisdiction where the organisation is registered */ jurisdiction?: Jurisdiction; }; /** * Details of a life interest — one person enjoys the asset during their lifetime, then it passes to the remainderman */ export type LifeInterest = { /** * Reference to the Person.id who holds the life interest */ tenantForLifeId: string; /** * Human-readable display name for the referenced tenant for life */ tenantForLifeIdDisplay?: string; /** * Reference to the Person.id who receives the asset after the life interest ends */ remaindermanId?: string; /** * Human-readable display name for the referenced remainderman */ remaindermanIdDisplay?: string; /** * Natural-language description of the remainderman class if not a named individual */ remaindermanClassDefinition?: string; /** * The scope of the life interest */ interestType: 'use_and_income' | 'income_only' | 'use_only' | 'protective' | 'right_of_residence'; }; /** * A substitute beneficiary who receives the bequest if the primary beneficiary cannot (e.g. predeceases the testator) */ export type Substitution = { /** * Reference to the Person.id of the substitute beneficiary */ beneficiaryId?: string; /** * Human-readable display name for the referenced beneficiary */ beneficiaryIdDisplay?: string; /** * Natural-language description of the substitute class */ classDefinition?: string; /** * Substitute organisation if the substitution is to a charity or company */ beneficiaryOrganisation?: BeneficiaryOrganisation; /** * The condition that triggers this substitution */ condition?: string; /** * Whether the substitution is per stirpes — passing to the deceased beneficiary's descendants by representation */ perStirpes?: boolean; }; /** * An action taken after death that modifies the bequest — disclaimer, deed of variation, appropriation, or assent */ export type PostDeathAction = { /** * The type of post-death action */ type: 'disclaimer' | 'deed_of_variation' | 'appropriation' | 'assent'; /** * Date the action was taken */ actionDate?: string; /** * Description of the action taken */ description?: string; /** * Reference to the Document entity recording this action */ documentId?: string; /** * Details of a deed of variation — who redirected what to whom */ variationDetails?: { fromBeneficiaryId?: string; toBeneficiaryId?: string; redirectedAmount?: Money; reason?: 'tax_efficiency' | 'family_arrangement' | 'creditor_protection' | 'other'; allBeneficiariesConsented?: boolean; }; }; /** * The beneficiary's response to the inheritance — acceptance, renunciation, or qualified acceptance. In civil law jurisdictions, acceptance may be required within a time limit */ export type InheritanceResponse = { /** * The beneficiary's formal response to the inheritance */ response: 'accepted' | 'renounced' | 'qualified_acceptance' | 'pending'; /** * Date the response was made */ responseDate?: string; /** * Reference to the Person.id of the respondent */ responsePersonId?: string; /** * Human-readable display name for the referenced response person */ responsePersonIdDisplay?: string; /** * Whether the response was filed with a court (required in some jurisdictions) */ courtFiled?: boolean; /** * Statutory deadline for responding (e.g. 3 months in Japan, 4 months in France) */ deadlineDate?: string; }; /** * Bequest * * A disposition of property or money in a will. Supports 8 core types (specific, pecuniary, demonstrative, general, residuary, life_interest, class, debt_forgiveness) and extension types via x-inherit- prefix (e.g. x-inherit-wasiyya, x-inherit-halachic-matanah) */ export type Bequest = unknown & { /** * Unique identifier for this bequest within the INHERIT document */ id: string; /** * The category of bequest. Core types cover common law estates. Extension types use x-inherit- prefix (e.g. x-inherit-wasiyya, x-inherit-halachic-matanah) */ bequestType: 'specific' | 'pecuniary' | 'demonstrative' | 'general' | 'residuary' | 'life_interest' | 'class' | 'debt_forgiveness' | string; /** * Reference to the Person.id of the individual beneficiary */ beneficiaryId?: string; /** * Human-readable display name for the referenced beneficiary */ beneficiaryIdDisplay?: string; /** * Organisation receiving this bequest, if not an individual */ beneficiaryOrganisation?: BeneficiaryOrganisation; /** * Natural-language definition of the beneficiary class. Required for class bequests. Must be precise enough for executors to identify all members */ classDefinition?: string; /** * Life interest details, required when type is 'life_interest' */ lifeInterest?: LifeInterest; /** * Cash amount for pecuniary and demonstrative bequests, in minor currency units */ amount?: Money; /** * Percentage share of the residuary estate or a specified fund */ sharePercentage?: number; /** * Free-text description of the bequest — what is being given */ description?: string; /** * Reference to the Asset.id from which a demonstrative bequest should be paid */ sourceAssetId?: string; /** * Conditions precedent that must be satisfied before the beneficiary receives this bequest. Each condition has a typed category for machine-readable common patterns, plus a human-readable description */ conditions?: Array<{ /** * The category of condition */ conditionType: 'survival_period' | 'age_attainment' | 'event' | 'marriage' | 'residence' | 'employment' | 'custom'; /** * Human-readable description of the condition, as expressed in the will */ description: string; /** * Number of days the beneficiary must survive the testator. Only applicable when conditionType is survival_period */ survivalDays?: number; /** * Age the beneficiary must reach. Only applicable when conditionType is age_attainment */ attainmentAge?: number; /** * The person this condition applies to, if different from the bequest beneficiary */ personId?: string; /** * What happens if this condition is not satisfied */ failureConsequence?: 'lapse_to_residue' | 'hold_in_trust' | 'pass_to_substitute' | 'accelerate_remainder' | 'void_bequest' | 'custom'; /** * Human-readable description of the failure consequence */ failureDescription?: string; }>; /** * Substitute beneficiaries in case the primary beneficiary cannot receive the gift */ substitutions?: Array; /** * Whether lifetime gifts (advances) to the beneficiary are brought into account when calculating their share. Common in intestacy and some wills */ hotchpot?: boolean; /** * How the bequest is distributed among multiple beneficiaries */ distributionMethod?: 'per_capita' | 'per_stirpes' | 'modified_per_stirpes' | 'per_capita_at_each_generation' | string; /** * What happens if the beneficiary dies before the testator */ predeceaseRule?: 'lapse' | 'per_stirpes' | 'substitution' | 'accrual' | 'statutory_default'; /** * Which legal principle constrains this bequest, if any */ constrainedBy?: 'testamentary_freedom' | 'customary_rule' | 'forced_heirship' | 'religious_rule' | 'coparcenary_survivorship'; /** * Whether customary or religious law overrides the testator's freedom to dispose of this gift as they wish */ customaryOverride?: boolean; /** * Post-death actions that modified this bequest — disclaimers, deeds of variation, appropriations */ postDeathActions?: Array; /** * The beneficiary's formal response to this inheritance, if applicable */ inheritanceResponse?: InheritanceResponse; /** * References to lifetime transfer IDs that should be brought into account (hotchpot) when calculating this beneficiary's entitlement. Links bequests to prior gifts — if the testator gave the beneficiary £50,000 during their lifetime, this bequest may be reduced accordingly */ hotchpotTransferIds?: Array; /** * Free-text notes about this bequest. Use for context, testator intent, or special instructions to executors */ notes?: string; visibility?: Visibility; /** * References to Asset.id(s) being bequeathed as individual items. A bequest may reference either assetIds (individual items) or assetCollectionId (entire collection), not both */ assetIds?: Array; /** * Reference to the AssetCollection.id being bequeathed. A bequest may reference either assetIds (individual items) or assetCollectionId (entire collection), not both */ assetCollectionId?: string; /** * References to Property.id(s) being devised. Links this bequest to specific real property — enables programmatic estate distribution calculation */ propertyIds?: Array; /** * References to Liability.id(s) associated with this bequest. For debt_forgiveness bequests, these are the debts being cancelled. For other types, indicates liabilities attached to the bequeathed asset */ liabilityIds?: Array; /** * References to InsurancePolicy.id(s) associated with this bequest. Links life insurance or other policies whose proceeds form part of this gift */ insurancePolicyIds?: Array; /** * Restriction on how the charity may use the bequeathed funds — e.g. 'Must be used for cancer research only' */ charityPurposeRestriction?: string; /** * Whether the gift fails if the charity merges with another organisation before distribution */ charityNonMergingClause?: boolean; /** * Whether the charity is required to report back on how the funds were used */ charityReportingRequired?: boolean; /** * Whether the bequest has been verified as eligible for Gift Aid. In the UK, estates leaving 10%+ to charity qualify for the reduced 36% IHT rate */ charityGiftAidEligible?: boolean; /** * When the charity's registration was last verified as active */ charityRegistrationVerifiedAt?: string; /** * A legacy pledge commitment tracked before the will is finalised */ legacyPledge?: { /** * Date the pledge was made */ pledgedDate?: string; /** * Pledged amount in minor currency units */ pledgeAmount?: Money; /** * Reference to a Document.id recording the pledge */ pledgeDocumentId?: string; /** * Current status of the pledge */ pledgeStatus?: 'pending' | 'confirmed' | 'in_probate'; revocable?: boolean; fundingMechanism?: 'unfunded' | 'partially_funded' | 'fully_funded'; /** * Asset backing the pledge, if funded */ fundingAssetId?: string; }; /** * Gift Aid registration number for the charity */ giftAidRegistrationNumber?: string; /** * URL to verify the Gift Aid registration */ giftAidVerificationUrl?: string; /** * When Gift Aid registration was last verified */ giftAidVerifiedAt?: string; /** * Discussion comments on this entity */ comments?: Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }>; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The jurisdiction whose succession law governs this item. Missing means defaults to estate domicile */ applicableLaw?: Jurisdiction; /** * Reference to a PowerOfAppointment.id — indicates this bequest's distribution is subject to a power of appointment */ powerOfAppointmentId?: string; /** * Substitution rules for class gifts — what happens when a member of the class predeceases the testator */ classSubstitution?: { rule?: 'per_stirpes' | 'per_capita' | 'per_capita_at_each_generation'; /** * Who takes the share of a deceased class member */ substituteClass?: string; predeceaseHandling?: 'share_passes_to_descendants' | 'share_accrues_to_survivors' | 'share_lapses'; }; /** * Explicit priority order within the will. Lower numbers take precedence */ priority?: number; /** * The clause number in the will that contains this bequest */ clauseReference?: string; /** * Administrative directions to the executor regarding this bequest */ executorDirections?: Array<{ /** * The instruction as expressed in the will */ directive: string; clauseReference?: string; binding?: boolean; }>; /** * Assets mentioned in this clause for clarity but not limiting scope. For residuary bequests, named for legal certainty while absorbing all unallocated assets */ mentionedAssetIds?: Array; /** * Properties mentioned in this clause for clarity but not limiting scope */ mentionedPropertyIds?: Array; /** * Non-binding wishes expressed by the testator about how the beneficiary should use or treat the bequeathed item */ precatoryWishes?: Array<{ /** * The wish as expressed in the will */ wish: string; /** * Always false for precatory wishes */ binding?: boolean; clauseReference?: string; }>; [key: string]: { [key: string]: unknown; } | string | 'specific' | 'pecuniary' | 'demonstrative' | 'general' | 'residuary' | 'life_interest' | 'class' | 'debt_forgiveness' | string | string | BeneficiaryOrganisation | LifeInterest | Money | number | string | Array<{ /** * The category of condition */ conditionType: 'survival_period' | 'age_attainment' | 'event' | 'marriage' | 'residence' | 'employment' | 'custom'; /** * Human-readable description of the condition, as expressed in the will */ description: string; /** * Number of days the beneficiary must survive the testator. Only applicable when conditionType is survival_period */ survivalDays?: number; /** * Age the beneficiary must reach. Only applicable when conditionType is age_attainment */ attainmentAge?: number; /** * The person this condition applies to, if different from the bequest beneficiary */ personId?: string; /** * What happens if this condition is not satisfied */ failureConsequence?: 'lapse_to_residue' | 'hold_in_trust' | 'pass_to_substitute' | 'accelerate_remainder' | 'void_bequest' | 'custom'; /** * Human-readable description of the failure consequence */ failureDescription?: string; }> | Array | boolean | 'per_capita' | 'per_stirpes' | 'modified_per_stirpes' | 'per_capita_at_each_generation' | string | 'lapse' | 'per_stirpes' | 'substitution' | 'accrual' | 'statutory_default' | 'testamentary_freedom' | 'customary_rule' | 'forced_heirship' | 'religious_rule' | 'coparcenary_survivorship' | Array | InheritanceResponse | Array | Visibility | Array | Array | Array | Array | string | { /** * Date the pledge was made */ pledgedDate?: string; /** * Pledged amount in minor currency units */ pledgeAmount?: Money; /** * Reference to a Document.id recording the pledge */ pledgeDocumentId?: string; /** * Current status of the pledge */ pledgeStatus?: 'pending' | 'confirmed' | 'in_probate'; revocable?: boolean; fundingMechanism?: 'unfunded' | 'partially_funded' | 'fully_funded'; /** * Asset backing the pledge, if funded */ fundingAssetId?: string; } | string | string | Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }> | Provenance | Jurisdiction | { rule?: 'per_stirpes' | 'per_capita' | 'per_capita_at_each_generation'; /** * Who takes the share of a deceased class member */ substituteClass?: string; predeceaseHandling?: 'share_passes_to_descendants' | 'share_accrues_to_survivors' | 'share_lapses'; } | number | Array<{ /** * The instruction as expressed in the will */ directive: string; clauseReference?: string; binding?: boolean; }> | Array | Array | Array<{ /** * The wish as expressed in the will */ wish: string; /** * Always false for precatory wishes */ binding?: boolean; clauseReference?: string; }> | undefined; }; export type TrustAppointee = unknown & { /** * Reference to the Person.id of the appointee */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * The governance role this person holds in the trust */ role: 'trustee' | 'protector' | 'enforcer'; /** * Reference to the Organisation.id if the trustee is a corporate trustee. Mutually exclusive with personId */ organisationId?: string; /** * Human-readable display name for the referenced organisation */ organisationIdDisplay?: string; }; /** * A beneficiary of the trust — may be a named individual, a class, or an organisation */ export type TrustBeneficiary = { /** * Reference to the Person.id of the beneficiary, if a named individual */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * Natural-language description of the beneficiary class */ classDefinition?: string; /** * Name of the organisation beneficiary */ organisationName?: string; /** * The nature of this beneficiary's interest in the trust */ interestType: 'income' | 'capital' | 'both' | 'discretionary'; /** * Generational distance from the testator. 1 = child, 2 = grandchild, 3+ = great-grandchild */ generationLevel?: number; }; /** * Trust * * A trust instrument — testamentary or inter vivos. Covers discretionary, bare, life interest, charitable, nil rate band, and offshore structures with governance features (reserved powers, flee clauses, protector powers). Extension types (e.g. x-inherit-waqf) support cultural and jurisdiction-specific trust forms */ export type Trust = { /** * Unique identifier for this trust within the INHERIT document */ id: string; /** * Name of the trust, as it appears in the trust instrument */ name: string; /** * The category of trust. Extension types use x-inherit- prefix (e.g. x-inherit-waqf) */ trustType: 'discretionary' | 'life_interest' | 'bare' | 'accumulation_and_maintenance' | 'disabled_persons' | 'charitable' | 'nil_rate_band' | 'other' | 'residence_nil_rate_band' | 'a_b_marital' | 'bypass' | string; /** * Persons appointed as trustees, protectors, or enforcers of this trust */ trustees: Array; /** * Beneficiaries of the trust — named individuals, classes, or organisations */ beneficiaries: Array; /** * Reference to the Person.id of the settlor (the person who created and funded the trust) */ settlor?: string; /** * Human-readable display name for the referenced settlor */ settlorDisplay?: string; /** * Whether the trust is created by the will (testamentary) or was established during the settlor's lifetime (inter vivos) */ isTestamentary?: boolean; /** * Timestamp when the trust instrument was executed */ createdAt?: string; /** * How the trust was created */ creationType?: 'testamentary' | 'inter_vivos_revocable' | 'inter_vivos_irrevocable'; /** * Whether the trust can be revoked, and whether it is perpetual */ revocability?: 'revocable' | 'irrevocable' | 'perpetual'; /** * Whether the trust is perpetual (has no fixed end date). Waqf endowments and certain offshore trusts are perpetual by nature */ perpetual?: boolean; /** * Age at which the beneficiary's interest vests absolutely (for A&M trusts and bare trusts for minors) */ vestingAge?: number; /** * Fixed date on which the trust vests, if not age-based */ vestingDate?: string; /** * Conditions that must be met for the trust to vest */ vestingConditions?: Array; /** * Interests in the trust that are contingent on future events */ contingentInterests?: Array; /** * The trust period or perpetuity period, if applicable. In England and Wales, the statutory perpetuity period is 125 years (Perpetuities and Accumulations Act 2009) */ trustPeriod?: string; /** * The jurisdiction whose law governs this trust */ governingLaw?: Jurisdiction; /** * Powers reserved by the settlor or granted to a third party. Offshore trusts frequently include reserved powers over investment or distributions */ reservedPowers?: Array<{ /** * The type of reserved power */ powerType: 'investment' | 'distribution' | 'amendment' | 'revocation' | 'addition_of_beneficiaries' | 'removal_of_trustees' | 'change_of_governing_law'; /** * Reference to the Person.id who holds this power */ heldByPersonId?: string; /** * Human-readable display name for the referenced held by person */ heldByPersonIdDisplay?: string; /** * Any conditions on the exercise of this power */ conditions?: string; }>; /** * A flee clause allowing automatic or discretionary change of trust situs when triggering events occur. Standard in offshore trust planning */ fleeClause?: { /** * Whether the trust contains a flee clause */ present?: boolean; /** * Events that trigger the flee clause */ triggerEvents?: Array; /** * The jurisdiction the trust flees to when triggered */ destinationJurisdiction?: Jurisdiction; /** * Whether the flee is triggered automatically or at trustee discretion */ automaticOrDiscretionary?: 'automatic' | 'discretionary'; }; /** * Powers held by the trust protector or enforcer. Offshore trusts commonly use protectors to oversee trustees */ protectorPowers?: Array<{ /** * The type of protector or enforcer power */ powerType: 'consent_to_distribution' | 'remove_trustee' | 'appoint_trustee' | 'change_governing_law' | 'veto_investment' | 'add_beneficiary' | 'exclude_beneficiary' | 'enforce_purpose'; /** * Reference to the Person.id who holds this power */ protectorPersonId: string; /** * Human-readable display name for the referenced protector person */ protectorPersonIdDisplay?: string; /** * Conditions on how this power may be exercised */ exerciseConditions?: string; }>; /** * How different jurisdictions recognise (or fail to recognise) this trust. Critical for cross-border trust structures */ jurisdictionalRecognition?: Array<{ /** * The jurisdiction whose recognition status is recorded */ jurisdiction: Jurisdiction; /** * Whether this jurisdiction recognises the trust */ recognised: boolean; /** * How the jurisdiction characterises the trust for legal and tax purposes */ recognisedAs?: string; /** * Whether the Hague Trust Convention applies in this jurisdiction — determines automatic recognition of foreign trusts */ hagueTrustConventionApplies?: boolean; /** * Additional context on recognition in this jurisdiction */ notes?: string; }>; /** * Asset protection features of the trust. Relevant for Cook Islands, Nevis, BVI, and domestic US asset protection trusts (Delaware, Nevada, South Dakota) */ assetProtectionFeatures?: { /** * Whether the settlor is also a beneficiary. Self-settled trusts face greater creditor vulnerability in most jurisdictions */ selfSettled?: boolean; /** * Whether the trust contains a spendthrift clause preventing beneficiaries from assigning their interest */ spendthriftClause?: boolean; /** * The statutory lookback period for fraudulent transfer claims in the trust's jurisdiction */ fraudulentTransferLookback?: string; /** * Date the trust was domesticated (moved from offshore to onshore jurisdiction), if applicable */ domesticationDate?: string; }; /** * Free-text notes about this trust. Use for trustee succession plans, special investment mandates, or other non-structured information */ notes?: string; visibility?: Visibility; /** * Person IDs of the trustees. A trust may have multiple trustees */ trusteePersonIds?: Array; /** * Conditions under which the trust activates, distributes, or terminates. Free text for complex conditions that cannot be fully structured */ conditions?: string; /** * Category of the trust's primary activation condition */ conditionType?: 'age_attainment' | 'event_based' | 'discretionary' | 'fixed_date' | 'accumulation' | 'other'; /** * Next scheduled review date for the trust terms */ reviewDate?: string; /** * Person ID of the trust protector (if appointed). The protector oversees trustees and can modify trust terms */ protectorPersonId?: string; /** * Human-readable display name for the referenced protector person */ protectorPersonIdDisplay?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * If this trust exists for the care of a specific pet, reference to Pet.id */ petId?: string; /** * Generation-skipping transfer classification for US tax purposes (IRC Chapter 13) */ generationSkipping?: { applies?: boolean; /** * GST classification */ classification?: 'direct_skip' | 'taxable_distribution' | 'taxable_termination'; /** * GST exemption amount allocated to this trust */ gstExemptionAllocated?: Money; notes?: string; }; /** * Reference to Document.id containing the letter of wishes for this trust */ letterOfWishesDocumentId?: string; /** * Binding status of the letter of wishes */ letterOfWishesStatus?: 'non_binding' | 'morally_binding' | 'legally_binding'; /** * Charitable remainder trust details — income interest to non-charitable beneficiary, remainder to charity */ charitableRemainderDetails?: { crtType?: 'annuity' | 'unitrust'; incomeInterestBeneficiaryId?: string; remainderBeneficiaryId?: string; /** * Annual payout percentage */ payoutRate?: number; termType?: 'life' | 'fixed_years'; termYears?: number; taxDeductionClaimed?: Money; }; /** * Tax planning configuration for nil-rate band, RNRB, A/B marital, or bypass trusts */ taxPlanningDetails?: { /** * The tax planning structure type */ structure?: string; fundingMechanism?: 'up_to_threshold' | 'fixed_amount' | 'formula'; /** * Reference to the tax threshold being used */ thresholdReference?: string; /** * UUID of the companion trust in an A/B pair */ companionTrustId?: string; }; /** * Declared conflicts of interest — executor/trustee who is also a beneficiary, drafter, or family member */ conflictsOfInterest?: Array<{ conflictType: 'beneficiary' | 'drafter' | 'family_member' | 'business_associate'; relatedPersonId?: string; disclosed?: boolean; independentOversightRequired?: boolean; notes?: string; }>; [key: string]: { [key: string]: unknown; } | string | string | 'discretionary' | 'life_interest' | 'bare' | 'accumulation_and_maintenance' | 'disabled_persons' | 'charitable' | 'nil_rate_band' | 'other' | 'residence_nil_rate_band' | 'a_b_marital' | 'bypass' | string | Array | Array | string | boolean | string | 'testamentary' | 'inter_vivos_revocable' | 'inter_vivos_irrevocable' | 'revocable' | 'irrevocable' | 'perpetual' | number | string | Array | Array | Jurisdiction | Array<{ /** * The type of reserved power */ powerType: 'investment' | 'distribution' | 'amendment' | 'revocation' | 'addition_of_beneficiaries' | 'removal_of_trustees' | 'change_of_governing_law'; /** * Reference to the Person.id who holds this power */ heldByPersonId?: string; /** * Human-readable display name for the referenced held by person */ heldByPersonIdDisplay?: string; /** * Any conditions on the exercise of this power */ conditions?: string; }> | { /** * Whether the trust contains a flee clause */ present?: boolean; /** * Events that trigger the flee clause */ triggerEvents?: Array; /** * The jurisdiction the trust flees to when triggered */ destinationJurisdiction?: Jurisdiction; /** * Whether the flee is triggered automatically or at trustee discretion */ automaticOrDiscretionary?: 'automatic' | 'discretionary'; } | Array<{ /** * The type of protector or enforcer power */ powerType: 'consent_to_distribution' | 'remove_trustee' | 'appoint_trustee' | 'change_governing_law' | 'veto_investment' | 'add_beneficiary' | 'exclude_beneficiary' | 'enforce_purpose'; /** * Reference to the Person.id who holds this power */ protectorPersonId: string; /** * Human-readable display name for the referenced protector person */ protectorPersonIdDisplay?: string; /** * Conditions on how this power may be exercised */ exerciseConditions?: string; }> | Array<{ /** * The jurisdiction whose recognition status is recorded */ jurisdiction: Jurisdiction; /** * Whether this jurisdiction recognises the trust */ recognised: boolean; /** * How the jurisdiction characterises the trust for legal and tax purposes */ recognisedAs?: string; /** * Whether the Hague Trust Convention applies in this jurisdiction — determines automatic recognition of foreign trusts */ hagueTrustConventionApplies?: boolean; /** * Additional context on recognition in this jurisdiction */ notes?: string; }> | { /** * Whether the settlor is also a beneficiary. Self-settled trusts face greater creditor vulnerability in most jurisdictions */ selfSettled?: boolean; /** * Whether the trust contains a spendthrift clause preventing beneficiaries from assigning their interest */ spendthriftClause?: boolean; /** * The statutory lookback period for fraudulent transfer claims in the trust's jurisdiction */ fraudulentTransferLookback?: string; /** * Date the trust was domesticated (moved from offshore to onshore jurisdiction), if applicable */ domesticationDate?: string; } | string | Visibility | Array | 'age_attainment' | 'event_based' | 'discretionary' | 'fixed_date' | 'accumulation' | 'other' | Provenance | { applies?: boolean; /** * GST classification */ classification?: 'direct_skip' | 'taxable_distribution' | 'taxable_termination'; /** * GST exemption amount allocated to this trust */ gstExemptionAllocated?: Money; notes?: string; } | 'non_binding' | 'morally_binding' | 'legally_binding' | { crtType?: 'annuity' | 'unitrust'; incomeInterestBeneficiaryId?: string; remainderBeneficiaryId?: string; /** * Annual payout percentage */ payoutRate?: number; termType?: 'life' | 'fixed_years'; termYears?: number; taxDeductionClaimed?: Money; } | { /** * The tax planning structure type */ structure?: string; fundingMechanism?: 'up_to_threshold' | 'fixed_amount' | 'formula'; /** * Reference to the tax threshold being used */ thresholdReference?: string; /** * UUID of the companion trust in an A/B pair */ companionTrustId?: string; } | Array<{ conflictType: 'beneficiary' | 'drafter' | 'family_member' | 'business_associate'; relatedPersonId?: string; disclosed?: boolean; independentOversightRequired?: boolean; notes?: string; }> | undefined; }; export type Executor = unknown & { /** * Unique identifier for this executor appointment within the INHERIT document */ id: string; /** * Reference to the Person.id of the appointed executor or administrator */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * The executor's role in the estate administration */ role: 'primary' | 'secondary' | 'substitute' | 'administrator' | 'administrator_with_will_annexed' | 'literary' | 'digital' | 'specialist'; /** * Whether this executor is a professional (solicitor, accountant, trust corporation). Professional executors typically charge fees */ isProfessional?: boolean; /** * Name of the professional firm, if the executor is acting in a professional capacity */ firmName?: string; /** * The type of grant issued by the court authorising this person to act. Includes territory-neutral alternatives for non-Commonwealth jurisdictions */ grantType?: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'succession_certificate' | 'certificate_of_inheritance' | 'court_appointment' | 'resealing' | 'european_certificate_of_succession'; /** * Date the grant was issued */ grantDate?: string; /** * Court reference number for the grant */ grantReference?: string; /** * Name of the court or registry that issued the grant */ issuingCourt?: string; /** * Free-text notes about this executor appointment — reservations, renunciations, or special circumstances */ notes?: string; /** * Reference to the Organisation.id if the executor is a trust corporation or professional firm acting as executor. Mutually exclusive with personId */ organisationId?: string; /** * Human-readable display name for the referenced organisation */ organisationIdDisplay?: string; /** * Whether this is the primary (lead) executor. Only one executor per estate should be marked as primary */ primary?: boolean; /** * Person IDs of individuals the executor should consult before making significant decisions. Models co-equal authority and consultation requirements */ consultWith?: Array; /** * The scope of this executor's authority, for specialist executors. If absent, the executor has authority over the entire estate */ scope?: { /** * Human-readable description of the scope */ description?: string; /** * Asset categories this executor manages */ assetCategories?: Array; /** * Specific asset IDs this executor manages */ assetIds?: Array; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Declared conflicts of interest — executor/trustee who is also a beneficiary, drafter, or family member */ conflictsOfInterest?: Array<{ conflictType: 'beneficiary' | 'drafter' | 'family_member' | 'business_associate'; relatedPersonId?: string; disclosed?: boolean; independentOversightRequired?: boolean; notes?: string; }>; [key: string]: { [key: string]: unknown; } | string | string | 'primary' | 'secondary' | 'substitute' | 'administrator' | 'administrator_with_will_annexed' | 'literary' | 'digital' | 'specialist' | boolean | 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'succession_certificate' | 'certificate_of_inheritance' | 'court_appointment' | 'resealing' | 'european_certificate_of_succession' | string | string | string | Array | { /** * Human-readable description of the scope */ description?: string; /** * Asset categories this executor manages */ assetCategories?: Array; /** * Specific asset IDs this executor manages */ assetIds?: Array; } | Provenance | Array<{ conflictType: 'beneficiary' | 'drafter' | 'family_member' | 'business_associate'; relatedPersonId?: string; disclosed?: boolean; independentOversightRequired?: boolean; notes?: string; }> | undefined; }; export type Guardian = unknown & { /** * Unique identifier for this guardian appointment within the INHERIT document */ id: string; /** * Reference to the Person.id of the guardian being appointed */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * Reference to the Person.id of the child this guardian is appointed for */ childPersonId: string; /** * Human-readable display name for the referenced child person */ childPersonIdDisplay?: string; /** * The guardian's priority in the appointment */ role: 'primary' | 'secondary' | 'substitute'; /** * How this guardian was appointed */ appointmentType: 'testamentary' | 'parental_responsibility' | 'court_appointed' | 'shariah_court_appointed' | 'community_appointed' | 'religious_court_appointed'; /** * The structure of the guardianship arrangement */ guardianshipStructure?: 'individual' | 'collective' | 'rotating' | 'family_council_determined'; /** * Reference to the family council decision that appointed this guardian, if the appointment was council-determined */ familyCouncilDecisionRef?: string; /** * Conditions on the guardianship — when it takes effect, any restrictions, or circumstances under which it lapses */ conditions?: string; /** * Free-text notes about this guardianship appointment */ notes?: string; /** * Reference to the Organisation.id if the guardian is an institutional care provider. Mutually exclusive with personId */ organisationId?: string; /** * Human-readable display name for the referenced organisation */ organisationIdDisplay?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The type of dependant this guardian is appointed for. Extends guardian beyond minors to cover adult dependants */ dependantType?: 'minor' | 'adult_with_disability' | 'adult_with_incapacity'; /** * The cultural or legal model of guardianship. Differs across legal traditions — individual appointment (common law), family council (West African), collective care (South Asian extended family), court-appointed (civil law) */ guardianshipModel?: 'individual' | 'family_council' | 'collective' | 'extended_family' | 'rotating' | 'court_appointed' | 'custom'; [key: string]: { [key: string]: unknown; } | string | string | 'primary' | 'secondary' | 'substitute' | 'testamentary' | 'parental_responsibility' | 'court_appointed' | 'shariah_court_appointed' | 'community_appointed' | 'religious_court_appointed' | 'individual' | 'collective' | 'rotating' | 'family_council_determined' | string | string | Provenance | 'minor' | 'adult_with_disability' | 'adult_with_incapacity' | 'individual' | 'family_council' | 'collective' | 'extended_family' | 'rotating' | 'court_appointed' | 'custom' | undefined; }; /** * Wish * * A non-binding (or culturally/religiously binding) wish — funeral, letter of wishes, care instructions, pet care, digital estate, distribution preferences */ export type Wish = { /** * Unique identifier for this wish within the INHERIT document */ id: string; /** * The category of wish. Wishes may be non-binding in law but culturally or religiously obligatory */ wishType: 'funeral' | 'letter' | 'care' | 'distribution' | 'digital' | 'pets' | 'general' | 'digital_likeness'; /** * A short descriptive title for this wish */ title: string; /** * The full text content of the wish. May be lengthy for letters of wishes */ content?: string; /** * The legal or moral force of this wish. Most wishes are non-binding but may carry significant cultural or religious weight */ bindingNature?: 'non_binding' | 'culturally_obligatory' | 'religiously_obligatory' | 'legally_binding'; /** * Reference to the Person.id this wish is addressed to — typically an executor, guardian, or family member */ addresseePersonId?: string; /** * Human-readable display name for the referenced addressee person */ addresseePersonIdDisplay?: string; /** * Reference to an Asset.id this wish relates to (e.g. a pet, a digital account, a specific item) */ relatedAssetId?: string; /** * Additional notes about this wish */ notes?: string; visibility?: Visibility; /** * Type of funeral arrangement preferred */ funeralArrangementType?: 'burial' | 'cremation' | 'green_burial' | 'sea_burial' | 'sky_burial' | 'donation_to_science' | 'other' | string; /** * Type of ceremony preferred */ funeralCeremonyType?: 'religious' | 'secular' | 'hybrid' | 'none'; /** * Religion or faith tradition for the ceremony, if funeralCeremonyType is 'religious' or 'hybrid' */ funeralCeremonyReligion?: string; /** * Reference to the Organisation.id of the preferred funeral provider */ funeralProviderOrganisationId?: string; /** * Human-readable display name for the referenced funeral provider organisation */ funeralProviderOrganisationIdDisplay?: string; /** * Whether a pre-paid funeral plan is in place */ funeralPrePaid?: boolean; /** * Policy number for the pre-paid funeral plan */ funeralPrePaidPolicyNumber?: string; /** * Maximum budget for the funeral, in minor currency units */ funeralBudgetMaximum?: Money; /** * How the funeral is to be funded */ funeralBudgetSource?: 'estate' | 'pre_paid' | 'insurance' | 'family' | 'other'; /** * Preferred location for the funeral service or burial */ funeralLocationPreference?: string; /** * Music requested for the funeral service */ funeralMusicWishes?: string; /** * Readings or poems requested for the funeral service */ funeralReadingWishes?: string; /** * Organ donation preferences */ organDonation?: { /** * Whether consent given */ consentGiven?: boolean; /** * Specific organs consented */ organs?: Array; /** * Organisation coordinating donation */ coordinatingOrganisationId?: string; /** * Human-readable display name for the referenced coordinating organisation */ coordinatingOrganisationIdDisplay?: string; }; /** * Body donation to medical research */ medicalResearchDonation?: { /** * Whether consent given */ consentGiven?: boolean; /** * Research institution Organisation.id */ institutionOrganisationId?: string; /** * Human-readable display name for the referenced institution organisation */ institutionOrganisationIdDisplay?: string; /** * Any restrictions */ restrictions?: string; }; /** * Preference regarding autopsy */ autopsyPreference?: 'requested' | 'declined' | 'no_preference'; /** * Additional notes about funeral budget */ funeralBudgetNotes?: string; /** * Whether the person consents to posthumous AI/digital recreation */ likenessConsent?: 'permitted' | 'prohibited' | 'restricted' | 'not_stated'; /** * What aspects of likeness are covered */ likenessScope?: Array<'voice' | 'visual_appearance' | 'writing_style' | 'personality_model' | 'full_avatar'>; /** * What purposes are allowed */ likenessPermittedUses?: Array<'memorial' | 'family_private' | 'educational' | 'commercial' | 'legal_proceedings' | 'artistic'>; /** * What purposes are explicitly forbidden */ likenessProhibitedUses?: Array<'memorial' | 'family_private' | 'educational' | 'commercial' | 'legal_proceedings' | 'artistic'>; /** * Who has authority over likeness decisions after death */ likenessControllerPersonId?: string; /** * Human-readable display name for the referenced likeness controller person */ likenessControllerPersonIdDisplay?: string; /** * ISO 8601 duration — how long consent/prohibition lasts, e.g. P25Y = 25 years */ likenessTimeLimit?: string; /** * Conditions under which consent is revoked */ likenessRevocationConditions?: string; /** * Policy on AI-generated synthetic media using the person's likeness */ syntheticMediaPolicy?: 'allow_with_attribution' | 'allow_without_attribution' | 'prohibit_all' | 'family_decision' | 'not_stated'; /** * Tracking enforcement of likeness wishes — takedown requests and platform compliance */ likenessEnforcement?: Array<{ /** * Platform where enforcement action is directed */ platform: string; /** * What type of enforcement action was requested */ requestType: 'takedown' | 'restrict' | 'transfer_control' | 'verify_consent' | 'cease_training' | 'other'; /** * When the enforcement request was made */ requestDate?: string; /** * Who made the request (executor, controller, legal representative) */ requestedBy?: string; /** * FK to person who made the request */ requestedByPersonId?: string; /** * Human-readable display name for the referenced requested by person */ requestedByPersonIdDisplay?: string; /** * Current status of the enforcement request */ status?: 'pending' | 'acknowledged' | 'complied' | 'refused' | 'escalated' | 'unknown'; /** * When the platform responded */ responseDate?: string; /** * Platform's reference number for the request */ referenceNumber?: string; /** * Legal basis for the request, e.g. EU AI Act, NO FAKES Act, estate executor authority */ legalBasis?: string; notes?: string; }>; /** * Inventory of existing AI/digital likeness models and instructions for each */ existingDigitalModels?: Array<{ /** * e.g. HereAfter, StoryFile (schema.org provider) */ provider?: string; /** * Type of digital model */ modelType?: 'chatbot' | 'voice_clone' | 'visual_avatar' | 'full_replica' | 'other'; /** * Instruction for what to do with this model after death */ action?: 'preserve' | 'delete' | 'transfer' | 'restrict'; /** * Person.id who has authority over this specific model */ controllerPersonId?: string; /** * Human-readable display name for the referenced controller person */ controllerPersonIdDisplay?: string; }>; /** * Trust IDs this wish or letter of wishes applies to */ relatedTrustIds?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'funeral' | 'letter' | 'care' | 'distribution' | 'digital' | 'pets' | 'general' | 'digital_likeness' | string | string | 'non_binding' | 'culturally_obligatory' | 'religiously_obligatory' | 'legally_binding' | string | string | Visibility | 'burial' | 'cremation' | 'green_burial' | 'sea_burial' | 'sky_burial' | 'donation_to_science' | 'other' | string | 'religious' | 'secular' | 'hybrid' | 'none' | boolean | string | Money | 'estate' | 'pre_paid' | 'insurance' | 'family' | 'other' | string | { /** * Whether consent given */ consentGiven?: boolean; /** * Specific organs consented */ organs?: Array; /** * Organisation coordinating donation */ coordinatingOrganisationId?: string; /** * Human-readable display name for the referenced coordinating organisation */ coordinatingOrganisationIdDisplay?: string; } | { /** * Whether consent given */ consentGiven?: boolean; /** * Research institution Organisation.id */ institutionOrganisationId?: string; /** * Human-readable display name for the referenced institution organisation */ institutionOrganisationIdDisplay?: string; /** * Any restrictions */ restrictions?: string; } | 'requested' | 'declined' | 'no_preference' | 'permitted' | 'prohibited' | 'restricted' | 'not_stated' | Array<'voice' | 'visual_appearance' | 'writing_style' | 'personality_model' | 'full_avatar'> | Array<'memorial' | 'family_private' | 'educational' | 'commercial' | 'legal_proceedings' | 'artistic'> | Array<'memorial' | 'family_private' | 'educational' | 'commercial' | 'legal_proceedings' | 'artistic'> | string | 'allow_with_attribution' | 'allow_without_attribution' | 'prohibit_all' | 'family_decision' | 'not_stated' | Array<{ /** * Platform where enforcement action is directed */ platform: string; /** * What type of enforcement action was requested */ requestType: 'takedown' | 'restrict' | 'transfer_control' | 'verify_consent' | 'cease_training' | 'other'; /** * When the enforcement request was made */ requestDate?: string; /** * Who made the request (executor, controller, legal representative) */ requestedBy?: string; /** * FK to person who made the request */ requestedByPersonId?: string; /** * Human-readable display name for the referenced requested by person */ requestedByPersonIdDisplay?: string; /** * Current status of the enforcement request */ status?: 'pending' | 'acknowledged' | 'complied' | 'refused' | 'escalated' | 'unknown'; /** * When the platform responded */ responseDate?: string; /** * Platform's reference number for the request */ referenceNumber?: string; /** * Legal basis for the request, e.g. EU AI Act, NO FAKES Act, estate executor authority */ legalBasis?: string; notes?: string; }> | Array<{ /** * e.g. HereAfter, StoryFile (schema.org provider) */ provider?: string; /** * Type of digital model */ modelType?: 'chatbot' | 'voice_clone' | 'visual_avatar' | 'full_replica' | 'other'; /** * Instruction for what to do with this model after death */ action?: 'preserve' | 'delete' | 'transfer' | 'restrict'; /** * Person.id who has authority over this specific model */ controllerPersonId?: string; /** * Human-readable display name for the referenced controller person */ controllerPersonIdDisplay?: string; }> | Array | Provenance | undefined; }; /** * A single clause within a will or testamentary document */ export type WillClause = { /** * Unique identifier for this clause */ id: string; /** * The clause number within the document */ clauseNumber?: number; /** * Human-readable title of the clause */ title?: string; /** * The clause text */ content?: string; /** * IDs of related entities — bequests, assets, people, etc */ relatedEntityIds?: Array; /** * The succession regime governing this clause */ successionRegime?: { /** * The law governing succession for this clause */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this clause's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; }; /** * Provenance information — who or what created this clause and who reviewed it */ provenance?: { /** * How this clause was created */ source?: 'ai_generated' | 'solicitor_drafted' | 'imported' | 'template' | 'scanned'; /** * The tool, person, or system that generated this clause */ generatedBy?: string; /** * The person who reviewed this clause */ reviewedBy?: string; /** * Date the clause was reviewed */ reviewedDate?: string; }; /** * The authority that must validate or has validated this clause */ validatingAuthority?: { /** * Name of the validating authority */ name?: string; /** * Type of validating authority */ type?: 'court' | 'religious_body' | 'notary' | 'registrar'; /** * Jurisdiction of the validating authority */ jurisdiction?: Jurisdiction; }; }; /** * Document * * A document associated with an estate — wills, codicils, trust deeds, and other legal documents. Extension types use the x-inherit- prefix for jurisdiction-specific or religious document types */ export type Document = { /** * Unique identifier for this document within the INHERIT document */ id: string; /** * The type of document. Core types cover common law and civil law documents. Extension types use the x-inherit- prefix */ type: 'will' | 'codicil' | 'trust_deed' | 'power_of_attorney' | 'death_certificate' | 'grant_of_probate' | 'letters_of_administration' | 'marriage_certificate' | 'divorce_decree' | 'prenuptial_agreement' | 'property_deed' | 'valuation_report' | 'tax_return' | 'insurance_policy' | 'deed_of_variation' | 'family_settlement' | 'other' | 'invoice' | 'receipt' | string; /** * Human-readable title of the document */ title: string; /** * File format or extension. Use lowercase without a leading dot */ fileFormat?: string; /** * Storage reference — an S3 URI, file path, external system reference, or document management system identifier */ storageRef?: string; /** * File size in bytes. Zero for metadata-only entries where the document content is stored externally */ fileSizeBytes?: number; /** * MIME type of the document file */ mimeType?: string; /** * Timestamp when the document was created or executed */ createdAt?: string; /** * Free-text notes about this document. Use for provenance, authenticity concerns, or handling instructions */ notes?: string; /** * The type of entity this document relates to. Combined with entityId, creates a contextual link: 'this PDF is the valuation certificate for asset X' */ entityType?: string; /** * The ID of the entity this document relates to. Combined with entityType, links the document to its subject */ entityId?: string; /** * Base64-encoded file content for self-contained documents. Use for small, critical files (wills, certificates, attestations) that must travel with the estate plan. For large files, use storageRef instead */ content?: Blob | File; /** * Scans or photographs of this document — useful when the original is a physical paper document */ images?: Array; /** * Structured clauses of a will or testamentary document — enables per-clause provenance tracking, succession regime tagging, and validating authority assignment */ clauses?: Array; /** * Whether the document meets strict formalities or was admitted under a curative/dispensing power */ formalityStatus?: 'formal' | 'informal_admitted' | 'informal_contested' | 'holographic' | 'nuncupative' | 'unknown'; /** * Court or authority that admitted the informal document */ formalityAdmittedBy?: string; formalityAdmittedAt?: string; formalityJurisdiction?: Jurisdiction; /** * Circumstances of informal execution */ formalityNotes?: string; /** * Structured reference to a government registry entry */ registryReference?: { /** * e.g. Legal Affairs Bureau, FCDDV, HMCTS Probate Registry */ registryName: string; registryType?: 'will_registry' | 'probate_court' | 'notarial_registry' | 'death_registry' | 'lpa_registry' | 'seal_registry' | 'other'; referenceNumber?: string; registeredAt?: string; registryJurisdiction?: Jurisdiction; verificationUrl?: string; registryOrganisationId?: string; /** * Human-readable display name for the referenced registry organisation */ registryOrganisationIdDisplay?: string; }; /** * Registries where this document has been registered. Tracks will registration with services such as the National Will Register (England & Wales) or the Register of Deeds (Scotland). Maps to Schema.org RegisterAction */ registrations?: Array<{ /** * Name of the registry */ registry: string; /** * Registration reference number */ reference?: string; /** * Date of registration */ registeredAt: string; jurisdiction?: Jurisdiction; /** * URL of the registry for verification */ registryUrl?: string; /** * When the registration was last verified as current */ verifiedAt?: string; }>; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'will' | 'codicil' | 'trust_deed' | 'power_of_attorney' | 'death_certificate' | 'grant_of_probate' | 'letters_of_administration' | 'marriage_certificate' | 'divorce_decree' | 'prenuptial_agreement' | 'property_deed' | 'valuation_report' | 'tax_return' | 'insurance_policy' | 'deed_of_variation' | 'family_settlement' | 'other' | 'invoice' | 'receipt' | string | string | string | string | number | string | string | Blob | File | Array | Array | 'formal' | 'informal_admitted' | 'informal_contested' | 'holographic' | 'nuncupative' | 'unknown' | string | string | Jurisdiction | string | { /** * e.g. Legal Affairs Bureau, FCDDV, HMCTS Probate Registry */ registryName: string; registryType?: 'will_registry' | 'probate_court' | 'notarial_registry' | 'death_registry' | 'lpa_registry' | 'seal_registry' | 'other'; referenceNumber?: string; registeredAt?: string; registryJurisdiction?: Jurisdiction; verificationUrl?: string; registryOrganisationId?: string; /** * Human-readable display name for the referenced registry organisation */ registryOrganisationIdDisplay?: string; } | Array<{ /** * Name of the registry */ registry: string; /** * Registration reference number */ reference?: string; /** * Date of registration */ registeredAt: string; jurisdiction?: Jurisdiction; /** * URL of the registry for verification */ registryUrl?: string; /** * When the registration was last verified as current */ verifiedAt?: string; }> | Provenance | undefined; }; /** * Nonprobate Transfer * * Assets that pass outside the probate estate — revocable trusts, TOD deeds, POD accounts, JTWROS, beneficiary designations, superannuation/CPF/EPF nominations */ export type NonprobateTransfer = { /** * Unique identifier for this nonprobate transfer within the INHERIT document */ id: string; /** * The mechanism by which this asset passes outside the probate estate */ transferType: 'revocable_trust' | 'tod_deed' | 'pod_account' | 'jtwros' | 'tenancy_by_entirety' | 'beneficiary_designation' | 'life_insurance_nomination' | 'superannuation_nomination' | 'cpf_nomination' | 'epf_nomination' | 'mandatory_savings_nomination'; /** * More specific description of the transfer mechanism */ designationType?: string; /** * Free-text description of the nonprobate transfer */ description?: string; /** * Reference to a Trust.id if this transfer is via a revocable trust */ trustId?: string; /** * Reference to a Property.id if this transfer relates to real estate (e.g. TOD deed, JTWROS property) */ propertyId?: string; /** * References to Asset.id(s) that pass via this nonprobate transfer */ assetIds?: Array; /** * Person IDs of the primary beneficiaries or surviving owners who receive the asset */ beneficiaryPersonIds?: Array; /** * Person IDs of contingent beneficiaries who receive if the primary beneficiaries predecease */ contingentBeneficiaryPersonIds?: Array; /** * Person IDs of surviving joint owners for JTWROS and tenancy by entirety transfers */ survivingOwnerPersonIds?: Array; /** * Confirmation that this asset passes outside the probate estate. Should always be true for nonprobate transfers */ passesOutsideEstate: boolean; /** * Whether the beneficiary nomination is legally binding on the fund trustee. Australian superannuation nominations may be binding (valid for 3 years) or non-binding (trustee has discretion) */ bindingNomination?: boolean; /** * Date the nomination expires, if applicable. Australian binding nominations expire after 3 years and must be renewed */ nominationExpiryDate?: string; /** * Recording or filing reference for the transfer instrument (e.g. county recorder reference for a TOD deed) */ recordingReference?: string; /** * Jurisdiction governing this nonprobate transfer */ jurisdiction?: Jurisdiction; /** * Free-text notes about this nonprobate transfer */ notes?: string; /** * Documents a conflict between this beneficiary designation and another instrument (will, later nomination, court order) */ designationConflict?: { exists?: boolean; conflictsWith?: 'bequest' | 'later_nomination' | 'court_order' | 'other'; conflictingEntityId?: string; resolution?: 'nomination_prevails' | 'will_prevails' | 'court_order' | 'unresolved'; notes?: string; }; /** * How and when a beneficiary designation was revoked */ revocationDetails?: { revokedDate?: string; revokedByDocumentId?: string; revokedBy?: 'testator' | 'court' | 'beneficiary' | 'insurer'; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'revocable_trust' | 'tod_deed' | 'pod_account' | 'jtwros' | 'tenancy_by_entirety' | 'beneficiary_designation' | 'life_insurance_nomination' | 'superannuation_nomination' | 'cpf_nomination' | 'epf_nomination' | 'mandatory_savings_nomination' | string | string | Array | Array | Array | Array | boolean | string | string | Jurisdiction | { exists?: boolean; conflictsWith?: 'bequest' | 'later_nomination' | 'court_order' | 'other'; conflictingEntityId?: string; resolution?: 'nomination_prevails' | 'will_prevails' | 'court_order' | 'unresolved'; notes?: string; } | { revokedDate?: string; revokedByDocumentId?: string; revokedBy?: 'testator' | 'court' | 'beneficiary' | 'insurer'; } | Provenance | undefined; }; /** * Record of the testator's consent to proxy authorisation. Supports formal, informal, and culturally appropriate consent methods */ export type ConsentRecord = { /** * Whether the testator has given consent for the proxy to act on their behalf */ consentGiven: boolean; /** * Date consent was given */ consentDate?: string; /** * The method by which consent was obtained */ consentMethod?: 'in_person_verbal' | 'in_person_written' | 'video_recorded' | 'witnessed_verbal' | 'phone_recorded' | 'assumed_cultural_norm'; /** * Witnesses to the consent, if any */ witnesses?: Array<{ /** * Reference to the Person.id of the witness */ personId: string; /** * The role or capacity in which the person witnessed the consent */ role?: string; /** * Date this person witnessed the consent */ witnessedDate?: string; }>; /** * Reference to a document recording the consent */ documentRef?: string; /** * Additional notes about the consent */ notes?: string; }; /** * Proxy Authorisation * * Authorises a proxy to act on behalf of a testator — information gathering, communication, negotiation, or full decision-making. Includes consent record with cultural consent methods */ export type ProxyAuthorisation = unknown & { /** * Unique identifier for this proxy authorisation within the INHERIT document */ id: string; /** * The type of entity being delegated authority. Determines which identity fields are required */ delegateType: 'person' | 'agent' | 'organisation'; /** * Identifier for the AI agent delegate. Required when delegateType is agent. Format is intentionally flexible to accommodate different agent identity schemes as they emerge */ agentId?: string; /** * Human-readable display name for the agent */ agentIdDisplay?: string; /** * What the agent is permitted to do under this authorisation. The schema records the authorised capabilities; the application enforces whether they are exercised */ agentCapabilities?: Array<'read_catalogue' | 'send_notifications' | 'execute_sales' | 'manage_communications' | 'generate_reports' | 'process_corrections' | 'manage_dealer_offers' | 'generate_legacy_letter' | string>; /** * How the delegate proves its identity when exercising this authorisation */ authenticationMethod?: 'api_key' | 'oauth_token' | 'verifiable_credential' | 'delegation_protocol' | 'mcp_session' | 'human_verified'; /** * Reference to the Person.id of the authorised proxy. Required when delegateType is person or organisation */ proxyPersonId?: string; /** * Human-readable display name for the referenced proxy person */ proxyPersonIdDisplay?: string; /** * Reference to the Person.id of the testator granting the authorisation */ testatorPersonId: string; /** * Human-readable display name for the referenced testator person */ testatorPersonIdDisplay?: string; /** * The scope of authority granted to the proxy */ scope: 'full' | 'information_gathering' | 'communication' | 'negotiation' | 'decision_making'; /** * Record of the testator's consent to this proxy authorisation */ consentRecord: ConsentRecord; /** * Whether the proxy is specifically authorised to negotiate with dealers and third parties interested in estate assets */ dealerNegotiationPermitted?: boolean; /** * Date from which the proxy authorisation is effective */ startDate?: string; /** * Date on which the proxy authorisation expires, if time-limited */ expiryDate?: string; /** * Date the proxy authorisation was revoked by the testator, if applicable */ revocationDate?: string; /** * Structured revocation record — models revocation as a mechanism, not just a date */ revocation?: { /** * When the delegation was revoked */ revokedAt?: string; /** * Who revoked the delegation (schema.org agent) */ revokedBy?: string; /** * How the revocation was effected */ revocationMethod?: 'written_notice' | 'court_order' | 'platform_action' | 'automatic_expiry' | 'death_of_delegate' | 'mutual_agreement' | 'other'; /** * Which jurisdiction's authority governs this revocation */ revocationJurisdiction?: Jurisdiction; /** * Number of days during which the revocation can be challenged */ challengePeriodDays?: number; /** * Final date by which a challenge must be filed */ challengeDeadline?: string; /** * Current status of the revocation */ enforcementStatus?: 'pending' | 'enforced' | 'challenged' | 'overturned' | 'expired'; /** * Link to the revocation document or court order */ evidenceUrl?: string; }; /** * The type of delegation — on-behalf-of preserves principal/agent distinction, impersonation collapses it */ delegationType?: 'on_behalf_of' | 'impersonation' | 'co_equal' | 'supervised'; /** * Constraints limiting how this delegation may be exercised */ delegationConstraints?: { /** * Financial limit per delegated action */ maxTransactionValue?: Money; /** * Whether another person must approve actions */ requiresCoApproval?: boolean; /** * Who must co-approve */ coApproverPersonId?: string; /** * Human-readable display name for the referenced co approver person */ coApproverPersonIdDisplay?: string; /** * Assets this delegate cannot access */ excludedAssetIds?: Array; }; /** * The condition that activates this delegation */ activationTrigger?: 'immediate' | 'on_death' | 'on_incapacity' | 'on_court_order' | 'on_date' | 'on_inactivity' | 'manual'; /** * For on_date trigger */ activationDate?: string; /** * Method used to verify that the activation condition has been met */ activationVerificationMethod?: 'death_certificate' | 'medical_certificate' | 'court_order' | 'community_declaration' | 'platform_detection' | 'none'; /** * Who verified the activation condition was met */ activationVerifiedBy?: string; /** * When the activation condition was verified */ activationVerifiedAt?: string; /** * Whether the delegate can re-delegate authority. Supports delegation chains (executor → solicitor → paralegal) */ subDelegation?: { /** * Whether sub-delegation is permitted */ permitted?: boolean; /** * Maximum depth of the delegation chain (1 = delegate can appoint one sub-delegate) */ maxDepth?: number; /** * Free-text constraints on sub-delegation */ constraints?: string; }; /** * URI pointing to an external delegation credential (W3C Verifiable Credential 2.0, OpenID Foundation, or other delegation protocol). Protocol-agnostic */ credentialRef?: string; /** * URI pointing to an external consent record (FHIR Consent resource, or any external consent management system) */ externalConsentRef?: string; /** * Whether this delegation includes authority to access the deceased's medical records. Relevant for FHIR integration and healthcare interoperability */ healthcareRecordAccess?: boolean; /** * Whether all actions taken by the proxy should be logged for audit purposes */ auditTrailEnabled?: boolean; /** * Structured log of delegation actions — complements the auditTrailEnabled boolean */ auditLog?: Array<{ /** * What delegation action was taken */ action: 'granted' | 'exercised' | 'revoked' | 'challenged' | 'modified' | 'expired'; /** * Who performed this action (schema.org agent) */ agent: string; /** * When the action occurred */ performedAt: string; /** * What specifically was done */ detail?: string; /** * Link to supporting evidence */ evidenceUrl?: string; }>; /** * Free-text notes about this proxy authorisation */ notes?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'person' | 'agent' | 'organisation' | string | Array<'read_catalogue' | 'send_notifications' | 'execute_sales' | 'manage_communications' | 'generate_reports' | 'process_corrections' | 'manage_dealer_offers' | 'generate_legacy_letter' | string> | 'api_key' | 'oauth_token' | 'verifiable_credential' | 'delegation_protocol' | 'mcp_session' | 'human_verified' | 'full' | 'information_gathering' | 'communication' | 'negotiation' | 'decision_making' | ConsentRecord | boolean | string | { /** * When the delegation was revoked */ revokedAt?: string; /** * Who revoked the delegation (schema.org agent) */ revokedBy?: string; /** * How the revocation was effected */ revocationMethod?: 'written_notice' | 'court_order' | 'platform_action' | 'automatic_expiry' | 'death_of_delegate' | 'mutual_agreement' | 'other'; /** * Which jurisdiction's authority governs this revocation */ revocationJurisdiction?: Jurisdiction; /** * Number of days during which the revocation can be challenged */ challengePeriodDays?: number; /** * Final date by which a challenge must be filed */ challengeDeadline?: string; /** * Current status of the revocation */ enforcementStatus?: 'pending' | 'enforced' | 'challenged' | 'overturned' | 'expired'; /** * Link to the revocation document or court order */ evidenceUrl?: string; } | 'on_behalf_of' | 'impersonation' | 'co_equal' | 'supervised' | { /** * Financial limit per delegated action */ maxTransactionValue?: Money; /** * Whether another person must approve actions */ requiresCoApproval?: boolean; /** * Who must co-approve */ coApproverPersonId?: string; /** * Human-readable display name for the referenced co approver person */ coApproverPersonIdDisplay?: string; /** * Assets this delegate cannot access */ excludedAssetIds?: Array; } | 'immediate' | 'on_death' | 'on_incapacity' | 'on_court_order' | 'on_date' | 'on_inactivity' | 'manual' | 'death_certificate' | 'medical_certificate' | 'court_order' | 'community_declaration' | 'platform_detection' | 'none' | string | { /** * Whether sub-delegation is permitted */ permitted?: boolean; /** * Maximum depth of the delegation chain (1 = delegate can appoint one sub-delegate) */ maxDepth?: number; /** * Free-text constraints on sub-delegation */ constraints?: string; } | string | Array<{ /** * What delegation action was taken */ action: 'granted' | 'exercised' | 'revoked' | 'challenged' | 'modified' | 'expired'; /** * Who performed this action (schema.org agent) */ agent: string; /** * When the action occurred */ performedAt: string; /** * What specifically was done */ detail?: string; /** * Link to supporting evidence */ evidenceUrl?: string; }> | string | Provenance | undefined; }; /** * A third party expressing interest in purchasing or acquiring estate assets */ export type InterestedParty = { /** * Reference to a Person.id if the interested party is an individual in the people array */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * Name of the interested party — individual or organisation */ name: string; /** * The type of interested party */ type: 'art_dealer' | 'antique_dealer' | 'property_investor' | 'auction_house' | 'gallery' | 'private_collector' | 'museum' | 'institution' | 'charity' | 'developer' | 'fund_manager' | 'family_office' | 'estate_agent' | 'legal_practice' | 'other'; /** * Contact details for the interested party */ contactDetails?: string; /** * Reference to an Organisation.id if the interested party is a known organisation. Mutually exclusive with personId */ organisationId?: string; /** * Human-readable display name for the referenced organisation */ organisationIdDisplay?: string; }; /** * A specific asset or property that the interested party wants to acquire */ export type AssetInterestItem = { /** * Reference to an Asset.id */ assetId?: string; /** * Reference to a Property.id */ propertyId?: string; /** * How strong the interested party's intent is */ interestLevel?: 'exploratory' | 'moderate' | 'strong' | 'committed'; }; export type CollectionInterest = unknown & { /** * Name of the collection */ name?: string; /** * Asset IDs that make up this collection */ assetIds?: Array; /** * Property IDs that make up this collection */ propertyIds?: Array; /** * Additional notes about the collection interest */ notes?: string; }; /** * Details of a specific offer made by the interested party */ export type OfferDetails = { /** * The offer amount in minor currency units */ amount?: Money; /** * Conditions attached to the offer */ conditions?: Array; /** * Date the offer expires */ validUntil?: string; /** * Date the offer was made */ offerDate?: string; /** * Reference to the document containing the offer */ documentRef?: string; /** * Terms and conditions of the offer */ offerTerms?: string; /** * Whether a physical inspection is required before the offer can be finalised */ inspectionRequired?: boolean; /** * Date the inspection is scheduled or took place */ inspectionDate?: string; }; /** * Dealer Interest * * Level D data — records third-party interest in estate assets (art dealers, property investors, collectors). Privacy-controlled. Managed via proxy authorisation */ export type DealerInterest = { /** * Unique identifier for this dealer interest record within the INHERIT document */ id: string; /** * The third party expressing interest in estate assets */ interestedParty: InterestedParty; /** * Specific assets or properties the interested party wants to acquire */ assets?: Array; /** * Interest in a collection of assets as a whole */ collection?: CollectionInterest; /** * Current status of the offer or expression of interest */ offerStatus: 'standing_interest' | 'verbal_offer' | 'written_offer' | 'formal_valuation' | 'conditional_offer' | 'accepted' | 'declined' | 'expired' | 'withdrawn'; /** * Details of a specific offer, if one has been made */ offerDetails?: OfferDetails; /** * The testator's disposition towards selling this asset */ testatorDisposition?: 'willing_to_sell' | 'prefer_not_to_sell' | 'hold_for_executor' | 'deferred_to_family' | 'promised_to_institution' | 'undecided'; /** * Reference to a Bequest.id if this asset is also subject to a bequest. A dealer interest and a bequest may conflict */ linkedBequestId?: string; /** * Who may see this dealer interest record. Privacy is critical — the testator may not want family to know about dealer approaches */ privacyLevel: 'testator_only' | 'proxy_visible' | 'executor_visible' | 'all_parties'; /** * Who initiated the communication about this potential transaction */ communicationInitiatedBy?: 'buyer' | 'testator' | 'proxy' | 'executor'; /** * Reference to the ProxyAuthorisation.id that governs this dealer interest — the proxy managing the negotiation */ managedByProxyId?: string; /** * Free-text notes about this dealer interest */ notes?: string; /** * The outcome of a verification inspection — records whether the item matched its listed condition and any price adjustments */ verificationResult?: { /** * Whether the item has been through verification */ verified?: boolean; /** * When the verification was completed */ verifiedAt?: string; /** * Whether the item's condition matched the seller's listed grade */ conditionConfirmed?: boolean; /** * The adjusted price if condition differed from listed. Null if no adjustment needed */ adjustedAmount?: Money; /** * Details of any condition discrepancy found during verification */ discrepancyNotes?: string; /** * Reference to the Organisation.id of the verification dealer */ verifiedByOrganisationId?: string; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | InterestedParty | Array | CollectionInterest | 'standing_interest' | 'verbal_offer' | 'written_offer' | 'formal_valuation' | 'conditional_offer' | 'accepted' | 'declined' | 'expired' | 'withdrawn' | OfferDetails | 'willing_to_sell' | 'prefer_not_to_sell' | 'hold_for_executor' | 'deferred_to_family' | 'promised_to_institution' | 'undecided' | 'testator_only' | 'proxy_visible' | 'executor_visible' | 'all_parties' | 'buyer' | 'testator' | 'proxy' | 'executor' | string | { /** * Whether the item has been through verification */ verified?: boolean; /** * When the verification was completed */ verifiedAt?: string; /** * Whether the item's condition matched the seller's listed grade */ conditionConfirmed?: boolean; /** * The adjusted price if condition differed from listed. Null if no adjustment needed */ adjustedAmount?: Money; /** * Details of any condition discrepancy found during verification */ discrepancyNotes?: string; /** * Reference to the Organisation.id of the verification dealer */ verifiedByOrganisationId?: string; } | Provenance | undefined; }; /** * A path expression for referential integrity constraints. Supports camelCase field paths and x-inherit-* extension block paths */ export type IntegrityPath = string; /** * TemporalRule * * A jurisdiction rule value with effective dates, legislative status, and change history */ export type TemporalRule = { /** * The actual rule value — a number (tax rate, threshold in minor units), boolean (rule applies or not), string (enum value, fraction), or object (complex rule). The consumer must interpret this in context */ value: number | boolean | string | { [key: string]: unknown; }; /** * The date from which this rule value takes effect. For enacted legislation, this is the commencement date, not the date of royal assent */ effectiveFrom: string; /** * The date this rule value was or will be superseded. Null means it is currently in effect with no known end date */ effectiveUntil?: string | null; /** * The legislative status of this rule. Only 'enacted' rules are legally binding — all others are prospective */ status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; /** * The previous value of this rule, for computing deltas and understanding the direction of change. Null if this is the first known value */ predecessorValue?: number | boolean | string | { [key: string]: unknown; } | null; /** * Citation for the legislation that establishes this rule value. Include act name, section, and year */ legislativeReference?: string; /** * Free-text commentary on this rule value — transitional provisions, known ambiguities, or political context */ notes?: string; /** * The jurisdiction this temporal rule applies to. Enables different thresholds for different jurisdictions (e.g. UK IHT vs Scottish IHT) */ jurisdiction?: Jurisdiction; }; /** * UK England & Wales Extension * * IHT thresholds, intestacy rules, IFPA 1975 eligibility, and legislative changes for England & Wales estates. Temporal-rule wrapping on key values. */ export type UkEnglandWales = { intestacyStatutoryLegacy?: TemporalRule; nilRateBand?: TemporalRule; residenceNilRateBand?: TemporalRule; transferableNilRateBand?: boolean; transferableNilRateBandPercentage?: number; inheritanceTaxRate?: TemporalRule; cohabitantRights?: { applicable?: boolean; statute?: string; notes?: string; }; ifpa1975Eligible?: Array<{ personId: string; category: 'spouse' | 'former_spouse' | 'child' | 'child_of_family' | 'maintained_person' | 'cohabitant'; notes?: string; }>; localPropertyTypes?: Array<{ propertyId: string; localType: 'detached_house' | 'semi_detached_house' | 'terraced_house' | 'flat' | 'maisonette' | 'bungalow' | 'cottage' | 'farmhouse' | 'barn_conversion' | 'houseboat' | 'park_home' | 'other'; }>; localTenureTypes?: Array<{ propertyId: string; localType: 'freehold' | 'leasehold' | 'commonhold' | 'share_of_freehold'; }>; localGrantTypes?: Array<{ executorId: string; localType: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'limited_grant' | 'de_bonis_non'; }>; legislativeChanges?: Array<{ description: string; status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; effectiveDate?: string; notes?: string; }>; /** * Intestacy distribution hierarchy under the Administration of Estates Act 1925 s.46. Each tier takes priority over all lower tiers. Whole blood takes absolute priority over half blood at sibling and uncle/aunt levels */ intestacyHierarchy?: Array<{ /** * Priority rank (1 = highest) */ tier: number; /** * Kinship category for this tier */ relationshipCategory: 'spouse' | 'children_and_issue' | 'parents' | 'siblings_whole' | 'siblings_half' | 'grandparents' | 'uncles_aunts_whole' | 'uncles_aunts_half' | 'crown'; /** * Whether this tier requires whole or half blood */ bloodRequirement?: 'whole' | 'half' | 'not_applicable'; notes?: string; }>; /** * The statutory legacy amount the surviving spouse receives before the kinship-based residuary distribution. Currently £322,000 (from 26 July 2023, SI 2023/877) */ statutoryLegacy?: { amount?: Money; effectiveFrom?: string; statutoryInstrument?: string; }; [key: string]: { [key: string]: unknown; } | TemporalRule | boolean | number | { applicable?: boolean; statute?: string; notes?: string; } | Array<{ personId: string; category: 'spouse' | 'former_spouse' | 'child' | 'child_of_family' | 'maintained_person' | 'cohabitant'; notes?: string; }> | Array<{ propertyId: string; localType: 'detached_house' | 'semi_detached_house' | 'terraced_house' | 'flat' | 'maisonette' | 'bungalow' | 'cottage' | 'farmhouse' | 'barn_conversion' | 'houseboat' | 'park_home' | 'other'; }> | Array<{ propertyId: string; localType: 'freehold' | 'leasehold' | 'commonhold' | 'share_of_freehold'; }> | Array<{ executorId: string; localType: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'limited_grant' | 'de_bonis_non'; }> | Array<{ description: string; status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; effectiveDate?: string; notes?: string; }> | Array<{ /** * Priority rank (1 = highest) */ tier: number; /** * Kinship category for this tier */ relationshipCategory: 'spouse' | 'children_and_issue' | 'parents' | 'siblings_whole' | 'siblings_half' | 'grandparents' | 'uncles_aunts_whole' | 'uncles_aunts_half' | 'crown'; /** * Whether this tier requires whole or half blood */ bloodRequirement?: 'whole' | 'half' | 'not_applicable'; notes?: string; }> | { amount?: Money; effectiveFrom?: string; statutoryInstrument?: string; } | undefined; }; /** * Scotland Extension * * Scottish succession law — prior rights, legal rights, confirmation, cohabitation claims under Family Law (Scotland) Act 2006, intestacy (Succession (Scotland) Act 1964 as amended 2024), heritable/moveable classification, executry, survivorship destinations, crofting succession, LBTT */ export type Scotland = { /** * Prior rights of the surviving spouse/civil partner under Succession (Scotland) Act 1964 ss.8-9 */ priorRights?: { /** * Right to dwellinghouse (s.8) — value threshold is a temporal rule */ dwellinghouseRight?: TemporalRule; /** * Right to furniture and plenishings (s.8) — value threshold */ furnitureRight?: TemporalRule; /** * Right to financial provision (s.9) — value threshold */ financialProvision?: TemporalRule; }; /** * Legal rights (jus relictae/jus relicti for spouse, legitim for children) — fixed fractions of moveable estate that cannot be defeated by will */ legalRights?: { /** * Surviving spouse share of moveable estate (1/3 with children, 1/2 without) */ jusRelictae?: string; /** * Children share of moveable estate (1/3 with surviving spouse, 1/2 without) */ legitim?: string; /** * Remaining moveable estate after legal rights — free to dispose by will */ deadsPart?: string; }; /** * Scottish equivalent of probate — confirmation is granted by the Sheriff Court */ confirmation?: { /** * Which Sheriff Court has jurisdiction */ sheriffCourt?: string; /** * Type of confirmation process */ confirmationType?: 'confirmation' | 'small_estate_certificate' | 'eik_confirmation'; /** * Total value of estate for inventory purposes */ inventoryValue?: Money; /** * Threshold below which simplified procedure applies */ smallEstateThreshold?: TemporalRule; }; /** * Claims by cohabitants under Family Law (Scotland) Act 2006 s.29 */ cohabitationClaim?: { /** * Whether a cohabitant claim is likely */ eligible?: boolean; /** * Reference to the cohabitant in the people array */ cohabitantPersonId?: string; /** * Duration of cohabitation (relevant to claim strength) */ cohabitationDuration?: string; /** * Deadline from date of death to raise action */ claimDeadline?: string; cohabitationStartDate?: string; cohabitationEndDate?: string; claimDeadlineVersion?: 'pre_2024_six_months' | 'post_2024_twelve_months'; externalBenefits?: Array<{ description?: string; amount?: Money; }>; courtOrderType?: 'capital_sum' | 'property_transfer' | 'none' | 'pending'; awardAmount?: Money; courtReference?: string; }; /** * Scotland has no forced heirship for heritable property — only legal rights apply to moveables. This field records whether the testator has attempted to defeat legal rights. */ forcedHeirship?: { /** * Whether the will attempts to defeat legal rights */ legalRightsDefeated?: boolean; /** * Whether children have formally discharged their legal rights */ discharged?: boolean; dischargeDetails?: string; }; /** * Tracked changes to Scottish succession legislation */ legislativeChanges?: Array; notes?: string; /** * Intestacy calculation under Succession (Scotland) Act 1964 as amended by Trusts and Succession (Scotland) Act 2024 */ intestacy?: { applicable?: boolean; /** * Whether this is partial intestacy (will exists but doesn't cover all estate) */ partial?: boolean; /** * Which ranking order applies (post_2024 for deaths on or after 1 May 2024) */ rulesVersion?: 'pre_2024' | 'post_2024'; priorRightsClaimed?: { dwellinghouseValue?: Money; dwellinghouseCapped?: boolean; furnitureValue?: Money; financialProvision?: Money; financialProvisionRate?: 'with_children' | 'without_children'; }; legalRightsClaimed?: { jusRelictaeAmount?: Money; legitimAmount?: Money; legitimPerChild?: Money; numberOfEligibleChildren?: number; }; netMoveableEstate?: Money; freeEstate?: Money; freeEstateDistribution?: Array<{ personId: string; rank?: number; share?: string; amount?: Money; }>; notes?: string; }; /** * Classification of estate items as heritable or moveable under Scots law — legal rights apply only to moveables */ heritableMoveableClassifications?: Array<{ entityType: 'property' | 'asset'; entityId: string; classification: 'heritable' | 'moveable'; basis?: string; overridden?: boolean; }>; /** * Sum of all heritable items */ totalHeritableValue?: Money; /** * Sum of all moveable items */ totalMoveableValue?: Money; /** * Scottish-specific executor appointment details — nominate (by will), dative (by court), creditor (by creditor petition) */ executryAppointments?: Array<{ executorId: string; appointmentType: 'executor_nominate' | 'executor_dative' | 'executor_creditor'; bondOfCaution?: { required?: boolean; obtained?: boolean; provider?: string; amount?: Money; reference?: string; }; appointedBy?: string; courtPetitionDate?: string; }>; /** * Properties with survivorship destinations ('to A and B and the survivor') — pass outside the estate, overriding any will */ survivorshipDestinations?: Array<{ propertyId: string; destinationType: 'survivorship' | 'pro_indiviso'; survivorPersonIds?: Array; passesOutsideEstate?: boolean; evacuated?: boolean; evacuationMethod?: 'agreement' | 'divorce_automatic' | 'court_order'; evacuationDate?: string; titleReference?: string; notes?: string; }>; /** * Crofting succession under Crofters (Scotland) Act 1993 — special rules for crofting tenancies */ croftingSuccession?: { hasCroft?: boolean; crofts?: Array<{ propertyId: string; croftingRegisterNumber?: string; tenureType: 'tenant' | 'owner_occupier' | 'absentee'; landlordName?: string; successionRoute?: 'bequest' | 'intestate_transfer' | 'not_yet_determined'; legateePersonId?: string; legateeNotifiedLandlord?: boolean; legateeNotifiedCommission?: boolean; notificationDeadline?: string; notificationDate?: string; landlordObjection?: boolean; commissionDecision?: 'pending' | 'approved' | 'refused'; agriculturalPropertyRelief?: boolean; notes?: string; }>; }; /** * Scottish will formalities under Requirements of Writing (Scotland) Act 1995 */ willFormalities?: { documentId?: string; executionType?: 'attested' | 'holograph' | 'notarial'; witnessCount?: number; probative?: boolean; notarialExecutorName?: string; notarialExecutorRole?: 'solicitor' | 'advocate' | 'justice_of_peace' | 'sheriff_clerk'; /** * Always false in Scotland — marriage does not revoke a will */ marriageRevokes?: boolean; registeredWithRegisterOfDeeds?: boolean; registerReference?: string; notes?: string; }; /** * LBTT succession exemption under LBTT(S) Act 2013 — estate transfers are exempt, but inherited dwellings affect ADS */ lbttExemption?: { exempt?: boolean; /** * Whether inherited dwellings create Additional Dwelling Supplement exposure */ adsImplication?: boolean; adsAffectedPersonIds?: Array; notes?: string; }; [key: string]: { [key: string]: unknown; } | { /** * Right to dwellinghouse (s.8) — value threshold is a temporal rule */ dwellinghouseRight?: TemporalRule; /** * Right to furniture and plenishings (s.8) — value threshold */ furnitureRight?: TemporalRule; /** * Right to financial provision (s.9) — value threshold */ financialProvision?: TemporalRule; } | { /** * Surviving spouse share of moveable estate (1/3 with children, 1/2 without) */ jusRelictae?: string; /** * Children share of moveable estate (1/3 with surviving spouse, 1/2 without) */ legitim?: string; /** * Remaining moveable estate after legal rights — free to dispose by will */ deadsPart?: string; } | { /** * Which Sheriff Court has jurisdiction */ sheriffCourt?: string; /** * Type of confirmation process */ confirmationType?: 'confirmation' | 'small_estate_certificate' | 'eik_confirmation'; /** * Total value of estate for inventory purposes */ inventoryValue?: Money; /** * Threshold below which simplified procedure applies */ smallEstateThreshold?: TemporalRule; } | { /** * Whether a cohabitant claim is likely */ eligible?: boolean; /** * Reference to the cohabitant in the people array */ cohabitantPersonId?: string; /** * Duration of cohabitation (relevant to claim strength) */ cohabitationDuration?: string; /** * Deadline from date of death to raise action */ claimDeadline?: string; cohabitationStartDate?: string; cohabitationEndDate?: string; claimDeadlineVersion?: 'pre_2024_six_months' | 'post_2024_twelve_months'; externalBenefits?: Array<{ description?: string; amount?: Money; }>; courtOrderType?: 'capital_sum' | 'property_transfer' | 'none' | 'pending'; awardAmount?: Money; courtReference?: string; } | { /** * Whether the will attempts to defeat legal rights */ legalRightsDefeated?: boolean; /** * Whether children have formally discharged their legal rights */ discharged?: boolean; dischargeDetails?: string; } | Array | string | { applicable?: boolean; /** * Whether this is partial intestacy (will exists but doesn't cover all estate) */ partial?: boolean; /** * Which ranking order applies (post_2024 for deaths on or after 1 May 2024) */ rulesVersion?: 'pre_2024' | 'post_2024'; priorRightsClaimed?: { dwellinghouseValue?: Money; dwellinghouseCapped?: boolean; furnitureValue?: Money; financialProvision?: Money; financialProvisionRate?: 'with_children' | 'without_children'; }; legalRightsClaimed?: { jusRelictaeAmount?: Money; legitimAmount?: Money; legitimPerChild?: Money; numberOfEligibleChildren?: number; }; netMoveableEstate?: Money; freeEstate?: Money; freeEstateDistribution?: Array<{ personId: string; rank?: number; share?: string; amount?: Money; }>; notes?: string; } | Array<{ entityType: 'property' | 'asset'; entityId: string; classification: 'heritable' | 'moveable'; basis?: string; overridden?: boolean; }> | Money | Array<{ executorId: string; appointmentType: 'executor_nominate' | 'executor_dative' | 'executor_creditor'; bondOfCaution?: { required?: boolean; obtained?: boolean; provider?: string; amount?: Money; reference?: string; }; appointedBy?: string; courtPetitionDate?: string; }> | Array<{ propertyId: string; destinationType: 'survivorship' | 'pro_indiviso'; survivorPersonIds?: Array; passesOutsideEstate?: boolean; evacuated?: boolean; evacuationMethod?: 'agreement' | 'divorce_automatic' | 'court_order'; evacuationDate?: string; titleReference?: string; notes?: string; }> | { hasCroft?: boolean; crofts?: Array<{ propertyId: string; croftingRegisterNumber?: string; tenureType: 'tenant' | 'owner_occupier' | 'absentee'; landlordName?: string; successionRoute?: 'bequest' | 'intestate_transfer' | 'not_yet_determined'; legateePersonId?: string; legateeNotifiedLandlord?: boolean; legateeNotifiedCommission?: boolean; notificationDeadline?: string; notificationDate?: string; landlordObjection?: boolean; commissionDecision?: 'pending' | 'approved' | 'refused'; agriculturalPropertyRelief?: boolean; notes?: string; }>; } | { documentId?: string; executionType?: 'attested' | 'holograph' | 'notarial'; witnessCount?: number; probative?: boolean; notarialExecutorName?: string; notarialExecutorRole?: 'solicitor' | 'advocate' | 'justice_of_peace' | 'sheriff_clerk'; /** * Always false in Scotland — marriage does not revoke a will */ marriageRevokes?: boolean; registeredWithRegisterOfDeeds?: boolean; registerReference?: string; notes?: string; } | { exempt?: boolean; /** * Whether inherited dwellings create Additional Dwelling Supplement exposure */ adsImplication?: boolean; adsAffectedPersonIds?: Array; notes?: string; } | undefined; }; /** * Ireland Extension * * Irish succession law — Succession Act 1965, spouse legal right share, Section 117 moral duty provision, Capital Acquisitions Tax, intestacy distribution, dwelling house exemption, civil partnership provisions */ export type Ireland = { /** * Spouse legal right share under Succession Act 1965 s.111 — 1/3 with children, 1/2 without. Cannot be defeated by will. */ spouseLegalRightShare?: { /** * 1/3 (with children) or 1/2 (without children) */ fraction?: string; hasChildren?: boolean; /** * Whether spouse has renounced their legal right share */ renounced?: boolean; }; /** * Section 117 moral duty provision — court can order provision for children if testator failed in moral duty */ section117Claim?: { applicable?: boolean; claimantPersonIds?: Array; /** * 6 months from first extraction of grant of probate */ claimDeadlineMonths?: number; }; /** * Capital Acquisitions Tax (CAT) thresholds — Irish equivalent of inheritance tax */ capitalAcquisitionsTax?: { /** * Group A: child from parent */ groupAThreshold?: TemporalRule; /** * Group B: sibling, niece/nephew, grandchild */ groupBThreshold?: TemporalRule; /** * Group C: all others */ groupCThreshold?: TemporalRule; /** * Current CAT rate (33%) */ taxRate?: TemporalRule; }; /** * Irish probate process — Probate Office or District Probate Registry */ probateProcess?: { probateOffice?: string; /** * Whether Revenue Commissioners affidavit (Form SA.2) filed */ inlandRevenueAffidavit?: boolean; grantType?: 'probate' | 'administration_with_will' | 'administration_intestacy' | 'administration_de_bonis_non'; }; /** * Irish EPA — different from English LPA. Must be registered with the court before it can be used. */ enduringPowerOfAttorney?: { registered?: boolean; registrationDate?: string; attorneyPersonIds?: Array; }; /** * Distribution order under Part VI of the Succession Act 1965 */ intestacyRules?: { distributionOrder?: 'spouse_only' | 'spouse_and_children' | 'children_only' | 'parents' | 'siblings' | 'nephews_nieces' | 'grandparents' | 'uncles_aunts' | 'first_cousins' | 'next_of_kin'; hasSpouse?: boolean; hasIssue?: boolean; notes?: string; }; /** * CAT Section 86 dwelling house exemption — inherited home exempt if beneficiary lived there 3+ years prior and continues 6 years after */ dwellingHouseExemption?: { claimed?: boolean; propertyId?: string; residencePeriodYears?: number; noOtherResidentialInterest?: boolean; continuingResidenceRequired?: boolean; notes?: string; }; /** * Civil Partnership and Certain Rights and Obligations of Cohabitants Act 2010 */ civilPartnershipProvisions?: { civilPartner?: boolean; /** * 5 years cohabitation or 2 years with dependent child */ qualifiedCohabitant?: boolean; cohabitantRedressSchemeApplied?: boolean; notes?: string; }; /** * Advancement provisions under Section 56 of the Succession Act 1965 — lifetime gifts to children brought into account on intestacy */ section56Advancement?: { advancementsRecorded?: boolean; advancements?: Array<{ personId: string; amount?: Money; description?: string; }>; notes?: string; }; /** * Tracked changes to Irish succession legislation */ legislativeChanges?: Array; notes?: string; [key: string]: { [key: string]: unknown; } | { /** * 1/3 (with children) or 1/2 (without children) */ fraction?: string; hasChildren?: boolean; /** * Whether spouse has renounced their legal right share */ renounced?: boolean; } | { applicable?: boolean; claimantPersonIds?: Array; /** * 6 months from first extraction of grant of probate */ claimDeadlineMonths?: number; } | { /** * Group A: child from parent */ groupAThreshold?: TemporalRule; /** * Group B: sibling, niece/nephew, grandchild */ groupBThreshold?: TemporalRule; /** * Group C: all others */ groupCThreshold?: TemporalRule; /** * Current CAT rate (33%) */ taxRate?: TemporalRule; } | { probateOffice?: string; /** * Whether Revenue Commissioners affidavit (Form SA.2) filed */ inlandRevenueAffidavit?: boolean; grantType?: 'probate' | 'administration_with_will' | 'administration_intestacy' | 'administration_de_bonis_non'; } | { registered?: boolean; registrationDate?: string; attorneyPersonIds?: Array; } | { distributionOrder?: 'spouse_only' | 'spouse_and_children' | 'children_only' | 'parents' | 'siblings' | 'nephews_nieces' | 'grandparents' | 'uncles_aunts' | 'first_cousins' | 'next_of_kin'; hasSpouse?: boolean; hasIssue?: boolean; notes?: string; } | { claimed?: boolean; propertyId?: string; residencePeriodYears?: number; noOtherResidentialInterest?: boolean; continuingResidenceRequired?: boolean; notes?: string; } | { civilPartner?: boolean; /** * 5 years cohabitation or 2 years with dependent child */ qualifiedCohabitant?: boolean; cohabitantRedressSchemeApplied?: boolean; notes?: string; } | { advancementsRecorded?: boolean; advancements?: Array<{ personId: string; amount?: Money; description?: string; }>; notes?: string; } | Array | string | undefined; }; /** * US Estate Extension * * US-specific estate planning: federal and state estate tax, community/separate property regimes, elective share, homestead exemptions, per stirpes variants, no-contest clauses, pretermitted heir statutes, RUFADAA, Louisiana forced heirship, probate variation, trust features, SECURE Act retirement rules, ancillary probate, advance directives. */ export type UsEstate = { /** * US state in ISO 3166-2 format (e.g. US-CA, US-NY) — determines which state succession, property regime, and tax laws apply */ state: string; propertyRegime?: 'community_property' | 'community_property_with_survivorship' | 'separate_property' | 'quasi_community'; electiveShareDetails?: { available?: boolean; electedPercentage?: number; augmentedEstateIncludes?: string; statute?: string; notes?: string; }; homesteadExemptions?: Array<{ propertyId: string; exemptionAmount?: Money; constitutional?: boolean; notes?: string; }>; perStirpesVariant?: 'strict_per_stirpes' | 'modern_per_stirpes' | 'per_capita_at_each_generation'; noContestEnforceable?: boolean; pretermittedHeirStatute?: string; rufadaaAdopted?: boolean; louisianaForcedHeirship?: { applicable?: boolean; eligibleChildren?: Array<{ personId?: string; ageOrCondition?: string; }>; reservedPortion?: number; basis?: 'fixed' | 'conditional'; notes?: string; }; notes?: string; /** * Federal estate tax under IRC Title 26 — exemption, portability, GSTT */ federalEstateTax?: { /** * Unified credit equivalent, currently $13.61M (2024), TCJA sunset 2026 */ basicExclusionAmount?: TemporalRule; /** * Currently 40% */ topMarginalRate?: number; /** * Whether deceased spouse's unused exclusion (DSUE) is being elected */ portabilityElected?: boolean; dsueAmount?: Money; gsttExemption?: TemporalRule; gsttRate?: number; form706Required?: boolean; form706Filed?: boolean; notes?: string; }; /** * State-level estate and inheritance tax — 12 states + DC have estate tax, 6 states have inheritance tax */ stateEstateTax?: { hasEstateTax?: boolean; hasInheritanceTax?: boolean; estateExemption?: TemporalRule; topEstateRate?: number; coupledToFederalExemption?: boolean; inheritanceTaxClasses?: Array<{ className?: string; relationships?: string; exemption?: Money; topRate?: number; }>; statute?: string; notes?: string; }; /** * State probate process variation — UPC adoption, thresholds, administration types */ probateVariation?: { upcAdopted?: boolean; upcEdition?: string; smallEstateAffidavitThreshold?: TemporalRule; simplifiedProbateThreshold?: TemporalRule; administrationType?: 'supervised' | 'unsupervised' | 'independent' | 'informal'; bondRequired?: boolean; statute?: string; notes?: string; }; /** * US-specific trust qualifiers — does not duplicate core trust.json, captures state-level features */ trustFeatures?: { pourOverWill?: boolean; abTrustPlanning?: boolean; qtipElectionAvailable?: boolean; qtipElectionMade?: boolean; dynastyTrustState?: boolean; maximumTrustDuration?: string; decantingPermitted?: boolean; decantingStatute?: string; directedTrustPermitted?: boolean; notes?: string; }; /** * SECURE Act retirement account distribution rules — 10-year rule, eligible designated beneficiaries */ retirementAccountRules?: { secureActApplies?: boolean; /** * Required minimum distribution age (73 from 2023, 75 from 2033) */ rmdAge?: TemporalRule; eligibleDesignatedBeneficiaries?: Array<{ personId: string; edbCategory: 'surviving_spouse' | 'minor_child' | 'disabled' | 'chronically_ill' | 'not_more_than_10_years_younger'; }>; todDeedAvailable?: boolean; notes?: string; }; /** * State-specific intestacy variation — surviving spouse share, property rules */ intestacyRules?: { survivingSpouseShare?: string; survivingSpouseShareStatute?: string; separatePropertyRule?: string; communityPropertyRule?: string; adoptedChildrenEqual?: boolean; halfBloodRule?: 'equal_to_whole_blood' | 'half_share' | 'excluded'; notes?: string; }; /** * Ancillary probate proceedings when the decedent owns property in multiple states */ ancillaryProbate?: Array<{ state: string; propertyIds?: Array; acceptsDomiciliaryLetters?: boolean; status?: 'not_filed' | 'filed' | 'granted' | 'completed' | 'waived'; caseNumber?: string; notes?: string; }>; /** * US-specific advance directive and POA features — UHCDA, UPOAA, HIPAA */ advanceDirectives?: { uhcdaAdopted?: boolean; upoaaAdopted?: boolean; hipaaAuthorisationOnFile?: boolean; healthcareDirectiveType?: 'living_will' | 'healthcare_proxy' | 'combined_directive' | 'polst' | 'none'; stateMandatoryForm?: boolean; financialPoaType?: 'durable' | 'springing' | 'limited' | 'none'; statute?: string; notes?: string; }; /** * Elaborates the propertyRegime enum — specifics for community property states */ communityPropertyDetails?: { communityPropertyState?: 'US-AZ' | 'US-CA' | 'US-ID' | 'US-LA' | 'US-NV' | 'US-NM' | 'US-TX' | 'US-WA' | 'US-WI' | 'US-AK' | 'US-TN' | 'US-SD'; /** * Alaska, Tennessee, South Dakota allow opting in */ optInCommunityProperty?: boolean; transmutationPermitted?: boolean; prenuptialAgreement?: boolean; postnuptialAgreement?: boolean; /** * CPWROS gets full step-up in basis for both halves under IRC s.1014(b)(6) */ fullBasisStepUp?: boolean; notes?: string; }; /** * How deeply the state's intestacy rules extend into the kinship tree */ intestacyDepth?: { /** * Whether the state follows the Uniform Probate Code's 2nd parentelic limit */ upcCompliant?: boolean; /** * How many parentelic orders the state recognises. UPC states: 2. States like California: 3+ */ maxParentele?: number; /** * Whether the state limits inheritance to prevent distant relatives from inheriting */ laughingHeirCutoff?: boolean; }; /** * Rules governing collateral heirs (uncles/aunts, cousins) in this state's intestacy scheme */ collateralHeirRules?: { /** * Whether first cousins can inherit on intestacy in this state */ cousinInheritance?: boolean; /** * Whether per stirpes representation applies to uncles/aunts and cousins */ representationAtCollateralLevel?: boolean; }; [key: string]: { [key: string]: unknown; } | string | 'community_property' | 'community_property_with_survivorship' | 'separate_property' | 'quasi_community' | { available?: boolean; electedPercentage?: number; augmentedEstateIncludes?: string; statute?: string; notes?: string; } | Array<{ propertyId: string; exemptionAmount?: Money; constitutional?: boolean; notes?: string; }> | 'strict_per_stirpes' | 'modern_per_stirpes' | 'per_capita_at_each_generation' | boolean | string | { applicable?: boolean; eligibleChildren?: Array<{ personId?: string; ageOrCondition?: string; }>; reservedPortion?: number; basis?: 'fixed' | 'conditional'; notes?: string; } | string | { /** * Unified credit equivalent, currently $13.61M (2024), TCJA sunset 2026 */ basicExclusionAmount?: TemporalRule; /** * Currently 40% */ topMarginalRate?: number; /** * Whether deceased spouse's unused exclusion (DSUE) is being elected */ portabilityElected?: boolean; dsueAmount?: Money; gsttExemption?: TemporalRule; gsttRate?: number; form706Required?: boolean; form706Filed?: boolean; notes?: string; } | { hasEstateTax?: boolean; hasInheritanceTax?: boolean; estateExemption?: TemporalRule; topEstateRate?: number; coupledToFederalExemption?: boolean; inheritanceTaxClasses?: Array<{ className?: string; relationships?: string; exemption?: Money; topRate?: number; }>; statute?: string; notes?: string; } | { upcAdopted?: boolean; upcEdition?: string; smallEstateAffidavitThreshold?: TemporalRule; simplifiedProbateThreshold?: TemporalRule; administrationType?: 'supervised' | 'unsupervised' | 'independent' | 'informal'; bondRequired?: boolean; statute?: string; notes?: string; } | { pourOverWill?: boolean; abTrustPlanning?: boolean; qtipElectionAvailable?: boolean; qtipElectionMade?: boolean; dynastyTrustState?: boolean; maximumTrustDuration?: string; decantingPermitted?: boolean; decantingStatute?: string; directedTrustPermitted?: boolean; notes?: string; } | { secureActApplies?: boolean; /** * Required minimum distribution age (73 from 2023, 75 from 2033) */ rmdAge?: TemporalRule; eligibleDesignatedBeneficiaries?: Array<{ personId: string; edbCategory: 'surviving_spouse' | 'minor_child' | 'disabled' | 'chronically_ill' | 'not_more_than_10_years_younger'; }>; todDeedAvailable?: boolean; notes?: string; } | { survivingSpouseShare?: string; survivingSpouseShareStatute?: string; separatePropertyRule?: string; communityPropertyRule?: string; adoptedChildrenEqual?: boolean; halfBloodRule?: 'equal_to_whole_blood' | 'half_share' | 'excluded'; notes?: string; } | Array<{ state: string; propertyIds?: Array; acceptsDomiciliaryLetters?: boolean; status?: 'not_filed' | 'filed' | 'granted' | 'completed' | 'waived'; caseNumber?: string; notes?: string; }> | { uhcdaAdopted?: boolean; upoaaAdopted?: boolean; hipaaAuthorisationOnFile?: boolean; healthcareDirectiveType?: 'living_will' | 'healthcare_proxy' | 'combined_directive' | 'polst' | 'none'; stateMandatoryForm?: boolean; financialPoaType?: 'durable' | 'springing' | 'limited' | 'none'; statute?: string; notes?: string; } | { communityPropertyState?: 'US-AZ' | 'US-CA' | 'US-ID' | 'US-LA' | 'US-NV' | 'US-NM' | 'US-TX' | 'US-WA' | 'US-WI' | 'US-AK' | 'US-TN' | 'US-SD'; /** * Alaska, Tennessee, South Dakota allow opting in */ optInCommunityProperty?: boolean; transmutationPermitted?: boolean; prenuptialAgreement?: boolean; postnuptialAgreement?: boolean; /** * CPWROS gets full step-up in basis for both halves under IRC s.1014(b)(6) */ fullBasisStepUp?: boolean; notes?: string; } | { /** * Whether the state follows the Uniform Probate Code's 2nd parentelic limit */ upcCompliant?: boolean; /** * How many parentelic orders the state recognises. UPC states: 2. States like California: 3+ */ maxParentele?: number; /** * Whether the state limits inheritance to prevent distant relatives from inheriting */ laughingHeirCutoff?: boolean; } | { /** * Whether first cousins can inherit on intestacy in this state */ cousinInheritance?: boolean; /** * Whether per stirpes representation applies to uncles/aunts and cousins */ representationAtCollateralLevel?: boolean; } | undefined; }; export type QuebecPatrimony = { applicable?: boolean; patrimonyValue?: Money; equalisation?: string; notes?: string; }; export type OntarioEqualization = { netFamilyProperty?: Money; equalizationPayment?: Money; canBeNegative?: boolean; notes?: string; }; export type BcwesaVariation = { variationApplied?: boolean; courtReference?: string; notes?: string; }; export type AlbertaDower = { dowerRight: boolean; spousePersonId?: string; propertyId?: string; consentGiven?: boolean; notes?: string; }; export type IndigenousLandDetails = { propertyId: string; reserveName?: string; treatyNumber?: string; landType: 'reserve' | 'treaty' | 'fee_simple_on_reserve' | 'certificate_of_possession'; successionRestrictions?: string; notes?: string; }; /** * Canada Extension * * Provincial succession rules for Canada: Quebec patrimony, Ontario equalization, BC WESA variation, Alberta dower rights, and Indigenous land succession details. */ export type Canada = { /** * Canadian province or territory whose succession law applies. Critical — every province has different intestacy rules, preferential shares, and property regimes */ province: 'CA-AB' | 'CA-BC' | 'CA-MB' | 'CA-NB' | 'CA-NL' | 'CA-NS' | 'CA-NT' | 'CA-NU' | 'CA-ON' | 'CA-PE' | 'CA-QC' | 'CA-SK' | 'CA-YT'; quebecPatrimony?: QuebecPatrimony; ontarioEqualization?: OntarioEqualization; bcWesaVariation?: BcwesaVariation; albertaDower?: AlbertaDower; indigenousLandDetails?: Array; /** * Provincial intestacy distribution rules */ intestacyRules?: { /** * Hierarchy of intestate heirs under the applicable provincial succession act */ distributionOrder?: 'spouse_only' | 'spouse_and_children' | 'children_only' | 'parents' | 'siblings' | 'nephews_nieces' | 'grandparents' | 'uncles_aunts' | 'crown'; /** * Amount the surviving spouse receives before sharing with children. Varies by province (e.g. ON $350,000, BC $300,000, AB $150,000) */ preferentialShare?: Money; notes?: string; }; /** * Quebec-specific civil law provisions. Quebec is the only Canadian province using a civil law system, with forced heirship via family patrimony */ quebecCivilLaw?: { /** * Whether Quebec forced heirship (family patrimony) applies */ forcedHeirship?: boolean; /** * Whether the family patrimony regime applies to divide family assets equally between spouses */ familyPatrimonyApplies?: boolean; notes?: string; }; notes?: string; [key: string]: { [key: string]: unknown; } | 'CA-AB' | 'CA-BC' | 'CA-MB' | 'CA-NB' | 'CA-NL' | 'CA-NS' | 'CA-NT' | 'CA-NU' | 'CA-ON' | 'CA-PE' | 'CA-QC' | 'CA-SK' | 'CA-YT' | QuebecPatrimony | OntarioEqualization | BcwesaVariation | AlbertaDower | Array | { /** * Hierarchy of intestate heirs under the applicable provincial succession act */ distributionOrder?: 'spouse_only' | 'spouse_and_children' | 'children_only' | 'parents' | 'siblings' | 'nephews_nieces' | 'grandparents' | 'uncles_aunts' | 'crown'; /** * Amount the surviving spouse receives before sharing with children. Varies by province (e.g. ON $350,000, BC $300,000, AB $150,000) */ preferentialShare?: Money; notes?: string; } | { /** * Whether Quebec forced heirship (family patrimony) applies */ forcedHeirship?: boolean; /** * Whether the family patrimony regime applies to divide family assets equally between spouses */ familyPatrimonyApplies?: boolean; notes?: string; } | string | undefined; }; export type SuperannuationNomination = { assetId: string; fundType?: 'smsf' | 'industry' | 'retail' | 'public_sector' | 'corporate'; nominationType: 'bdbn_lapsing' | 'bdbn_non_lapsing' | 'non_binding' | 'reversionary_pension'; binding?: boolean; expiryDate?: string; expiryRule?: string; trusteeDiscretion?: boolean; nominatedPersonIds?: Array; taxableComponent?: Money; taxFreeComponent?: Money; notes?: string; }; export type FamilyProvisionClaim = { claimantPersonId: string; relationship?: string; /** * Statutory relationship category for family provision eligibility */ relationshipCategory?: 'spouse' | 'child' | 'former_spouse' | 'dependant' | 'grandchild' | 'step_child' | 'member_of_household'; statute?: string; eligibleUnderStatute?: boolean; limitationPeriod?: string; notionalEstateEngaged?: boolean; claimFiled?: boolean; filedDate?: string; outcome?: 'pending' | 'upheld' | 'dismissed' | 'settled'; notes?: string; }; export type AboriginalLandDetails = { propertyId: string; landType: 'native_title' | 'alra' | 'aboriginal_freehold' | 'ilua' | 'torres_strait'; nativeTitleDetermination?: string; landCouncil?: string; successionRestrictions?: string; notes?: string; /** * Whether customary adoption (including Torres Strait Islander kupai omasker under the Meriba Omasker Kaziw Kazipa Act 2020 Qld) is recognised for succession to this land */ customaryAdoptionRecognised?: boolean; }; export type NzPropertyRelationshipsAct = { applicable?: boolean; relationshipProperty?: Money; separateProperty?: Money; optingOutAgreement?: boolean; notes?: string; }; export type TestamentaryPromise = { claimantPersonId: string; promiseDescription?: string; statute?: string; status?: string; notes?: string; }; export type MaoriLandDetails = { propertyId: string; landBlockIdentifier?: string; maoriLandCourtReference?: string; successionUnderTeTureWhenua?: boolean; /** * Whether a whangai (Maori customary adoption) relationship is recognised by the Maori Land Court for succession to this land block. In the core schema, whangai is modelled as parent_child_adopted + legalBasis: customary_adoption */ whangaiRecognised?: boolean; /** * The person recognised as whangai for succession to this land block */ whangaiPersonId?: string; }; /** * Australia & New Zealand Extension * * Succession rules for AU and NZ: superannuation binding death benefit nominations, family provision claims, Aboriginal/Torres Strait Islander land, NZ Property (Relationships) Act, testamentary promises, and Maori land under Te Ture Whenua. */ export type AustraliaNz = { jurisdiction: 'AU-NSW' | 'AU-VIC' | 'AU-QLD' | 'AU-WA' | 'AU-SA' | 'AU-TAS' | 'AU-ACT' | 'AU-NT' | 'NZ'; superannuationNominations?: Array; familyProvisionClaims?: Array; aboriginalLandDetails?: Array; nzPRA?: NzPropertyRelationshipsAct; testamentaryPromises?: Array; maoriLandDetails?: Array; notes?: string; [key: string]: { [key: string]: unknown; } | 'AU-NSW' | 'AU-VIC' | 'AU-QLD' | 'AU-WA' | 'AU-SA' | 'AU-TAS' | 'AU-ACT' | 'AU-NT' | 'NZ' | Array | Array | Array | NzPropertyRelationshipsAct | Array | Array | string | undefined; }; export type BrusselsIvChoiceOfLaw = { habitualResidence?: Jurisdiction; nationalityElection?: boolean; electedNationality?: Jurisdiction; electionDate?: string; }; export type EuropeanCertificateOfSuccession = { issued?: boolean; certificateReference?: string; issuingAuthority?: string; issueDate?: string; }; export type SpanishRegionalRegime = { region: 'common_civil' | 'catalan' | 'basque' | 'navarre' | 'aragon' | 'balearic' | 'galician'; forcedHeirshipRules?: string; notes?: string; }; export type ForcedHeirshipVariant = { model: 'french_reserve' | 'german_pflichtteil' | 'scandinavian_laglott' | 'dutch_deferred' | 'polish_zachowek' | 'swiss_pflichtteil' | 'italian_legittima'; claimNature?: string; reservedFraction?: string; calculationNotes?: string; effectiveDate?: string; reformVersion?: string; temporalRule?: TemporalRule; }; export type PostBrexitAssetHandling = { ukAssetsSubjectToEURule?: boolean; ukAssetsHandledUnder?: string; notes?: string; }; /** * EU Succession Extension * * European succession rules: Brussels IV choice of law and European Certificate of Succession, Spanish regional regimes, forced heirship variants across civil law traditions, and post-Brexit UK asset handling. */ export type EuSuccession = { /** * ISO 3166-1 alpha-2 country code of the EU member state whose succession rules apply — determines Brussels IV regulation applicability */ memberState: string; brusselsIV?: BrusselsIvChoiceOfLaw; europeanCertificate?: EuropeanCertificateOfSuccession; spanishRegionalRegime?: SpanishRegionalRegime; forcedHeirshipVariant?: ForcedHeirshipVariant; postBrexitHandling?: PostBrexitAssetHandling; legislativeChanges?: Array<{ description: string; status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; effectiveDate?: string; notes?: string; }>; notes?: string; [key: string]: { [key: string]: unknown; } | string | BrusselsIvChoiceOfLaw | EuropeanCertificateOfSuccession | SpanishRegionalRegime | ForcedHeirshipVariant | PostBrexitAssetHandling | Array<{ description: string; status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; effectiveDate?: string; notes?: string; }> | string | undefined; }; export type KosekiRecord = { personId: string; honseki?: string; kosekiHead?: string; kosekiReference?: string; registrationType?: string; }; export type IryubunClaim = { personId: string; relationship?: string; /** * Relationship category determining iryubun (reserved share) eligibility under the Japanese Civil Code */ relationshipCategory?: 'spouse' | 'child' | 'lineal_ascendant' | 'sibling'; reservedFraction?: string; targetAssetIds?: Array; targetPropertyIds?: Array; claimFiled?: boolean; claimOutcome?: 'pending' | 'upheld' | 'dismissed' | 'settled' | 'waived'; }; export type YoshiAdoption = { personId: string; adoptionType: 'futsu_yoshi' | 'tokubetsu_yoshi'; adoptionDate?: string; inheritanceScope?: 'both_families' | 'adoptive_only' | 'biological_only'; }; export type SpousesResidenceRight = { propertyId: string; spousePersonId: string; rightType: 'short_term' | 'long_term'; duration?: string; actuarialValue?: Money; registeredAtLegalAffairsBureau?: boolean; }; /** * Japan Extension * * Japanese succession law — koseki records, iryubun (reserved share) claims, yōshi (adoption), spousal residence right (2019 reform), isan bunkatsu (estate division), saishi succession, local will formalities. */ export type Japan = { kosekiRecords?: Array; iryubunClaims?: Array; yoshiAdoptions?: Array; spousesResidenceRight?: SpousesResidenceRight; saishiSuccessor?: string; localWillFormality?: 'jihi_shosho' | 'kosei_shosho' | 'himitsusho'; inkanVerified?: boolean; isanBunkatsu?: { type?: 'voluntary' | 'court_mediated' | 'court_adjudicated'; agreed?: boolean; agreementDate?: string; allHeirsConsented?: boolean; participants?: Array; registeredAt?: string; registrationDate?: string; courtReference?: string; documentRef?: string; }; legislativeChanges?: Array<{ description: string; status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; effectiveDate?: string; notes?: string; }>; notes?: string; [key: string]: { [key: string]: unknown; } | Array | Array | Array | SpousesResidenceRight | string | 'jihi_shosho' | 'kosei_shosho' | 'himitsusho' | boolean | { type?: 'voluntary' | 'court_mediated' | 'court_adjudicated'; agreed?: boolean; agreementDate?: string; allHeirsConsented?: boolean; participants?: Array; registeredAt?: string; registrationDate?: string; courtReference?: string; documentRef?: string; } | Array<{ description: string; status: 'enacted' | 'royal_assent' | 'bill_stage' | 'consultation' | 'announced'; effectiveDate?: string; notes?: string; }> | string | undefined; }; export type PrcForcedHeirship = { firstOrderHeirs?: Array<{ personId: string; relationship?: string; /** * Relationship category under PRC Civil Code Article 1127 first order */ relationshipCategory?: 'spouse' | 'child' | 'parent'; }>; secondOrderHeirs?: Array<{ personId: string; relationship?: string; /** * Relationship category under PRC Civil Code Article 1127 second order */ relationshipCategory?: 'sibling' | 'grandparent_paternal' | 'grandparent_maternal'; }>; mandatoryShareRule?: string; }; export type HukouReference = { personId: string; hukouLocation?: string; hukouType?: 'agricultural' | 'non_agricultural'; }; export type CrossBorderHkprc = { hkAssets?: string; prcAssets?: string; applicableTreaty?: string; notes?: string; }; /** * Statutory succession order under Civil Code Book Six Chapter 2 (Articles 1127-1132) */ export type IntestacyOrder = { applicableOrder?: 'first_order' | 'second_order'; equalDistribution?: boolean; /** * Non-heir who maintained the deceased may receive a share under Art. 1131 */ dependantMaintenance?: boolean; /** * Widowed daughters-in-law or sons-in-law who made predominant contributions to supporting their parents-in-law, treated as first-order heirs under Article 1129. Unique to PRC law — in-laws elevated to heir status based on conduct, not kinship */ contributingInLaws?: Array<{ personId: string; notes?: string; }>; notes?: string; }; /** * Will form under PRC Civil Code — 6 types recognised, latest will prevails (Art. 1142) */ export type WillForm = { type?: 'notarised' | 'holograph' | 'scrivener' | 'printed' | 'audio_visual' | 'oral_emergency'; dateExecuted?: string; notarisationOffice?: string; witnesses?: number; validityNotes?: string; }; /** * Division of joint marital property under Civil Code Book Five */ export type CommunityProperty = { maritalPropertyRegime?: 'community' | 'separate' | 'mixed_agreement'; communityPropertyIdentified?: boolean; /** * Surviving spouse's half of community property excluded from estate (Art. 1153) */ spouseShareExcluded?: boolean; notes?: string; }; /** * Rural collective land use rights — contracted land reverts to collective, homestead buildings inheritable */ export type RuralLandRights = { hasContractedLand?: boolean; landRevertsToCommunity?: boolean; hasHomesteadLand?: boolean; buildingsInheritable?: boolean; notes?: string; }; /** * Inheritance tax status — no tax currently, proposals under periodic discussion */ export type InheritanceTaxStatus = { /** * Currently false — China has no inheritance tax as of 2025 */ taxApplies?: boolean; proposedLegislation?: string; notes?: string; }; /** * PRC China Extension * * People's Republic of China succession law — forced heirship (first/second order heirs), hukou registration, notarised succession certificates, cross-border HK/PRC asset handling, intestacy order (Arts. 1127-1132), will forms (6 types, Art. 1142), community property division (Art. 1153), rural land rights, and inheritance tax status. */ export type PrcChina = { /** * Which PRC legislative framework governs this succession — the 1985 Succession Law or the 2021 Civil Code (Book 6) */ applicableLaw: 'prc_succession_law_1985' | 'prc_civil_code_2021'; forcedHeirship?: PrcForcedHeirship; hukouReferences?: Array; notarisationRequired?: boolean; notarisationDetails?: string; crossBorderHandling?: CrossBorderHkprc; intestacyOrder?: IntestacyOrder; willForm?: WillForm; communityProperty?: CommunityProperty; ruralLandRights?: RuralLandRights; inheritanceTaxStatus?: InheritanceTaxStatus; notes?: string; [key: string]: { [key: string]: unknown; } | 'prc_succession_law_1985' | 'prc_civil_code_2021' | PrcForcedHeirship | Array | boolean | string | CrossBorderHkprc | IntestacyOrder | WillForm | CommunityProperty | RuralLandRights | InheritanceTaxStatus | string | undefined; }; export type SingaporeIsaDistribution = { applicable?: boolean; shareSchedule?: Array<{ /** * Kinship category for this share allocation, aligned with the ISA distribution rules */ relationshipCategory?: 'spouse' | 'children' | 'parents' | 'siblings' | 'grandparents' | 'uncles_aunts'; relationship?: string; share?: string; notes?: string; }>; notes?: string; }; export type SingaporeAmlaDistribution = { applicable?: boolean; school?: 'shafii' | 'hanafi'; faraidRef?: string; notes?: string; }; export type CpfNomination = { accountId: string; nominatedPersonIds?: Array; binding?: boolean; nominationDate?: string; /** * Per-CPF-account beneficiary allocations */ subAccountAllocations?: Array<{ accountType?: 'ordinary' | 'special' | 'medisave' | 'retirement'; beneficiaryPersonId?: string; percentage?: number; }>; /** * CPF nomination form version — pre-2010 and post-2010 have different witness requirements */ nominationFormVersion?: 'pre_2010' | 'post_2010'; /** * Whether this nomination has been automatically revoked by marriage */ revokedByMarriage?: boolean; notes?: string; }; export type MalaysianDistributionAct = { applicable?: boolean; shareSchedule?: Array<{ /** * Kinship category for this share allocation, aligned with the Malaysian Distribution Act 1958 rules */ relationshipCategory?: 'spouse' | 'children' | 'parents' | 'siblings' | 'grandparents' | 'uncles_aunts'; relationship?: string; share?: string; notes?: string; }>; notes?: string; }; export type MalaysianShariah = { applicable?: boolean; shariaCourtReference?: string; notes?: string; }; export type EpfNomination = { accountId: string; nominatedPersonIds?: Array; binding?: boolean; nominationDate?: string; notes?: string; }; /** * Singapore / Malaysia Extension * * Singapore and Malaysia succession law — ISA intestate distribution, AMLA Islamic distribution, CPF/EPF nominations, Malaysian Distribution Act, Shariah court jurisdiction. */ export type SingaporeMalaysia = { /** * ISO 3166-1 alpha-2 country code — SG for Singapore, MY for Malaysia. Determines which succession framework applies */ country: 'SG' | 'MY'; singaporeISA?: SingaporeIsaDistribution; singaporeAMLA?: SingaporeAmlaDistribution; cpfNominations?: Array; malaysianDistributionAct?: MalaysianDistributionAct; malaysianShariah?: MalaysianShariah; epfNominations?: Array; notes?: string; [key: string]: { [key: string]: unknown; } | 'SG' | 'MY' | SingaporeIsaDistribution | SingaporeAmlaDistribution | Array | MalaysianDistributionAct | MalaysianShariah | Array | string | undefined; }; export type BrazilianSuccession = { legitimaFraction?: string; necessaryHeirs?: Array<{ personId: string; category: 'descendant' | 'ascendant' | 'spouse'; }>; meacaoHerancaSplit?: boolean; stableUnionRights?: boolean; notes?: string; }; export type ArgentineSuccession = { legitimaDescendants?: string; legitimaAscendants?: string; porcionDisponible?: string; collation?: boolean; notes?: string; }; export type ColombianSuccession = { system?: 'fourths'; legitimaRigurosa?: string; cuartaDeMejoras?: string; cuartaDeLibreDisposicion?: string; forcedHeirs?: Array<{ personId: string; relationship?: string; }>; notes?: string; }; export type VenezuelanSuccession = { legitimaFraction?: string; applicableLaw?: string; notes?: string; }; /** * Mexican succession under Federal Civil Code — no forced heirship but alimentos obligations */ export type MexicanSuccession = { /** * Dependant maintenance that cannot be defeated by will */ alimentosObligations?: boolean; testamentaryWill?: boolean; intestacyOrder?: 'descendants' | 'spouse' | 'ascendants' | 'collaterals' | 'concubine' | 'state'; /** * Mexican state code — civil law varies by state */ stateCode?: string; /** * Most common will form, executed before a notary */ publicTestament?: boolean; notes?: string; }; /** * Chilean succession under Código Civil — mitad legitimaria, cuarta de mejoras, cuarta de libre disposición */ export type ChileanSuccession = { /** * 50% forced heirs */ mitadLegitimaria?: string; /** * 25% improvement share — descendants, spouse, or ascendants */ cuartaDeMejoras?: string; /** * 25% freely disposable */ cuartaDeLibreDisposicion?: string; mejoraDesignees?: Array<{ personId: string; relationship?: string; }>; notes?: string; }; /** * Extrajudicial settlement before a notary — faster alternative to court proceedings, common in Brazil and Chile */ export type NotarialSuccession = { available?: boolean; /** * All heirs must be adult and consenting for extrajudicial settlement */ allHeirsConsent?: boolean; notaryReference?: string; notes?: string; }; /** * General forced heirship pattern for civil law jurisdictions — covers Peru, Ecuador, Paraguay, Uruguay, and others */ export type ForcedHeirshipPattern = { legitimaFraction?: string; forcedHeirCategories?: Array<'descendants' | 'ascendants' | 'spouse'>; freeDisposalFraction?: string; /** * Whether an improvement share exists */ mejoraAvailable?: boolean; notes?: string; }; /** * Latin America Extension * * Latin American succession law — Brazilian legítima and stable union rights, Argentine forced heirship with collation, Colombian fourths system, Venezuelan succession, Mexican alimentos obligations, Chilean mitad legitimaria, notarial succession, general forced heirship patterns, and other civil-law jurisdictions. */ export type LatinAmerica = { /** * ISO 3166-1 alpha-2 country code identifying which Latin American jurisdiction's succession rules apply */ country: 'BR' | 'AR' | 'CO' | 'VE' | 'MX' | 'CL' | 'PE'; brazilianSuccession?: BrazilianSuccession; argentineSuccession?: ArgentineSuccession; colombianSuccession?: ColombianSuccession; venezuelanSuccession?: VenezuelanSuccession; /** * Mexican succession under Federal Civil Code — no forced heirship but alimentos obligations */ mexicanSuccession?: MexicanSuccession; /** * Chilean succession under Código Civil — mitad legitimaria, cuarta de mejoras, cuarta de libre disposición */ chileanSuccession?: ChileanSuccession; /** * Extrajudicial settlement before a notary — faster alternative to court proceedings, common in Brazil and Chile */ notarialSuccession?: NotarialSuccession; /** * General forced heirship pattern for civil law jurisdictions — covers Peru, Ecuador, Paraguay, Uruguay, and others */ forcedHeirshipPattern?: ForcedHeirshipPattern; /** * Tracked changes to Latin American succession legislation */ legislativeChanges?: Array; notes?: string; [key: string]: { [key: string]: unknown; } | 'BR' | 'AR' | 'CO' | 'VE' | 'MX' | 'CL' | 'PE' | BrazilianSuccession | ArgentineSuccession | ColombianSuccession | VenezuelanSuccession | MexicanSuccession | ChileanSuccession | NotarialSuccession | ForcedHeirshipPattern | Array | string | undefined; }; export type HeirClassification = { personId: string; heirClass: 'son' | 'daughter' | 'father' | 'mother' | 'grandfather' | 'grandmother' | 'brother_full' | 'brother_paternal' | 'brother_maternal' | 'sister_full' | 'sister_paternal' | 'sister_maternal' | 'husband' | 'wife' | 'son_of_son' | 'daughter_of_son' | 'uncle_paternal' | 'uncle_paternal_half' | 'nephew_brother_full' | 'nephew_brother_paternal' | 'cousin_paternal_full' | 'cousin_paternal_half'; fixedShareFraction?: string; residuaryClass?: 'asaba_by_self' | 'asaba_with_other' | 'asaba_through_other' | 'none'; blocked?: boolean; blockedBy?: string; notes?: string; /** * Position in the residuary (asaba) heir hierarchy, 1-15. Rank 1 (son) completely excludes all lower ranks. Only applicable when residuaryClass is asaba_by_self */ asabaRank?: number; }; export type WasiyyaRules = { maxPortion?: number; toNonHeirsOnly?: boolean; requiresHeirConsent?: boolean; notes?: string; }; export type IddahPeriod = { personId: string; periodType: 'divorce' | 'death' | 'pregnancy'; startDate: string; endDate?: string | null; notes?: string; }; export type WaqfDetail = { waqfId: string; waqfType: 'ahli' | 'khairi' | 'mushtarak'; dedicationDate?: string; notes?: string; }; export type PriorityDebt = { description: string; type: 'mahr' | 'kafan' | 'funeral_costs' | 'tax' | 'debts_of_deceased'; amount: Money; creditorPersonId?: string; notes?: string; }; /** * Islamic Succession Extension * * Faraid (Islamic inheritance) rules: heir classification, fixed shares, residuary (asaba), awl/radd adjustments, wasiyya limits, iddah periods, waqf details, and priority debts including mahr. */ export type IslamicSuccession = { school: 'hanafi' | 'shafii' | 'maliki' | 'hanbali' | 'jafari' | 'ibadi' | 'zahiri'; faraidApplies?: boolean; heirClassifications?: Array; awlApplied?: boolean; raddApplied?: boolean; wasiyyaRules?: WasiyyaRules; iddahPeriods?: Array; waqfDetails?: Array; priorityDebts?: Array; hijriDates?: { deathDateHijri?: string; willDateHijri?: string; }; islamicFormalities?: { shariaCourtReference?: string; muftiFatwReference?: string; certifiedByScholar?: boolean; scholarName?: string; notes?: string; }; /** * Mahr — the Islamic marriage gift obligation. A debt owed by the deceased to the surviving spouse. Takes priority over other debts and succession distribution */ mahr?: { /** * Mahr amount in minor currency units */ amount?: Money; /** * Whether the mahr amount was agreed and documented */ agreed?: boolean; /** * Whether the mahr has been paid in full during the marriage */ paidInFull?: boolean; /** * Outstanding (unpaid) mahr amount in minor currency units */ outstandingAmount?: Money; /** * Reference to the Person.id of the spouse to whom the mahr is owed */ creditorPersonId?: string; /** * Reference to the nikah contract or other document recording the mahr */ documentRef?: string; notes?: string; }; notes?: string; [key: string]: { [key: string]: unknown; } | 'hanafi' | 'shafii' | 'maliki' | 'hanbali' | 'jafari' | 'ibadi' | 'zahiri' | boolean | Array | WasiyyaRules | Array | Array | Array | { deathDateHijri?: string; willDateHijri?: string; } | { shariaCourtReference?: string; muftiFatwReference?: string; certifiedByScholar?: boolean; scholarName?: string; notes?: string; } | { /** * Mahr amount in minor currency units */ amount?: Money; /** * Whether the mahr amount was agreed and documented */ agreed?: boolean; /** * Whether the mahr has been paid in full during the marriage */ paidInFull?: boolean; /** * Outstanding (unpaid) mahr amount in minor currency units */ outstandingAmount?: Money; /** * Reference to the Person.id of the spouse to whom the mahr is owed */ creditorPersonId?: string; /** * Reference to the nikah contract or other document recording the mahr */ documentRef?: string; notes?: string; } | string | undefined; }; export type HalachicHeir = { personId: string; relationship: string; heirOrder?: 'bechor' | 'regular'; halachicClass: 'ben' | 'bat' | 'av' | 'em' | 'ach' | 'achot' | 'ben_ben' | 'av_av' | 'ach_av' | 'ben_ach' | 'ben_ach_av' | 'other'; }; export type MezonotDetails = { eligible: boolean; amount?: Money; duration?: string; notes?: string; }; export type BekhorRules = { applies: boolean; bekhorPersonId?: string; doubleShareApplicable?: boolean; notes?: string; }; export type HebrewName = { personId: string; hebrewGivenName: string; hebrewFamilyName?: string; benOrBat: 'ben' | 'bat'; }; export type HalachicWitnessValidity = { personId: string; halachicallyValid: boolean; disqualificationReason?: string; notes?: string; }; export type KinyanDetails = { type: 'kinyan_sudar' | 'kinyan_agav' | 'kinyan_meshichah' | 'kinyan_hagbahah'; performed: boolean; witnessPersonIds?: Array; notes?: string; }; export type BequestClassification = { type: 'matanah' | 'yerusha' | 'shtar_chov_gift'; bequestId: string; notes?: string; }; /** * Jewish Succession Extension * * Halachic inheritance rules including heir classification, bekhor (firstborn) double-share, mezonot (maintenance), kinyan (acquisition), and bequest classification under Jewish law. */ export type JewishSuccession = { /** * Jewish denominational tradition — affects interpretation of halachic succession rules and mechanisms (e.g. Orthodox requires kinyan, Reform may not) */ denomination: 'orthodox' | 'conservative' | 'reform' | 'reconstructionist' | 'traditional' | 'unaffiliated'; halachicHeirs?: Array; mezonotDetails?: MezonotDetails; halachicMechanism?: 'shtar_chov' | 'matnat_bari' | 'matnat_shechiv_mera' | 'matnat_bari_conditional'; bekhorRules?: BekhorRules; hebrewNames?: Array; halachicWitnessValidity?: Array; kinyanDetails?: KinyanDetails; bequestClassifications?: Array; notes?: string; [key: string]: { [key: string]: unknown; } | 'orthodox' | 'conservative' | 'reform' | 'reconstructionist' | 'traditional' | 'unaffiliated' | Array | MezonotDetails | 'shtar_chov' | 'matnat_bari' | 'matnat_shechiv_mera' | 'matnat_bari_conditional' | BekhorRules | Array | Array | KinyanDetails | Array | string | undefined; }; export type Coparcener = { personId: string; relationship: string; coparcenaryShareFraction?: string; }; export type HufDetails = { kartaPersonId: string; coparceners: Array; panNumber?: string; }; export type IndianHeirClassification = { personId: string; heirClass: 'class_I' | 'class_II' | 'agnate' | 'cognate'; scheduleParagraph?: string; disputed?: boolean; disputeDetails?: string; /** * The specific entry from the Hindu Succession Act Schedule that this heir falls under. More precise than heirClass alone — distinguishes e.g. 'son of predeceased daughter' from 'daughter of predeceased son' within Class I */ scheduleEntry?: string; }; export type StridhanAsset = { assetId: string; description: string; notes?: string; }; /** * Hindu Succession Extension * * Hindu succession law specifics: Mitakshara/Dayabhaga schools, HUF coparcenary, heir classifications under the Hindu Succession Act 1956, stridhan assets, agricultural land ceiling rules, and NRI complications. */ export type HinduSuccession = { applicableLaw: 'hindu_succession_act_1956' | 'indian_succession_act_1925' | 'muslim_personal_law' | 'special_marriage_act' | 'parsi_succession' | 'goa_civil_code'; school?: 'mitakshara' | 'dayabhaga'; hufDetails?: HufDetails; heirClassifications?: Array; stridhanAssets?: Array; agriculturalLand?: Array<{ propertyId: string; state: string; stateSuccessionLaw?: string; ceilingApplies?: boolean; }>; nriComplications?: { applicable?: boolean; foreignJurisdiction?: Jurisdiction; taxImplications?: string; notes?: string; }; /** * Type of probate instrument being sought or granted. India has three distinct instruments depending on whether the deceased left a will and the nature of the assets */ instrumentType?: 'probate' | 'letters_of_administration' | 'succession_certificate'; /** * Whether probate is advisable for this estate. Section 213 (mandatory probate in Mumbai/Kolkata/Chennai) was deleted by the Repealing and Amending Act 2025 (Presidential assent 20 Dec 2025). Probate is now optional everywhere in India but remains strongly advisable — banks and housing societies may still request it in practice */ probateAdvisable?: boolean; /** * Whether the estate includes assets in Indian states other than the primary jurisdiction. Affects which state's agricultural land ceiling laws apply and may require multiple court filings */ crossStateAssets?: boolean; /** * Whether the estate includes Hindu Undivided Family coparcenary property. HUF property has special succession rules under the Hindu Succession Act — the 2005 Amendment gave daughters equal coparcenary rights. Must be distinguished from self-acquired property */ hufProperty?: boolean; notes?: string; [key: string]: { [key: string]: unknown; } | 'hindu_succession_act_1956' | 'indian_succession_act_1925' | 'muslim_personal_law' | 'special_marriage_act' | 'parsi_succession' | 'goa_civil_code' | 'mitakshara' | 'dayabhaga' | HufDetails | Array | Array | Array<{ propertyId: string; state: string; stateSuccessionLaw?: string; ceilingApplies?: boolean; }> | { applicable?: boolean; foreignJurisdiction?: Jurisdiction; taxImplications?: string; notes?: string; } | 'probate' | 'letters_of_administration' | 'succession_certificate' | boolean | string | undefined; }; export type CustomarySuccessionRule = { ethnicGroup: string; successionSystem: 'patrilineal_primogeniture' | 'patrilineal_equal' | 'matrilineal' | 'bilateral' | 'ultimogeniture'; widowInheritanceRight?: 'full_inheritance' | 'usufruct_only' | 'levirate_marriage' | 'none' | 'statutory_override'; daughterInheritanceRight?: string; constitutionalOverride?: boolean; caseReference?: string; }; export type FamilyCouncilDecision = { decisionDate?: string; decisionType: string; decidedBy?: string; participants?: Array; chairPersonId?: string; outcome?: string; constitutionalChallengeOutcome?: 'not_challenged' | 'upheld' | 'struck_down' | 'pending'; challengeable?: boolean; }; export type CommunalPropertyDetail = { propertyId: string; communityName?: string; tenureType?: string; notes?: string; }; export type WidowRights = { personId: string; customaryRight?: string; statutoryRight?: string; widowRitesRequired?: boolean; widowRitesCompleted?: boolean; ritesDescription?: string; ritesCompletionDate?: string; notes?: string; }; /** * Africa Customary Succession Extension * * Customary succession rules across African ethnic groups: patrilineal/matrilineal systems, family council decisions, communal property, widow rights, lobola, land tenure, and constitutional challenges. */ export type AfricaCustomary = { /** * The ethnic group whose customary succession law applies — determines the inheritance system (patrilineal, matrilineal, bilateral, or mixed) */ ethnicGroup: string; customaryRules?: Array; familyCouncilDecisions?: Array; communalPropertyDetails?: Array; widowRights?: Array; lobolaDetails?: { totalAgreed?: Money; paidToDate?: Money; includesLivestock?: boolean; livestockDetails?: string; notes?: string; }; landTenureDetails?: Array<{ propertyId: string; tenureType?: string; communityAuthority?: string; notes?: string; }>; constitutionalChallenges?: Array<{ description: string; caseReference?: string; outcome?: 'not_challenged' | 'upheld' | 'struck_down' | 'pending'; notes?: string; }>; notes?: string; [key: string]: { [key: string]: unknown; } | string | Array | Array | Array | Array | { totalAgreed?: Money; paidToDate?: Money; includesLivestock?: boolean; livestockDetails?: string; notes?: string; } | Array<{ propertyId: string; tenureType?: string; communityAuthority?: string; notes?: string; }> | Array<{ description: string; caseReference?: string; outcome?: 'not_challenged' | 'upheld' | 'struck_down' | 'pending'; notes?: string; }> | string | undefined; }; /** * Brazil Extension * * Brazilian succession rules: meação (community property split), legítima (forced heirship), inventário process types, cartório attestation, disponível (testamentary freedom portion), and união estável (stable union recognition). */ export type Brazil = { /** * Meação — the surviving spouse's 50% community property entitlement that is separated before succession begins. Not an inheritance share — it is the spouse's own property */ meacao?: { /** * Whether meação applies to this estate */ applicable?: boolean; /** * The matrimonial property regime governing the meação split */ propertyRegime?: 'comunhao_parcial_de_bens' | 'comunhao_universal_de_bens' | 'separacao_total_de_bens' | 'participacao_final_nos_aquestos'; /** * Reference to the Person.id of the surviving spouse entitled to meação */ spousePersonId?: string; /** * Total value of community property subject to meação split, in minor currency units */ communityPropertyValue?: Money; notes?: string; }; /** * Legítima — the mandatory 50% of the estate reserved for compulsory heirs (herdeiros necessários: descendants, ascendants, surviving spouse). Brazilian Civil Code Art. 1.846 */ legitima?: { /** * Array of persons who are compulsory heirs under Brazilian law */ compulsoryHeirs?: Array<{ personId: string; /** * Class of compulsory heir */ heirClass: 'descendant' | 'ascendant' | 'surviving_spouse'; /** * Share as a fraction, e.g. 1/3 */ shareFraction?: string; notes?: string; }>; /** * The legítima portion as a percentage (always 50% under current law) */ legitimaPortion?: number; notes?: string; }; /** * Disponível — the freely disposable portion of the estate (50% after legítima). The testator may bequeath this to anyone */ disponivel?: { /** * The disponível portion as a percentage (50% under current law) */ portion?: number; /** * Estimated value of the disponível portion in minor currency units */ estimatedValue?: Money; notes?: string; }; /** * Type of inventário (estate inventory and distribution process) */ inventarioType?: 'judicial' | 'extrajudicial'; /** * Details of notarial attestation at a Brazilian cartório (notary office) */ cartorioAttestation?: { /** * Name of the cartório */ cartorioName?: string; /** * Name of the tabelião (notary) who attested the document */ tabeliao?: string; /** * Book (livro) number in the cartório registry */ livroNumber?: string; /** * Page (folha) number in the cartório registry */ folhaNumber?: string; /** * Date of the cartório attestation */ attestationDate?: string; notes?: string; }; /** * União estável (stable union) — recognised as equivalent to marriage for inheritance purposes under Brazilian law (Art. 1.723 Civil Code). A partner in a stable union has the same inheritance rights as a spouse */ uniaoEstavel?: { /** * Whether the relationship is recognised as a stable union */ recognised?: boolean; /** * Reference to the Person.id of the stable union partner */ partnerPersonId?: string; /** * Approximate start date of the stable union */ startDate?: string; /** * Whether the stable union has been judicially declared */ judicialDeclaration?: boolean; /** * Whether a stable union contract was registered at a cartório */ contractRegistered?: boolean; notes?: string; }; /** * ITCMD (Imposto sobre Transmissão Causa Mortis e Doação) — state-level inheritance tax rate. Varies by state, capped at 8% by the Federal Senate */ itcmdRate?: { /** * Brazilian state abbreviation (e.g. SP, RJ, MG) */ state?: string; /** * ITCMD rate as a percentage */ ratePercentage?: number; /** * Whether the state applies progressive rates */ progressive?: boolean; notes?: string; }; notes?: string; [key: string]: { [key: string]: unknown; } | { /** * Whether meação applies to this estate */ applicable?: boolean; /** * The matrimonial property regime governing the meação split */ propertyRegime?: 'comunhao_parcial_de_bens' | 'comunhao_universal_de_bens' | 'separacao_total_de_bens' | 'participacao_final_nos_aquestos'; /** * Reference to the Person.id of the surviving spouse entitled to meação */ spousePersonId?: string; /** * Total value of community property subject to meação split, in minor currency units */ communityPropertyValue?: Money; notes?: string; } | { /** * Array of persons who are compulsory heirs under Brazilian law */ compulsoryHeirs?: Array<{ personId: string; /** * Class of compulsory heir */ heirClass: 'descendant' | 'ascendant' | 'surviving_spouse'; /** * Share as a fraction, e.g. 1/3 */ shareFraction?: string; notes?: string; }>; /** * The legítima portion as a percentage (always 50% under current law) */ legitimaPortion?: number; notes?: string; } | { /** * The disponível portion as a percentage (50% under current law) */ portion?: number; /** * Estimated value of the disponível portion in minor currency units */ estimatedValue?: Money; notes?: string; } | 'judicial' | 'extrajudicial' | { /** * Name of the cartório */ cartorioName?: string; /** * Name of the tabelião (notary) who attested the document */ tabeliao?: string; /** * Book (livro) number in the cartório registry */ livroNumber?: string; /** * Page (folha) number in the cartório registry */ folhaNumber?: string; /** * Date of the cartório attestation */ attestationDate?: string; notes?: string; } | { /** * Whether the relationship is recognised as a stable union */ recognised?: boolean; /** * Reference to the Person.id of the stable union partner */ partnerPersonId?: string; /** * Approximate start date of the stable union */ startDate?: string; /** * Whether the stable union has been judicially declared */ judicialDeclaration?: boolean; /** * Whether a stable union contract was registered at a cartório */ contractRegistered?: boolean; notes?: string; } | { /** * Brazilian state abbreviation (e.g. SP, RJ, MG) */ state?: string; /** * ITCMD rate as a percentage */ ratePercentage?: number; /** * Whether the state applies progressive rates */ progressive?: boolean; notes?: string; } | string | undefined; }; /** * Hong Kong Extension * * Hong Kong succession rules: local grant types under Cap. 10, MPF death benefit nominations under Cap. 485, cross-border PRC asset considerations, intestacy distribution under the Intestates' Estates Ordinance (Cap. 73), and small estate grants. */ export type HongKong = { /** * Local grant types issued by the Probate Registry of the High Court of Hong Kong under the Probate and Administration Ordinance (Cap. 10). Each entry links an executor to the type of grant obtained */ localGrantTypes?: Array<{ /** * Reference to the Executor.id of the person or organisation holding this grant */ executorId: string; /** * Type of grant issued by the Hong Kong Probate Registry */ localType: 'probate_grant' | 'letters_of_administration' | 'small_estate_grant' | 'limited_grant'; /** * Date the grant was issued by the Probate Registry */ grantDate?: string; notes?: string; }>; /** * Mandatory Provident Fund (MPF) death benefit nomination under the Mandatory Provident Fund Schemes Ordinance (Cap. 485). MPF accrued benefits pass directly to nominated beneficiaries outside the estate and are not subject to probate */ mpfNomination?: { /** * Reference to the Organisation.id of the MPF trustee or scheme provider */ schemeProviderOrganisationId?: string; /** * Array of nominated beneficiaries for the MPF death benefit */ nominees?: Array<{ /** * Reference to the Person.id of the nominated beneficiary */ personId: string; /** * Percentage of the MPF death benefit allocated to this nominee */ sharePercentage: number; notes?: string; }>; /** * Date the nomination form was submitted to the MPF trustee */ nominationDate?: string; /** * Whether the nomination is current and has not been superseded or revoked */ nominationCurrent?: boolean; /** * Estimated total accrued MPF benefit at date of death, in minor currency units (HKD cents) */ accruedBenefitEstimate?: Money; notes?: string; }; /** * Cross-border considerations where the deceased held assets in mainland China (PRC). Hong Kong common law and PRC succession law differ significantly; separate PRC legal advice is typically required */ crossBorderPrcAssets?: { /** * Whether the deceased held assets situated in mainland China */ prcAssetsExist?: boolean; /** * Whether a will dealing with PRC assets was notarised in accordance with PRC requirements */ prcNotarisedWill?: boolean; /** * Whether PRC succession law (rather than Hong Kong law) governs any portion of the estate */ prcSuccessionLawApplies?: boolean; /** * Reference to the Organisation.id of the PRC legal adviser or notary handling the mainland assets */ prcContactOrganisationId?: string; notes?: string; }; /** * Intestacy distribution rules under the Intestates' Estates Ordinance (Cap. 73). Applicable when the deceased dies wholly or partly intestate */ intestacyDistribution?: { /** * Entitlement of the surviving spouse on intestacy under Cap. 73 */ survivingSpouseEntitlement?: { /** * Whether the surviving spouse is entitled to the personal chattels of the intestate */ personalChattels?: boolean; /** * The fixed statutory legacy payable to the surviving spouse before the residue is divided, in minor currency units (HKD cents) */ statutoryLegacy?: Money; /** * The surviving spouse's share of the residue as a fraction (e.g. 1/2), applicable where there are surviving issue */ residueShare?: string; notes?: string; }; /** * Method of distribution to issue (descendants) on intestacy */ issueDistribution?: 'per_stirpes' | 'per_capita'; notes?: string; }; /** * Small estate grant procedure available under the Probate and Administration Ordinance (Cap. 10) for estates below the prescribed threshold. Allows a simplified application without full probate */ smallEstateGrant?: { /** * Whether the estate qualifies for the small estate summary procedure */ eligible?: boolean; /** * Gross value of the estate as assessed for small estate purposes, in minor currency units (HKD cents) */ estateValue?: Money; /** * Prescribed small estate threshold in force at the date of death, in minor currency units (HKD cents) */ threshold?: Money; /** * Date on which the small estate grant or confirmation was issued */ confirmationDate?: string; notes?: string; }; /** * Intestacy distribution hierarchy under the Intestates' Estates Ordinance (Cap. 73). Mirrors AEA 1925 s.46 — each tier takes priority over all lower tiers. Whole blood takes absolute priority over half blood at sibling and uncle/aunt levels */ intestacyHierarchy?: Array<{ /** * Priority rank (1 = highest) */ tier: number; /** * Kinship category for this tier */ relationshipCategory: 'spouse' | 'children_and_issue' | 'parents' | 'siblings_whole' | 'siblings_half' | 'grandparents' | 'uncles_aunts_whole' | 'uncles_aunts_half' | 'crown'; /** * Whether this tier requires whole or half blood */ bloodRequirement?: 'whole' | 'half' | 'not_applicable'; notes?: string; }>; /** * New Territories customary law — tso/tong ancestral trusts with patrilineal succession to communal land */ newTerritoriesCustomaryLaw?: { /** * Whether the deceased was a member of a tso or tong */ tsoTongMembership?: boolean; /** * Whether patrilineal succession applies to the communal land */ patrilinealSuccession?: boolean; notes?: string; }; /** * Pre-1971 Chinese customary law applicability. The Marriage Reform Ordinance 1971 abolished Chinese customary marriages, but for estates of persons who died or acquired concubines before 7 October 1971, customary law may still apply */ preReformCustomaryLaw?: { /** * Whether pre-1971 Chinese customary law applies to this estate */ applicable?: boolean; /** * Whether children of concubines have inheritance rights under the applicable customary law */ concubineChildrenRecognised?: boolean; notes?: string; }; notes?: string; [key: string]: { [key: string]: unknown; } | Array<{ /** * Reference to the Executor.id of the person or organisation holding this grant */ executorId: string; /** * Type of grant issued by the Hong Kong Probate Registry */ localType: 'probate_grant' | 'letters_of_administration' | 'small_estate_grant' | 'limited_grant'; /** * Date the grant was issued by the Probate Registry */ grantDate?: string; notes?: string; }> | { /** * Reference to the Organisation.id of the MPF trustee or scheme provider */ schemeProviderOrganisationId?: string; /** * Array of nominated beneficiaries for the MPF death benefit */ nominees?: Array<{ /** * Reference to the Person.id of the nominated beneficiary */ personId: string; /** * Percentage of the MPF death benefit allocated to this nominee */ sharePercentage: number; notes?: string; }>; /** * Date the nomination form was submitted to the MPF trustee */ nominationDate?: string; /** * Whether the nomination is current and has not been superseded or revoked */ nominationCurrent?: boolean; /** * Estimated total accrued MPF benefit at date of death, in minor currency units (HKD cents) */ accruedBenefitEstimate?: Money; notes?: string; } | { /** * Whether the deceased held assets situated in mainland China */ prcAssetsExist?: boolean; /** * Whether a will dealing with PRC assets was notarised in accordance with PRC requirements */ prcNotarisedWill?: boolean; /** * Whether PRC succession law (rather than Hong Kong law) governs any portion of the estate */ prcSuccessionLawApplies?: boolean; /** * Reference to the Organisation.id of the PRC legal adviser or notary handling the mainland assets */ prcContactOrganisationId?: string; notes?: string; } | { /** * Entitlement of the surviving spouse on intestacy under Cap. 73 */ survivingSpouseEntitlement?: { /** * Whether the surviving spouse is entitled to the personal chattels of the intestate */ personalChattels?: boolean; /** * The fixed statutory legacy payable to the surviving spouse before the residue is divided, in minor currency units (HKD cents) */ statutoryLegacy?: Money; /** * The surviving spouse's share of the residue as a fraction (e.g. 1/2), applicable where there are surviving issue */ residueShare?: string; notes?: string; }; /** * Method of distribution to issue (descendants) on intestacy */ issueDistribution?: 'per_stirpes' | 'per_capita'; notes?: string; } | { /** * Whether the estate qualifies for the small estate summary procedure */ eligible?: boolean; /** * Gross value of the estate as assessed for small estate purposes, in minor currency units (HKD cents) */ estateValue?: Money; /** * Prescribed small estate threshold in force at the date of death, in minor currency units (HKD cents) */ threshold?: Money; /** * Date on which the small estate grant or confirmation was issued */ confirmationDate?: string; notes?: string; } | Array<{ /** * Priority rank (1 = highest) */ tier: number; /** * Kinship category for this tier */ relationshipCategory: 'spouse' | 'children_and_issue' | 'parents' | 'siblings_whole' | 'siblings_half' | 'grandparents' | 'uncles_aunts_whole' | 'uncles_aunts_half' | 'crown'; /** * Whether this tier requires whole or half blood */ bloodRequirement?: 'whole' | 'half' | 'not_applicable'; notes?: string; }> | { /** * Whether the deceased was a member of a tso or tong */ tsoTongMembership?: boolean; /** * Whether patrilineal succession applies to the communal land */ patrilinealSuccession?: boolean; notes?: string; } | { /** * Whether pre-1971 Chinese customary law applies to this estate */ applicable?: boolean; /** * Whether children of concubines have inheritance rights under the applicable customary law */ concubineChildrenRecognised?: boolean; notes?: string; } | string | undefined; }; /** * Switzerland Extension * * Swiss succession rules: Pflichtteil (forced heirship, 2023 Erbrechtsrevision), cantonal inheritance tax variation, matrimonial property regimes, Erbschein (certificate of inheritance), and notarial will forms. */ export type Switzerland = { /** * Pflichtteil — the statutory reserved portion under Swiss law. Since the 2023 Erbrechtsrevision (ZGB Art. 470–480), parents are no longer protected heirs; descendants retain 1/2 of their intestate share and the surviving spouse 1/2 of their intestate share. */ pflichtteil?: { /** * Whether the January 2023 Erbrechtsrevision rules apply (deaths on or after 1 January 2023) */ reformApplies?: boolean; /** * Array of persons entitled to a Pflichtteil under Swiss law */ protectedHeirs?: Array<{ /** * Reference to the Person.id of the protected heir */ personId: string; /** * Class of protected heir. Since 2023, only descendants and surviving_spouse are protected heirs; parent is included for pre-2023 deaths. */ heirClass: 'descendant' | 'surviving_spouse' | 'parent'; /** * The heir's intestate statutory share as a fraction, e.g. 1/2 */ statutoryShareFraction?: string; /** * The Pflichtteil as a fraction of the estate (half the statutory share since 2023), e.g. 1/4 */ pflichtteilFraction?: string; }>; /** * The freely disposable quota remaining after all Pflichtteile are reserved */ availableQuota?: { /** * Available quota as a fraction of the net estate, e.g. 1/2 */ fraction?: string; /** * Estimated monetary value of the available quota in minor currency units */ estimatedValue?: Money; }; }; /** * Cantonal inheritance tax and succession law variation. Switzerland has 26 cantons; direct-line heirs are exempt in most cantons, but rates and exemptions differ significantly. */ cantonalVariation?: { /** * Two-letter canton abbreviation (e.g. ZH, BE, GE, VD, BS) */ canton?: string; /** * Whether cantonal inheritance tax applies to this estate */ cantonalTaxApplies?: boolean; /** * Cantonal inheritance tax rate as a percentage */ cantonalTaxRate?: number; /** * Whether lineal heirs (descendants and surviving spouse) are exempt from cantonal inheritance tax in this canton */ linealHeirsExempt?: boolean; }; /** * The matrimonial property regime governing the split of matrimonial property before succession begins. participation_in_acquisitions is the default regime under ZGB Art. 181. */ matrimonialPropertyRegime?: 'participation_in_acquisitions' | 'community_of_property' | 'separation_of_property'; /** * Erbschein — the Swiss certificate of inheritance (Erbenbescheinigung) issued by the competent cantonal authority confirming the identity of heirs and their shares. */ erbschein?: { /** * Whether an Erbschein has been issued */ issued?: boolean; /** * Name of the cantonal authority that issued the Erbschein */ issuingAuthority?: string; /** * Date on which the Erbschein was issued */ issueDate?: string; /** * Reference or case number of the Erbschein */ referenceNumber?: string; }; /** * Form of will used under Swiss law. public_will: notarially authenticated before two witnesses (ZGB Art. 499–508). holographic_will: entirely handwritten, dated, and signed by the testator (ZGB Art. 505). oral_will: emergency oral will before two witnesses when notarial form is impossible (ZGB Art. 506–508). */ notarialWillForm?: 'public_will' | 'holographic_will' | 'oral_will'; notes?: string; [key: string]: { [key: string]: unknown; } | { /** * Whether the January 2023 Erbrechtsrevision rules apply (deaths on or after 1 January 2023) */ reformApplies?: boolean; /** * Array of persons entitled to a Pflichtteil under Swiss law */ protectedHeirs?: Array<{ /** * Reference to the Person.id of the protected heir */ personId: string; /** * Class of protected heir. Since 2023, only descendants and surviving_spouse are protected heirs; parent is included for pre-2023 deaths. */ heirClass: 'descendant' | 'surviving_spouse' | 'parent'; /** * The heir's intestate statutory share as a fraction, e.g. 1/2 */ statutoryShareFraction?: string; /** * The Pflichtteil as a fraction of the estate (half the statutory share since 2023), e.g. 1/4 */ pflichtteilFraction?: string; }>; /** * The freely disposable quota remaining after all Pflichtteile are reserved */ availableQuota?: { /** * Available quota as a fraction of the net estate, e.g. 1/2 */ fraction?: string; /** * Estimated monetary value of the available quota in minor currency units */ estimatedValue?: Money; }; } | { /** * Two-letter canton abbreviation (e.g. ZH, BE, GE, VD, BS) */ canton?: string; /** * Whether cantonal inheritance tax applies to this estate */ cantonalTaxApplies?: boolean; /** * Cantonal inheritance tax rate as a percentage */ cantonalTaxRate?: number; /** * Whether lineal heirs (descendants and surviving spouse) are exempt from cantonal inheritance tax in this canton */ linealHeirsExempt?: boolean; } | 'participation_in_acquisitions' | 'community_of_property' | 'separation_of_property' | { /** * Whether an Erbschein has been issued */ issued?: boolean; /** * Name of the cantonal authority that issued the Erbschein */ issuingAuthority?: string; /** * Date on which the Erbschein was issued */ issueDate?: string; /** * Reference or case number of the Erbschein */ referenceNumber?: string; } | 'public_will' | 'holographic_will' | 'oral_will' | string | undefined; }; /** * Israel Extension * * Israeli succession rules: parallel court systems (civil family court, rabbinical, sharia, druze), Inheritance Law 1965 process types, religious authority orders, kibbutz/moshav communal property, and Holocaust restitution assets. */ export type Israel = { /** * The adjudicating court system handling this succession matter. Israel operates parallel civil and religious court systems, each with jurisdiction over different communities and matter types. */ parallelCourtSystems?: { /** * The court system with jurisdiction over this succession matter. civil_family_court: Family Court under Family Court Law 1995 (default for most succession matters). rabbinical_court: Rabbinical Court with jurisdiction over Jewish personal status and succession where all parties consent. sharia_court: Sharia Court with jurisdiction over Muslim personal status matters. druze_court: Druze Religious Court with jurisdiction over Druze personal status. registrar_of_inheritance: Registrar of Inheritance (Rasham HaYerushot) for uncontested applications. */ adjudicatingCourt?: 'civil_family_court' | 'rabbinical_court' | 'sharia_court' | 'druze_court' | 'registrar_of_inheritance'; /** * Reference number of the court order or application */ courtOrderReference?: string; /** * Date of the court order */ courtOrderDate?: string; /** * Whether all parties have consented to this court's jurisdiction (relevant where jurisdiction is consent-based, e.g. rabbinical court for Jewish parties) */ allPartiesConsented?: boolean; }; /** * Details of the succession process under the Inheritance Law 1965 (Chok HaYerusha). The law provides two tracks: tzevu kiyum (probate order for wills) and tzevu yerusha (succession order for intestate estates). */ inheritanceLaw1965?: { /** * Type of succession order sought or obtained. tzevu_kiyum: probate order (tzav kiyum tzava'a) confirming the validity of a will. tzevu_yerusha: succession order (tzav yerusha) determining heirs on intestacy. combined: both orders sought together, e.g. where a partial will exists. */ successionOrderType?: 'tzevu_kiyum' | 'tzevu_yerusha' | 'combined'; /** * Whether the statutory objection period (14 days from publication of the application notice) has expired without objection */ objectionPeriodExpired?: boolean; /** * Whether any objections were received during the objection period */ objectionsReceived?: boolean; /** * Surviving spouse entitlement under Inheritance Law 1965. On intestacy, the spouse's share depends on the class of heirs surviving alongside them. */ spouseEntitlement?: { /** * Spouse's share of moveable property as a fraction, e.g. 1/2 */ moveableFraction?: string; /** * Spouse's share of immoveable property as a fraction, e.g. 1/2 */ immoveableFraction?: string; /** * Whether the spouse has been granted a dwelling right (zchut dirah) in the matrimonial home under section 11(a) of the Inheritance Law */ dwellingRightGranted?: boolean; }; }; /** * An order or ruling issued by a religious court with jurisdiction over this succession matter. Applicable where a religious court has issued a binding ruling recognised under Israeli law. */ religiousAuthorityOrder?: { /** * The religious authority issuing the order. bet_din: Rabbinical court (Jewish law). sharia_court: Sharia court (Islamic law). druze_court: Druze religious court. */ authority?: 'bet_din' | 'sharia_court' | 'druze_court'; /** * Type of religious authority order. succession_ruling: ruling on intestate distribution. halachic_will_validation: validation of a will under halachic principles. waqf_ruling: ruling concerning waqf (Islamic religious endowment) assets. consent_order: order by consent of all parties. */ orderType?: 'succession_ruling' | 'halachic_will_validation' | 'waqf_ruling' | 'consent_order'; /** * Reference number of the religious authority order */ orderReference?: string; /** * Date of the religious authority order */ orderDate?: string; /** * Whether the religious authority order is binding on all parties and recognised by civil courts */ binding?: boolean; }; /** * Communal or cooperative property held through a kibbutz or moshav. These structures create special succession rules as membership rights, housing allocations, and production quotas may not be freely transferable. */ kibbutzProperty?: { /** * Type of communal or cooperative structure. kibbutz_communal: traditional collective kibbutz where all property is collectively owned. kibbutz_renewed: renewed (mתחדש) kibbutz operating on differential pay and partial private ownership. moshav: cooperative smallholder settlement where land is state-leased and individually farmed. moshav_shitufi: collective moshav combining kibbutz production with moshav family life. */ communalOwnershipType?: 'kibbutz_communal' | 'kibbutz_renewed' | 'moshav' | 'moshav_shitufi'; /** * Whether membership rights in the communal organisation are transferable to heirs */ membershipRightsTransferable?: boolean; /** * Name of the kibbutz or moshav */ communityName?: string; /** * Estimated value of the deceased's personal property held outside communal ownership, in minor currency units */ personalPropertyValue?: Money; }; /** * Holocaust restitution assets — property or claims arising from Nazi persecution and subsequent restitution programmes. Israel has a significant number of estates involving Holocaust-era assets due to its founding population. */ holocaustRestitution?: { /** * Whether the estate includes known or suspected Holocaust restitution assets or claims */ restitutionAssetsExist?: boolean; /** * Source programme or authority from which restitution is or was sought. claims_conference: Conference on Jewish Material Claims Against Germany. german_government: German federal or state government restitution. austrian_government: Austrian government restitution. swiss_banks_settlement: Swiss Banks Settlement (Volcker process). art_restitution: looted art restitution. property_restitution: real property restitution. other: other restitution programme. */ restitutionSource?: 'claims_conference' | 'german_government' | 'austrian_government' | 'swiss_banks_settlement' | 'art_restitution' | 'property_restitution' | 'other'; /** * Whether the identity of the original pre-war owner is known and documented */ originalOwnerKnown?: boolean; /** * Whether there are ongoing restitution claims or applications that have not yet been resolved */ ongoingClaims?: boolean; /** * Estimated value of known restitution assets or settled claims in minor currency units */ estimatedValue?: Money; }; notes?: string; [key: string]: { [key: string]: unknown; } | { /** * The court system with jurisdiction over this succession matter. civil_family_court: Family Court under Family Court Law 1995 (default for most succession matters). rabbinical_court: Rabbinical Court with jurisdiction over Jewish personal status and succession where all parties consent. sharia_court: Sharia Court with jurisdiction over Muslim personal status matters. druze_court: Druze Religious Court with jurisdiction over Druze personal status. registrar_of_inheritance: Registrar of Inheritance (Rasham HaYerushot) for uncontested applications. */ adjudicatingCourt?: 'civil_family_court' | 'rabbinical_court' | 'sharia_court' | 'druze_court' | 'registrar_of_inheritance'; /** * Reference number of the court order or application */ courtOrderReference?: string; /** * Date of the court order */ courtOrderDate?: string; /** * Whether all parties have consented to this court's jurisdiction (relevant where jurisdiction is consent-based, e.g. rabbinical court for Jewish parties) */ allPartiesConsented?: boolean; } | { /** * Type of succession order sought or obtained. tzevu_kiyum: probate order (tzav kiyum tzava'a) confirming the validity of a will. tzevu_yerusha: succession order (tzav yerusha) determining heirs on intestacy. combined: both orders sought together, e.g. where a partial will exists. */ successionOrderType?: 'tzevu_kiyum' | 'tzevu_yerusha' | 'combined'; /** * Whether the statutory objection period (14 days from publication of the application notice) has expired without objection */ objectionPeriodExpired?: boolean; /** * Whether any objections were received during the objection period */ objectionsReceived?: boolean; /** * Surviving spouse entitlement under Inheritance Law 1965. On intestacy, the spouse's share depends on the class of heirs surviving alongside them. */ spouseEntitlement?: { /** * Spouse's share of moveable property as a fraction, e.g. 1/2 */ moveableFraction?: string; /** * Spouse's share of immoveable property as a fraction, e.g. 1/2 */ immoveableFraction?: string; /** * Whether the spouse has been granted a dwelling right (zchut dirah) in the matrimonial home under section 11(a) of the Inheritance Law */ dwellingRightGranted?: boolean; }; } | { /** * The religious authority issuing the order. bet_din: Rabbinical court (Jewish law). sharia_court: Sharia court (Islamic law). druze_court: Druze religious court. */ authority?: 'bet_din' | 'sharia_court' | 'druze_court'; /** * Type of religious authority order. succession_ruling: ruling on intestate distribution. halachic_will_validation: validation of a will under halachic principles. waqf_ruling: ruling concerning waqf (Islamic religious endowment) assets. consent_order: order by consent of all parties. */ orderType?: 'succession_ruling' | 'halachic_will_validation' | 'waqf_ruling' | 'consent_order'; /** * Reference number of the religious authority order */ orderReference?: string; /** * Date of the religious authority order */ orderDate?: string; /** * Whether the religious authority order is binding on all parties and recognised by civil courts */ binding?: boolean; } | { /** * Type of communal or cooperative structure. kibbutz_communal: traditional collective kibbutz where all property is collectively owned. kibbutz_renewed: renewed (mתחדש) kibbutz operating on differential pay and partial private ownership. moshav: cooperative smallholder settlement where land is state-leased and individually farmed. moshav_shitufi: collective moshav combining kibbutz production with moshav family life. */ communalOwnershipType?: 'kibbutz_communal' | 'kibbutz_renewed' | 'moshav' | 'moshav_shitufi'; /** * Whether membership rights in the communal organisation are transferable to heirs */ membershipRightsTransferable?: boolean; /** * Name of the kibbutz or moshav */ communityName?: string; /** * Estimated value of the deceased's personal property held outside communal ownership, in minor currency units */ personalPropertyValue?: Money; } | { /** * Whether the estate includes known or suspected Holocaust restitution assets or claims */ restitutionAssetsExist?: boolean; /** * Source programme or authority from which restitution is or was sought. claims_conference: Conference on Jewish Material Claims Against Germany. german_government: German federal or state government restitution. austrian_government: Austrian government restitution. swiss_banks_settlement: Swiss Banks Settlement (Volcker process). art_restitution: looted art restitution. property_restitution: real property restitution. other: other restitution programme. */ restitutionSource?: 'claims_conference' | 'german_government' | 'austrian_government' | 'swiss_banks_settlement' | 'art_restitution' | 'property_restitution' | 'other'; /** * Whether the identity of the original pre-war owner is known and documented */ originalOwnerKnown?: boolean; /** * Whether there are ongoing restitution claims or applications that have not yet been resolved */ ongoingClaims?: boolean; /** * Estimated value of known restitution assets or settled claims in minor currency units */ estimatedValue?: Money; } | string | undefined; }; /** * India Extension * * Indian succession — multi-personal-law system covering Hindu (coparcenary, HUF), Muslim personal law (school-based heir shares), Christian, Parsi, and Goa civil code estates; includes succession certificates and property classification */ export type India = { /** * Which personal law governs this estate — India applies different succession laws based on religion */ personalLaw: 'hindu_succession_act_1956' | 'indian_succession_act_1925' | 'muslim_personal_law' | 'parsi_succession' | 'special_marriage_act' | 'goa_civil_code'; /** * Indian state — different states have variations (e.g. agricultural land ceiling, stamp duty) */ state?: string; /** * Whether probate is required — varies by religion and state. Mandatory for wills under Indian Succession Act in certain cities. */ probateRequired?: boolean; /** * Which court has jurisdiction — District Court or High Court depending on estate value */ probateJurisdiction?: { court?: string; courtType?: 'district_court' | 'high_court'; }; /** * Agricultural land has special succession rules — cannot be willed in some states, subject to ceiling limits */ agriculturalLand?: { hasAgriculturalLand?: boolean; stateCeilingApplies?: boolean; /** * Whether agricultural land can be disposed of by will in this state */ willingRestriction?: boolean; }; /** * Non-Resident Indian complications — FEMA restrictions, repatriation limits, tax treaty implications */ nriComplications?: { isNri?: boolean; /** * Whether FEMA (Foreign Exchange Management Act) restrictions apply */ femaRestrictions?: boolean; repatriationLimit?: Money; /** * Applicable Double Taxation Avoidance Agreement */ dtaa?: string; }; /** * Goa follows the Portuguese Civil Code — community of property regime applies regardless of religion */ goaException?: { applies?: boolean; /** * Whether community of property regime applies */ communityOfProperty?: boolean; /** * Portuguese-style forced heirship (legítima) */ forcedHeirship?: boolean; }; /** * Stamp duty on succession — varies by state */ stampDuty?: { stateRate?: number; exemptions?: Array; }; /** * Hindu Succession Act coparcenary property rules — Mitakshara (most of India) vs Dayabhaga (Bengal) */ coparcenaryDetails?: { school?: 'mitakshara' | 'dayabhaga'; /** * Hindu Succession (Amendment) Act 2005 — daughters equal coparceners */ amendment2005Applies?: boolean; coparcenaryPropertyIdentified?: boolean; survivorshipApplies?: boolean; notes?: string; }; /** * Ancestral vs self-acquired property distinction — ancestral property subject to coparcenary rules, self-acquired freely disposable */ propertyClassification?: { type?: 'ancestral' | 'self_acquired' | 'mixed'; ancestralPropertyIdentified?: boolean; notes?: string; }; /** * Procedural mechanism for succession under Indian Succession Act ss.370-390 */ successionCertificate?: { type?: 'succession_certificate' | 'letters_of_administration' | 'probate' | 'legal_heir_certificate'; court?: string; applicationDate?: string; granted?: boolean; notes?: string; }; /** * Hindu Undivided Family (HUF) implications — karta's interest passes by survivorship to coparceners */ hufImplications?: { hufExists?: boolean; deceasedWasKarta?: boolean; /** * HUF property passes by survivorship, not succession */ hufPropertyExcluded?: boolean; taxImplications?: string; notes?: string; }; /** * India-specific Muslim personal law application — school determines heir shares and distant kindred treatment */ muslimSuccessionRules?: { school?: 'hanafi' | 'shia_ithna_ashari' | 'shafi' | 'other'; /** * Can only bequeath 1/3 without heir consent */ testamentaryThird?: boolean; /** * Heirs consented to bequest exceeding 1/3 */ heirConsent?: boolean; notes?: string; }; /** * Parsi succession rules under the Indian Succession Act 1925 Part V. Daughters receive half a son's share; widow receives equal to one child's share */ parsiSuccessionRules?: { /** * Daughter's share relative to son — always half under Parsi law */ daughterShareRule?: string; /** * Widow's share — equal to one child's share */ widowShareRule?: string; notes?: string; }; /** * Christian succession under the Indian Succession Act 1925. Follows the ISA intestacy hierarchy with some state-specific deviations */ christianSuccessionRules?: { /** * Whether succession follows the Indian Succession Act 1925 (true for most states) */ followsIndianSuccessionAct?: boolean; notes?: string; }; notes?: string; [key: string]: { [key: string]: unknown; } | 'hindu_succession_act_1956' | 'indian_succession_act_1925' | 'muslim_personal_law' | 'parsi_succession' | 'special_marriage_act' | 'goa_civil_code' | string | boolean | { court?: string; courtType?: 'district_court' | 'high_court'; } | { hasAgriculturalLand?: boolean; stateCeilingApplies?: boolean; /** * Whether agricultural land can be disposed of by will in this state */ willingRestriction?: boolean; } | { isNri?: boolean; /** * Whether FEMA (Foreign Exchange Management Act) restrictions apply */ femaRestrictions?: boolean; repatriationLimit?: Money; /** * Applicable Double Taxation Avoidance Agreement */ dtaa?: string; } | { applies?: boolean; /** * Whether community of property regime applies */ communityOfProperty?: boolean; /** * Portuguese-style forced heirship (legítima) */ forcedHeirship?: boolean; } | { stateRate?: number; exemptions?: Array; } | { school?: 'mitakshara' | 'dayabhaga'; /** * Hindu Succession (Amendment) Act 2005 — daughters equal coparceners */ amendment2005Applies?: boolean; coparcenaryPropertyIdentified?: boolean; survivorshipApplies?: boolean; notes?: string; } | { type?: 'ancestral' | 'self_acquired' | 'mixed'; ancestralPropertyIdentified?: boolean; notes?: string; } | { type?: 'succession_certificate' | 'letters_of_administration' | 'probate' | 'legal_heir_certificate'; court?: string; applicationDate?: string; granted?: boolean; notes?: string; } | { hufExists?: boolean; deceasedWasKarta?: boolean; /** * HUF property passes by survivorship, not succession */ hufPropertyExcluded?: boolean; taxImplications?: string; notes?: string; } | { school?: 'hanafi' | 'shia_ithna_ashari' | 'shafi' | 'other'; /** * Can only bequeath 1/3 without heir consent */ testamentaryThird?: boolean; /** * Heirs consented to bequest exceeding 1/3 */ heirConsent?: boolean; notes?: string; } | { /** * Daughter's share relative to son — always half under Parsi law */ daughterShareRule?: string; /** * Widow's share — equal to one child's share */ widowShareRule?: string; notes?: string; } | { /** * Whether succession follows the Indian Succession Act 1925 (true for most states) */ followsIndianSuccessionAct?: boolean; notes?: string; } | string | undefined; }; /** * UAE Extension * * UAE succession law — dual-track (Sharia default vs DIFC common law), DWSC registered wills, expatriate handling under Federal Decree-Law No. 41/2022; includes ADGM wills service, non-Muslim court registration, UAE real property treatment, and dual-track dispute resolution (Sharia vs common law) */ export type Uae = { /** * Which succession track applies — Sharia (default for Muslims) or DIFC (opted-in for non-Muslims) */ successionTrack: 'sharia' | 'difc' | 'decree_law_41_home_country'; /** * DIFC Wills and Probate Registry details */ difcWill?: { registered?: boolean; registrationNumber?: string; registrationDate?: string; willType?: 'full' | 'property' | 'guardianship' | 'financial_assets' | 'business_owners'; }; /** * Which emirate the estate is primarily administered in — different emirates have different courts */ emirate?: 'abu_dhabi' | 'dubai' | 'sharjah' | 'ajman' | 'umm_al_quwain' | 'ras_al_khaimah' | 'fujairah'; /** * Under Federal Decree-Law No. 41/2022, non-Muslim expatriates may elect home country law */ expatriateHandling?: { homeCountryLawElected?: boolean; homeCountry?: Jurisdiction; /** * Whether Decree-Law 41/2022 applies */ decreeApplicable?: boolean; }; /** * Assets held in UAE free zones may have different treatment */ freeZoneAssets?: Array<{ freeZone?: string; assetType?: string; estimatedValue?: Money; }>; /** * Sharia fixed-share (fara'id) application under UAE Personal Status Law (Federal Law No. 28/2005) */ shariaFixedShares?: { appliedByDefault?: boolean; courtReference?: string; qadiFatwaSought?: boolean; notes?: string; }; /** * Abu Dhabi Global Market (ADGM) Wills Service — alternative to DIFC for Abu Dhabi residents */ adgmWill?: { registered?: boolean; registrationNumber?: string; registrationDate?: string; willType?: 'full' | 'property' | 'guardianship' | 'business_owners'; notes?: string; }; /** * Non-Muslim will registration with local courts (Dubai Courts, Abu Dhabi Judicial Department) */ nonMuslimWillRegistration?: { registered?: boolean; registrationCourt?: string; registrationEmirateCode?: string; registrationDate?: string; recognisedByLocalCourt?: boolean; notes?: string; }; /** * UAE real property treatment — freehold only available to foreigners in designated areas */ propertyTreatment?: { tenureType?: 'freehold' | 'leasehold' | 'usufruct' | 'musataha'; /** * Whether property is in a foreigners-permitted freehold zone */ designatedArea?: boolean; propertyRegistrationAuthority?: string; notes?: string; }; /** * Inheritance dispute resolution forum — dual-track system (Sharia vs common law) */ disputeResolution?: { forum?: 'sharia_court' | 'civil_court' | 'difc_court' | 'adgm_court' | 'mediation'; caseReference?: string; status?: 'pending' | 'resolved' | 'appealed'; notes?: string; }; /** * Election to apply home-country succession law under Federal Decree Law No. 41 of 2022. Available to non-Muslims — allows election of home-country law instead of Sharia */ homeCountryLawElection?: { /** * ISO 3166-1 alpha-2 country code of the elected succession law */ electedCountry?: string; /** * Whether the election has been formally registered */ electionRegistered?: boolean; /** * Registration reference number */ registrationReference?: string; }; notes?: string; [key: string]: { [key: string]: unknown; } | 'sharia' | 'difc' | 'decree_law_41_home_country' | { registered?: boolean; registrationNumber?: string; registrationDate?: string; willType?: 'full' | 'property' | 'guardianship' | 'financial_assets' | 'business_owners'; } | 'abu_dhabi' | 'dubai' | 'sharjah' | 'ajman' | 'umm_al_quwain' | 'ras_al_khaimah' | 'fujairah' | { homeCountryLawElected?: boolean; homeCountry?: Jurisdiction; /** * Whether Decree-Law 41/2022 applies */ decreeApplicable?: boolean; } | Array<{ freeZone?: string; assetType?: string; estimatedValue?: Money; }> | { appliedByDefault?: boolean; courtReference?: string; qadiFatwaSought?: boolean; notes?: string; } | { registered?: boolean; registrationNumber?: string; registrationDate?: string; willType?: 'full' | 'property' | 'guardianship' | 'business_owners'; notes?: string; } | { registered?: boolean; registrationCourt?: string; registrationEmirateCode?: string; registrationDate?: string; recognisedByLocalCourt?: boolean; notes?: string; } | { tenureType?: 'freehold' | 'leasehold' | 'usufruct' | 'musataha'; /** * Whether property is in a foreigners-permitted freehold zone */ designatedArea?: boolean; propertyRegistrationAuthority?: string; notes?: string; } | { forum?: 'sharia_court' | 'civil_court' | 'difc_court' | 'adgm_court' | 'mediation'; caseReference?: string; status?: 'pending' | 'resolved' | 'appealed'; notes?: string; } | { /** * ISO 3166-1 alpha-2 country code of the elected succession law */ electedCountry?: string; /** * Whether the election has been formally registered */ electionRegistered?: boolean; /** * Registration reference number */ registrationReference?: string; } | string | undefined; }; /** * Asset Collection * * A named group of related assets — e.g. a model railway collection, vinyl record library, or art portfolio. Lets families and dealers understand which items belong together and should be considered as a set */ export type AssetCollection = { /** * Unique identifier for this asset collection */ id: string; /** * The root document this entity belongs to — either an estate document (schema.json) or a catalogue document (catalogue.json) */ rootDocumentId: string; /** * Display name for this collection */ name: string; /** * Context for family members and dealers about the collection's scope, provenance, or significance */ description?: string; /** * The primary category of items in this collection */ category?: 'model_railways' | 'vinyl_records' | 'art' | 'jewellery' | 'wine' | 'stamps' | 'coins' | 'books' | 'musical_instruments' | 'fishing_gear' | 'handbags' | 'power_tools' | 'watches' | 'ceramics' | 'memorabilia' | 'other'; /** * Estimated total value of the collection as a whole */ estimatedValue?: Money; /** * How the estimated value was determined */ valuationSource?: 'self_estimated' | 'dealer_valuation' | 'auction_estimate' | 'insurance_value'; /** * Date the valuation was performed or last updated */ valuationDate?: string; /** * Free-text guidance from the testator about what should happen to this collection — keep together, sell at auction, donate to a museum, etc */ disposalWishes?: string; /** * The testator's preferred strategy for disposing of this collection. More structured than disposalWishes */ disposalStrategy?: 'keep_together' | 'sell_as_collection' | 'sell_individually' | 'auction' | 'donate' | 'gift_to_person' | 'dealer_bids' | 'mixed' | 'undecided'; /** * The minimum total value the testator or executor will accept for the collection. Prevents fire-sale disposal. In minor currency units */ minimumAcceptableValue?: Money; /** * Preferred channel for disposing of the collection */ preferredDisposalMethod?: 'private_sale' | 'auction_house' | 'dealer_network' | 'online_marketplace' | 'specialist_fair' | 'museum_acquisition' | 'other'; /** * Notes about specialist dealers who might be interested in this collection. Names, contact details, areas of expertise */ specialistDealerNotes?: string; /** * Any additional notes about this collection */ notes?: string; /** * Overview photographs and videos of the collection as a whole — the display, the storage, the scale of the collection */ images?: Array; /** * Provenance record when this entity was created by splitting a larger entity. The original entity is typically archived after the split */ splitFrom?: { /** * The type of entity that was split */ entityType: 'asset' | 'asset_collection'; /** * The id of the original entity that was split */ entityId: string; /** * When the split occurred */ splitAt: string; /** * Why the split was requested */ reason?: string; }; /** * History of how items in this collection were disposed of during estate administration */ disposalHistory?: Array<{ /** * Asset.id of the disposed item */ assetId?: string; /** * How the item was disposed of */ disposalMethod?: 'sold_as_collection' | 'sold_individually' | 'gifted_to_beneficiary' | 'donated' | 'kept' | 'other'; /** * Sale proceeds */ proceeds?: Money; /** * Person.id of the recipient */ recipientPersonId?: string; /** * Human-readable display name for the referenced recipient person */ recipientPersonIdDisplay?: string; /** * Organisation.id of the recipient */ recipientOrganisationId?: string; /** * Human-readable display name for the referenced recipient organisation */ recipientOrganisationIdDisplay?: string; /** * Date of disposal */ date?: string; /** * Notes about the disposal */ notes?: string; }>; /** * Records that this entity was merged into another entity — the target entity is the canonical version */ mergedInto?: { /** * Type of the target entity */ entityType?: 'asset' | 'asset_collection'; /** * ID of the target entity */ entityId?: string; /** * When the merge occurred */ mergedAt?: string; /** * Why the entities were merged */ reason?: string; }; /** * Comparison of different valuation sources for this collection — insurance, dealer, auction */ valuationComparison?: { /** * Insurance valuation */ insuranceValue?: Money; /** * Date of insurance valuation */ insuranceDate?: string; /** * Dealer's estimate */ dealerEstimate?: Money; /** * Date of dealer estimate */ dealerDate?: string; /** * Auction house estimate */ auctionEstimate?: Money; /** * Date of auction estimate */ auctionDate?: string; /** * Most likely realisable amount considering all sources */ likelyRealisableAmount?: Money; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | string | string | 'model_railways' | 'vinyl_records' | 'art' | 'jewellery' | 'wine' | 'stamps' | 'coins' | 'books' | 'musical_instruments' | 'fishing_gear' | 'handbags' | 'power_tools' | 'watches' | 'ceramics' | 'memorabilia' | 'other' | Money | 'self_estimated' | 'dealer_valuation' | 'auction_estimate' | 'insurance_value' | string | string | 'keep_together' | 'sell_as_collection' | 'sell_individually' | 'auction' | 'donate' | 'gift_to_person' | 'dealer_bids' | 'mixed' | 'undecided' | 'private_sale' | 'auction_house' | 'dealer_network' | 'online_marketplace' | 'specialist_fair' | 'museum_acquisition' | 'other' | Array | { /** * The type of entity that was split */ entityType: 'asset' | 'asset_collection'; /** * The id of the original entity that was split */ entityId: string; /** * When the split occurred */ splitAt: string; /** * Why the split was requested */ reason?: string; } | Array<{ /** * Asset.id of the disposed item */ assetId?: string; /** * How the item was disposed of */ disposalMethod?: 'sold_as_collection' | 'sold_individually' | 'gifted_to_beneficiary' | 'donated' | 'kept' | 'other'; /** * Sale proceeds */ proceeds?: Money; /** * Person.id of the recipient */ recipientPersonId?: string; /** * Human-readable display name for the referenced recipient person */ recipientPersonIdDisplay?: string; /** * Organisation.id of the recipient */ recipientOrganisationId?: string; /** * Human-readable display name for the referenced recipient organisation */ recipientOrganisationIdDisplay?: string; /** * Date of disposal */ date?: string; /** * Notes about the disposal */ notes?: string; }> | { /** * Type of the target entity */ entityType?: 'asset' | 'asset_collection'; /** * ID of the target entity */ entityId?: string; /** * When the merge occurred */ mergedAt?: string; /** * Why the entities were merged */ reason?: string; } | { /** * Insurance valuation */ insuranceValue?: Money; /** * Date of insurance valuation */ insuranceDate?: string; /** * Dealer's estimate */ dealerEstimate?: Money; /** * Date of dealer estimate */ dealerDate?: string; /** * Auction house estimate */ auctionEstimate?: Money; /** * Date of auction estimate */ auctionDate?: string; /** * Most likely realisable amount considering all sources */ likelyRealisableAmount?: Money; } | Provenance | undefined; }; /** * Power of Appointment * * A testamentary power granting someone the authority to decide how assets or trust interests are distributed. Common in complex wills — the testator grants discretion to an appointee (typically an executor or trustee) to allocate among a defined class of beneficiaries */ export type PowerOfAppointment = { /** * Unique identifier for this power of appointment */ id: string; /** * The person granting the power (usually the testator) */ appointorPersonId: string; /** * Human-readable display name for the appointor */ appointorPersonIdDisplay?: string; /** * The person who holds the power and may exercise it (e.g. executor, trustee, spouse) */ appointeePersonId: string; /** * Human-readable display name for the appointee */ appointeePersonIdDisplay?: string; /** * Whether this is a general, special, or hybrid power of appointment */ powerType: 'general' | 'special' | 'hybrid'; /** * Natural-language definition of who the appointee may appoint to. Required for special and hybrid powers */ classOfBeneficiaries?: string; /** * Which assets, trusts, or bequests this power covers. If absent, the power applies to the entire residuary estate */ scope?: { assetIds?: Array; trustIds?: Array; bequestIds?: Array; }; /** * Conditions or limitations on how the power may be exercised */ exerciseConditions?: string; /** * Date the power was exercised, if it has been */ exercisedDate?: string; /** * Reference to the Document.id recording the exercise of this power */ exercisedDocumentId?: string; /** * Free-text notes about this power of appointment */ notes?: string; /** * Consolidated provenance metadata */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | string | 'general' | 'special' | 'hybrid' | string | { assetIds?: Array; trustIds?: Array; bequestIds?: Array; } | string | string | Provenance | undefined; }; /** * A comparable sale or listing used to support the valuation. Capturing comparables with screenshots and metadata creates an auditable evidence trail for executors, HMRC, and probate courts */ export type Comparable = { /** * Link to the comparable sale or listing */ url?: string; /** * Screenshot of the listing at the time it was captured. Listings are often removed after sale — the screenshot preserves the evidence */ screenshotUrl?: string; /** * Description of the comparable item */ title?: string; /** * The sale price of the comparable item, in minor currency units */ salePrice?: Money; /** * Date the comparable item sold */ saleDate?: string; /** * Where the comparable sold — marketplace, auction house, or dealer */ platform?: string; /** * The platform-specific listing or item identifier. Enables API-driven price lookups — e.g. eBay item ID resolves via the Browse API, Chrono24 ref resolves to watch data, Discogs release ID resolves to vinyl data */ platformListingId?: string; /** * Structured auction lot reference for provenance tracking — house, sale, and lot number. Enables lookups against auction house archives and provenance databases */ auctionLotRef?: string; /** * Timestamp when the comparable was captured or recorded. Important because market values shift and stale comparables lose evidential weight */ capturedAt?: string; /** * How closely the comparable matches the item being valued */ matchConfidence?: 'exact' | 'close' | 'approximate' | 'weak'; /** * What makes this item comparable — the specific attributes that justify the comparison */ matchFactors?: Array; /** * Free-text notes explaining the comparison — differences, adjustments, or caveats */ matchNotes?: string; /** * Numeric match confidence (0-100). Companion to the matchConfidence categorical enum. Agents use this for filtering and ranking — 'show me everything above 70' is quantitative reasoning that categorical enums don't support */ matchScore?: number; /** * Human feedback on this comparable. Creates the learning feedback loop — agents learn which comparables humans accept, improving future searches */ humanVerdict?: 'accepted' | 'rejected' | 'adjusted' | 'not_reviewed'; /** * Why this comparable was rejected. Feeds back into agent learning — future searches avoid this type of mismatch */ rejectionReason?: string; }; /** * Valuation * * A valuation of an estate asset, property, or asset collection. Supports multiple valuations per entity over time — owner estimates, professional valuations, AI analyses, dealer offers, and probate-agreed figures */ export type Valuation = { /** * Unique identifier for this valuation within the INHERIT document */ id: string; /** * The type of entity being valued */ entityType: 'asset' | 'property' | 'asset_collection'; /** * Reference to the entity being valued — an Asset.id, Property.id, or AssetCollection.id */ entityId: string; /** * The valuation amount, in minor currency units */ valuedAmount: Money; /** * Date the valuation was performed or assessed */ valuationDate: string; /** * Who performed the valuation — the name of the person, firm, or service */ provider?: string; /** * The type of person or organisation that provided the valuation */ providerType?: 'owner' | 'professional_valuer' | 'auction_house' | 'dealer' | 'insurance_assessor' | 'tax_authority' | 'ai_estimate' | 'other'; /** * The professional body registration of the valuer. A valuation from a RICS-registered surveyor or ASA-accredited appraiser carries significantly more weight with tax authorities and probate courts */ valuerRegistration?: { /** * The professional body or accreditation organisation */ body?: string; /** * The valuer's membership or registration number with the professional body */ membershipId?: string; /** * The valuer's professional designation or qualification level */ designation?: string; /** * URL to verify the valuer's registration with the professional body */ verificationUrl?: string; }; /** * The valuation methodology used */ method?: 'comparable_sales' | 'replacement_cost' | 'income_approach' | 'market_listing' | 'insurance_schedule' | 'ai_analysis' | 'expert_opinion' | 'other'; /** * The purpose for which this valuation was obtained */ valuationPurpose?: 'current_estimate' | 'date_of_death' | 'insurance' | 'official' | 'tax_return' | 'dealer_offer' | 'ai_estimate' | 'pre_sale' | 'probate'; /** * Confidence level in this valuation */ confidence?: 'high' | 'medium' | 'low' | 'unknown'; /** * Comparable items found on marketplaces — used to support the valuation. Agent-generated comparables should include matchScore for quantitative filtering and will accumulate humanVerdict feedback over time */ comparables?: Array; /** * Free-text notes about this valuation — methodology details, caveats, market conditions, or disagreements with other valuations */ notes?: string; /** * Per-field provenance records — how each field's value was obtained */ fieldProvenance?: Array; /** * Auction house estimate and result data */ auctionData?: { /** * Organisation.id of the auction house */ auctionHouseOrganisationId?: string; /** * Human-readable display name for the referenced auction house organisation */ auctionHouseOrganisationIdDisplay?: string; /** * Date of the auction sale */ saleDate?: string; /** * Auction lot number */ lotNumber?: string; /** * Low estimate */ estimateLow?: Money; /** * High estimate */ estimateHigh?: Money; /** * Hammer price (winning bid before premium) */ hammerPrice?: Money; /** * Buyer's premium as a percentage */ buyersPremiumPercentage?: number; /** * Total amount realised including premium */ totalRealised?: Money; /** * Whether the lot was sold */ sold?: boolean; }; /** * The date until which this valuation is considered valid. Common for insurance valuations which require annual renewal. After this date, the valuation may need to be refreshed */ validUntil?: string | null; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'asset' | 'property' | 'asset_collection' | Money | string | string | 'owner' | 'professional_valuer' | 'auction_house' | 'dealer' | 'insurance_assessor' | 'tax_authority' | 'ai_estimate' | 'other' | { /** * The professional body or accreditation organisation */ body?: string; /** * The valuer's membership or registration number with the professional body */ membershipId?: string; /** * The valuer's professional designation or qualification level */ designation?: string; /** * URL to verify the valuer's registration with the professional body */ verificationUrl?: string; } | 'comparable_sales' | 'replacement_cost' | 'income_approach' | 'market_listing' | 'insurance_schedule' | 'ai_analysis' | 'expert_opinion' | 'other' | 'current_estimate' | 'date_of_death' | 'insurance' | 'official' | 'tax_return' | 'dealer_offer' | 'ai_estimate' | 'pre_sale' | 'probate' | 'high' | 'medium' | 'low' | 'unknown' | Array | string | Array | { /** * Organisation.id of the auction house */ auctionHouseOrganisationId?: string; /** * Human-readable display name for the referenced auction house organisation */ auctionHouseOrganisationIdDisplay?: string; /** * Date of the auction sale */ saleDate?: string; /** * Auction lot number */ lotNumber?: string; /** * Low estimate */ estimateLow?: Money; /** * High estimate */ estimateHigh?: Money; /** * Hammer price (winning bid before premium) */ hammerPrice?: Money; /** * Buyer's premium as a percentage */ buyersPremiumPercentage?: number; /** * Total amount realised including premium */ totalRealised?: Money; /** * Whether the lot was sold */ sold?: boolean; } | string | null | Provenance | undefined; }; /** * Lifetime Transfer * * A gift or transfer made during the testator's lifetime, relevant for tax calculations such as the UK 7-year rule, US unified gift/estate tax, and similar lookback provisions in other jurisdictions */ export type LifetimeTransfer = { /** * Unique identifier for this lifetime transfer within the INHERIT document */ id: string; /** * Date the transfer was made */ transferDate: string; /** * Reference to the Person.id of the donor (typically the testator) */ donorPersonId: string; /** * Human-readable display name for the referenced donor person */ donorPersonIdDisplay?: string; /** * Person IDs of the recipients of the transfer */ doneePersonIds?: Array; /** * The category of lifetime transfer */ transferType: 'gift' | 'potentially_exempt_transfer' | 'chargeable_lifetime_transfer' | 'gift_with_reservation' | 'failed_pet' | 'settlement' | 'advancement' | 'loan_forgiveness' | 'sale_at_undervalue' | 'gift_of_shares' | 'other'; /** * Value of the transfer at the date it was made, in minor currency units */ value?: Money; /** * Reference to the Asset.id of the asset transferred, if it is still recorded in the document */ assetId?: string; /** * Reference to the Property.id of the property transferred */ propertyId?: string; /** * Reference to a Valuation entity providing a formal valuation of the transferred asset */ valuationId?: string; /** * Exemptions and reliefs claimed against this transfer to reduce its taxable value */ exemptionsClaimed?: Array<{ /** * The type of exemption or relief claimed against this transfer */ type: 'annual_exemption' | 'small_gift' | 'marriage_gift' | 'normal_expenditure' | 'business_property_relief' | 'agricultural_property_relief' | 'spouse_exemption' | 'charity_exemption' | 'taper_relief' | 'annual_exclusion' | 'lifetime_exemption' | 'gift_splitting' | 'other'; /** * Amount of the exemption claimed, in minor currency units */ amount?: Money; /** * Free-text notes about this exemption claim */ notes?: string; }>; /** * Whether a gift tax return or similar filing has been submitted for this transfer */ taxReturnFiled?: boolean; /** * Amount of tax paid on this transfer, in minor currency units */ taxPaid?: Money; /** * Whether this transfer falls within the jurisdiction's lookback period for tax purposes (e.g. 7 years in the UK, 3 years in the US for certain gifts) */ lookbackRelevant?: boolean; /** * Years remaining in the lookback period. In the UK, this counts down from 7 — a PET made 4 years before death has 3 years remaining */ lookbackYearsRemaining?: number; /** * UK taper relief percentage reducing the IHT charge on failed PETs and CLTs. Ranges from 0% (3 years or less before death) to 40% reduction (6-7 years before death) */ taperReliefPercentage?: number; /** * Jurisdiction governing this lifetime transfer */ jurisdiction?: Jurisdiction; /** * Free-text notes about this lifetime transfer */ notes?: string; /** * Organisation IDs of the recipients of the transfer, if gifts were made to organisations (e.g. charities) */ doneeOrganisationIds?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Jurisdiction-specific lookback period for this lifetime transfer — determines tax liability based on proximity to date of death */ lookbackPeriod?: { /** * Number of years the jurisdiction looks back (UK: 7, Japan: 3, US: unlimited) */ lookbackYears?: number; taperRelief?: { yearsElapsed?: number; reliefPercentage?: number; }; }; [key: string]: { [key: string]: unknown; } | string | string | string | Array | 'gift' | 'potentially_exempt_transfer' | 'chargeable_lifetime_transfer' | 'gift_with_reservation' | 'failed_pet' | 'settlement' | 'advancement' | 'loan_forgiveness' | 'sale_at_undervalue' | 'gift_of_shares' | 'other' | Money | Array<{ /** * The type of exemption or relief claimed against this transfer */ type: 'annual_exemption' | 'small_gift' | 'marriage_gift' | 'normal_expenditure' | 'business_property_relief' | 'agricultural_property_relief' | 'spouse_exemption' | 'charity_exemption' | 'taper_relief' | 'annual_exclusion' | 'lifetime_exemption' | 'gift_splitting' | 'other'; /** * Amount of the exemption claimed, in minor currency units */ amount?: Money; /** * Free-text notes about this exemption claim */ notes?: string; }> | boolean | number | number | Jurisdiction | string | Array | Provenance | { /** * Number of years the jurisdiction looks back (UK: 7, Japan: 3, US: unlimited) */ lookbackYears?: number; taperRelief?: { yearsElapsed?: number; reliefPercentage?: number; }; } | undefined; }; /** * A registration with a regulatory body, professional association, or government registry */ export type Registration = { /** * The regulatory body or registry. Use an id from well-known-organisations.json where available, or a descriptive string for unlisted bodies */ body: string; /** * The registration number. Format varies by body — see well-known-organisations.json for expected patterns */ number: string; /** * Current status of this registration */ status?: 'active' | 'suspended' | 'revoked' | 'voluntary' | 'expired'; /** * Jurisdiction this registration applies to. ISO 3166-1 alpha-2 or ISO 3166-2 code */ jurisdiction?: string; /** * URL to verify this registration with the regulatory body */ verificationUrl?: string; /** * When this registration was last verified */ verifiedAt?: string; /** * Result of a live API check against this registry. Snapshot at retrievedAt. Registry-specific fields are validated conditionally based on the parent body field */ liveCheck?: { /** * When this check was performed */ retrievedAt: string; /** * Companies House company status */ companyStatus?: 'active' | 'dissolved' | 'liquidation' | 'receivership' | 'administration' | 'voluntary-arrangement' | 'converted-closed' | string; /** * Standard Industrial Classification codes from Companies House */ sicCodes?: Array; /** * Date of incorporation */ incorporatedAt?: string; /** * Whether accounts are overdue at Companies House */ accountsOverdue?: boolean; /** * Whether there are active insolvency proceedings */ insolvencyFlag?: boolean; /** * FCA authorisation status */ authorisationStatus?: 'authorised' | 'revoked' | 'suspended' | 'cancelled' | 'no-longer-authorised' | string; /** * FCA firm reference number */ firmReference?: string; /** * Regulated activities the firm is authorised for */ permissions?: Array; /** * When FCA authorisation took effect */ effectiveFrom?: string; /** * Charity Commission or OSCR registration status */ charityStatus?: 'registered' | 'removed' | 'suspended' | 'in-default' | string; /** * Latest reported annual income in minor units (pennies/cents) */ income?: number; /** * Charitable objects or purposes */ objects?: string; /** * Date the charity was registered */ dateRegistered?: string; /** * Whether the charity's reporting is up to date */ reportingStatus?: 'up-to-date' | 'overdue' | 'not-required' | string; }; }; /** * Organisation * * An organisation that interacts with the estate — legal firms, financial institutions, charities, dealers, funeral providers, employers, government bodies, and others. Maps to schema:Organization in JSON-LD */ export type Organisation = { /** * Unique identifier for this organisation within the INHERIT document */ id: string; /** * The organisation's legal or trading name */ name: string; /** * The nature of the organisation. Use x-inherit- prefix for jurisdiction-specific or niche types not covered by the core enum */ organisationType: 'legal_firm' | 'financial_institution' | 'pension_provider' | 'insurance_provider' | 'dealer' | 'auction_house' | 'valuation_firm' | 'funeral_provider' | 'charity' | 'religious_institution' | 'employer' | 'trust_corporation' | 'accountancy_firm' | 'government_body' | 'retailer' | 'manufacturer' | 'property_management' | 'storage_facility' | 'digital_platform' | 'utility_provider' | 'other' | string; /** * The roles this organisation plays in this specific estate. An organisation may play multiple roles */ estateRoles?: Array<'beneficiary' | 'will_writer' | 'executor' | 'trustee' | 'asset_holder' | 'liability_holder' | 'insurer' | 'valuer' | 'recommended_dealer' | 'funeral_provider' | 'professional_adviser' | 'regulatory_body' | 'employer' | 'retailer' | 'service_provider' | string>; /** * Primary jurisdiction where this organisation operates. ISO 3166-1 alpha-2 or ISO 3166-2 code */ jurisdiction?: string; /** * The organisation's address */ address?: Address; /** * The organisation's website */ url?: string; /** * Primary contact email */ email?: string; /** * Primary contact phone number */ phone?: string; /** * URL to the organisation's logo */ logo?: string; /** * Wikidata Q-number for this organisation, enabling linked data resolution. Many major organisations have Wikidata entries with structured data (founding date, parent company, headquarters, etc.) */ wikidataId?: string; /** * Brief description of the organisation and its relevance to this estate */ description?: string; /** * Registrations with regulatory bodies, professional associations, and government registries. An organisation may hold multiple registrations across jurisdictions */ registrations?: Array; /** * Name of the primary contact person at this organisation for estate matters */ contactPerson?: string; /** * Free-text notes about this organisation's relationship to the estate */ notes?: string; /** * Aggregate ratings from review platforms. One entry per platform. Supports user decision-making, agent filtering/ranking, and point-in-time audit trails */ ratings?: Array<{ /** * The review platform */ platform: 'trustpilot' | 'google' | 'feefo' | 'reviews_io' | 'funeral_guide' | 'checkatrade' | string; /** * The aggregate rating score */ ratingValue: number; /** * Maximum possible score on this platform. Default 5 if absent */ bestRating?: number; /** * Minimum possible score on this platform. Default 1 if absent */ worstRating?: number; /** * Total number of reviews on this platform */ reviewCount?: number; /** * URL to the organisation's profile on this platform */ profileUrl?: string; /** * When this rating data was retrieved or verified */ retrievedAt: string; }>; /** * URIs identifying this entity elsewhere (schema.org sameAs). e.g. Wikidata, LinkedIn, DBpedia */ sameAs?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The organisation's VAT registration status and scheme. Affects how VAT is calculated on transactions involving this organisation */ vatConfiguration?: { /** * Whether the organisation is VAT registered */ vatRegistered?: boolean; /** * Which VAT scheme the organisation uses. Only relevant if vatRegistered is true */ vatScheme?: 'margin_scheme' | 'global_accounting' | 'standard_vat'; /** * The organisation's VAT registration number */ vatNumber?: string; /** * The country of VAT registration, as ISO 3166-1 alpha-2 */ vatCountry?: string; }; /** * International shipping capabilities and policies for this organisation */ internationalShipping?: { /** * ISO 3166-1 alpha-2 country codes this organisation ships to */ shipsToCountries?: Array; /** * ISO 3166-1 alpha-2 country codes this organisation receives items from */ receivesFromCountries?: Array; /** * Whether this organisation handles customs declarations for international shipments */ customsHandling?: boolean; /** * Who pays import duties on international transactions */ importDutyPolicy?: 'dealer_absorbs' | 'buyer_pays' | 'included_in_shipping'; /** * The primary currency this organisation trades in, as ISO 4217 */ currency?: string; }; /** * External identifiers — charity number, company registration, UEN, etc. */ identifiers?: Array; /** * Dealer-specific profile information. Only relevant for organisations that operate as dealers on marketplace or catalogue platforms */ dealerProfile?: { /** * Asset categories this dealer specialises in */ categories?: Array; /** * The dealer's subscription tier on the platform */ dealerTier?: 'free' | 'standard' | 'professional'; /** * Physical services this dealer can provide */ fulfilmentCapabilities?: Array<'inspection' | 'grading' | 'photography' | 'storage' | 'shipping' | 'restoration'>; /** * How far the dealer operates */ geographicReach?: 'local' | 'national' | 'international'; /** * Typical time to respond to a valuation request or offer */ averageResponseTime?: string; }; [key: string]: { [key: string]: unknown; } | string | string | 'legal_firm' | 'financial_institution' | 'pension_provider' | 'insurance_provider' | 'dealer' | 'auction_house' | 'valuation_firm' | 'funeral_provider' | 'charity' | 'religious_institution' | 'employer' | 'trust_corporation' | 'accountancy_firm' | 'government_body' | 'retailer' | 'manufacturer' | 'property_management' | 'storage_facility' | 'digital_platform' | 'utility_provider' | 'other' | string | Array<'beneficiary' | 'will_writer' | 'executor' | 'trustee' | 'asset_holder' | 'liability_holder' | 'insurer' | 'valuer' | 'recommended_dealer' | 'funeral_provider' | 'professional_adviser' | 'regulatory_body' | 'employer' | 'retailer' | 'service_provider' | string> | string | Address | string | string | string | string | string | Array | string | Array<{ /** * The review platform */ platform: 'trustpilot' | 'google' | 'feefo' | 'reviews_io' | 'funeral_guide' | 'checkatrade' | string; /** * The aggregate rating score */ ratingValue: number; /** * Maximum possible score on this platform. Default 5 if absent */ bestRating?: number; /** * Minimum possible score on this platform. Default 1 if absent */ worstRating?: number; /** * Total number of reviews on this platform */ reviewCount?: number; /** * URL to the organisation's profile on this platform */ profileUrl?: string; /** * When this rating data was retrieved or verified */ retrievedAt: string; }> | Array | Provenance | { /** * Whether the organisation is VAT registered */ vatRegistered?: boolean; /** * Which VAT scheme the organisation uses. Only relevant if vatRegistered is true */ vatScheme?: 'margin_scheme' | 'global_accounting' | 'standard_vat'; /** * The organisation's VAT registration number */ vatNumber?: string; /** * The country of VAT registration, as ISO 3166-1 alpha-2 */ vatCountry?: string; } | { /** * ISO 3166-1 alpha-2 country codes this organisation ships to */ shipsToCountries?: Array; /** * ISO 3166-1 alpha-2 country codes this organisation receives items from */ receivesFromCountries?: Array; /** * Whether this organisation handles customs declarations for international shipments */ customsHandling?: boolean; /** * Who pays import duties on international transactions */ importDutyPolicy?: 'dealer_absorbs' | 'buyer_pays' | 'included_in_shipping'; /** * The primary currency this organisation trades in, as ISO 4217 */ currency?: string; } | Array | { /** * Asset categories this dealer specialises in */ categories?: Array; /** * The dealer's subscription tier on the platform */ dealerTier?: 'free' | 'standard' | 'professional'; /** * Physical services this dealer can provide */ fulfilmentCapabilities?: Array<'inspection' | 'grading' | 'photography' | 'storage' | 'shipping' | 'restoration'>; /** * How far the dealer operates */ geographicReach?: 'local' | 'national' | 'international'; /** * Typical time to respond to a valuation request or offer */ averageResponseTime?: string; } | undefined; }; /** * Space * * A distinguishable space within or associated with a property — rooms, outbuildings, storage areas, and outdoor zones where assets may be located. Maps to schema:Place in JSON-LD */ export type Space = { /** * Unique identifier for this space within the INHERIT document */ id: string; /** * Reference to the Property.id that contains or is associated with this space */ propertyId: string; /** * The type of space. Use x-inherit- prefix for cultural or jurisdiction-specific space types not covered by the core enum */ spaceType: 'living_room' | 'dining_room' | 'kitchen' | 'kitchen_diner' | 'breakfast_room' | 'family_room' | 'sitting_room' | 'drawing_room' | 'conservatory' | 'sunroom' | 'snug' | 'bedroom' | 'guest_bedroom' | 'nursery' | 'spare_room' | 'dressing_room' | 'bathroom' | 'en_suite' | 'shower_room' | 'wet_room' | 'cloakroom' | 'wc' | 'hallway' | 'entrance_hall' | 'landing' | 'corridor' | 'porch' | 'vestibule' | 'study' | 'home_office' | 'library' | 'workshop' | 'studio' | 'music_room' | 'craft_room' | 'art_studio' | 'games_room' | 'home_cinema' | 'gym' | 'utility_room' | 'laundry_room' | 'boot_room' | 'pantry' | 'larder' | 'airing_cupboard' | 'boiler_room' | 'loft' | 'attic' | 'basement' | 'cellar' | 'wine_cellar' | 'walk_in_wardrobe' | 'storage_room' | 'cupboard_under_stairs' | 'box_room' | 'garage' | 'double_garage' | 'carport' | 'shed' | 'greenhouse' | 'summerhouse' | 'garden_room' | 'outbuilding' | 'barn' | 'annex' | 'stable' | 'front_garden' | 'rear_garden' | 'side_garden' | 'patio' | 'terrace' | 'balcony' | 'roof_terrace' | 'driveway' | 'courtyard' | 'yard' | 'swimming_pool' | 'prayer_room' | 'puja_room' | 'butsudan_room' | 'tatami_room' | 'genkan' | 'majlis' | 'helpers_room' | 'gurdwara_room' | 'meditation_room' | 'gun_room' | 'safe_room' | 'safe' | 'self_storage' | 'safe_deposit_box' | 'workplace' | 'relatives_house' | 'holiday_home' | 'vehicle_car' | 'vehicle_boat' | 'vehicle_caravan' | 'allotment' | 'digital_storage' | 'portable' | 'other' | string; /** * Display name for this space. Allows personalisation beyond the spaceType label */ name?: string; /** * Which floor this space is on, if applicable */ floor?: 'basement' | 'ground' | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'attic' | 'mezzanine' | 'other'; /** * Additional notes about this space — access instructions, security details, storage conditions */ notes?: string; /** * Photographs of this space — overview, contents, access points */ images?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'living_room' | 'dining_room' | 'kitchen' | 'kitchen_diner' | 'breakfast_room' | 'family_room' | 'sitting_room' | 'drawing_room' | 'conservatory' | 'sunroom' | 'snug' | 'bedroom' | 'guest_bedroom' | 'nursery' | 'spare_room' | 'dressing_room' | 'bathroom' | 'en_suite' | 'shower_room' | 'wet_room' | 'cloakroom' | 'wc' | 'hallway' | 'entrance_hall' | 'landing' | 'corridor' | 'porch' | 'vestibule' | 'study' | 'home_office' | 'library' | 'workshop' | 'studio' | 'music_room' | 'craft_room' | 'art_studio' | 'games_room' | 'home_cinema' | 'gym' | 'utility_room' | 'laundry_room' | 'boot_room' | 'pantry' | 'larder' | 'airing_cupboard' | 'boiler_room' | 'loft' | 'attic' | 'basement' | 'cellar' | 'wine_cellar' | 'walk_in_wardrobe' | 'storage_room' | 'cupboard_under_stairs' | 'box_room' | 'garage' | 'double_garage' | 'carport' | 'shed' | 'greenhouse' | 'summerhouse' | 'garden_room' | 'outbuilding' | 'barn' | 'annex' | 'stable' | 'front_garden' | 'rear_garden' | 'side_garden' | 'patio' | 'terrace' | 'balcony' | 'roof_terrace' | 'driveway' | 'courtyard' | 'yard' | 'swimming_pool' | 'prayer_room' | 'puja_room' | 'butsudan_room' | 'tatami_room' | 'genkan' | 'majlis' | 'helpers_room' | 'gurdwara_room' | 'meditation_room' | 'gun_room' | 'safe_room' | 'safe' | 'self_storage' | 'safe_deposit_box' | 'workplace' | 'relatives_house' | 'holiday_home' | 'vehicle_car' | 'vehicle_boat' | 'vehicle_caravan' | 'allotment' | 'digital_storage' | 'portable' | 'other' | string | string | 'basement' | 'ground' | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'attic' | 'mezzanine' | 'other' | string | Array | Provenance | undefined; }; export type ImportSource = { /** * Unique identifier for this import source, referenced by importSourceId on entities */ id: string; /** * Name of the source system */ systemName: string; /** * Date the data was imported from this source */ importDate?: string; /** * How the data was imported from this source */ importMethod?: 'api' | 'file_upload' | 'manual_copy' | 'ai_extraction' | 'ocr' | 'migration_script'; /** * Additional context about the import */ notes?: string; }; export type Conformance = { /** * Conformance level achieved */ level: 'level_1' | 'level_2' | 'level_3'; /** * When the validation was performed */ validatedAt: string; /** * Name of the tool that performed the validation */ validatedBy: string; /** * INHERIT schema version this document was validated against */ schemaVersion: string; /** * Completeness score at time of validation */ completenessScore?: number; /** * Count of entities per type at time of validation */ entityCounts?: { [key: string]: number; }; /** * Count of entities by data provenance source */ provenanceSummary?: { [key: string]: number; }; /** * Validation warnings — non-blocking issues that may need attention */ warnings?: Array; /** * URL of the validation service that produced this conformance certificate */ validationEndpoint?: string; }; /** * InsurancePolicy * * A standalone insurance policy entity — life, home, health, motor, travel, pet, or professional indemnity. Life insurance is often the single largest estate asset. Policies written in trust pass outside the estate */ export type InsurancePolicy = { /** * Unique identifier for this insurance policy within the INHERIT document */ id: string; /** * The type of insurance policy */ policyType: 'life' | 'home' | 'health' | 'motor' | 'travel' | 'pet' | 'professional_indemnity' | 'other' | string; /** * Reference to the Organisation.id of the insurance provider */ providerOrganisationId: string; /** * Human-readable display name for the referenced provider organisation */ providerOrganisationIdDisplay?: string; /** * The insurance policy number or reference */ policyNumber?: string; /** * Total cover amount (sum assured for life, rebuild cost for home, etc.) in minor currency units */ coverAmount?: Money; /** * Premium amount per payment period, in minor currency units */ premiumAmount?: Money; /** * How often premiums are paid */ premiumFrequency?: 'monthly' | 'annual' | 'single_premium' | 'paid_up' | 'other'; /** * Next renewal date. Important — cover may lapse if not renewed after death */ renewalDate?: string; /** * Date the policy matures (for endowment policies and investment-linked policies) */ maturityDate?: string; /** * Death benefit details — what is payable on the policyholder's death, to whom, and how */ deathBenefit?: { /** * Death benefit amount in minor currency units */ amount?: Money; /** * Reference to the Person.id of the nominated death benefit recipient */ nomineePersonId?: string; /** * Human-readable display name for the referenced nominee person */ nomineePersonIdDisplay?: string; /** * Reference to the Organisation.id of the nominated death benefit recipient, if an organisation. Mutually exclusive with nomineePersonId */ nomineeOrganisationId?: string; /** * Human-readable display name for the referenced nominee organisation */ nomineeOrganisationIdDisplay?: string; /** * Whether the death benefit nomination is believed to be current and valid */ nominationCurrent?: boolean; /** * How the death benefit is paid */ benefitType?: 'lump_sum' | 'income' | 'pension' | 'discretionary'; /** * Verification status of the death benefit beneficiary */ beneficiaryVerificationStatus?: 'unverified' | 'identity_confirmed' | 'entitlement_confirmed'; }; /** * Whether the policy is written in trust. If true, proceeds pass outside the estate and are not subject to inheritance tax */ writtenInTrust?: boolean; /** * Details of the trust holding this policy, if writtenInTrust is true */ trustDetails?: { /** * Reference to the Person.id of the policy trustee */ trusteePersonId?: string; /** * Human-readable display name for the referenced trustee person */ trusteePersonIdDisplay?: string; /** * Reference to the Organisation.id of a corporate trustee */ trusteeOrganisationId?: string; /** * Human-readable display name for the referenced trustee organisation */ trusteeOrganisationIdDisplay?: string; /** * Name of the trust */ trustName?: string; }; /** * Current status of any claim against this policy */ claimStatus?: 'active' | 'claim_submitted' | 'claim_approved' | 'claim_paid' | 'claim_disputed' | 'pending' | 'approved' | 'paid' | 'declined'; /** * URI pointing to an external policy record (FHIR Coverage resource, or any external insurance management system) */ externalPolicyRef?: string; /** * Lifecycle tracking for policy nominations — tracks the current nomination status and any superseding nominations */ nominationLifecycle?: { /** * Current status of the nomination */ nominationStatus?: 'active' | 'revoked' | 'superseded' | 'expired' | 'disputed'; /** * When the nomination was last verified as current */ verifiedAt?: string; /** * When the nomination was last updated by the policyholder */ lastUpdated?: string; /** * Reference to a previous nomination that this one replaces */ supersedesNominationId?: string; }; /** * Conditions, exclusions, or clauses that affect the policy — e.g. suicide clause, contestability period, pre-existing condition exclusions */ policyConditions?: Array<{ /** * Description of the condition or clause */ condition?: string; /** * Date the condition expires, if applicable */ expiryDate?: string; /** * How this condition affects a claim */ impact?: string; }>; /** * Free-text notes about this insurance policy */ notes?: string; /** * Details specific to funeral plan insurance */ funeralPlanDetails?: { /** * Reference to the Organisation.id of the covered funeral provider */ coveredFuneralProviderOrganisationId?: string; /** * Human-readable display name for the referenced covered funeral provider organisation */ coveredFuneralProviderOrganisationIdDisplay?: string; /** * Whether the plan is transferable on death */ transferableOnDeath?: boolean; /** * Total advance payments made */ advancePayments?: Money; }; /** * Financial compensation scheme protection status. In the UK, the FSCS protects insurance policyholders if the insurer fails. Knowing whether a policy is protected matters for estate risk assessment */ depositorProtection?: { /** * When this protection status was checked */ retrievedAt: string; /** * The compensation or protection scheme */ scheme?: 'fscs' | 'mib' | string; /** * Whether this policy is protected by the scheme */ protected?: boolean; /** * Maximum protection amount in minor units (pennies). FSCS insurance limit is unlimited for compulsory insurance, £85,000 for non-compulsory */ protectionLimit?: number; /** * URL to the scheme's claim process or guidance page */ claimProcessUrl?: string; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'life' | 'home' | 'health' | 'motor' | 'travel' | 'pet' | 'professional_indemnity' | 'other' | string | string | string | Money | 'monthly' | 'annual' | 'single_premium' | 'paid_up' | 'other' | string | { /** * Death benefit amount in minor currency units */ amount?: Money; /** * Reference to the Person.id of the nominated death benefit recipient */ nomineePersonId?: string; /** * Human-readable display name for the referenced nominee person */ nomineePersonIdDisplay?: string; /** * Reference to the Organisation.id of the nominated death benefit recipient, if an organisation. Mutually exclusive with nomineePersonId */ nomineeOrganisationId?: string; /** * Human-readable display name for the referenced nominee organisation */ nomineeOrganisationIdDisplay?: string; /** * Whether the death benefit nomination is believed to be current and valid */ nominationCurrent?: boolean; /** * How the death benefit is paid */ benefitType?: 'lump_sum' | 'income' | 'pension' | 'discretionary'; /** * Verification status of the death benefit beneficiary */ beneficiaryVerificationStatus?: 'unverified' | 'identity_confirmed' | 'entitlement_confirmed'; } | boolean | { /** * Reference to the Person.id of the policy trustee */ trusteePersonId?: string; /** * Human-readable display name for the referenced trustee person */ trusteePersonIdDisplay?: string; /** * Reference to the Organisation.id of a corporate trustee */ trusteeOrganisationId?: string; /** * Human-readable display name for the referenced trustee organisation */ trusteeOrganisationIdDisplay?: string; /** * Name of the trust */ trustName?: string; } | 'active' | 'claim_submitted' | 'claim_approved' | 'claim_paid' | 'claim_disputed' | 'pending' | 'approved' | 'paid' | 'declined' | string | { /** * Current status of the nomination */ nominationStatus?: 'active' | 'revoked' | 'superseded' | 'expired' | 'disputed'; /** * When the nomination was last verified as current */ verifiedAt?: string; /** * When the nomination was last updated by the policyholder */ lastUpdated?: string; /** * Reference to a previous nomination that this one replaces */ supersedesNominationId?: string; } | Array<{ /** * Description of the condition or clause */ condition?: string; /** * Date the condition expires, if applicable */ expiryDate?: string; /** * How this condition affects a claim */ impact?: string; }> | string | { /** * Reference to the Organisation.id of the covered funeral provider */ coveredFuneralProviderOrganisationId?: string; /** * Human-readable display name for the referenced covered funeral provider organisation */ coveredFuneralProviderOrganisationIdDisplay?: string; /** * Whether the plan is transferable on death */ transferableOnDeath?: boolean; /** * Total advance payments made */ advancePayments?: Money; } | { /** * When this protection status was checked */ retrievedAt: string; /** * The compensation or protection scheme */ scheme?: 'fscs' | 'mib' | string; /** * Whether this policy is protected by the scheme */ protected?: boolean; /** * Maximum protection amount in minor units (pennies). FSCS insurance limit is unlimited for compulsory insurance, £85,000 for non-compulsory */ protectionLimit?: number; /** * URL to the scheme's claim process or guidance page */ claimProcessUrl?: string; } | Provenance | undefined; }; /** * Pet * * A pet or animal requiring care arrangements after the owner's death */ export type Pet = { /** * Unique identifier for this pet */ id: string; /** * The pet's name */ petName: string; /** * The species of the pet */ species: 'dog' | 'cat' | 'bird' | 'horse' | 'rabbit' | 'fish' | 'reptile' | 'other' | string; /** * Breed of the pet */ breed?: string; /** * Pet's date of birth */ dateOfBirth?: string; /** * Microchip identification number */ microchipNumber?: string; /** * Whether vaccinations are current */ vaccinesUpToDate?: boolean; /** * Known health conditions */ healthConditions?: Array; /** * Current medications */ medicationRequired?: Array; /** * Special dietary requirements */ dietaryNeeds?: string; /** * Temperament and behaviour notes */ temperament?: string; /** * Person.id of the preferred caregiver */ caregiverPersonId?: string; /** * Human-readable display name for the referenced caregiver person */ caregiverPersonIdDisplay?: string; /** * Person.id of an alternative caregiver */ alternativeCaregiverPersonId?: string; /** * Human-readable display name for the referenced alternative caregiver person */ alternativeCaregiverPersonIdDisplay?: string; /** * Organisation.id of the vet practice */ veterinarianOrganisationId?: string; /** * Human-readable display name for the referenced veterinarian organisation */ veterinarianOrganisationIdDisplay?: string; /** * Organisation.id of the pet insurance provider */ petInsuranceOrganisationId?: string; /** * Human-readable display name for the referenced pet insurance organisation */ petInsuranceOrganisationIdDisplay?: string; /** * Estimated monthly care cost */ estimatedMonthlyCareCost?: Money; /** * Amount set aside for ongoing care */ fundingForCare?: Money; /** * Urgent actions needed after death */ immediateActionRequired?: string; /** * Where the pet is usually kept */ keyLocationForPet?: string; /** * How to transport this pet */ transportInstructions?: string; /** * Photographs of the pet */ images?: Array; /** * Additional care notes */ notes?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Links this pet to the trust or bequest funding its care. Pets cannot be beneficiaries — money flows to a trust or nominated carer */ petCareArrangement?: { /** * Reference to a Trust.id established for this pet's care */ trustId?: string; /** * Reference to a Bequest.id funding this pet's care */ bequestId?: string; /** * Reference to Person.id of the nominated carer */ nominatedCarerPersonId?: string; /** * Human-readable display name for the referenced nominated carer person */ nominatedCarerPersonIdDisplay?: string; /** * Specific care instructions (diet, vet, exercise, end-of-life preferences) */ careInstructions?: string; }; [key: string]: { [key: string]: unknown; } | string | string | 'dog' | 'cat' | 'bird' | 'horse' | 'rabbit' | 'fish' | 'reptile' | 'other' | string | string | string | string | boolean | Array | Array | string | Money | Array | string | Provenance | { /** * Reference to a Trust.id established for this pet's care */ trustId?: string; /** * Reference to a Bequest.id funding this pet's care */ bequestId?: string; /** * Reference to Person.id of the nominated carer */ nominatedCarerPersonId?: string; /** * Human-readable display name for the referenced nominated carer person */ nominatedCarerPersonIdDisplay?: string; /** * Specific care instructions (diet, vet, exercise, end-of-life preferences) */ careInstructions?: string; } | undefined; }; /** * Audit Event * * A single audit event recording who changed what, when, and why. Designed for enterprise audit trail requirements, probate court compliance, and GDPR-compatible personal data handling */ export type AuditEvent = { /** * What type of action was performed */ action: 'created' | 'modified' | 'deleted' | 'accessed' | 'exported' | 'validated' | 'version_created' | 'granted' | 'revoked' | 'challenged'; /** * When the action occurred */ performedAt: string; /** * Reference to the Person.id who performed the action. Uses a UUID reference rather than a display name for GDPR data minimisation — resolve the name at display time, not storage time */ agentPersonId?: string; /** * Human-readable description of who performed the action. Use only when a person ID is not available (e.g. system actions, external agents) */ agentDescription?: string; /** * The type of INHERIT entity that was affected */ entityType?: string; /** * The ID of the entity that was affected */ entityId?: string; /** * What specifically was done. Should be specific enough for an auditor to understand without seeing the before/after data */ detail?: string; /** * The value before the change, if applicable. For field-level audit trails */ previousValue?: string; /** * The value after the change, if applicable */ newValue?: string; /** * Whether this audit entry has been redacted for GDPR compliance. When true, the agentPersonId and detail fields may have been cleared but the structural record of the action is preserved */ redacted?: boolean; /** * Link to supporting evidence (court order, signed document, etc.) */ evidenceUrl?: string; }; /** * Notification * * A notification sent to a person or organisation during estate administration — beneficiary notifications, executor appointments, probate grants, document requests */ export type Notification = { /** * Unique identifier for this notification */ id: string; /** * The type of notification sent */ notificationType: 'beneficiary_notified' | 'executor_appointed' | 'probate_granted' | 'asset_identified' | 'asset_sold' | 'document_request' | 'other' | string; /** * Whether the recipient is a person or an organisation */ recipientType: 'person' | 'organisation'; /** * Reference to the Person.id or Organisation.id of the recipient */ recipientId: string; /** * Human-readable display name for the referenced recipient */ recipientIdDisplay?: string; /** * The communication channel used */ channel: 'email' | 'post' | 'phone' | 'sms' | 'in_app' | 'other'; /** * When the notification was sent */ sentAt: string; /** * Current delivery status */ status?: 'pending' | 'sent' | 'delivered' | 'failed' | 'bounced'; /** * Identifier of the notification template used */ templateId?: string; /** * Additional notes about this notification */ notes?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'beneficiary_notified' | 'executor_appointed' | 'probate_granted' | 'asset_identified' | 'asset_sold' | 'document_request' | 'other' | string | 'person' | 'organisation' | string | 'email' | 'post' | 'phone' | 'sms' | 'in_app' | 'other' | string | 'pending' | 'sent' | 'delivered' | 'failed' | 'bounced' | string | string | Provenance | undefined; }; export type RecommendedAction = { /** * Unique identifier for this action */ id: string; /** * Category of the recommended action */ category: 'completeness' | 'tax_planning' | 'legal_requirement' | 'valuation' | 'transfer_history' | 'beneficiary_review' | 'document_update'; /** * Priority level for this action */ priority: 'critical' | 'high' | 'medium' | 'low'; /** * Short action title */ title: string; /** * Detailed explanation of what to do and why */ description?: string; /** * Current status of this action */ status: 'pending' | 'in_progress' | 'completed' | 'dismissed'; /** * What data gap or condition generated this action */ triggeredBy?: string; /** * Entity type this action relates to */ relatedEntityType?: string; /** * ID of the specific entity this action relates to */ relatedEntityId?: string; }; /** * Completeness * * A completeness score derived from a weighted checklist of estate data categories, scoped to a specific jurisdiction and estate status */ export type Completeness = { /** * Overall completeness percentage, calculated from the weighted checklist items */ readonly score: number; /** * Maximum possible score for this jurisdiction and estate status combination. May be less than 100 if certain categories are not applicable */ readonly maxScore: number; /** * ISO 3166-1 alpha-2 country code or ISO 3166-2 subdivision code identifying which jurisdiction this scoring applies to */ jurisdiction?: string; /** * The estate status this completeness score was calculated against. Different statuses may require different data, affecting which checklist items are applicable */ estateStatus?: string; /** * ISO 8601 date-time when this completeness score was computed */ readonly calculatedAt?: string; /** * The individual items assessed to produce the overall score. Each item belongs to a category, has a relative weight, and a status indicating whether the data is present */ checklist: Array<{ /** * The data category this checklist item belongs to */ category: 'personal_details' | 'assets_and_valuations' | 'liabilities' | 'beneficiaries' | 'executors' | 'guardians' | 'tax_information' | 'legal_documents' | 'lifetime_transfers' | 'pension_and_insurance'; /** * A human-readable label describing what was checked */ item: string; /** * Relative importance of this item. Higher weights contribute more to the overall score */ weight: number; /** * Whether the data for this item is present and sufficient */ status: 'complete' | 'incomplete' | 'not_applicable' | 'unknown'; /** * Optional explanation of the status, such as what is missing or why the item is not applicable */ details?: string; }>; [key: string]: { [key: string]: unknown; } | number | number | string | string | Array<{ /** * The data category this checklist item belongs to */ category: 'personal_details' | 'assets_and_valuations' | 'liabilities' | 'beneficiaries' | 'executors' | 'guardians' | 'tax_information' | 'legal_documents' | 'lifetime_transfers' | 'pension_and_insurance'; /** * A human-readable label describing what was checked */ item: string; /** * Relative importance of this item. Higher weights contribute more to the overall score */ weight: number; /** * Whether the data for this item is present and sufficient */ status: 'complete' | 'incomplete' | 'not_applicable' | 'unknown'; /** * Optional explanation of the status, such as what is missing or why the item is not applicable */ details?: string; }> | undefined; }; /** * TaxPosition * * An estimated tax position for an estate in a specific jurisdiction, including gross and net values, available exemptions, and estimated liability */ export type TaxPosition = { /** * ISO 3166-1 alpha-2 country code or ISO 3166-2 subdivision code identifying the tax jurisdiction */ jurisdiction: string; /** * ISO 8601 date-time when this tax position was computed */ readonly calculatedAt: string; /** * Total gross value of the estate before deducting liabilities, in minor currency units */ grossEstateValue: Money; /** * Net estate value after deducting liabilities, in minor currency units */ netEstateValue?: Money; /** * Total value of lifetime transfers (gifts, settlements) made within the lookback period, in minor currency units */ lifetimeTransfersInLookback?: Money; /** * The lookback period for lifetime transfers in this jurisdiction, expressed as a human-readable duration */ lookbackPeriod?: string; /** * Tax exemptions and reliefs that may reduce the taxable estate. Each entry describes one exemption, its value, and whether it has been applied */ availableExemptions?: Array<{ /** * The name of the exemption or relief */ name: string; /** * The monetary value of this exemption, in minor currency units */ amount?: Money; /** * Whether this exemption has been applied in the current calculation */ applied?: boolean; /** * Additional context about eligibility, conditions, or partial application of this exemption */ notes?: string; }>; /** * The estate value subject to tax after applying exemptions, in minor currency units */ taxableEstate?: Money; /** * The estimated tax due, in minor currency units. This is an estimate and should not be treated as a final liability */ estimatedLiability?: Money; /** * The effective tax rate as a percentage of the gross estate value */ effectiveRate?: number; /** * Data gaps, simplifying assumptions, or other caveats that may affect the accuracy of this estimate */ warnings?: Array; /** * A mandatory disclaimer stating that this is an estimate and not professional tax advice */ disclaimer: string; /** * Whether the estate qualifies for a reduced tax rate due to charitable giving (e.g. UK 36% IHT rate when 10%+ left to charity) */ charitableReliefApplicable?: boolean; /** * The reduced tax rate applicable when charitable relief qualifies, as a percentage */ charitableReliefPercentage?: number; /** * The basis for qualifying for charitable tax relief */ charitableReliefBasis?: string; /** * ISO 3166 code of the jurisdiction whose charitable relief rules apply */ charitableReliefJurisdiction?: string; /** * Total value of all charitable gifts in this estate, in minor currency units */ charitableGiftsTotal?: Money; /** * Charitable gifts as a percentage of the net estate value */ charitableGiftsAsPercentage?: number; [key: string]: { [key: string]: unknown; } | string | string | Money | string | Array<{ /** * The name of the exemption or relief */ name: string; /** * The monetary value of this exemption, in minor currency units */ amount?: Money; /** * Whether this exemption has been applied in the current calculation */ applied?: boolean; /** * Additional context about eligibility, conditions, or partial application of this exemption */ notes?: string; }> | number | Array | string | boolean | string | undefined; }; export type LegacyContact = { /** * Unique identifier for this legacy contact */ id: string; /** * Reference to a Person.id, if the legacy contact is also in the people array */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * Display name — required because catalogue-only documents may not have a people array */ name: string; /** * Relationship to the catalogue/estate owner */ relationship?: string; /** * Email address for notification */ email?: string; /** * Phone number */ phone?: string; /** * How to notify this person */ notificationMethod?: 'email' | 'phone' | 'post' | 'in_person'; /** * What level of access this person should receive */ accessLevel: 'full' | 'read_only' | 'collection_only' | 'financial_only'; /** * Whether the 'Please open when I have passed away' letter has been generated for this contact */ letterGenerated?: boolean; /** * When the letter was last generated */ letterGeneratedAt?: string; /** * How the letter was or should be delivered */ letterDeliveryMethod?: 'printed' | 'digital' | 'both'; /** * Additional notes about this legacy contact */ notes?: string; }; export type DataSharing = { /** * Consent to include in anonymised aggregate data products */ anonymisedAggregates?: boolean; /** * Consent to include in academic research datasets */ academicResearch?: boolean; /** * Consent to share aggregated insights with named partners */ partnerInsights?: boolean; /** * When consent was recorded (ISO 8601) */ consentRecordedAt?: string; /** * How consent was obtained */ consentMethod?: 'in_app' | 'written' | 'verbal'; }; /** * Event * * An event that occurred during estate administration. The INHERIT document carries its own audit trail via the events array */ export type Event = { /** * Unique identifier for this event */ id: string; /** * Type of event. Core types cover standard estate administration events. Extension types use x-inherit- prefix */ eventType: 'death_registered' | 'will_located' | 'will_read' | 'executor_appointed' | 'probate_applied' | 'probate_granted' | 'letters_of_administration_granted' | 'asset_identified' | 'asset_valued' | 'asset_collected' | 'asset_transferred' | 'asset_sold' | 'debt_identified' | 'debt_paid' | 'tax_return_filed' | 'tax_clearance_received' | 'distribution_made' | 'estate_accounts_filed' | 'estate_closed' | 'claim_received' | 'claim_resolved' | 'deed_of_variation_executed' | 'disclaimer_received' | 'other' | string; /** * When the event occurred (ISO 8601 timestamp) */ readonly occurredAt: string; /** * What initiated this event */ trigger?: 'court_action' | 'executor_action' | 'beneficiary_action' | 'institutional_action' | 'calendar_deadline' | 'legislative_change' | 'marketplace_action' | 'system_generated'; /** * Human-readable description of the event */ description?: string; /** * UUIDs of entities affected by this event */ affectedEntityIds?: Array; /** * Entity types affected (estate, asset, property, bequest, etc.) */ affectedEntityTypes?: Array; /** * The person, institution, or system that performed the action */ actor?: { /** * Name of the actor */ name?: string; /** * Category of actor */ type?: 'court' | 'executor' | 'beneficiary' | 'bank' | 'insurer' | 'tax_authority' | 'religious_body' | 'valuer' | 'marketplace' | 'system'; /** * Jurisdiction of the actor */ jurisdiction?: Jurisdiction; }; /** * Type-specific metadata for this event. Structure depends on eventType */ metadata?: { /** * Grant number (for probate_granted events) */ grantNumber?: string; /** * Gross estate value on the grant */ grantValue?: Money; /** * Court that issued the grant */ issuingCourt?: string; /** * Reference to a Valuation.id (for asset_valued events) */ valuationId?: string; /** * The valuation amount */ valuedAmount?: Money; /** * Person.id of distribution recipient (for distribution_made events) */ recipientPersonId?: string; /** * Human-readable display name for the referenced recipient person */ recipientPersonIdDisplay?: string; /** * Organisation.id of distribution recipient */ recipientOrganisationId?: string; /** * Human-readable display name for the referenced recipient organisation */ recipientOrganisationIdDisplay?: string; /** * Amount distributed */ distributionAmount?: Money; [key: string]: string | string | Money | string | undefined; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; }; /** * Acknowledgement * * Records that a person has acknowledged a role or entitlement in the estate */ export type Acknowledgement = { /** * Unique identifier */ id: string; /** * The type of entity being acknowledged */ entityType: 'bequest' | 'executor_appointment' | 'guardian_appointment' | 'other'; /** * Reference to the entity being acknowledged */ entityId: string; /** * Person.id of the person acknowledging */ personId: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * When the acknowledgement was given */ acknowledgedAt: string; /** * How the acknowledgement was communicated */ method?: 'in_app' | 'email' | 'verbal' | 'written' | 'other'; /** * Additional notes */ notes?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | 'bequest' | 'executor_appointment' | 'guardian_appointment' | 'other' | string | string | 'in_app' | 'email' | 'verbal' | 'written' | 'other' | string | Provenance | undefined; }; export type AssetInterest = unknown & { /** * Unique identifier for this interest record */ id: string; /** * The root document this entity belongs to — either an estate document (schema.json) or a catalogue document (catalogue.json) */ rootDocumentId: string; /** * Reference to a specific Asset.id, if the interest is in a single asset */ assetId?: string | null; /** * Reference to an AssetCollection.id, if the interest is in an entire collection */ collectionId?: string | null; /** * The person expressing interest (a Person.id). The person's relationship to the estate is qualified by expressedByRole */ personId?: string; /** * Human-readable display name for the referenced person */ personIdDisplay?: string; /** * How strongly the beneficiary has expressed interest */ interestLevel: 'mentioned' | 'expressed_interest' | 'strongly_wants' | 'agreed'; /** * How this interest was communicated or recorded */ sourceType?: 'family_conversation' | 'written_request' | 'chat_message' | 'platform_private_message' | 'platform_group_message' | 'proxy_reported' | 'testator_observed' | 'manual'; /** * Whether the testator has seen and acknowledged this interest */ testatorAcknowledged?: boolean; /** * Additional context about this interest */ notes?: string; /** * Reference to the Organisation.id expressing interest, if an organisation rather than a person. Mutually exclusive with personId */ organisationId?: string; /** * Human-readable display name for the referenced organisation */ organisationIdDisplay?: string; /** * The role of the person expressing this interest in relation to the estate or catalogue. Qualifies the authority and weight of the expression. Follows the Schema.org Role pattern */ expressedByRole?: 'testator' | 'beneficiary' | 'executor' | 'proxy' | string; /** * The nature of the interest being expressed. Distinguishes between wanting to acquire, wanting to receive, wanting to allocate to someone, willingness to sell, and soft admiration */ intentType?: 'acquire' | 'receive' | 'allocate' | 'sell' | 'admire' | string; /** * Interest in any asset matching this product identity, rather than a specific asset. Use instead of assetId when the interest is in a product class, not a specific instance. Maps to Schema.org Product (vs IndividualProduct for assetId). Matching is by identifier (strongest), brand + category (medium), or category alone (weakest) */ productMatch?: { /** * The identifier system, from reference-data/identifier-systems.json */ identifierSystem?: string; /** * The product identifier value within the system */ identifierValue?: string; /** * Brand name for matching */ brand?: string; /** * Wikidata entity ID for the brand — strongest cross-system brand match */ brandWikidataId?: string; /** * INHERIT product category for broad matching */ category?: string; /** * INHERIT subcategory for narrower matching */ subcategory?: string; /** * Minimum acceptable condition. If absent, matches all conditions. Uses the same enum as asset.condition */ minimumCondition?: 'excellent' | 'good' | 'fair' | 'poor'; /** * Additional matching criteria in free text */ notes?: string; }; /** * Number of items desired (for productMatch wishlist entries) or number of the specific asset being discussed. Default 1 if absent. Follows the same convention as asset.quantity */ quantity?: number; /** * When this interest was expressed or recorded */ expressedAt?: string; /** * For wishlist items that have been pre-ordered from a dealer or manufacturer but not yet received. Tracks order status, payment, and expected delivery */ preOrderStatus?: { /** * Current status of the pre-order */ orderStatus?: 'wanted' | 'pre_ordered_unpaid' | 'pre_ordered_paid' | 'dispatched' | 'received'; /** * The dealer or manufacturer the item was ordered from */ orderedFrom?: string; /** * The dealer's or manufacturer's order reference number */ orderReference?: string; /** * When the order was placed */ orderDate?: string; /** * When the item is expected to arrive. Manufacturers often announce target quarters rather than exact dates */ expectedDeliveryDate?: string | null; /** * Whether the item has been paid for */ paymentStatus?: 'unpaid' | 'deposit_paid' | 'fully_paid' | 'refunded'; /** * The amount paid so far, in minor currency units */ amountPaid?: Money; /** * How the payment was made */ paymentMethod?: string; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | string | null | string | null | string | 'mentioned' | 'expressed_interest' | 'strongly_wants' | 'agreed' | 'family_conversation' | 'written_request' | 'chat_message' | 'platform_private_message' | 'platform_group_message' | 'proxy_reported' | 'testator_observed' | 'manual' | boolean | string | 'testator' | 'beneficiary' | 'executor' | 'proxy' | string | 'acquire' | 'receive' | 'allocate' | 'sell' | 'admire' | string | { /** * The identifier system, from reference-data/identifier-systems.json */ identifierSystem?: string; /** * The product identifier value within the system */ identifierValue?: string; /** * Brand name for matching */ brand?: string; /** * Wikidata entity ID for the brand — strongest cross-system brand match */ brandWikidataId?: string; /** * INHERIT product category for broad matching */ category?: string; /** * INHERIT subcategory for narrower matching */ subcategory?: string; /** * Minimum acceptable condition. If absent, matches all conditions. Uses the same enum as asset.condition */ minimumCondition?: 'excellent' | 'good' | 'fair' | 'poor'; /** * Additional matching criteria in free text */ notes?: string; } | number | string | { /** * Current status of the pre-order */ orderStatus?: 'wanted' | 'pre_ordered_unpaid' | 'pre_ordered_paid' | 'dispatched' | 'received'; /** * The dealer or manufacturer the item was ordered from */ orderedFrom?: string; /** * The dealer's or manufacturer's order reference number */ orderReference?: string; /** * When the order was placed */ orderDate?: string; /** * When the item is expected to arrive. Manufacturers often announce target quarters rather than exact dates */ expectedDeliveryDate?: string | null; /** * Whether the item has been paid for */ paymentStatus?: 'unpaid' | 'deposit_paid' | 'fully_paid' | 'refunded'; /** * The amount paid so far, in minor currency units */ amountPaid?: Money; /** * How the payment was made */ paymentMethod?: string; } | Provenance | undefined; }; /** * Subscription * * A recurring subscription that needs to be cancelled, transferred, or maintained after death — streaming, utilities, memberships, software */ export type Subscription = { /** * Unique identifier for this subscription */ id: string; /** * Name of the service */ serviceName: string; /** * Subscription cost per billing period */ cost?: Money; /** * How often the subscription is billed */ billingFrequency?: 'monthly' | 'annual' | 'other'; /** * Next renewal or billing date */ renewalDate?: string; /** * Account number, email, or username for this subscription */ accountIdentifier?: string; /** * What should happen to this subscription after death */ cancelAction?: 'cancel' | 'transfer_to_person' | 'maintain' | 'unknown'; /** * Person.id to transfer the subscription to */ transferToPersonId?: string; /** * Human-readable display name for the referenced transfer to person */ transferToPersonIdDisplay?: string; /** * Additional notes */ notes?: string; /** * Information about how to cancel this subscription, particularly after a death. Complements the reference-data/subscription-cancellation-guide.json with per-subscription instance data */ cancellationInfo?: { /** * When this cancellation information was researched or verified */ retrievedAt: string; /** * How much friction the provider creates when cancelling */ difficulty?: 'easy' | 'medium' | 'hard' | string; /** * Direct URL to the cancellation page or form */ cancellationUrl?: string; /** * Phone number required for cancellation, if phone-only */ cancellationPhone?: string; /** * Required notice period for cancellation */ noticePeriod?: string; /** * Whether the provider requires a death certificate to cancel on behalf of a deceased person */ deathCertificateRequired?: boolean; /** * Whether a pro-rata refund is available when cancelling due to death */ refundAvailable?: boolean; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; [key: string]: { [key: string]: unknown; } | string | string | Money | 'monthly' | 'annual' | 'other' | string | string | 'cancel' | 'transfer_to_person' | 'maintain' | 'unknown' | string | { /** * When this cancellation information was researched or verified */ retrievedAt: string; /** * How much friction the provider creates when cancelling */ difficulty?: 'easy' | 'medium' | 'hard' | string; /** * Direct URL to the cancellation page or form */ cancellationUrl?: string; /** * Phone number required for cancellation, if phone-only */ cancellationPhone?: string; /** * Required notice period for cancellation */ noticePeriod?: string; /** * Whether the provider requires a death certificate to cancel on behalf of a deceased person */ deathCertificateRequired?: boolean; /** * Whether a pro-rata refund is available when cancelling due to death */ refundAvailable?: boolean; } | Provenance | undefined; }; export type IntegrityConstraint = { /** * The field containing the reference (source) */ field: IntegrityPath; /** * The target array + id field that must contain the referenced value */ references: IntegrityPath; /** * If true, a broken reference is always an error. If false, the field may reference multiple target arrays (grouped by field path) */ required?: boolean; /** * Machine-readable error code from the INHERIT error vocabulary */ code: string; /** * Human-readable description of the constraint violation */ errorMessage: string; }; /** * INHERIT v3 Root Schema * * Root entry point for an INHERIT v3 estate data interchange document. Contains a single estate and arrays of all entity types */ export type Schema = unknown & { /** * Schema identifier — declares this as an INHERIT v3 document. Standard JSON Schema keyword */ $schema?: 'https://openinherit.org/v3/schema.json'; /** * JSON-LD context URI. When present, makes this document self-describing linked data */ '@context'?: string; /** * JSON-LD type, e.g. InheritDocument */ '@type'?: string; /** * Semver version of the INHERIT schema this document was created against. Enables consumers to detect compatibility and handle graceful degradation */ schemaVersion: string; /** * Timestamp when this document was exported from the producing system */ readonly exportedAt?: string; /** * The person who exported or prepared this document */ readonly exportedBy?: { /** * Name of the person who exported the document */ name?: string; /** * Email address of the person who exported the document */ email?: string; /** * Organisation the exporter works for */ organisationName?: string; }; /** * The software that generated this INHERIT document */ readonly generator?: { /** * Name of the generating software */ name: string; /** * Version of the generating software */ version?: string; /** * URL of the generating software or organisation */ url?: string; }; /** * Sequential version number for this document. Incremented each time the document is substantively modified. Version 1 is the first version */ documentVersion?: number; /** * When this version of the document was created. Courts and regulators care about when changes were made, not just which version number */ versionedAt?: string; /** * Reference to the document ID of the previous version. Creates a linked list of document versions enabling version chain traversal. Null for the first version */ previousVersionId?: string | null; /** * Human-readable summary of what changed in this version. Like a commit message for the document */ changeDescription?: string; /** * The single estate record for this document */ estate: Estate; /** * All people involved in the estate — testator, beneficiaries, executors, witnesses, guardians, etc */ people: Array; /** * Familial bonds between people in the estate. Essential for intestacy calculations */ kinships?: Array; /** * Spousal and partnership relationships. Determines marital property rights and surviving spouse claims */ relationships?: Array; /** * Real estate owned or partly owned by the testator */ properties?: Array; /** * Non-property assets — financial accounts, personal property, vehicles, digital assets, etc */ assets?: Array; /** * Named groups of related assets — collections (model railways, art, wine, etc.) that have collective significance and value */ assetCollections?: Array; /** * Debts and financial obligations of the estate, including cultural obligations (mahr, ketubah debt) */ liabilities?: Array; /** * Dispositions of property or money in the will */ bequests?: Array; /** * Trusts — testamentary or inter vivos — associated with the estate */ trusts?: Array; /** * Persons appointed to administer the estate */ executors?: Array; /** * Guardian appointments for minor children */ guardians?: Array; /** * Non-binding (or culturally binding) wishes — funeral, letters, pet care, digital estate */ wishes?: Array; /** * Documents associated with the estate — wills, codicils, trust deeds, certificates */ documents?: Array; /** * Assets that pass outside the probate estate — JTWROS, TOD deeds, beneficiary designations */ nonprobateTransfers?: Array; /** * Authorisations for proxies to act on behalf of the testator */ proxyAuthorisations?: Array; /** * Powers of appointment — testamentary authority granted to someone to decide distribution */ powersOfAppointment?: Array; /** * Valuations of assets, properties, and collections. Multiple valuations per entity are supported — owner estimates, professional valuations, AI estimates, dealer offers */ valuations?: Array; /** * Gifts and transfers made during the testator's lifetime. Critical for inheritance tax calculations — UK 7-year rule, US unified gift/estate tax, etc */ lifetimeTransfers?: Array; /** * Organisations that interact with the estate — legal firms, financial institutions, charities, dealers, funeral providers, employers, government bodies, and others */ organisations?: Array; /** * Spaces within properties — rooms, outbuildings, storage areas, and outdoor zones where assets are located */ spaces?: Array; /** * How this document was originally created. Indicates the primary method of data entry for the document as a whole — individual entities may have their own per-field provenance via confidenceScores */ dataProvenance?: 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated'; /** * Signals that this is an intentionally incomplete document. Enables incremental onboarding — platforms can import partially completed estate plans without triggering validation errors for missing fields */ partialDocument?: boolean; /** * The type of INHERIT bundle — indicates whether this is a complete document, a subset, or a transactional batch */ bundleType?: 'document' | 'collection' | 'transaction'; /** * Systems from which data was imported into this document. Enables audit trail and source tracking */ importSources?: Array; /** * Machine-readable conformance certificate — records the validation level, schema version, completeness score, and provenance summary at time of validation */ conformance?: Conformance; /** * Extension schemas applied to this document. Each entry declares the extension's identity, version, scope, and data block name */ extensions?: Array<{ /** * Unique extension identifier, e.g. 'uk-england-wales', 'islamic-succession' */ id: string; /** * Semver version of this extension */ version: string; /** * URI of the extension's JSON Schema */ schema: string; /** * Root-level field names indicating which entities carry inline x-inherit-* blocks for this extension */ scope?: Array; /** * The x-inherit-* property name for this extension's data block */ dataBlock?: string; }>; /** * Insurance policies associated with the estate — life, home, health, motor, travel, pet, and professional indemnity */ insurancePolicies?: Array; /** * Pets requiring care arrangements */ pets?: Array; /** * JWS-based tamper evidence for the INHERIT document */ integrity?: { /** * JWS algorithm, e.g. RS256, ES256 */ algorithm: string; /** * e.g. JCS (RFC 8785 JSON Canonicalization Scheme) */ canonicalisationMethod?: string; /** * Computed hash value */ hash?: string; /** * JWS signature value */ signature?: string; /** * When the signature was created */ signedAt?: string; /** * Who or what created the signature (W3C VC alignment) */ verificationMethod?: string; /** * URL to the signing certificate */ verificationMethodUrl?: string; /** * e.g. assertionMethod, authentication (W3C VC term) */ proofPurpose?: string; }; /** * Formal audit trail of actions taken on this document. Records who changed what, when, and why. Uses person ID references for GDPR data minimisation. Entries may be redacted under Article 17(3)(e) without breaking the log structure. Retention aligns with the estate document lifecycle */ auditLog?: Array; /** * Application-specific state that is NOT part of the INHERIT interchange standard. Implementations may use these fields internally but should not expect other systems to populate or consume them. Implementations may add custom fields beyond those listed here */ applicationState?: { /** * Notification history */ notifications?: Array; /** * Tracking which institutions have been notified of the death */ deathNotifications?: Array<{ /** * Name of institution notified */ institution: string; institutionType?: 'bank' | 'pension_provider' | 'insurance' | 'tax_authority' | 'utility' | 'social_media' | 'email_provider' | 'government' | 'employer' | 'other'; institutionOrganisationId?: string; notifiedAt?: string; /** * Who sent the notification */ notifiedBy?: string; method?: 'tell_us_once' | 'settld' | 'direct_letter' | 'direct_email' | 'direct_phone' | 'platform_form' | 'api' | 'solicitor' | 'other'; status?: 'pending' | 'sent' | 'acknowledged' | 'actioned' | 'rejected' | 'unknown'; referenceNumber?: string; responseDate?: string; notes?: string; }>; /** * Recommended next actions generated from data gaps, urgency flags, incomplete transfer history, missing valuations, and estate status. Actions adapt to the current lifecycle stage */ recommendedActions?: Array; /** * Estate completeness score — jurisdiction-aware checklist tracking what data has been captured, what's missing, and how complete the estate plan is */ completeness?: Completeness; /** * Estimated tax position summary computed from valuations, lifetime transfers, exemptions, and jurisdiction-specific thresholds. Always includes a disclaimer — this is informational, not tax advice */ taxPosition?: TaxPosition; /** * People nominated to receive access to the estate data or catalogue when the account owner dies or becomes incapacitated. This is a digital inheritance concept, not a legal role — legacy contacts are notified and given access, not granted legal authority. The 'Please open when I have passed away' letter is generated by the application, not stored here */ legacyContacts?: Array; /** * Consent flags for anonymised data sharing. Always withdrawable per GDPR Article 7(3) */ dataSharing?: DataSharing; /** * Audit trail of events that occurred during estate administration */ events?: Array; /** * Audit trail of document exchanges */ transmissions?: Array<{ /** * When the document was sent */ sentAt: string; /** * Who sent it (schema.org sender) */ sender: string; receivedAt?: string; /** * Who received it (schema.org recipient) */ recipient?: string; method?: 'encrypted_email' | 'secure_portal' | 'api' | 'physical_media' | 'registered_post' | 'other'; /** * e.g. AES-256-GCM, PGP, age */ encryptionMethod?: string; /** * Whether recipient verified document integrity */ verified?: boolean; verifiedAt?: string; notes?: string; }>; /** * Acknowledgements of roles and entitlements */ acknowledgements?: Array; /** * Informal beneficiary interest in specific assets or collections, captured before formal bequest allocation */ assetInterests?: Array; /** * Third-party interest in estate assets — dealers, investors, collectors */ dealerInterests?: Array; /** * Recurring subscriptions to be managed after death */ subscriptions?: Array; [key: string]: unknown; }; /** * Machine-readable cross-reference integrity constraints. Defined in the schema, not in individual documents. Validators read these rules and check that every referenced ID exists in the target array */ referentialIntegrity?: Array; [key: string]: { [key: string]: unknown; } | 'https://openinherit.org/v3/schema.json' | string | string | string | string | { /** * Name of the person who exported the document */ name?: string; /** * Email address of the person who exported the document */ email?: string; /** * Organisation the exporter works for */ organisationName?: string; } | { /** * Name of the generating software */ name: string; /** * Version of the generating software */ version?: string; /** * URL of the generating software or organisation */ url?: string; } | number | string | null | string | Estate | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated' | boolean | 'document' | 'collection' | 'transaction' | Array | Conformance | Array<{ /** * Unique extension identifier, e.g. 'uk-england-wales', 'islamic-succession' */ id: string; /** * Semver version of this extension */ version: string; /** * URI of the extension's JSON Schema */ schema: string; /** * Root-level field names indicating which entities carry inline x-inherit-* blocks for this extension */ scope?: Array; /** * The x-inherit-* property name for this extension's data block */ dataBlock?: string; }> | Array | Array | { /** * JWS algorithm, e.g. RS256, ES256 */ algorithm: string; /** * e.g. JCS (RFC 8785 JSON Canonicalization Scheme) */ canonicalisationMethod?: string; /** * Computed hash value */ hash?: string; /** * JWS signature value */ signature?: string; /** * When the signature was created */ signedAt?: string; /** * Who or what created the signature (W3C VC alignment) */ verificationMethod?: string; /** * URL to the signing certificate */ verificationMethodUrl?: string; /** * e.g. assertionMethod, authentication (W3C VC term) */ proofPurpose?: string; } | Array | { /** * Notification history */ notifications?: Array; /** * Tracking which institutions have been notified of the death */ deathNotifications?: Array<{ /** * Name of institution notified */ institution: string; institutionType?: 'bank' | 'pension_provider' | 'insurance' | 'tax_authority' | 'utility' | 'social_media' | 'email_provider' | 'government' | 'employer' | 'other'; institutionOrganisationId?: string; notifiedAt?: string; /** * Who sent the notification */ notifiedBy?: string; method?: 'tell_us_once' | 'settld' | 'direct_letter' | 'direct_email' | 'direct_phone' | 'platform_form' | 'api' | 'solicitor' | 'other'; status?: 'pending' | 'sent' | 'acknowledged' | 'actioned' | 'rejected' | 'unknown'; referenceNumber?: string; responseDate?: string; notes?: string; }>; /** * Recommended next actions generated from data gaps, urgency flags, incomplete transfer history, missing valuations, and estate status. Actions adapt to the current lifecycle stage */ recommendedActions?: Array; /** * Estate completeness score — jurisdiction-aware checklist tracking what data has been captured, what's missing, and how complete the estate plan is */ completeness?: Completeness; /** * Estimated tax position summary computed from valuations, lifetime transfers, exemptions, and jurisdiction-specific thresholds. Always includes a disclaimer — this is informational, not tax advice */ taxPosition?: TaxPosition; /** * People nominated to receive access to the estate data or catalogue when the account owner dies or becomes incapacitated. This is a digital inheritance concept, not a legal role — legacy contacts are notified and given access, not granted legal authority. The 'Please open when I have passed away' letter is generated by the application, not stored here */ legacyContacts?: Array; /** * Consent flags for anonymised data sharing. Always withdrawable per GDPR Article 7(3) */ dataSharing?: DataSharing; /** * Audit trail of events that occurred during estate administration */ events?: Array; /** * Audit trail of document exchanges */ transmissions?: Array<{ /** * When the document was sent */ sentAt: string; /** * Who sent it (schema.org sender) */ sender: string; receivedAt?: string; /** * Who received it (schema.org recipient) */ recipient?: string; method?: 'encrypted_email' | 'secure_portal' | 'api' | 'physical_media' | 'registered_post' | 'other'; /** * e.g. AES-256-GCM, PGP, age */ encryptionMethod?: string; /** * Whether recipient verified document integrity */ verified?: boolean; verifiedAt?: string; notes?: string; }>; /** * Acknowledgements of roles and entitlements */ acknowledgements?: Array; /** * Informal beneficiary interest in specific assets or collections, captured before formal bequest allocation */ assetInterests?: Array; /** * Third-party interest in estate assets — dealers, investors, collectors */ dealerInterests?: Array; /** * Recurring subscriptions to be managed after death */ subscriptions?: Array; [key: string]: unknown; } | Array | undefined; }; export type ValidationResult = { valid: boolean; /** * 0 = Invalid, 1 = Schema Valid, 2 = Referentially Intact, * 3 = Jurisdiction Complete * */ conformanceLevel: 0 | 1 | 2 | 3; /** * The schema mode used for validation. Defaults to 'estate'. * Use 'catalogue' when validating dealer or platform catalogues. * */ schemaMode?: 'estate' | 'catalogue'; errors: Array<{ path: string; message: string; level: 'error' | 'warning' | 'info'; }>; /** * Optional disclaimer provided by the validation service, for example * noting that AI-extracted data has not been independently verified. * */ disclaimer?: string; }; /** * INHERIT v2 Catalogue Schema * * Lightweight root schema for catalogue-only documents — living collectors cataloguing items without the full estate envelope. Assets, collections, valuations, and legacy contacts. Upgrade path: wrap in a full estate document (schema.json) when needed */ export type Catalogue = { /** * Schema identifier — declares this as an INHERIT v3 catalogue document */ $schema?: 'https://openinherit.org/v3/catalogue.json'; /** * JSON-LD context URI */ '@context'?: string; schemaVersion?: string; readonly exportedAt?: string; readonly exportedBy?: { name?: string; email?: string; }; readonly generator?: { name: string; version?: string; url?: string; }; /** * Sequential version number for this document. Incremented each time the document is substantively modified. Version 1 is the first version */ documentVersion?: number; /** * When this version of the document was created. Courts and regulators care about when changes were made, not just which version number */ versionedAt?: string; /** * Reference to the document ID of the previous version. Creates a linked list of document versions enabling version chain traversal. Null for the first version */ previousVersionId?: string | null; /** * Human-readable summary of what changed in this version. Like a commit message for the document */ changeDescription?: string; /** * The catalogued items */ assets: Array; /** * Named groupings of assets */ assetCollections?: Array; /** * Organisations associated with catalogued assets — dealers, retailers, valuers, auction houses */ organisations?: Array; /** * Physical storage locations for items in this catalogue. Each asset can reference a space via spaceId. Critical for collectors with items across multiple properties or countries — affects probate jurisdiction and dealer collection logistics */ spaces?: Array; /** * Valuations of items and collections */ valuations?: Array; /** * People to notify and grant access when the owner dies. The 'Please open when I have passed away' letter recipients */ legacyContacts?: Array; /** * Expressions of interest about assets, collections, or products. Includes the catalogue owner's own wishlist (things they want to acquire), interest from other people, and allocation intentions. Complements assets[] — assets are things you own; assetInterests are things you want, things others want, and decisions about who gets what */ assetInterests?: Array; /** * Personal messages, letters, care instructions, and non-binding wishes. Complements legacyContacts — legacyContacts tracks who receives the letter; wishes stores what it says. Types: letter (personal messages to specific people), care (maintenance and care instructions for items or collections), distribution (non-binding preferences about what should happen to items), general (anything else) */ wishes?: Array; /** * Default data provenance for entities in this catalogue */ dataProvenance?: 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated'; /** * Systems data was imported from */ importSources?: Array; completeness?: Completeness; recommendedActions?: Array; conformance?: Conformance; /** * Insurance policies associated with catalogued assets */ insurancePolicies?: Array; /** * Provisional offers and expressions of interest from dealers. Allows the catalogue owner to receive and track dealer offers on items they are considering selling, or standing offers to be included in the LegacyLetter */ dealerInterests?: Array; /** * Settings for the shareable gift wishlist. When enabled, the owner can share a public link to their wishlist for family and friends to buy from */ giftListSettings?: { /** * Whether the gift list is currently shareable */ enabled?: boolean; /** * The owner's personal message shown at the top of the gift list */ personalMessage?: string; /** * Who can see the gift list */ visibility?: 'public' | 'link_only' | 'private'; /** * Asset interest IDs that someone has marked as bought. These are hidden from the public gift list to prevent duplicate gifts */ fulfilledItems?: Array; }; /** * Metadata about the LegacyLetter — the printed or digital document addressed to the owner's legacy contacts, summarising the catalogue, allocations, dealer offers, and personal messages. Tracks generation status to flag when the letter is stale */ legacyLetter?: { /** * When the letter was last generated */ lastGenerated?: string; /** * Incremental version number of the letter */ version?: number; /** * Whether the letter has been delivered to the legacy contacts */ delivered?: boolean; /** * How the letter was delivered */ deliveryMethod?: 'printed' | 'digital' | 'both'; /** * Number of items in the catalogue when the letter was last generated. Used to detect staleness — if the current item count differs significantly, the letter should be regenerated */ itemCountAtGeneration?: number; }; /** * Formal audit trail of actions taken on this document. Records who changed what, when, and why. Uses person ID references for GDPR data minimisation. Entries may be redacted under Article 17(3)(e) without breaking the log structure. Retention aligns with the estate document lifecycle */ auditLog?: Array; [key: string]: { [key: string]: unknown; } | 'https://openinherit.org/v3/catalogue.json' | string | string | string | { name?: string; email?: string; } | { name: string; version?: string; url?: string; } | number | string | null | string | Array | Array | Array | Array | Array | Array | Array | Array | 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated' | Array | Completeness | Array | Conformance | Array | Array | { /** * Whether the gift list is currently shareable */ enabled?: boolean; /** * The owner's personal message shown at the top of the gift list */ personalMessage?: string; /** * Who can see the gift list */ visibility?: 'public' | 'link_only' | 'private'; /** * Asset interest IDs that someone has marked as bought. These are hidden from the public gift list to prevent duplicate gifts */ fulfilledItems?: Array; } | { /** * When the letter was last generated */ lastGenerated?: string; /** * Incremental version number of the letter */ version?: number; /** * Whether the letter has been delivered to the legacy contacts */ delivered?: boolean; /** * How the letter was delivered */ deliveryMethod?: 'printed' | 'digital' | 'both'; /** * Number of items in the catalogue when the letter was last generated. Used to detect staleness — if the current item count differs significantly, the letter should be regenerated */ itemCountAtGeneration?: number; } | Array | undefined; }; export type PaginatedEstateListWritable = { /** * Page of estate records */ items: Array; /** * Opaque cursor to fetch the next page; absent when hasMore is false */ cursor?: string; /** * Whether further pages are available */ hasMore: boolean; }; /** * Estate * * The root estate record — will, intestacy, or trust-based succession plan. Contains testator details, jurisdiction, will formalities, forced heirship, probate grants, death record, multi-jurisdiction administration, and tax treaty positions */ export type EstateWritable = { /** * Unique identifier for this estate record */ id: string; /** * Reference to the Person.id of the testator (the person whose estate this is) */ testatorPersonId: string; /** * Human-readable display name for the referenced testator person */ testatorPersonIdDisplay?: string; /** * The lifecycle status of this estate record. Progresses from planning through to closure */ status: 'planning' | 'confirmed' | 'pre_probate' | 'in_administration' | 'distributed' | 'closed'; /** * The testator's domicile — the jurisdiction whose succession law governs moveable property by default. For cross-border estates, individual assets may declare their own applicableLaw */ domicile: Jurisdiction; /** * The type of will. Extension types use x-inherit- prefix */ willType?: 'secular' | 'religious' | 'dual' | 'composite' | 'oral_witnessed' | 'oral_customary' | 'holographic' | 'notarised' | 'privileged_will' | string; /** * Links to a companion estate record — either a parallel estate under a different legal system, or a household companion's estate */ companionEstateId?: string; /** * Reference to the companion estate's id when this will was created as a mirror of the companion's will. Mirror wills have substantially the same provisions — typically leaving everything to each other and then to shared beneficiaries. This field records the intent, not a guarantee that the wills remain identical (either partner may subsequently diverge) */ mirrorWillId?: string; /** * Current state of the companion estate link. Absent if the estate has never been linked to a companion */ companionLinkStatus?: 'invited' | 'active' | 'decoupling' | 'decoupled'; /** * ISO 8601 timestamp when the companion link became active */ linkedAt?: string; /** * ISO 8601 timestamp when the companion link was severed */ decoupledAt?: string; /** * The primary instrument governing succession for this estate */ primaryInstrument?: 'will' | 'revocable_trust' | 'both' | 'intestacy'; /** * The default marital property regime for this estate. Determines which assets the testator may freely dispose of */ defaultPropertyRegime?: 'community_property' | 'separate_property' | 'equitable_distribution' | 'deferred_community' | 'universal_community' | 'participation_in_acquisitions' | 'islamic_dower'; /** * Estimated total value of the estate before liabilities. In minor currency units */ totalEstimatedValue?: Money; /** * Will execution formalities — witnesses, signing method, and compliance checks */ attestation?: Attestation; /** * Record of testamentary capacity assessment for the testator */ testamentaryCapacity?: TestamentaryCapacity; /** * Amendments to the will. Each codicil must be executed with proper formalities */ codicils?: Array; /** * Document IDs of prior wills or instruments this estate record expressly revokes */ revokesDocumentIds?: Array; /** * Whether the will contains a general revocation clause ('I revoke all former wills and testamentary dispositions') */ revocationClause?: boolean; /** * Forced heirship regime applicable to this estate, if any */ forcedHeirship?: ForcedHeirship; /** * Courts and bodies with jurisdiction over this estate. Plural legal systems may involve multiple courts */ adjudicatingBodies?: Array; /** * Parallel distribution schemes under different legal systems — customary, religious, or statutory */ parallelDistributions?: Array; /** * The probate grant or letters of administration for this estate */ probateGrant?: ProbateGrant; /** * Details of the testator's death */ deathRecord?: DeathRecord; /** * Known conflicts between legal systems regarding succession for this estate */ successionConflicts?: Array; /** * Choice of law declaration under the Brussels IV Regulation (EU Succession Regulation 650/2012) or equivalent. Allows the testator to choose which jurisdiction's succession law applies */ choiceOfLaw?: { /** * The jurisdiction whose law the testator has chosen to govern succession */ chosenLaw?: Jurisdiction; /** * Legal basis for the choice of law */ basis?: string; /** * Reference to the document containing the choice of law declaration */ documentRef?: string; }; /** * Surviving spouse's elective share right (US). Allows the spouse to claim a statutory share of the estate regardless of the will's provisions */ electiveShareRight?: { /** * Whether elective share is available in this jurisdiction */ available?: boolean; /** * The amount elected by the surviving spouse, if the election has been made */ electedAmount?: Money; /** * The statute governing elective share in this jurisdiction */ statute?: string; /** * Additional notes on the elective share */ notes?: string; }; /** * A prior matrimonial claim against the estate — typically from a former spouse under a financial order */ priorMatrimonialClaim?: { /** * Whether a prior matrimonial claim exists */ exists?: boolean; /** * Description of the claim */ description?: string; /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Additional context */ notes?: string; }; /** * In terrorem (no-contest) clause — a provision that a beneficiary forfeits their gift if they challenge the will. Enforceability varies by jurisdiction */ noContestClause?: { /** * Whether the will contains a no-contest clause */ present?: boolean; /** * Enforceability status in the governing jurisdiction */ enforceability?: string; /** * Additional context about the clause */ notes?: string; }; /** * Claims by pretermitted heirs — children born or adopted after the will was executed who are not mentioned in it */ pretermittedHeirClaims?: Array<{ /** * Reference to the Person.id of the pretermitted heir */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Current status of this claim */ status?: string; /** * Additional context about the claim */ notes?: string; }>; /** * Claims under the Law Reform (Testamentary Promises) Act 1949 (New Zealand). Allows claims by persons who provided services to the deceased in reliance on a promise of testamentary provision */ testamentaryPromises?: Array<{ /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Description of the promise made by the testator */ promiseDescription?: string; /** * Current status of this claim */ status?: string; /** * Additional context */ notes?: string; }>; /** * Court power to vary a will to make reasonable financial provision for family and dependants. Applies in England and Wales (Inheritance Act 1975), New Zealand, and similar jurisdictions */ judicialVariationPower?: { /** * Whether judicial variation is available in this jurisdiction */ available?: boolean; /** * The statute granting variation power */ statute?: string; /** * Additional context */ notes?: string; }; /** * Commorientes rule — the legal presumption for order of death when two or more people die in the same event. Critical for determining which estate inherits from which */ commorientesRule?: { /** * Whether the commorientes rule is relevant to this estate */ applicable?: boolean; /** * The applicable commorientes rule */ rule?: string; /** * Jurisdiction whose commorientes rule applies */ jurisdiction?: Jurisdiction; /** * Additional context — e.g. specific facts of the case */ notes?: string; /** * Person IDs of those who died in the same event */ affectedPersonIds?: Array; /** * Person IDs in proved order of death, if established by evidence. First ID died first */ provedSurvivalOrder?: Array | null; /** * The governing statute for commorientes in this jurisdiction */ statute?: string; }; /** * Ancillary probate proceedings in jurisdictions other than the primary domiciliary jurisdiction. Required when the estate includes assets in foreign jurisdictions */ ancillaryProbate?: Array<{ /** * The jurisdiction where ancillary probate is needed */ jurisdiction: Jurisdiction; /** * Reference to the Person.id of the local fiduciary or administrator */ fiduciaryPersonId?: string; /** * Human-readable display name for the referenced fiduciary person */ fiduciaryPersonIdDisplay?: string; /** * Current status of ancillary probate in this jurisdiction */ status?: 'not_started' | 'applied' | 'granted' | 'completed' | 'waived'; /** * Local grant reference number */ grantReference?: string; /** * Name of local legal counsel handling this jurisdiction */ localCounsel?: string; /** * Additional notes */ notes?: string; }>; /** * Registrations of the will with official will registries. Not all jurisdictions have will registries, and registration is rarely compulsory */ registrations?: Array<{ /** * Name of the will registry */ registry: string; /** * Registration reference number */ registrationNumber?: string; /** * What the registration covers — may be limited to certain jurisdictions or asset classes */ jurisdictionScope?: string; /** * Date the will was registered */ registrationDate?: string; }>; /** * The currency used for probate reporting and estate accounts. All values in this estate may need converting to this currency */ reportingCurrency?: string; /** * Exchange rates used when converting foreign-currency assets to the reporting currency. Document the rate and date to satisfy probate courts */ conversionRates?: Array<{ /** * Source currency code (ISO 4217) */ fromCurrency: string; /** * Target currency code (ISO 4217) */ toCurrency: string; /** * Exchange rate — one unit of fromCurrency equals this many units of toCurrency */ rate: number; /** * Date this exchange rate was sourced */ rateDate: string; /** * Source of the exchange rate */ source?: string; }>; /** * Tax treaty positions relevant to the estate. Documents which treaties are being relied upon for double taxation relief */ taxTreatyPositions?: Array<{ /** * Name of the bilateral tax treaty */ treaty: string; /** * The jurisdiction with primary taxing rights under this treaty */ primaryTaxingJurisdiction?: Jurisdiction; /** * Tax credits claimed under this treaty */ claimedCredits?: string; /** * The specific treaty article being relied upon */ relevantArticle?: string; /** * Additional context */ notes?: string; }>; /** * Informational list of practitioner activity codes suggesting the types of professional help this estate may need. Computed from estate complexity, not user-entered */ suggestedPractitionerNeeds?: Array; /** * Date the will was formally executed (signed with proper attestation). Enables look-back period calculations when combined with lifetime transfers */ executionDate?: string; /** * Estate administration details. Tracks the journey from death through grant, tax clearance, distribution, and closure */ administration?: { /** * Date of death — the date from which succession takes effect */ dateOfDeath?: string; /** * Date the probate grant or letters of administration were issued */ dateOfGrant?: string; /** * Type of grant authorising estate administration */ grantType?: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'succession_certificate' | 'certificate_of_inheritance' | 'court_appointment' | 'resealing' | 'european_certificate_of_succession' | 'other'; /** * Court reference number for the grant */ grantReference?: string; /** * Name of the issuing court or registry */ court?: string; /** * Gross value of the estate at date of death, before deducting liabilities */ grossEstateValue?: Money; /** * Net value of the estate after deducting liabilities */ netEstateValue?: Money; /** * Total inheritance/estate tax liability */ taxLiability?: Money; /** * Amount of inheritance/estate tax paid so far */ taxPaid?: Money; /** * Tax clearance status — confirmation from the tax authority that no further tax is owed */ taxClearance?: { /** * Current status of tax clearance */ status?: 'not_applied' | 'applied' | 'received' | 'not_required'; /** * Date clearance was received */ clearanceDate?: string; /** * Tax clearance reference number */ reference?: string; }; /** * Record of distributions made to beneficiaries during administration */ distributions?: Array<{ /** * Person ID of the beneficiary receiving the distribution */ beneficiaryPersonId: string; /** * Reference to the Bequest being fulfilled */ bequestId?: string; /** * Date the distribution was made */ distributionDate: string; /** * Asset ID if a specific asset was transferred */ assetId?: string; /** * Property ID if a property was transferred */ propertyId?: string; /** * Cash amount distributed, in minor currency units */ cashAmount?: Money; /** * Whether a receipt/acknowledgement has been obtained from the beneficiary */ receipt?: boolean; /** * Additional distribution notes */ notes?: string; }>; /** * Whether the estate accounts have been prepared and filed/approved */ estateAccountsFiled?: boolean; /** * Additional administration notes */ notes?: string; }; /** * The default succession regime for all assets and properties in this estate. Individual assets/properties may override with their own successionRegime */ defaultSuccessionRegime?: { /** * The default governing law for succession */ governingLaw?: { /** * Jurisdiction whose succession law applies by default */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; }; /** * The testator's faith-based wishes for succession. Explicitly separate from legal succession regime — may or may not be binding depending on jurisdiction */ religiousConsideration?: { /** * The religious legal tradition the testator wishes to follow */ tradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Whether this religious consideration is legally binding in the estate's jurisdiction */ binding?: boolean; /** * Context for the religious consideration */ notes?: string; }; /** * Free-text notes about the estate. Use for anything not captured by structured fields */ notes?: string; /** * Date of the death certificate */ deathCertificateDate?: string; /** * Death certificate reference number */ deathCertificateReference?: string; /** * Target deadline for completing estate administration */ administrationDeadline?: string; /** * Source or basis for the administration deadline */ administrationDeadlineSource?: string; /** * Machine-generated completeness assessments against jurisdiction-specific probate form requirements. This is data completeness, NOT legal validation — it says 'you haven't entered the death certificate reference yet', not 'this estate is legally ready for probate' */ probateReadiness?: Array; /** * References to this estate in external systems — practice management software, court filing systems, government portals. Enables round-trip synchronisation between INHERIT and PMS */ externalReferences?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Conflict of laws rules governing this estate — determines which jurisdiction's succession law applies to which assets */ jurisdictionRules?: { /** * Whether moveable and immoveable property are governed by different laws (scission) or the same law (unity) */ doctrine?: 'scission' | 'unity' | 'hybrid'; /** * Which law governs immoveable property (real estate) */ immoveableRule?: 'lex_situs' | 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; /** * Which law governs moveable property */ moveableRule?: 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; choiceOfLaw?: { chosenJurisdiction?: Jurisdiction; basis?: 'nationality' | 'habitual_residence' | 'domicile'; instrument?: 'brussels_iv' | 'hague_convention' | 'bilateral_treaty' | 'domestic_law'; /** * Jurisdiction codes where this choice is recognised, e.g. ["EU"] for Brussels IV */ validIn?: Array; }; }; /** * Structured assessment of grounds on which this will could be contested — the challenge surface */ contestability?: { status: 'not_assessed' | 'assessed_no_grounds' | 'grounds_identified'; grounds?: Array<{ ground: 'lack_of_testamentary_capacity' | 'undue_influence' | 'fraud' | 'forgery' | 'lack_of_knowledge_and_approval' | 'want_of_due_execution'; jurisdiction: Jurisdiction; legalTest?: string; limbs?: Array<{ name: string; satisfied?: boolean | null; }>; assessedBy?: string; assessedDate?: string; }>; influenceFactors?: Array<{ influencerPersonId: string; subjectPersonId: string; relationshipType?: string; cohabiting?: boolean; financialDependency?: 'none' | 'subject_on_influencer' | 'influencer_on_subject' | 'mutual'; giftsDuringLifetime?: boolean; }>; }; /** * Double taxation treaties affecting this estate — determines which jurisdiction taxes which assets and how double taxation is relieved */ taxTreaties?: Array<{ between: [ string, string ]; treatyType: 'estate_and_inheritance' | 'gift_tax' | 'income_tax' | 'comprehensive'; primaryTaxingRight?: { immoveable?: 'situs' | 'domicile' | 'nationality'; moveable?: 'domicile' | 'nationality' | 'situs'; }; reliefMethod?: 'credit' | 'exemption' | 'deduction'; treatyReference?: string; }>; /** * Verification of the testator's death — addresses the delegation trigger gap identified by the OpenID Foundation */ deathVerification?: { method?: 'death_certificate' | 'coroner_report' | 'civil_registry' | 'court_order' | 'medical_certificate' | 'community_declaration' | 'presumption_of_death'; issuingAuthority?: string; jurisdiction?: Jurisdiction; referenceNumber?: string; dateOfDeath?: string; /** * Date death was officially registered — may differ from dateOfDeath */ registrationDate?: string; verifiedAt?: string; verifiedBy?: string; /** * Trust level of the death verification — maps to emerging digital estate delegation trust frameworks */ trustLevel?: 'government_certified' | 'medical_certified' | 'platform_detected' | 'community_declared' | 'self_reported'; /** * URI pointing to the FHIR Patient resource whose death triggered the estate. Enables data exchange between healthcare systems and INHERIT */ fhirPatientRef?: string; }; /** * Escheatment — the reversion of unclaimed estate property to the state. Applies when no valid heirs can be identified after statutory dormancy periods */ escheatment?: { /** * Jurisdiction whose escheatment laws apply */ jurisdiction?: Jurisdiction; /** * Statutory dormancy period in years before escheatment */ dormancyPeriodYears?: number; /** * Date on which escheatment takes effect (or is projected to take effect) */ escheatDate?: string; /** * Name of the government authority claiming the escheated property */ claimingAuthority?: string; /** * Current status of the escheatment */ status?: 'at_risk' | 'dormancy_running' | 'escheated' | 'reclaimed'; /** * Asset IDs affected by escheatment */ affectedAssetIds?: Array; notes?: string; }; /** * Testamentary scenarios — declarative conditions for mirror wills, survivorship, commorientes, and remarriage revocation */ testamentaryScenarios?: Array<{ id: string; description: string; conditions: Array<{ personId: string; event: 'death' | 'survives' | 'remarriage' | 'commorientes' | 'incapacity'; order?: number; rule?: string; jurisdiction?: Jurisdiction; presumption?: string; }>; /** * Bequest IDs that activate under this scenario */ activeBequests?: Array; /** * Executor IDs that activate under this scenario */ activeExecutors?: Array; notes?: string; }>; /** * Cryptographic digest of the canonical form of this document, excluding the integrity field itself — used for tamper detection and signing readiness */ integrity?: { /** * Hash algorithm used to compute the digest */ algorithm: 'sha-256' | 'sha-384' | 'sha-512'; /** * Hex-encoded digest value */ digest: string; }; /** * Persons whom the testator has explicitly excluded from inheriting. Distinguishes deliberate exclusion from oversight — critical for family provision and forced heirship claims */ disinheritedPersons?: Array<{ /** * Reference to the Person.id of the excluded individual */ personId: string; /** * Human-readable label for the excluded person, for display purposes only */ personIdDisplay?: string; /** * The testator's own words regarding the exclusion, as recorded in the will or codicil */ statement?: string; /** * Reference to the clause or section of the will containing the exclusion — e.g. 'clause 5', 'schedule 2 para 3' */ clauseReference?: string; /** * Practitioner-recorded reason for the exclusion, separate from the testator's own statement */ reason?: string; }>; /** * Jurisdictions governing succession for this estate, with scope. Use when multiple legal systems apply to different assets (e.g. lex situs for immovable property abroad). Per-asset law is recorded on each asset/property via applicableLaw; this array provides the estate-level coordination map */ governingJurisdictions?: Array<{ jurisdiction: Jurisdiction; /** * Whether this jurisdiction applies to the whole estate or specific assets */ scope: 'default' | 'specific_assets'; /** * Asset IDs governed by this jurisdiction (when scope is specific_assets) */ assetIds?: Array; /** * Property IDs governed by this jurisdiction (when scope is specific_assets) */ propertyIds?: Array; /** * Governing statute */ statute?: string; notes?: string; }>; /** * A binding mutual will agreement — two testators promise not to revoke their wills without notice. Creates a constructive trust on the survivor's estate. Distinct from mirror wills (which are independent) */ mutualWillAgreement?: { exists?: boolean; /** * The other testator bound by the agreement */ counterpartyPersonId?: string; /** * Reference to the counterparty's estate document, if available */ counterpartyEstateId?: string; binding?: boolean; /** * Reference to Document.id recording the mutual promise */ agreementDocumentId?: string; /** * Summary of the agreement terms */ terms?: string; revocable?: boolean; }; /** * Conflicts between parallel legal systems where the will cannot override customary or statutory rights */ parallelSuccessionConflicts?: Array<{ /** * The legal system asserting the right */ legalSystem: string; affectedPersonId?: string; /** * Description of the customary right that conflicts with the will */ natureOfRight: string; overridableByWill?: boolean; statutoryBasis?: string; resolution?: 'pending' | 'resolved_by_will' | 'resolved_by_court' | 'irreconcilable'; }>; /** * Ongoing care provisions for dependent adults, linking person, trust, and guardian */ careProvisions?: Array<{ dependantPersonId: string; trustId?: string; guardianId?: string; annualEstimatedCost?: Money; careNeeds?: string; }>; /** * Potential or actual family provision claims against the estate. Tracks claims under statutes like the Inheritance (Provision for Family and Dependants) Act 1975 */ familyProvisionClaims?: Array<{ claimantPersonId: string; claimType: 'spouse' | 'cohabitant' | 'child' | 'dependant' | 'maintained_person'; jurisdiction?: Jurisdiction; statute?: string; status?: 'potential' | 'filed' | 'settled' | 'dismissed'; amount?: Money; notes?: string; }>; /** * Non-familial connections between people in the estate. Directed: fromPersonId has the connection to toPersonId */ connections?: Array<{ fromPersonId: string; toPersonId: string; connectionType: 'friend' | 'solicitor' | 'financial_adviser' | 'accountant' | 'employer' | 'employee' | 'colleague' | 'neighbour' | 'carer' | 'religious_leader' | 'medical_practitioner' | 'business_partner' | 'other'; description?: string; }>; /** * Interpretive and construction rules expressed in the will */ constructionClauses?: Array<{ clauseType: 'gender_neutrality' | 'severability' | 'governing_law' | 'interpretation_rule' | 'definitions' | 'custom'; content: string; clauseReference?: string; }>; /** * Ongoing validity state of the will. Records life events that may invalidate the document */ validityStatus?: Array<{ conditionType: 'unmarried' | 'not_divorced' | 'not_converted' | 'domiciled_in' | 'testamentary_capacity' | 'no_subsequent_will' | 'custom'; description?: string; status?: 'satisfied' | 'breached' | 'unknown'; breachedDate?: string; statute?: string; }>; /** * Universal priority phases for estate administration. Lower priority numbers satisfied first */ administrationPhases?: Array<{ priority: number; category: 'funeral_expenses' | 'testamentary_expenses' | 'secured_debts' | 'unsecured_debts' | 'distribution' | 'custom'; description?: string; }>; /** * Statutory and express powers granted to executors/trustees for estate administration */ executorPowers?: Array<{ powerType: 'statutory_default' | 'sale_and_conversion' | 'postponement' | 'appropriation' | 'insurance' | 'investment' | 'delegation' | 'custom'; /** * The statute conferring or modifying this power */ statute?: string; /** * The specific power as expressed in the will */ description?: string; clauseReference?: string; }>; /** * Statutes explicitly excluded from applying to this estate. Common: Apportionment Act 1870, Trustee Act 2000 s.31/s.32 */ statutoryExclusions?: Array<{ statute: string; /** * Specific sections excluded */ sections?: string; jurisdiction?: Jurisdiction; /** * What the exclusion means in practice */ effect?: string; clauseReference?: string; }>; [key: string]: { [key: string]: unknown; } | string | string | 'planning' | 'confirmed' | 'pre_probate' | 'in_administration' | 'distributed' | 'closed' | Jurisdiction | 'secular' | 'religious' | 'dual' | 'composite' | 'oral_witnessed' | 'oral_customary' | 'holographic' | 'notarised' | 'privileged_will' | string | 'invited' | 'active' | 'decoupling' | 'decoupled' | string | 'will' | 'revocable_trust' | 'both' | 'intestacy' | 'community_property' | 'separate_property' | 'equitable_distribution' | 'deferred_community' | 'universal_community' | 'participation_in_acquisitions' | 'islamic_dower' | Money | Attestation | TestamentaryCapacity | Array | Array | boolean | ForcedHeirship | Array | Array | ProbateGrant | DeathRecord | Array | { /** * The jurisdiction whose law the testator has chosen to govern succession */ chosenLaw?: Jurisdiction; /** * Legal basis for the choice of law */ basis?: string; /** * Reference to the document containing the choice of law declaration */ documentRef?: string; } | { /** * Whether elective share is available in this jurisdiction */ available?: boolean; /** * The amount elected by the surviving spouse, if the election has been made */ electedAmount?: Money; /** * The statute governing elective share in this jurisdiction */ statute?: string; /** * Additional notes on the elective share */ notes?: string; } | { /** * Whether a prior matrimonial claim exists */ exists?: boolean; /** * Description of the claim */ description?: string; /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Additional context */ notes?: string; } | { /** * Whether the will contains a no-contest clause */ present?: boolean; /** * Enforceability status in the governing jurisdiction */ enforceability?: string; /** * Additional context about the clause */ notes?: string; } | Array<{ /** * Reference to the Person.id of the pretermitted heir */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Current status of this claim */ status?: string; /** * Additional context about the claim */ notes?: string; }> | Array<{ /** * Reference to the Person.id of the claimant */ claimantPersonId?: string; /** * Human-readable display name for the referenced claimant person */ claimantPersonIdDisplay?: string; /** * Description of the promise made by the testator */ promiseDescription?: string; /** * Current status of this claim */ status?: string; /** * Additional context */ notes?: string; }> | { /** * Whether judicial variation is available in this jurisdiction */ available?: boolean; /** * The statute granting variation power */ statute?: string; /** * Additional context */ notes?: string; } | { /** * Whether the commorientes rule is relevant to this estate */ applicable?: boolean; /** * The applicable commorientes rule */ rule?: string; /** * Jurisdiction whose commorientes rule applies */ jurisdiction?: Jurisdiction; /** * Additional context — e.g. specific facts of the case */ notes?: string; /** * Person IDs of those who died in the same event */ affectedPersonIds?: Array; /** * Person IDs in proved order of death, if established by evidence. First ID died first */ provedSurvivalOrder?: Array | null; /** * The governing statute for commorientes in this jurisdiction */ statute?: string; } | Array<{ /** * The jurisdiction where ancillary probate is needed */ jurisdiction: Jurisdiction; /** * Reference to the Person.id of the local fiduciary or administrator */ fiduciaryPersonId?: string; /** * Human-readable display name for the referenced fiduciary person */ fiduciaryPersonIdDisplay?: string; /** * Current status of ancillary probate in this jurisdiction */ status?: 'not_started' | 'applied' | 'granted' | 'completed' | 'waived'; /** * Local grant reference number */ grantReference?: string; /** * Name of local legal counsel handling this jurisdiction */ localCounsel?: string; /** * Additional notes */ notes?: string; }> | Array<{ /** * Name of the will registry */ registry: string; /** * Registration reference number */ registrationNumber?: string; /** * What the registration covers — may be limited to certain jurisdictions or asset classes */ jurisdictionScope?: string; /** * Date the will was registered */ registrationDate?: string; }> | string | Array<{ /** * Source currency code (ISO 4217) */ fromCurrency: string; /** * Target currency code (ISO 4217) */ toCurrency: string; /** * Exchange rate — one unit of fromCurrency equals this many units of toCurrency */ rate: number; /** * Date this exchange rate was sourced */ rateDate: string; /** * Source of the exchange rate */ source?: string; }> | Array<{ /** * Name of the bilateral tax treaty */ treaty: string; /** * The jurisdiction with primary taxing rights under this treaty */ primaryTaxingJurisdiction?: Jurisdiction; /** * Tax credits claimed under this treaty */ claimedCredits?: string; /** * The specific treaty article being relied upon */ relevantArticle?: string; /** * Additional context */ notes?: string; }> | Array | string | { /** * Date of death — the date from which succession takes effect */ dateOfDeath?: string; /** * Date the probate grant or letters of administration were issued */ dateOfGrant?: string; /** * Type of grant authorising estate administration */ grantType?: 'grant_of_probate' | 'letters_of_administration' | 'letters_of_administration_with_will_annexed' | 'succession_certificate' | 'certificate_of_inheritance' | 'court_appointment' | 'resealing' | 'european_certificate_of_succession' | 'other'; /** * Court reference number for the grant */ grantReference?: string; /** * Name of the issuing court or registry */ court?: string; /** * Gross value of the estate at date of death, before deducting liabilities */ grossEstateValue?: Money; /** * Net value of the estate after deducting liabilities */ netEstateValue?: Money; /** * Total inheritance/estate tax liability */ taxLiability?: Money; /** * Amount of inheritance/estate tax paid so far */ taxPaid?: Money; /** * Tax clearance status — confirmation from the tax authority that no further tax is owed */ taxClearance?: { /** * Current status of tax clearance */ status?: 'not_applied' | 'applied' | 'received' | 'not_required'; /** * Date clearance was received */ clearanceDate?: string; /** * Tax clearance reference number */ reference?: string; }; /** * Record of distributions made to beneficiaries during administration */ distributions?: Array<{ /** * Person ID of the beneficiary receiving the distribution */ beneficiaryPersonId: string; /** * Reference to the Bequest being fulfilled */ bequestId?: string; /** * Date the distribution was made */ distributionDate: string; /** * Asset ID if a specific asset was transferred */ assetId?: string; /** * Property ID if a property was transferred */ propertyId?: string; /** * Cash amount distributed, in minor currency units */ cashAmount?: Money; /** * Whether a receipt/acknowledgement has been obtained from the beneficiary */ receipt?: boolean; /** * Additional distribution notes */ notes?: string; }>; /** * Whether the estate accounts have been prepared and filed/approved */ estateAccountsFiled?: boolean; /** * Additional administration notes */ notes?: string; } | { /** * The default governing law for succession */ governingLaw?: { /** * Jurisdiction whose succession law applies by default */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; } | { /** * The religious legal tradition the testator wishes to follow */ tradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Whether this religious consideration is legally binding in the estate's jurisdiction */ binding?: boolean; /** * Context for the religious consideration */ notes?: string; } | string | string | Array | Array | Provenance | { /** * Whether moveable and immoveable property are governed by different laws (scission) or the same law (unity) */ doctrine?: 'scission' | 'unity' | 'hybrid'; /** * Which law governs immoveable property (real estate) */ immoveableRule?: 'lex_situs' | 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; /** * Which law governs moveable property */ moveableRule?: 'lex_domicilii' | 'lex_patriae' | 'chosen_law'; choiceOfLaw?: { chosenJurisdiction?: Jurisdiction; basis?: 'nationality' | 'habitual_residence' | 'domicile'; instrument?: 'brussels_iv' | 'hague_convention' | 'bilateral_treaty' | 'domestic_law'; /** * Jurisdiction codes where this choice is recognised, e.g. ["EU"] for Brussels IV */ validIn?: Array; }; } | { status: 'not_assessed' | 'assessed_no_grounds' | 'grounds_identified'; grounds?: Array<{ ground: 'lack_of_testamentary_capacity' | 'undue_influence' | 'fraud' | 'forgery' | 'lack_of_knowledge_and_approval' | 'want_of_due_execution'; jurisdiction: Jurisdiction; legalTest?: string; limbs?: Array<{ name: string; satisfied?: boolean | null; }>; assessedBy?: string; assessedDate?: string; }>; influenceFactors?: Array<{ influencerPersonId: string; subjectPersonId: string; relationshipType?: string; cohabiting?: boolean; financialDependency?: 'none' | 'subject_on_influencer' | 'influencer_on_subject' | 'mutual'; giftsDuringLifetime?: boolean; }>; } | Array<{ between: [ string, string ]; treatyType: 'estate_and_inheritance' | 'gift_tax' | 'income_tax' | 'comprehensive'; primaryTaxingRight?: { immoveable?: 'situs' | 'domicile' | 'nationality'; moveable?: 'domicile' | 'nationality' | 'situs'; }; reliefMethod?: 'credit' | 'exemption' | 'deduction'; treatyReference?: string; }> | { method?: 'death_certificate' | 'coroner_report' | 'civil_registry' | 'court_order' | 'medical_certificate' | 'community_declaration' | 'presumption_of_death'; issuingAuthority?: string; jurisdiction?: Jurisdiction; referenceNumber?: string; dateOfDeath?: string; /** * Date death was officially registered — may differ from dateOfDeath */ registrationDate?: string; verifiedAt?: string; verifiedBy?: string; /** * Trust level of the death verification — maps to emerging digital estate delegation trust frameworks */ trustLevel?: 'government_certified' | 'medical_certified' | 'platform_detected' | 'community_declared' | 'self_reported'; /** * URI pointing to the FHIR Patient resource whose death triggered the estate. Enables data exchange between healthcare systems and INHERIT */ fhirPatientRef?: string; } | { /** * Jurisdiction whose escheatment laws apply */ jurisdiction?: Jurisdiction; /** * Statutory dormancy period in years before escheatment */ dormancyPeriodYears?: number; /** * Date on which escheatment takes effect (or is projected to take effect) */ escheatDate?: string; /** * Name of the government authority claiming the escheated property */ claimingAuthority?: string; /** * Current status of the escheatment */ status?: 'at_risk' | 'dormancy_running' | 'escheated' | 'reclaimed'; /** * Asset IDs affected by escheatment */ affectedAssetIds?: Array; notes?: string; } | Array<{ id: string; description: string; conditions: Array<{ personId: string; event: 'death' | 'survives' | 'remarriage' | 'commorientes' | 'incapacity'; order?: number; rule?: string; jurisdiction?: Jurisdiction; presumption?: string; }>; /** * Bequest IDs that activate under this scenario */ activeBequests?: Array; /** * Executor IDs that activate under this scenario */ activeExecutors?: Array; notes?: string; }> | { /** * Hash algorithm used to compute the digest */ algorithm: 'sha-256' | 'sha-384' | 'sha-512'; /** * Hex-encoded digest value */ digest: string; } | Array<{ /** * Reference to the Person.id of the excluded individual */ personId: string; /** * Human-readable label for the excluded person, for display purposes only */ personIdDisplay?: string; /** * The testator's own words regarding the exclusion, as recorded in the will or codicil */ statement?: string; /** * Reference to the clause or section of the will containing the exclusion — e.g. 'clause 5', 'schedule 2 para 3' */ clauseReference?: string; /** * Practitioner-recorded reason for the exclusion, separate from the testator's own statement */ reason?: string; }> | Array<{ jurisdiction: Jurisdiction; /** * Whether this jurisdiction applies to the whole estate or specific assets */ scope: 'default' | 'specific_assets'; /** * Asset IDs governed by this jurisdiction (when scope is specific_assets) */ assetIds?: Array; /** * Property IDs governed by this jurisdiction (when scope is specific_assets) */ propertyIds?: Array; /** * Governing statute */ statute?: string; notes?: string; }> | { exists?: boolean; /** * The other testator bound by the agreement */ counterpartyPersonId?: string; /** * Reference to the counterparty's estate document, if available */ counterpartyEstateId?: string; binding?: boolean; /** * Reference to Document.id recording the mutual promise */ agreementDocumentId?: string; /** * Summary of the agreement terms */ terms?: string; revocable?: boolean; } | Array<{ /** * The legal system asserting the right */ legalSystem: string; affectedPersonId?: string; /** * Description of the customary right that conflicts with the will */ natureOfRight: string; overridableByWill?: boolean; statutoryBasis?: string; resolution?: 'pending' | 'resolved_by_will' | 'resolved_by_court' | 'irreconcilable'; }> | Array<{ dependantPersonId: string; trustId?: string; guardianId?: string; annualEstimatedCost?: Money; careNeeds?: string; }> | Array<{ claimantPersonId: string; claimType: 'spouse' | 'cohabitant' | 'child' | 'dependant' | 'maintained_person'; jurisdiction?: Jurisdiction; statute?: string; status?: 'potential' | 'filed' | 'settled' | 'dismissed'; amount?: Money; notes?: string; }> | Array<{ fromPersonId: string; toPersonId: string; connectionType: 'friend' | 'solicitor' | 'financial_adviser' | 'accountant' | 'employer' | 'employee' | 'colleague' | 'neighbour' | 'carer' | 'religious_leader' | 'medical_practitioner' | 'business_partner' | 'other'; description?: string; }> | Array<{ clauseType: 'gender_neutrality' | 'severability' | 'governing_law' | 'interpretation_rule' | 'definitions' | 'custom'; content: string; clauseReference?: string; }> | Array<{ conditionType: 'unmarried' | 'not_divorced' | 'not_converted' | 'domiciled_in' | 'testamentary_capacity' | 'no_subsequent_will' | 'custom'; description?: string; status?: 'satisfied' | 'breached' | 'unknown'; breachedDate?: string; statute?: string; }> | Array<{ priority: number; category: 'funeral_expenses' | 'testamentary_expenses' | 'secured_debts' | 'unsecured_debts' | 'distribution' | 'custom'; description?: string; }> | Array<{ powerType: 'statutory_default' | 'sale_and_conversion' | 'postponement' | 'appropriation' | 'insurance' | 'investment' | 'delegation' | 'custom'; /** * The statute conferring or modifying this power */ statute?: string; /** * The specific power as expressed in the will */ description?: string; clauseReference?: string; }> | Array<{ statute: string; /** * Specific sections excluded */ sections?: string; jurisdiction?: Jurisdiction; /** * What the exclusion means in practice */ effect?: string; clauseReference?: string; }> | undefined; }; /** * Identifier * * A typed external identifier. Use 'system' to namespace identifiers and prevent collisions across jurisdictions and organisations */ export type IdentifierWritable = { /** * Namespace URI or name identifying the issuing authority or system. Use URN format where possible for unambiguous identification */ system?: string; /** * The identifier value itself. Format depends on the system — may include hyphens, spaces, or check digits as appropriate */ value: string; /** * Human-readable type label describing what kind of identifier this is */ type?: string; }; /** * Person * * A person involved in the estate. Schema.org name alignment. Any Unicode script. Supports CJK phonetic readings, chieftaincy titles, clan/lineage identifiers, dual legal personalities, and tax residency across multiple jurisdictions */ export type PersonWritable = { /** * Unique identifier for this person within the INHERIT document. Must be referenced consistently across all entities */ id: string; /** * The person's given (first) name. For cultures where given name follows family name (e.g. Japanese, Chinese), this is still the given name — display ordering is a presentation concern */ givenName: string; /** * The person's family name (surname). Some cultures do not use family names — Tamil, Icelandic patronymic, and mononymous naming conventions are all valid without this field */ familyName?: string; /** * Middle name(s) or additional given names. Multiple middle names should be space-separated */ additionalName?: string; /** * Name the person prefers to be called. May differ from legal name — use this for correspondence and display where appropriate */ preferredName?: string; /** * Phonetic reading of the person's name. Essential for CJK names to ensure correct pronunciation by non-native speakers and systems */ phoneticReading?: { /** * Phonetic reading of the given name */ givenName?: string; /** * Phonetic reading of the family name */ familyName?: string; /** * Phonetic reading of the complete name as a single string */ fullName?: string; }; /** * Formal titles held by this person. Multiple titles are common — a person may hold academic, professional, and traditional titles simultaneously */ titles?: Array<{ /** * The title text itself */ title: string; type?: 'chieftaincy' | 'traditional' | 'religious' | 'professional' | 'honorific' | 'clan' | 'academic' | 'military' | 'other'; }>; /** * Clan, tribe, lineage, or gotra affiliation. In some legal systems (Hindu, customary African), this determines inheritance rights and succession order */ clanOrLineage?: string; /** * The person's date of birth in ISO 8601 format. Used to determine age-dependent inheritance rights and guardianship requirements */ dateOfBirth?: string; /** * The person's date of death in ISO 8601 format, if deceased. Relevant for determining predecease rules, commorientes, and survivorship */ dateOfDeath?: string; /** * The person's gender. Optional, but required where inheritance rules are gender-dependent (e.g. Islamic faraid, Hindu succession) */ gender?: 'male' | 'female' | 'non_binary' | 'other' | 'prefer_not_to_say' | 'unknown'; /** * The person's legal domicile. Domicile — not nationality or residence — determines which succession law governs moveable property */ domicile?: Jurisdiction; /** * The roles this person plays in the estate. A person may hold multiple roles simultaneously (e.g. beneficiary and executor) */ roles: Array<'testator' | 'beneficiary' | 'executor' | 'guardian' | 'trustee' | 'witness' | 'attorney' | 'proxy' | 'protector' | 'enforcer'>; /** * Contact details for this person. All fields are optional — some parties may have no known contact information */ contact?: { /** * Email address for correspondence */ email?: string; /** * Phone number in E.164 format recommended. National formats are accepted but may be ambiguous across jurisdictions */ phone?: string; /** * Postal address for this person */ address?: Address; }; /** * This person's preferred communication channel. Helps executors and professionals contact the right people in the right way */ preferredChannel?: 'email' | 'phone' | 'post' | 'in_person' | 'video_call' | 'messaging'; /** * External identifiers for this person — passport numbers, national ID, tax reference numbers, etc. Used for probate applications and cross-border identification */ identifiers?: Array; /** * The person's name within a religious naming tradition. Required for religious court filings, halachic documents, and Shariah proceedings */ ritualName?: { /** * The full ritual or religious name as used in religious proceedings */ name: string; /** * The patronymic element of the ritual name (ben/bat, ibn/bint, etc.) */ patronymic?: string; /** * The religious or cultural naming tradition this name follows */ nameSystem?: string; }; /** * Legal personalities this person holds across different legal systems. A single person may have distinct legal identities under statutory, customary, and religious law simultaneously */ legalPersonalities?: Array<{ /** * The legal system under which this personality exists */ system: 'statutory' | 'customary' | 'religious' | 'traditional'; /** * The person's role or status within this legal system */ role: string; /** * The jurisdiction where this legal personality is recognised */ jurisdiction?: Jurisdiction; /** * Additional context about this legal personality */ notes?: string; }>; /** * Tax residency declarations for one or more jurisdictions. A person may be simultaneously tax-resident in multiple countries, triggering reporting obligations under FATCA, CRS, and bilateral treaties */ taxResidency?: Array<{ /** * The jurisdiction where this person is tax-resident */ jurisdiction: Jurisdiction; /** * The person's tax identification number in this jurisdiction */ taxpayerIdentifier?: string; /** * Any relevant tax treaty claim that affects estate tax liability in this jurisdiction */ treatyPosition?: string; /** * FATCA (Foreign Account Tax Compliance Act) classification for this person */ fatcaStatus?: 'us_person' | 'non_us_person' | 'exempt' | 'unknown'; }>; /** * Whether this person record is shared with the companion estate. When true, changes sync between linked estates */ sharedWithCompanion?: boolean; /** * BCP 47 language tag for the person's preferred language. Used for correspondence and document generation */ language?: string; /** * Free-text notes about this person. Use for anything not captured by structured fields — health conditions, access requirements, or context for professionals */ notes?: string; /** * Per-field provenance records — how each field's value was obtained */ fieldProvenance?: Array; /** * Discussion comments on this entity */ comments?: Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }>; /** * Accessibility requirements for communicating with and providing services to this person */ accessibilityNeeds?: { /** * Preferred document format */ preferredFormat?: 'standard' | 'large_print' | 'audio' | 'braille' | 'easy_read' | 'other'; /** * Whether the person uses a screen reader */ screenReaderUser?: boolean; /** * Whether the person requires reduced motion in digital interfaces */ reducedMotion?: boolean; /** * Preferred method of communication */ communicationPreference?: 'email' | 'phone' | 'post' | 'in_person' | 'video_call'; /** * Additional accessibility notes */ notes?: string; }; /** * URIs identifying this entity elsewhere (schema.org sameAs). e.g. Wikidata, LinkedIn, DBpedia */ sameAs?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * Extension-specific roles that the core roles enum cannot cover — e.g. faraid_heir, karta, okpara */ jurisdictionRoles?: Array<{ /** * Extension id, e.g. islamic-succession, hindu-succession */ extension: string; /** * Role within that extension, e.g. faraid_heir, karta, okpara */ role: string; }>; /** * The person's wishes regarding posthumous AI recreation of their likeness or identity. Typically set on the testator and possibly their spouse */ posthumousAiConsent?: { aiRecreation?: 'permitted' | 'prohibited' | 'limited'; likenessUse?: 'permitted' | 'prohibited' | 'limited'; /** * If limited, describes what is permitted (e.g. memorial video only, no interactive chatbot) */ scope?: string; recordedAt?: string; notes?: string; }; /** * Canonical identity for cross-document person matching. The fingerprint is deterministic: same inputs always produce the same key */ identity?: { fingerprint?: string | null; algorithm?: 'inherit-ici-v1'; components?: { familyName?: string; givenName?: string; dateOfBirth?: string; countryOfBirth?: string; }; externalIds?: Array<{ system: string; value?: string; type: string; redacted?: boolean; }>; confidence?: 'high' | 'medium' | 'low'; }; /** * The person's religious affiliation as a legal status. In jurisdictions where religion determines succession law (Singapore AMLA, Malaysian faraid, Israeli rabbinical courts), this is a jurisdictional switch, not a personal belief declaration */ religion?: { faith?: 'animist' | 'buddhist' | 'christian' | 'confucian' | 'hindu' | 'jain' | 'jewish' | 'muslim' | 'shinto' | 'sikh' | 'taoist' | 'zoroastrian' | 'none' | 'other'; /** * Specific denomination if relevant */ denomination?: string; /** * Date this religious status was last confirmed */ asAtDate?: string; }; [key: string]: { [key: string]: unknown; } | string | string | string | { /** * Phonetic reading of the given name */ givenName?: string; /** * Phonetic reading of the family name */ familyName?: string; /** * Phonetic reading of the complete name as a single string */ fullName?: string; } | Array<{ /** * The title text itself */ title: string; type?: 'chieftaincy' | 'traditional' | 'religious' | 'professional' | 'honorific' | 'clan' | 'academic' | 'military' | 'other'; }> | string | 'male' | 'female' | 'non_binary' | 'other' | 'prefer_not_to_say' | 'unknown' | Jurisdiction | Array<'testator' | 'beneficiary' | 'executor' | 'guardian' | 'trustee' | 'witness' | 'attorney' | 'proxy' | 'protector' | 'enforcer'> | { /** * Email address for correspondence */ email?: string; /** * Phone number in E.164 format recommended. National formats are accepted but may be ambiguous across jurisdictions */ phone?: string; /** * Postal address for this person */ address?: Address; } | 'email' | 'phone' | 'post' | 'in_person' | 'video_call' | 'messaging' | Array | { /** * The full ritual or religious name as used in religious proceedings */ name: string; /** * The patronymic element of the ritual name (ben/bat, ibn/bint, etc.) */ patronymic?: string; /** * The religious or cultural naming tradition this name follows */ nameSystem?: string; } | Array<{ /** * The legal system under which this personality exists */ system: 'statutory' | 'customary' | 'religious' | 'traditional'; /** * The person's role or status within this legal system */ role: string; /** * The jurisdiction where this legal personality is recognised */ jurisdiction?: Jurisdiction; /** * Additional context about this legal personality */ notes?: string; }> | Array<{ /** * The jurisdiction where this person is tax-resident */ jurisdiction: Jurisdiction; /** * The person's tax identification number in this jurisdiction */ taxpayerIdentifier?: string; /** * Any relevant tax treaty claim that affects estate tax liability in this jurisdiction */ treatyPosition?: string; /** * FATCA (Foreign Account Tax Compliance Act) classification for this person */ fatcaStatus?: 'us_person' | 'non_us_person' | 'exempt' | 'unknown'; }> | boolean | string | string | Array | Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }> | { /** * Preferred document format */ preferredFormat?: 'standard' | 'large_print' | 'audio' | 'braille' | 'easy_read' | 'other'; /** * Whether the person uses a screen reader */ screenReaderUser?: boolean; /** * Whether the person requires reduced motion in digital interfaces */ reducedMotion?: boolean; /** * Preferred method of communication */ communicationPreference?: 'email' | 'phone' | 'post' | 'in_person' | 'video_call'; /** * Additional accessibility notes */ notes?: string; } | Array | Provenance | Array<{ /** * Extension id, e.g. islamic-succession, hindu-succession */ extension: string; /** * Role within that extension, e.g. faraid_heir, karta, okpara */ role: string; }> | { aiRecreation?: 'permitted' | 'prohibited' | 'limited'; likenessUse?: 'permitted' | 'prohibited' | 'limited'; /** * If limited, describes what is permitted (e.g. memorial video only, no interactive chatbot) */ scope?: string; recordedAt?: string; notes?: string; } | { fingerprint?: string | null; algorithm?: 'inherit-ici-v1'; components?: { familyName?: string; givenName?: string; dateOfBirth?: string; countryOfBirth?: string; }; externalIds?: Array<{ system: string; value?: string; type: string; redacted?: boolean; }>; confidence?: 'high' | 'medium' | 'low'; } | { faith?: 'animist' | 'buddhist' | 'christian' | 'confucian' | 'hindu' | 'jain' | 'jewish' | 'muslim' | 'shinto' | 'sikh' | 'taoist' | 'zoroastrian' | 'none' | 'other'; /** * Specific denomination if relevant */ denomination?: string; /** * Date this religious status was last confirmed */ asAtDate?: string; } | undefined; }; /** * Asset * * A non-property asset: financial accounts, personal property, vehicles, digital assets, business interests, Islamic finance instruments, etc */ export type AssetWritable = unknown & { /** * Unique identifier for this asset within the INHERIT document */ id: string; /** * Display name for this asset. Should be specific enough to identify the item during probate */ name: string; /** * Top-level category from the INHERIT Product Taxonomy. Use the `subcategory` field for finer classification. See `reference-data/category-guidance.json` for valid subcategories, recommended identifiers, and photography guidance per category */ category: 'financial' | 'vehicle' | 'digital' | 'business' | 'property_contents' | 'jewellery_watches' | 'art' | 'antiques' | 'collectibles' | 'musical_instruments' | 'books_manuscripts' | 'wine_spirits' | 'clothing_textiles' | 'firearms_sporting' | 'islamic_financial' | 'other'; /** * Finer classification within the top-level category. Values are defined in reference-data/category-guidance.json but the field is freeform to accommodate jurisdiction-specific asset types. Examples: financial → 'pension', collectibles → 'model_railways', vehicle → 'classic_vehicle' */ subcategory?: string; /** * Owner's estimate of the asset's current value, in minor currency units */ estimatedValue?: Money; /** * Professional valuation of the asset, in minor currency units */ professionalValuation?: Money; /** * Date of the most recent valuation */ valuationDate?: string; /** * Level of confidence in the stated valuation */ valuationConfidence?: 'estimated' | 'professional' | 'official' | 'unknown'; /** * Physical condition of the asset. Affects resale value — dealers use this to price items. Pair with conditionSystem and conditionGrade for domain-specific grading. Use 'not_applicable' for financial assets where condition is meaningless */ condition?: 'excellent' | 'good' | 'fair' | 'poor' | 'unknown' | 'not_applicable'; /** * Number of items if this represents multiple identical or similar items */ quantity?: number; /** * Where this asset is physically stored or held — a bank, safe, property, or institution */ location?: string; /** * Reference to a Property.id if this asset is located at a specific property in the estate */ propertyId?: string; /** * Reference to the AssetCollection.id this asset belongs to. An asset may belong to at most one collection. If set, this asset's value contributes to the collection's total */ assetCollectionId?: string; /** * Reference to a Space.id representing where this item is physically stored. Critical for collections spread across multiple properties or countries — affects probate jurisdiction and dealer collection logistics */ spaceId?: string | null; /** * External identifiers — serial numbers, account numbers, policy references, registration numbers, etc */ identifiers?: Array; /** * Links to this asset in external databases, marketplaces, and registries. The universal connector — any external system can be referenced without a schema change. Use identifiers for formal identifier schemes (ISBN, VIN, NINO); use externalLinks for platform-specific references, product pages, and database entries */ externalLinks?: Array<{ /** * The external system or platform name. Use lowercase, no spaces */ system: string; /** * The platform-specific identifier for this asset */ id: string; /** * Direct URL to the asset's page on the external platform. Optional — some systems are API-only */ url?: string; /** * Human-readable label for display. Optional — defaults to the system name */ label?: string; /** * Timestamp when this link was last verified or data was last retrieved */ retrievedAt?: string; }>; /** * URI pointing to the manufacturer's or retailer's official product page for this exact item. Distinct from storageRef (document storage) and externalLinks (database references). Enables direct linking to manufacturer specifications, manuals, and warranty information */ productPage?: string; /** * Prior ownership records — establishes the chain of provenance for the asset. Critical for art, antiques, and high-value collectibles */ provenanceChain?: Array<{ /** * Description of this provenance record */ description: string; /** * Name of the previous owner (may be anonymised) */ ownerName?: string; /** * Approximate start date of this ownership period */ fromDate?: string; /** * Approximate end date of this ownership period */ toDate?: string; /** * How the owner acquired the asset */ acquisitionMethod?: 'purchase' | 'inheritance' | 'gift' | 'commission' | 'restitution' | 'auction' | 'unknown'; /** * Where this provenance information came from */ source?: string; /** * Link to supporting evidence (sale record, catalogue entry, etc.) */ evidenceUrl?: string; }>; /** * Photographs, videos, and document scans. Vision-capable AI agents use these to identify items, assess condition, and find visual matches on marketplaces. Use viewType from media.json to categorize each media item */ images?: Array; /** * Whether the asset was held at death, is receivable post-death, or is contingent on a future event */ possessionStatus?: 'possessed_at_death' | 'receivable' | 'contingent'; /** * Whether this asset is classified as immoveable or moveable property. Affects which conflict-of-laws rules apply in cross-border estates */ mobilityType?: 'immoveable' | 'moveable' | 'mixed'; /** * How this asset was acquired. Determines succession rules in Indian and other customary systems */ acquisitionType?: 'self_acquired' | 'ancestral_joint' | 'ancestral_severed' | 'inherited' | 'gifted' | 'stridhan' | 'communal' | 'waqf_endowed'; /** * Whether ownership of this asset is formally registered or documented */ registrationStatus?: 'formally_registered' | 'informally_held' | 'community_acknowledged' | 'disputed' | 'undocumented'; /** * The type of evidence available to prove ownership of this asset */ ownershipEvidence?: 'title_deed' | 'certificate_of_occupancy' | 'family_recognition' | 'community_testimony' | 'receipts_only' | 'none'; /** * Cultural, religious, and regulatory constraints on disposal of this asset */ culturalDisposition?: CulturalDisposition; /** * The communal or family authority whose approval is required to dispose of this asset */ communalAuthority?: { /** * Category of communal authority */ authorityType?: 'family_council' | 'clan_association' | 'religious_body' | 'tribal_council' | 'government'; /** * Whether approval from this authority is legally required before disposal */ approvalRequired?: boolean; /** * Name of the specific authority or person */ authorityName?: string; /** * Jurisdiction where this communal authority has legal standing */ jurisdiction?: Jurisdiction; }; /** * The succession regime governing this specific asset. Overrides estate.defaultSuccessionRegime when present */ successionRegime?: { /** * The law governing succession for this asset */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this asset's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; }; /** * Named beneficiary designation for this asset. Assets with beneficiary designations pass outside the probate estate — the will does not control their distribution */ beneficiaryDesignation?: { /** * Person IDs of the primary beneficiaries */ primaryBeneficiaryPersonIds?: Array; /** * Person IDs of contingent beneficiaries (receive if primary beneficiaries predecease) */ contingentBeneficiaryPersonIds?: Array; /** * The type of beneficiary designation */ designationType?: 'retirement_account' | 'life_insurance' | 'superannuation' | 'pod_account' | 'other'; /** * Reference to the NonprobateTransfer entity that tracks this designation */ linkedNonprobateTransferId?: string; }; /** * Digital access consent under RUFADAA or equivalent legislation. Governs whether executors and fiduciaries can access the deceased's digital accounts and assets */ digitalAccessConsent?: { /** * Whether the account holder has given consent for fiduciary access */ consentGiven?: boolean; /** * The scope of access granted to fiduciaries */ scope?: 'full_access' | 'limited_access' | 'no_access'; /** * Reference to the Person.id designated to receive access to this digital asset */ designatedRecipientPersonId?: string; /** * Human-readable display name for the referenced designated recipient person */ designatedRecipientPersonIdDisplay?: string; /** * Whether the user set access directives through the platform's own tool (e.g. Google Inactive Account Manager, Facebook Legacy Contact). Platform directives take priority under RUFADAA */ onlineToolDirective?: boolean; }; /** * Whether this asset passes outside the probate estate. Beneficiary designations, POD accounts, and jointly held assets typically bypass the will */ passesOutsideEstate?: boolean; /** * Free-text notes about this asset. Use for provenance, sentimental value, special handling instructions, or anything not captured by structured fields */ notes?: string; /** * Structured description of the asset — what it is, its significance, and key details a dealer or executor would need. Distinct from 'notes' which is free-form */ description?: string; /** * The manufacturer or brand name. Accepts a plain string (backwards compatible) or a structured object with Wikidata linkage for rich product data. AI agents should use this as a primary search dimension when finding comparables */ brand?: string | { /** * Brand or manufacturer name */ name: string; /** * Wikidata Q-number for this brand. Resolves to structured data via the Wikidata API — founding year, country, parent company, logo, official website, product categories */ wikidataId?: string; /** * Official brand website */ website?: string; }; /** * The specific model, product line, or range name. Combined with brand and identifiers, this is the primary key for marketplace search. AI agents construct search queries from brand + model + subcategory */ model?: string; /** * Date the asset was acquired by the current owner. Used for capital gains tax calculations, insurance claims, and provenance. Maps to Schema.org purchaseDate */ purchaseDate?: string; /** * Whether original packaging, documentation, and accessories are present. Affects value by 20–40% across watches, model railways, jewellery, and many other domains */ originalPackaging?: 'complete' | 'partial' | 'box_only' | 'papers_only' | 'none' | 'unknown'; /** * Third party currently holding this asset — a bank (safe deposit), storage facility (bonded wine), repairer (watch at jeweller), gallery (art on loan), or institution. The executor needs to know who to contact */ custodian?: { /** * Name of the person or organisation holding the asset */ name?: string; /** * Email address for the custodian */ contactEmail?: string; /** * Phone number for the custodian */ contactPhone?: string; /** * The nature of the custodial relationship */ relationship?: string; /** * Account or reference number with the custodian */ reference?: string; }; /** * The grading system used for the conditionGrade value. Allows domain-specific condition assessment alongside the generic condition field */ conditionSystem?: 'goldmine' | 'sheldon' | 'ags' | 'bsc' | 'gia' | 'watch_trade' | 'classic_vehicle' | 'book_trade' | string; /** * The specific grade within the conditionSystem. Meaningful only when conditionSystem is set */ conditionGrade?: string; /** * URI pointing to the official documentation of the grading standard used. Enables tools to display the correct grading scale and interpret the conditionGrade value */ conditionStandard?: string; /** * How urgently this asset needs attention after the testator's death. Drives the executor's priority list */ urgency?: 'immediate' | 'within_7_days' | 'within_30_days' | 'none'; /** * Explanation of why this asset is urgent. Particularly important for 'immediate' items */ urgencyReason?: string; /** * Reference to another Asset.id if this asset is physically contained within or logically part of another asset. Enables hierarchical asset nesting — e.g. a watch inside a safe, tools inside a toolbox */ containedInAssetId?: string; /** * Insurance coverage for this asset. The executor needs to know what's insured, by whom, and whether cover continues after death */ insurance?: { /** * Name of the insurance provider */ provider?: string; /** * Policy reference number */ policyReference?: string; /** * The insured value in minor currency units */ insuredValue?: Money; /** * Next renewal date. Important — cover may lapse if not renewed after death */ renewalDate?: string; /** * Additional insurance notes */ notes?: string; }; /** * Where the asset was purchased or acquired from. Collectors track provenance — valuable for dealers and for establishing authenticity */ purchasedFrom?: string; /** * Provenance record when this entity was created by splitting a larger entity. The original entity is typically archived after the split */ splitFrom?: { /** * The type of entity that was split */ entityType: 'asset' | 'asset_collection'; /** * The id of the original entity that was split */ entityId: string; /** * When the split occurred */ splitAt: string; /** * Why the split was requested */ reason?: string; }; /** * How this specific entity's data was captured. Overrides the document-level default if set */ dataProvenance?: 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated'; /** * Keywords for marketplace search — AI-generated or human-curated. Memoization: once derived, cached here so subsequent agents reuse them instantly rather than re-deriving */ searchTerms?: Array; /** * Structured search instructions for comparable-finding agents. Acts as agent memory — the item teaches future agents how to find its peers */ comparableSearchProfile?: { /** * Marketplaces and platforms to search */ platforms?: Array; /** * Natural-language query an agent should use */ searchQuery?: string; /** * Key-value filters to narrow results. Agents map to platform-specific parameters */ filters?: { [key: string]: string; }; /** * Platforms explicitly excluded */ excludePlatforms?: Array; /** * When an agent last executed this search profile */ lastSearchedAt?: string; /** * How often this item should be re-searched */ searchFrequency?: 'once' | 'weekly' | 'monthly' | 'on_demand'; }; /** * AI-suggested subcategory refinement, kept separate from the human-set subcategory. Accepted when the user confirms. Provenance: always AI-generated */ suggestedSubcategory?: string; /** * Numeric reliability score (0-100) for the current valuation. Computed from: recency, method, corroborating comparables, variance between estimates. Companion to the categorical valuationConfidence enum — the enum captures source, this number captures trustworthiness now. Agents use this to prioritise which assets need re-valuation */ valuationReliability?: number; /** * When this entity's data was last verified by a human or authoritative source. Agents use this to decide whether to trust existing values or re-derive them */ lastVerifiedAt?: string; /** * Who or what verified this entity — a person's name, a tool, or 'owner' */ verifiedBy?: string; /** * Controls who can see this asset. Some assets (firearms, digital accounts, sensitive collections) may need restricted visibility */ visibility?: Visibility; /** * Per-field provenance records — how each field's value was obtained */ fieldProvenance?: Array; /** * Discussion comments on this entity */ comments?: Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }>; /** * Records that this entity was merged into another entity — the target entity is the canonical version */ mergedInto?: { /** * Type of the target entity */ entityType?: 'asset' | 'asset_collection'; /** * ID of the target entity */ entityId?: string; /** * When the merge occurred */ mergedAt?: string; /** * Why the entities were merged */ reason?: string; }; /** * Human-readable display name for the referenced storage location */ spaceIdDisplay?: string; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The jurisdiction whose succession law governs this item. Missing means defaults to estate domicile */ applicableLaw?: Jurisdiction; /** * Per-asset tax treatment — how this asset is classified for tax purposes in a specific jurisdiction */ taxTreatment?: { jurisdiction?: Jurisdiction; assetType?: 'immoveable' | 'moveable' | 'mixed' | 'exempt'; exemptions?: Array; reliefClaimed?: Array; }; /** * Instructions for accessing this asset after death — steps, locations, holders. No secrets in the document, just instructions for finding them. Available for all asset categories (digital: crypto wallets, social media; physical: safes, storage units) */ accessInstructions?: { accessType?: string; platform?: string; visibility?: Visibility; /** * The estate role required to follow these instructions */ requiredRole?: string; steps?: Array<{ step: number; method: string; description?: string; location?: string; holderPersonId?: string; }>; memorialisation?: { preference?: 'transfer_to_beneficiary' | 'memorialise' | 'delete' | 'archive' | 'no_preference'; instructions?: string; }; lastVerified?: string; verifiedBy?: string; }; /** * The owner's current intention for this item. Absent means keeping (the default). Used by catalogue applications to track whether items are being actively managed, offered for sale, or allocated to specific people */ ownerIntent?: 'keeping' | 'considering' | 'thinning' | 'listed' | 'sold' | 'allocated' | 'donated'; /** * Active or historical listings of this item for sale on external channels. Tracks where the item is listed, its status, and sale outcome. Application-level data — not part of the estate interchange but carried alongside it for catalogue and dealer workflows */ listings?: Array<{ /** * The sales channel where this item is listed */ channel: 'ebay' | 'amazon' | 'shopify' | 'etsy' | 'own_website' | 'auction_house' | 'other'; /** * Human-readable name of the channel, especially when channel is other */ channelName?: string; /** * The platform-specific listing identifier */ listingId?: string; /** * Direct URL to the listing on the external platform */ listingUrl?: string; /** * Current status of this listing */ status: 'draft' | 'active' | 'sold' | 'withdrawn' | 'expired'; /** * The listed asking price */ askingPrice?: Money; /** * When this listing was created or last activated */ listedAt?: string; /** * When the item was sold via this listing, if applicable */ soldAt?: string | null; /** * The actual sale price, if sold */ soldPrice?: Money; }>; /** * Service, maintenance, and restoration records. Critical for watches (service intervals affect value), vehicles (MOT history, restoration), clocks, and musical instruments */ serviceHistory?: Array; /** * Insurance details for this item. Tracks which policy covers it, the agreed value, and when cover was last confirmed. Essential for executors who need to claim on the correct policy */ insuranceCover?: { /** * Name of the insurance company */ insurer?: string; /** * The insurance policy number */ policyNumber?: string; /** * The type of insurance policy covering this item */ policyType?: 'home_contents' | 'specialist_collectibles' | 'classic_vehicle' | 'individual_item' | 'fine_art' | 'jewellery' | 'other'; /** * The agreed or insured value, in minor currency units. May differ from market value */ agreedValue?: Money; /** * When the insurance cover for this item was last confirmed or reviewed */ coverConfirmedAt?: string; }; /** * How this item can be transported for selling or verification. Determines which logistics path the Deal Comparison uses */ shippingClass?: 'parcel' | 'large_item' | 'specialist_transport' | 'collection_only'; /** * Original documents, certificates, and packaging elements present with this item. Affects value significantly across many categories. Cross-category: watches, vehicles, books, art, and collectibles share some document types */ includedDocuments?: Array<'outer_box' | 'inner_box' | 'warranty_card' | 'cosc_certificate' | 'instruction_manual' | 'hang_tags' | 'service_booklet' | 'purchase_receipt' | 'original_invoice' | 'v5c_logbook' | 'mot_certificate' | 'provenance_letter' | 'certificate_of_authenticity' | 'appraisal_certificate' | 'export_licence' | 'customs_declaration' | string>; /** * Tax relief eligibility for this asset or property (e.g. Agricultural Property Relief, Business Property Relief) */ taxReliefEligibility?: { /** * The type of tax relief claimed */ reliefType?: 'agricultural_property' | 'business_property' | 'woodland' | 'heritage' | 'charitable'; eligible?: boolean; /** * Relief percentage (e.g. 100 for full APR, 50 for partial BPR) */ percentage?: number; /** * Conditions for maintaining eligibility */ conditions?: string; jurisdiction?: Jurisdiction; statute?: string; }; /** * Cultural, religious, sentimental, or professional significance beyond monetary value */ significance?: { type?: 'sentimental' | 'cultural' | 'religious' | 'historical' | 'family_heirloom' | 'professional'; description?: string; /** * Whether and how the testator has restricted disposal of this asset */ restrictionOnDisposal?: { exists?: boolean; nature?: string; }; }; [key: string]: { [key: string]: unknown; } | string | string | 'financial' | 'vehicle' | 'digital' | 'business' | 'property_contents' | 'jewellery_watches' | 'art' | 'antiques' | 'collectibles' | 'musical_instruments' | 'books_manuscripts' | 'wine_spirits' | 'clothing_textiles' | 'firearms_sporting' | 'islamic_financial' | 'other' | string | Money | string | 'estimated' | 'professional' | 'official' | 'unknown' | 'excellent' | 'good' | 'fair' | 'poor' | 'unknown' | 'not_applicable' | number | string | string | null | Array | Array<{ /** * The external system or platform name. Use lowercase, no spaces */ system: string; /** * The platform-specific identifier for this asset */ id: string; /** * Direct URL to the asset's page on the external platform. Optional — some systems are API-only */ url?: string; /** * Human-readable label for display. Optional — defaults to the system name */ label?: string; /** * Timestamp when this link was last verified or data was last retrieved */ retrievedAt?: string; }> | string | Array<{ /** * Description of this provenance record */ description: string; /** * Name of the previous owner (may be anonymised) */ ownerName?: string; /** * Approximate start date of this ownership period */ fromDate?: string; /** * Approximate end date of this ownership period */ toDate?: string; /** * How the owner acquired the asset */ acquisitionMethod?: 'purchase' | 'inheritance' | 'gift' | 'commission' | 'restitution' | 'auction' | 'unknown'; /** * Where this provenance information came from */ source?: string; /** * Link to supporting evidence (sale record, catalogue entry, etc.) */ evidenceUrl?: string; }> | Array | 'possessed_at_death' | 'receivable' | 'contingent' | 'immoveable' | 'moveable' | 'mixed' | 'self_acquired' | 'ancestral_joint' | 'ancestral_severed' | 'inherited' | 'gifted' | 'stridhan' | 'communal' | 'waqf_endowed' | 'formally_registered' | 'informally_held' | 'community_acknowledged' | 'disputed' | 'undocumented' | 'title_deed' | 'certificate_of_occupancy' | 'family_recognition' | 'community_testimony' | 'receipts_only' | 'none' | CulturalDisposition | { /** * Category of communal authority */ authorityType?: 'family_council' | 'clan_association' | 'religious_body' | 'tribal_council' | 'government'; /** * Whether approval from this authority is legally required before disposal */ approvalRequired?: boolean; /** * Name of the specific authority or person */ authorityName?: string; /** * Jurisdiction where this communal authority has legal standing */ jurisdiction?: Jurisdiction; } | { /** * The law governing succession for this asset */ governingLaw?: { /** * Jurisdiction whose succession law applies */ jurisdiction?: Jurisdiction; /** * Which legal tradition applies */ legalTradition?: 'common_law' | 'civil_law' | 'mixed' | 'customary_law' | 'islamic_law' | 'hindu_law' | 'jewish_law' | 'canon_law'; /** * Name of the governing statute */ statute?: string; /** * Specific section of the statute */ section?: string; }; /** * How the governing law was determined */ determinedBy?: 'domicile' | 'situs' | 'nationality' | 'personal_status' | 'choice_of_law' | 'treaty'; /** * Whether this succession regime is legally binding */ binding?: boolean; /** * INHERIT extension IDs that apply to this asset's succession */ extensions?: Array; /** * Additional context about the succession regime */ notes?: string; } | { /** * Person IDs of the primary beneficiaries */ primaryBeneficiaryPersonIds?: Array; /** * Person IDs of contingent beneficiaries (receive if primary beneficiaries predecease) */ contingentBeneficiaryPersonIds?: Array; /** * The type of beneficiary designation */ designationType?: 'retirement_account' | 'life_insurance' | 'superannuation' | 'pod_account' | 'other'; /** * Reference to the NonprobateTransfer entity that tracks this designation */ linkedNonprobateTransferId?: string; } | { /** * Whether the account holder has given consent for fiduciary access */ consentGiven?: boolean; /** * The scope of access granted to fiduciaries */ scope?: 'full_access' | 'limited_access' | 'no_access'; /** * Reference to the Person.id designated to receive access to this digital asset */ designatedRecipientPersonId?: string; /** * Human-readable display name for the referenced designated recipient person */ designatedRecipientPersonIdDisplay?: string; /** * Whether the user set access directives through the platform's own tool (e.g. Google Inactive Account Manager, Facebook Legacy Contact). Platform directives take priority under RUFADAA */ onlineToolDirective?: boolean; } | boolean | string | string | { /** * Brand or manufacturer name */ name: string; /** * Wikidata Q-number for this brand. Resolves to structured data via the Wikidata API — founding year, country, parent company, logo, official website, product categories */ wikidataId?: string; /** * Official brand website */ website?: string; } | 'complete' | 'partial' | 'box_only' | 'papers_only' | 'none' | 'unknown' | { /** * Name of the person or organisation holding the asset */ name?: string; /** * Email address for the custodian */ contactEmail?: string; /** * Phone number for the custodian */ contactPhone?: string; /** * The nature of the custodial relationship */ relationship?: string; /** * Account or reference number with the custodian */ reference?: string; } | 'goldmine' | 'sheldon' | 'ags' | 'bsc' | 'gia' | 'watch_trade' | 'classic_vehicle' | 'book_trade' | string | 'immediate' | 'within_7_days' | 'within_30_days' | 'none' | { /** * Name of the insurance provider */ provider?: string; /** * Policy reference number */ policyReference?: string; /** * The insured value in minor currency units */ insuredValue?: Money; /** * Next renewal date. Important — cover may lapse if not renewed after death */ renewalDate?: string; /** * Additional insurance notes */ notes?: string; } | { /** * The type of entity that was split */ entityType: 'asset' | 'asset_collection'; /** * The id of the original entity that was split */ entityId: string; /** * When the split occurred */ splitAt: string; /** * Why the split was requested */ reason?: string; } | 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated' | Array | { /** * Marketplaces and platforms to search */ platforms?: Array; /** * Natural-language query an agent should use */ searchQuery?: string; /** * Key-value filters to narrow results. Agents map to platform-specific parameters */ filters?: { [key: string]: string; }; /** * Platforms explicitly excluded */ excludePlatforms?: Array; /** * When an agent last executed this search profile */ lastSearchedAt?: string; /** * How often this item should be re-searched */ searchFrequency?: 'once' | 'weekly' | 'monthly' | 'on_demand'; } | number | string | Visibility | Array | Array<{ /** * Unique identifier for this comment */ id: string; /** * Person.id of the comment author */ authorPersonId?: string; /** * Human-readable display name for the referenced author person */ authorPersonIdDisplay?: string; /** * Comment text */ content: string; /** * When the comment was created */ createdAt: string; visibility?: Visibility; }> | { /** * Type of the target entity */ entityType?: 'asset' | 'asset_collection'; /** * ID of the target entity */ entityId?: string; /** * When the merge occurred */ mergedAt?: string; /** * Why the entities were merged */ reason?: string; } | Provenance | Jurisdiction | { jurisdiction?: Jurisdiction; assetType?: 'immoveable' | 'moveable' | 'mixed' | 'exempt'; exemptions?: Array; reliefClaimed?: Array; } | { accessType?: string; platform?: string; visibility?: Visibility; /** * The estate role required to follow these instructions */ requiredRole?: string; steps?: Array<{ step: number; method: string; description?: string; location?: string; holderPersonId?: string; }>; memorialisation?: { preference?: 'transfer_to_beneficiary' | 'memorialise' | 'delete' | 'archive' | 'no_preference'; instructions?: string; }; lastVerified?: string; verifiedBy?: string; } | 'keeping' | 'considering' | 'thinning' | 'listed' | 'sold' | 'allocated' | 'donated' | Array<{ /** * The sales channel where this item is listed */ channel: 'ebay' | 'amazon' | 'shopify' | 'etsy' | 'own_website' | 'auction_house' | 'other'; /** * Human-readable name of the channel, especially when channel is other */ channelName?: string; /** * The platform-specific listing identifier */ listingId?: string; /** * Direct URL to the listing on the external platform */ listingUrl?: string; /** * Current status of this listing */ status: 'draft' | 'active' | 'sold' | 'withdrawn' | 'expired'; /** * The listed asking price */ askingPrice?: Money; /** * When this listing was created or last activated */ listedAt?: string; /** * When the item was sold via this listing, if applicable */ soldAt?: string | null; /** * The actual sale price, if sold */ soldPrice?: Money; }> | Array | { /** * Name of the insurance company */ insurer?: string; /** * The insurance policy number */ policyNumber?: string; /** * The type of insurance policy covering this item */ policyType?: 'home_contents' | 'specialist_collectibles' | 'classic_vehicle' | 'individual_item' | 'fine_art' | 'jewellery' | 'other'; /** * The agreed or insured value, in minor currency units. May differ from market value */ agreedValue?: Money; /** * When the insurance cover for this item was last confirmed or reviewed */ coverConfirmedAt?: string; } | 'parcel' | 'large_item' | 'specialist_transport' | 'collection_only' | Array<'outer_box' | 'inner_box' | 'warranty_card' | 'cosc_certificate' | 'instruction_manual' | 'hang_tags' | 'service_booklet' | 'purchase_receipt' | 'original_invoice' | 'v5c_logbook' | 'mot_certificate' | 'provenance_letter' | 'certificate_of_authenticity' | 'appraisal_certificate' | 'export_licence' | 'customs_declaration' | string> | { /** * The type of tax relief claimed */ reliefType?: 'agricultural_property' | 'business_property' | 'woodland' | 'heritage' | 'charitable'; eligible?: boolean; /** * Relief percentage (e.g. 100 for full APR, 50 for partial BPR) */ percentage?: number; /** * Conditions for maintaining eligibility */ conditions?: string; jurisdiction?: Jurisdiction; statute?: string; } | { type?: 'sentimental' | 'cultural' | 'religious' | 'historical' | 'family_heirloom' | 'professional'; description?: string; /** * Whether and how the testator has restricted disposal of this asset */ restrictionOnDisposal?: { exists?: boolean; nature?: string; }; } | undefined; }; /** * Organisation * * An organisation that interacts with the estate — legal firms, financial institutions, charities, dealers, funeral providers, employers, government bodies, and others. Maps to schema:Organization in JSON-LD */ export type OrganisationWritable = { /** * Unique identifier for this organisation within the INHERIT document */ id: string; /** * The organisation's legal or trading name */ name: string; /** * The nature of the organisation. Use x-inherit- prefix for jurisdiction-specific or niche types not covered by the core enum */ organisationType: 'legal_firm' | 'financial_institution' | 'pension_provider' | 'insurance_provider' | 'dealer' | 'auction_house' | 'valuation_firm' | 'funeral_provider' | 'charity' | 'religious_institution' | 'employer' | 'trust_corporation' | 'accountancy_firm' | 'government_body' | 'retailer' | 'manufacturer' | 'property_management' | 'storage_facility' | 'digital_platform' | 'utility_provider' | 'other' | string; /** * The roles this organisation plays in this specific estate. An organisation may play multiple roles */ estateRoles?: Array<'beneficiary' | 'will_writer' | 'executor' | 'trustee' | 'asset_holder' | 'liability_holder' | 'insurer' | 'valuer' | 'recommended_dealer' | 'funeral_provider' | 'professional_adviser' | 'regulatory_body' | 'employer' | 'retailer' | 'service_provider' | string>; /** * Primary jurisdiction where this organisation operates. ISO 3166-1 alpha-2 or ISO 3166-2 code */ jurisdiction?: string; /** * The organisation's address */ address?: Address; /** * The organisation's website */ url?: string; /** * Primary contact email */ email?: string; /** * Primary contact phone number */ phone?: string; /** * URL to the organisation's logo */ logo?: string; /** * Wikidata Q-number for this organisation, enabling linked data resolution. Many major organisations have Wikidata entries with structured data (founding date, parent company, headquarters, etc.) */ wikidataId?: string; /** * Brief description of the organisation and its relevance to this estate */ description?: string; /** * Registrations with regulatory bodies, professional associations, and government registries. An organisation may hold multiple registrations across jurisdictions */ registrations?: Array; /** * Name of the primary contact person at this organisation for estate matters */ contactPerson?: string; /** * Free-text notes about this organisation's relationship to the estate */ notes?: string; /** * Aggregate ratings from review platforms. One entry per platform. Supports user decision-making, agent filtering/ranking, and point-in-time audit trails */ ratings?: Array<{ /** * The review platform */ platform: 'trustpilot' | 'google' | 'feefo' | 'reviews_io' | 'funeral_guide' | 'checkatrade' | string; /** * The aggregate rating score */ ratingValue: number; /** * Maximum possible score on this platform. Default 5 if absent */ bestRating?: number; /** * Minimum possible score on this platform. Default 1 if absent */ worstRating?: number; /** * Total number of reviews on this platform */ reviewCount?: number; /** * URL to the organisation's profile on this platform */ profileUrl?: string; /** * When this rating data was retrieved or verified */ retrievedAt: string; }>; /** * URIs identifying this entity elsewhere (schema.org sameAs). e.g. Wikidata, LinkedIn, DBpedia */ sameAs?: Array; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; /** * The organisation's VAT registration status and scheme. Affects how VAT is calculated on transactions involving this organisation */ vatConfiguration?: { /** * Whether the organisation is VAT registered */ vatRegistered?: boolean; /** * Which VAT scheme the organisation uses. Only relevant if vatRegistered is true */ vatScheme?: 'margin_scheme' | 'global_accounting' | 'standard_vat'; /** * The organisation's VAT registration number */ vatNumber?: string; /** * The country of VAT registration, as ISO 3166-1 alpha-2 */ vatCountry?: string; }; /** * International shipping capabilities and policies for this organisation */ internationalShipping?: { /** * ISO 3166-1 alpha-2 country codes this organisation ships to */ shipsToCountries?: Array; /** * ISO 3166-1 alpha-2 country codes this organisation receives items from */ receivesFromCountries?: Array; /** * Whether this organisation handles customs declarations for international shipments */ customsHandling?: boolean; /** * Who pays import duties on international transactions */ importDutyPolicy?: 'dealer_absorbs' | 'buyer_pays' | 'included_in_shipping'; /** * The primary currency this organisation trades in, as ISO 4217 */ currency?: string; }; /** * External identifiers — charity number, company registration, UEN, etc. */ identifiers?: Array; /** * Dealer-specific profile information. Only relevant for organisations that operate as dealers on marketplace or catalogue platforms */ dealerProfile?: { /** * Asset categories this dealer specialises in */ categories?: Array; /** * The dealer's subscription tier on the platform */ dealerTier?: 'free' | 'standard' | 'professional'; /** * Physical services this dealer can provide */ fulfilmentCapabilities?: Array<'inspection' | 'grading' | 'photography' | 'storage' | 'shipping' | 'restoration'>; /** * How far the dealer operates */ geographicReach?: 'local' | 'national' | 'international'; /** * Typical time to respond to a valuation request or offer */ averageResponseTime?: string; }; [key: string]: { [key: string]: unknown; } | string | string | 'legal_firm' | 'financial_institution' | 'pension_provider' | 'insurance_provider' | 'dealer' | 'auction_house' | 'valuation_firm' | 'funeral_provider' | 'charity' | 'religious_institution' | 'employer' | 'trust_corporation' | 'accountancy_firm' | 'government_body' | 'retailer' | 'manufacturer' | 'property_management' | 'storage_facility' | 'digital_platform' | 'utility_provider' | 'other' | string | Array<'beneficiary' | 'will_writer' | 'executor' | 'trustee' | 'asset_holder' | 'liability_holder' | 'insurer' | 'valuer' | 'recommended_dealer' | 'funeral_provider' | 'professional_adviser' | 'regulatory_body' | 'employer' | 'retailer' | 'service_provider' | string> | string | Address | string | string | string | string | string | Array | string | Array<{ /** * The review platform */ platform: 'trustpilot' | 'google' | 'feefo' | 'reviews_io' | 'funeral_guide' | 'checkatrade' | string; /** * The aggregate rating score */ ratingValue: number; /** * Maximum possible score on this platform. Default 5 if absent */ bestRating?: number; /** * Minimum possible score on this platform. Default 1 if absent */ worstRating?: number; /** * Total number of reviews on this platform */ reviewCount?: number; /** * URL to the organisation's profile on this platform */ profileUrl?: string; /** * When this rating data was retrieved or verified */ retrievedAt: string; }> | Array | Provenance | { /** * Whether the organisation is VAT registered */ vatRegistered?: boolean; /** * Which VAT scheme the organisation uses. Only relevant if vatRegistered is true */ vatScheme?: 'margin_scheme' | 'global_accounting' | 'standard_vat'; /** * The organisation's VAT registration number */ vatNumber?: string; /** * The country of VAT registration, as ISO 3166-1 alpha-2 */ vatCountry?: string; } | { /** * ISO 3166-1 alpha-2 country codes this organisation ships to */ shipsToCountries?: Array; /** * ISO 3166-1 alpha-2 country codes this organisation receives items from */ receivesFromCountries?: Array; /** * Whether this organisation handles customs declarations for international shipments */ customsHandling?: boolean; /** * Who pays import duties on international transactions */ importDutyPolicy?: 'dealer_absorbs' | 'buyer_pays' | 'included_in_shipping'; /** * The primary currency this organisation trades in, as ISO 4217 */ currency?: string; } | Array | { /** * Asset categories this dealer specialises in */ categories?: Array; /** * The dealer's subscription tier on the platform */ dealerTier?: 'free' | 'standard' | 'professional'; /** * Physical services this dealer can provide */ fulfilmentCapabilities?: Array<'inspection' | 'grading' | 'photography' | 'storage' | 'shipping' | 'restoration'>; /** * How far the dealer operates */ geographicReach?: 'local' | 'national' | 'international'; /** * Typical time to respond to a valuation request or offer */ averageResponseTime?: string; } | undefined; }; /** * Completeness * * A completeness score derived from a weighted checklist of estate data categories, scoped to a specific jurisdiction and estate status */ export type CompletenessWritable = { /** * ISO 3166-1 alpha-2 country code or ISO 3166-2 subdivision code identifying which jurisdiction this scoring applies to */ jurisdiction?: string; /** * The estate status this completeness score was calculated against. Different statuses may require different data, affecting which checklist items are applicable */ estateStatus?: string; /** * The individual items assessed to produce the overall score. Each item belongs to a category, has a relative weight, and a status indicating whether the data is present */ checklist: Array<{ /** * The data category this checklist item belongs to */ category: 'personal_details' | 'assets_and_valuations' | 'liabilities' | 'beneficiaries' | 'executors' | 'guardians' | 'tax_information' | 'legal_documents' | 'lifetime_transfers' | 'pension_and_insurance'; /** * A human-readable label describing what was checked */ item: string; /** * Relative importance of this item. Higher weights contribute more to the overall score */ weight: number; /** * Whether the data for this item is present and sufficient */ status: 'complete' | 'incomplete' | 'not_applicable' | 'unknown'; /** * Optional explanation of the status, such as what is missing or why the item is not applicable */ details?: string; }>; [key: string]: { [key: string]: unknown; } | string | Array<{ /** * The data category this checklist item belongs to */ category: 'personal_details' | 'assets_and_valuations' | 'liabilities' | 'beneficiaries' | 'executors' | 'guardians' | 'tax_information' | 'legal_documents' | 'lifetime_transfers' | 'pension_and_insurance'; /** * A human-readable label describing what was checked */ item: string; /** * Relative importance of this item. Higher weights contribute more to the overall score */ weight: number; /** * Whether the data for this item is present and sufficient */ status: 'complete' | 'incomplete' | 'not_applicable' | 'unknown'; /** * Optional explanation of the status, such as what is missing or why the item is not applicable */ details?: string; }> | undefined; }; /** * TaxPosition * * An estimated tax position for an estate in a specific jurisdiction, including gross and net values, available exemptions, and estimated liability */ export type TaxPositionWritable = { /** * ISO 3166-1 alpha-2 country code or ISO 3166-2 subdivision code identifying the tax jurisdiction */ jurisdiction: string; /** * Total gross value of the estate before deducting liabilities, in minor currency units */ grossEstateValue: Money; /** * Net estate value after deducting liabilities, in minor currency units */ netEstateValue?: Money; /** * Total value of lifetime transfers (gifts, settlements) made within the lookback period, in minor currency units */ lifetimeTransfersInLookback?: Money; /** * The lookback period for lifetime transfers in this jurisdiction, expressed as a human-readable duration */ lookbackPeriod?: string; /** * Tax exemptions and reliefs that may reduce the taxable estate. Each entry describes one exemption, its value, and whether it has been applied */ availableExemptions?: Array<{ /** * The name of the exemption or relief */ name: string; /** * The monetary value of this exemption, in minor currency units */ amount?: Money; /** * Whether this exemption has been applied in the current calculation */ applied?: boolean; /** * Additional context about eligibility, conditions, or partial application of this exemption */ notes?: string; }>; /** * The estate value subject to tax after applying exemptions, in minor currency units */ taxableEstate?: Money; /** * The estimated tax due, in minor currency units. This is an estimate and should not be treated as a final liability */ estimatedLiability?: Money; /** * The effective tax rate as a percentage of the gross estate value */ effectiveRate?: number; /** * Data gaps, simplifying assumptions, or other caveats that may affect the accuracy of this estimate */ warnings?: Array; /** * A mandatory disclaimer stating that this is an estimate and not professional tax advice */ disclaimer: string; /** * Whether the estate qualifies for a reduced tax rate due to charitable giving (e.g. UK 36% IHT rate when 10%+ left to charity) */ charitableReliefApplicable?: boolean; /** * The reduced tax rate applicable when charitable relief qualifies, as a percentage */ charitableReliefPercentage?: number; /** * The basis for qualifying for charitable tax relief */ charitableReliefBasis?: string; /** * ISO 3166 code of the jurisdiction whose charitable relief rules apply */ charitableReliefJurisdiction?: string; /** * Total value of all charitable gifts in this estate, in minor currency units */ charitableGiftsTotal?: Money; /** * Charitable gifts as a percentage of the net estate value */ charitableGiftsAsPercentage?: number; [key: string]: { [key: string]: unknown; } | string | Money | string | Array<{ /** * The name of the exemption or relief */ name: string; /** * The monetary value of this exemption, in minor currency units */ amount?: Money; /** * Whether this exemption has been applied in the current calculation */ applied?: boolean; /** * Additional context about eligibility, conditions, or partial application of this exemption */ notes?: string; }> | number | Array | string | boolean | string | undefined; }; /** * Event * * An event that occurred during estate administration. The INHERIT document carries its own audit trail via the events array */ export type EventWritable = { /** * Unique identifier for this event */ id: string; /** * Type of event. Core types cover standard estate administration events. Extension types use x-inherit- prefix */ eventType: 'death_registered' | 'will_located' | 'will_read' | 'executor_appointed' | 'probate_applied' | 'probate_granted' | 'letters_of_administration_granted' | 'asset_identified' | 'asset_valued' | 'asset_collected' | 'asset_transferred' | 'asset_sold' | 'debt_identified' | 'debt_paid' | 'tax_return_filed' | 'tax_clearance_received' | 'distribution_made' | 'estate_accounts_filed' | 'estate_closed' | 'claim_received' | 'claim_resolved' | 'deed_of_variation_executed' | 'disclaimer_received' | 'other' | string; /** * What initiated this event */ trigger?: 'court_action' | 'executor_action' | 'beneficiary_action' | 'institutional_action' | 'calendar_deadline' | 'legislative_change' | 'marketplace_action' | 'system_generated'; /** * Human-readable description of the event */ description?: string; /** * UUIDs of entities affected by this event */ affectedEntityIds?: Array; /** * Entity types affected (estate, asset, property, bequest, etc.) */ affectedEntityTypes?: Array; /** * The person, institution, or system that performed the action */ actor?: { /** * Name of the actor */ name?: string; /** * Category of actor */ type?: 'court' | 'executor' | 'beneficiary' | 'bank' | 'insurer' | 'tax_authority' | 'religious_body' | 'valuer' | 'marketplace' | 'system'; /** * Jurisdiction of the actor */ jurisdiction?: Jurisdiction; }; /** * Type-specific metadata for this event. Structure depends on eventType */ metadata?: { /** * Grant number (for probate_granted events) */ grantNumber?: string; /** * Gross estate value on the grant */ grantValue?: Money; /** * Court that issued the grant */ issuingCourt?: string; /** * Reference to a Valuation.id (for asset_valued events) */ valuationId?: string; /** * The valuation amount */ valuedAmount?: Money; /** * Person.id of distribution recipient (for distribution_made events) */ recipientPersonId?: string; /** * Human-readable display name for the referenced recipient person */ recipientPersonIdDisplay?: string; /** * Organisation.id of distribution recipient */ recipientOrganisationId?: string; /** * Human-readable display name for the referenced recipient organisation */ recipientOrganisationIdDisplay?: string; /** * Amount distributed */ distributionAmount?: Money; [key: string]: string | string | Money | string | undefined; }; /** * Consolidated provenance metadata — how this entity was created, by whom, and whether a human has verified it */ provenance?: Provenance; }; /** * INHERIT v3 Root Schema * * Root entry point for an INHERIT v3 estate data interchange document. Contains a single estate and arrays of all entity types */ export type SchemaWritable = unknown & { /** * Schema identifier — declares this as an INHERIT v3 document. Standard JSON Schema keyword */ $schema?: 'https://openinherit.org/v3/schema.json'; /** * JSON-LD context URI. When present, makes this document self-describing linked data */ '@context'?: string; /** * JSON-LD type, e.g. InheritDocument */ '@type'?: string; /** * Semver version of the INHERIT schema this document was created against. Enables consumers to detect compatibility and handle graceful degradation */ schemaVersion: string; /** * Sequential version number for this document. Incremented each time the document is substantively modified. Version 1 is the first version */ documentVersion?: number; /** * When this version of the document was created. Courts and regulators care about when changes were made, not just which version number */ versionedAt?: string; /** * Reference to the document ID of the previous version. Creates a linked list of document versions enabling version chain traversal. Null for the first version */ previousVersionId?: string | null; /** * Human-readable summary of what changed in this version. Like a commit message for the document */ changeDescription?: string; /** * The single estate record for this document */ estate: EstateWritable; /** * All people involved in the estate — testator, beneficiaries, executors, witnesses, guardians, etc */ people: Array; /** * Familial bonds between people in the estate. Essential for intestacy calculations */ kinships?: Array; /** * Spousal and partnership relationships. Determines marital property rights and surviving spouse claims */ relationships?: Array; /** * Real estate owned or partly owned by the testator */ properties?: Array; /** * Non-property assets — financial accounts, personal property, vehicles, digital assets, etc */ assets?: Array; /** * Named groups of related assets — collections (model railways, art, wine, etc.) that have collective significance and value */ assetCollections?: Array; /** * Debts and financial obligations of the estate, including cultural obligations (mahr, ketubah debt) */ liabilities?: Array; /** * Dispositions of property or money in the will */ bequests?: Array; /** * Trusts — testamentary or inter vivos — associated with the estate */ trusts?: Array; /** * Persons appointed to administer the estate */ executors?: Array; /** * Guardian appointments for minor children */ guardians?: Array; /** * Non-binding (or culturally binding) wishes — funeral, letters, pet care, digital estate */ wishes?: Array; /** * Documents associated with the estate — wills, codicils, trust deeds, certificates */ documents?: Array; /** * Assets that pass outside the probate estate — JTWROS, TOD deeds, beneficiary designations */ nonprobateTransfers?: Array; /** * Authorisations for proxies to act on behalf of the testator */ proxyAuthorisations?: Array; /** * Powers of appointment — testamentary authority granted to someone to decide distribution */ powersOfAppointment?: Array; /** * Valuations of assets, properties, and collections. Multiple valuations per entity are supported — owner estimates, professional valuations, AI estimates, dealer offers */ valuations?: Array; /** * Gifts and transfers made during the testator's lifetime. Critical for inheritance tax calculations — UK 7-year rule, US unified gift/estate tax, etc */ lifetimeTransfers?: Array; /** * Organisations that interact with the estate — legal firms, financial institutions, charities, dealers, funeral providers, employers, government bodies, and others */ organisations?: Array; /** * Spaces within properties — rooms, outbuildings, storage areas, and outdoor zones where assets are located */ spaces?: Array; /** * How this document was originally created. Indicates the primary method of data entry for the document as a whole — individual entities may have their own per-field provenance via confidenceScores */ dataProvenance?: 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated'; /** * Signals that this is an intentionally incomplete document. Enables incremental onboarding — platforms can import partially completed estate plans without triggering validation errors for missing fields */ partialDocument?: boolean; /** * The type of INHERIT bundle — indicates whether this is a complete document, a subset, or a transactional batch */ bundleType?: 'document' | 'collection' | 'transaction'; /** * Systems from which data was imported into this document. Enables audit trail and source tracking */ importSources?: Array; /** * Machine-readable conformance certificate — records the validation level, schema version, completeness score, and provenance summary at time of validation */ conformance?: Conformance; /** * Extension schemas applied to this document. Each entry declares the extension's identity, version, scope, and data block name */ extensions?: Array<{ /** * Unique extension identifier, e.g. 'uk-england-wales', 'islamic-succession' */ id: string; /** * Semver version of this extension */ version: string; /** * URI of the extension's JSON Schema */ schema: string; /** * Root-level field names indicating which entities carry inline x-inherit-* blocks for this extension */ scope?: Array; /** * The x-inherit-* property name for this extension's data block */ dataBlock?: string; }>; /** * Insurance policies associated with the estate — life, home, health, motor, travel, pet, and professional indemnity */ insurancePolicies?: Array; /** * Pets requiring care arrangements */ pets?: Array; /** * JWS-based tamper evidence for the INHERIT document */ integrity?: { /** * JWS algorithm, e.g. RS256, ES256 */ algorithm: string; /** * e.g. JCS (RFC 8785 JSON Canonicalization Scheme) */ canonicalisationMethod?: string; /** * Computed hash value */ hash?: string; /** * JWS signature value */ signature?: string; /** * When the signature was created */ signedAt?: string; /** * Who or what created the signature (W3C VC alignment) */ verificationMethod?: string; /** * URL to the signing certificate */ verificationMethodUrl?: string; /** * e.g. assertionMethod, authentication (W3C VC term) */ proofPurpose?: string; }; /** * Formal audit trail of actions taken on this document. Records who changed what, when, and why. Uses person ID references for GDPR data minimisation. Entries may be redacted under Article 17(3)(e) without breaking the log structure. Retention aligns with the estate document lifecycle */ auditLog?: Array; /** * Application-specific state that is NOT part of the INHERIT interchange standard. Implementations may use these fields internally but should not expect other systems to populate or consume them. Implementations may add custom fields beyond those listed here */ applicationState?: { /** * Notification history */ notifications?: Array; /** * Tracking which institutions have been notified of the death */ deathNotifications?: Array<{ /** * Name of institution notified */ institution: string; institutionType?: 'bank' | 'pension_provider' | 'insurance' | 'tax_authority' | 'utility' | 'social_media' | 'email_provider' | 'government' | 'employer' | 'other'; institutionOrganisationId?: string; notifiedAt?: string; /** * Who sent the notification */ notifiedBy?: string; method?: 'tell_us_once' | 'settld' | 'direct_letter' | 'direct_email' | 'direct_phone' | 'platform_form' | 'api' | 'solicitor' | 'other'; status?: 'pending' | 'sent' | 'acknowledged' | 'actioned' | 'rejected' | 'unknown'; referenceNumber?: string; responseDate?: string; notes?: string; }>; /** * Recommended next actions generated from data gaps, urgency flags, incomplete transfer history, missing valuations, and estate status. Actions adapt to the current lifecycle stage */ recommendedActions?: Array; /** * Estate completeness score — jurisdiction-aware checklist tracking what data has been captured, what's missing, and how complete the estate plan is */ completeness?: CompletenessWritable; /** * Estimated tax position summary computed from valuations, lifetime transfers, exemptions, and jurisdiction-specific thresholds. Always includes a disclaimer — this is informational, not tax advice */ taxPosition?: TaxPositionWritable; /** * People nominated to receive access to the estate data or catalogue when the account owner dies or becomes incapacitated. This is a digital inheritance concept, not a legal role — legacy contacts are notified and given access, not granted legal authority. The 'Please open when I have passed away' letter is generated by the application, not stored here */ legacyContacts?: Array; /** * Consent flags for anonymised data sharing. Always withdrawable per GDPR Article 7(3) */ dataSharing?: DataSharing; /** * Audit trail of events that occurred during estate administration */ events?: Array; /** * Audit trail of document exchanges */ transmissions?: Array<{ /** * When the document was sent */ sentAt: string; /** * Who sent it (schema.org sender) */ sender: string; receivedAt?: string; /** * Who received it (schema.org recipient) */ recipient?: string; method?: 'encrypted_email' | 'secure_portal' | 'api' | 'physical_media' | 'registered_post' | 'other'; /** * e.g. AES-256-GCM, PGP, age */ encryptionMethod?: string; /** * Whether recipient verified document integrity */ verified?: boolean; verifiedAt?: string; notes?: string; }>; /** * Acknowledgements of roles and entitlements */ acknowledgements?: Array; /** * Informal beneficiary interest in specific assets or collections, captured before formal bequest allocation */ assetInterests?: Array; /** * Third-party interest in estate assets — dealers, investors, collectors */ dealerInterests?: Array; /** * Recurring subscriptions to be managed after death */ subscriptions?: Array; [key: string]: unknown; }; /** * Machine-readable cross-reference integrity constraints. Defined in the schema, not in individual documents. Validators read these rules and check that every referenced ID exists in the target array */ referentialIntegrity?: Array; [key: string]: { [key: string]: unknown; } | 'https://openinherit.org/v3/schema.json' | string | string | string | number | string | string | null | string | EstateWritable | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | Array | 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated' | boolean | 'document' | 'collection' | 'transaction' | Array | Conformance | Array<{ /** * Unique extension identifier, e.g. 'uk-england-wales', 'islamic-succession' */ id: string; /** * Semver version of this extension */ version: string; /** * URI of the extension's JSON Schema */ schema: string; /** * Root-level field names indicating which entities carry inline x-inherit-* blocks for this extension */ scope?: Array; /** * The x-inherit-* property name for this extension's data block */ dataBlock?: string; }> | Array | Array | { /** * JWS algorithm, e.g. RS256, ES256 */ algorithm: string; /** * e.g. JCS (RFC 8785 JSON Canonicalization Scheme) */ canonicalisationMethod?: string; /** * Computed hash value */ hash?: string; /** * JWS signature value */ signature?: string; /** * When the signature was created */ signedAt?: string; /** * Who or what created the signature (W3C VC alignment) */ verificationMethod?: string; /** * URL to the signing certificate */ verificationMethodUrl?: string; /** * e.g. assertionMethod, authentication (W3C VC term) */ proofPurpose?: string; } | Array | { /** * Notification history */ notifications?: Array; /** * Tracking which institutions have been notified of the death */ deathNotifications?: Array<{ /** * Name of institution notified */ institution: string; institutionType?: 'bank' | 'pension_provider' | 'insurance' | 'tax_authority' | 'utility' | 'social_media' | 'email_provider' | 'government' | 'employer' | 'other'; institutionOrganisationId?: string; notifiedAt?: string; /** * Who sent the notification */ notifiedBy?: string; method?: 'tell_us_once' | 'settld' | 'direct_letter' | 'direct_email' | 'direct_phone' | 'platform_form' | 'api' | 'solicitor' | 'other'; status?: 'pending' | 'sent' | 'acknowledged' | 'actioned' | 'rejected' | 'unknown'; referenceNumber?: string; responseDate?: string; notes?: string; }>; /** * Recommended next actions generated from data gaps, urgency flags, incomplete transfer history, missing valuations, and estate status. Actions adapt to the current lifecycle stage */ recommendedActions?: Array; /** * Estate completeness score — jurisdiction-aware checklist tracking what data has been captured, what's missing, and how complete the estate plan is */ completeness?: CompletenessWritable; /** * Estimated tax position summary computed from valuations, lifetime transfers, exemptions, and jurisdiction-specific thresholds. Always includes a disclaimer — this is informational, not tax advice */ taxPosition?: TaxPositionWritable; /** * People nominated to receive access to the estate data or catalogue when the account owner dies or becomes incapacitated. This is a digital inheritance concept, not a legal role — legacy contacts are notified and given access, not granted legal authority. The 'Please open when I have passed away' letter is generated by the application, not stored here */ legacyContacts?: Array; /** * Consent flags for anonymised data sharing. Always withdrawable per GDPR Article 7(3) */ dataSharing?: DataSharing; /** * Audit trail of events that occurred during estate administration */ events?: Array; /** * Audit trail of document exchanges */ transmissions?: Array<{ /** * When the document was sent */ sentAt: string; /** * Who sent it (schema.org sender) */ sender: string; receivedAt?: string; /** * Who received it (schema.org recipient) */ recipient?: string; method?: 'encrypted_email' | 'secure_portal' | 'api' | 'physical_media' | 'registered_post' | 'other'; /** * e.g. AES-256-GCM, PGP, age */ encryptionMethod?: string; /** * Whether recipient verified document integrity */ verified?: boolean; verifiedAt?: string; notes?: string; }>; /** * Acknowledgements of roles and entitlements */ acknowledgements?: Array; /** * Informal beneficiary interest in specific assets or collections, captured before formal bequest allocation */ assetInterests?: Array; /** * Third-party interest in estate assets — dealers, investors, collectors */ dealerInterests?: Array; /** * Recurring subscriptions to be managed after death */ subscriptions?: Array; [key: string]: unknown; } | Array | undefined; }; /** * INHERIT v2 Catalogue Schema * * Lightweight root schema for catalogue-only documents — living collectors cataloguing items without the full estate envelope. Assets, collections, valuations, and legacy contacts. Upgrade path: wrap in a full estate document (schema.json) when needed */ export type CatalogueWritable = { /** * Schema identifier — declares this as an INHERIT v3 catalogue document */ $schema?: 'https://openinherit.org/v3/catalogue.json'; /** * JSON-LD context URI */ '@context'?: string; schemaVersion?: string; /** * Sequential version number for this document. Incremented each time the document is substantively modified. Version 1 is the first version */ documentVersion?: number; /** * When this version of the document was created. Courts and regulators care about when changes were made, not just which version number */ versionedAt?: string; /** * Reference to the document ID of the previous version. Creates a linked list of document versions enabling version chain traversal. Null for the first version */ previousVersionId?: string | null; /** * Human-readable summary of what changed in this version. Like a commit message for the document */ changeDescription?: string; /** * The catalogued items */ assets: Array; /** * Named groupings of assets */ assetCollections?: Array; /** * Organisations associated with catalogued assets — dealers, retailers, valuers, auction houses */ organisations?: Array; /** * Physical storage locations for items in this catalogue. Each asset can reference a space via spaceId. Critical for collectors with items across multiple properties or countries — affects probate jurisdiction and dealer collection logistics */ spaces?: Array; /** * Valuations of items and collections */ valuations?: Array; /** * People to notify and grant access when the owner dies. The 'Please open when I have passed away' letter recipients */ legacyContacts?: Array; /** * Expressions of interest about assets, collections, or products. Includes the catalogue owner's own wishlist (things they want to acquire), interest from other people, and allocation intentions. Complements assets[] — assets are things you own; assetInterests are things you want, things others want, and decisions about who gets what */ assetInterests?: Array; /** * Personal messages, letters, care instructions, and non-binding wishes. Complements legacyContacts — legacyContacts tracks who receives the letter; wishes stores what it says. Types: letter (personal messages to specific people), care (maintenance and care instructions for items or collections), distribution (non-binding preferences about what should happen to items), general (anything else) */ wishes?: Array; /** * Default data provenance for entities in this catalogue */ dataProvenance?: 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated'; /** * Systems data was imported from */ importSources?: Array; completeness?: CompletenessWritable; recommendedActions?: Array; conformance?: Conformance; /** * Insurance policies associated with catalogued assets */ insurancePolicies?: Array; /** * Provisional offers and expressions of interest from dealers. Allows the catalogue owner to receive and track dealer offers on items they are considering selling, or standing offers to be included in the LegacyLetter */ dealerInterests?: Array; /** * Settings for the shareable gift wishlist. When enabled, the owner can share a public link to their wishlist for family and friends to buy from */ giftListSettings?: { /** * Whether the gift list is currently shareable */ enabled?: boolean; /** * The owner's personal message shown at the top of the gift list */ personalMessage?: string; /** * Who can see the gift list */ visibility?: 'public' | 'link_only' | 'private'; /** * Asset interest IDs that someone has marked as bought. These are hidden from the public gift list to prevent duplicate gifts */ fulfilledItems?: Array; }; /** * Metadata about the LegacyLetter — the printed or digital document addressed to the owner's legacy contacts, summarising the catalogue, allocations, dealer offers, and personal messages. Tracks generation status to flag when the letter is stale */ legacyLetter?: { /** * When the letter was last generated */ lastGenerated?: string; /** * Incremental version number of the letter */ version?: number; /** * Whether the letter has been delivered to the legacy contacts */ delivered?: boolean; /** * How the letter was delivered */ deliveryMethod?: 'printed' | 'digital' | 'both'; /** * Number of items in the catalogue when the letter was last generated. Used to detect staleness — if the current item count differs significantly, the letter should be regenerated */ itemCountAtGeneration?: number; }; /** * Formal audit trail of actions taken on this document. Records who changed what, when, and why. Uses person ID references for GDPR data minimisation. Entries may be redacted under Article 17(3)(e) without breaking the log structure. Retention aligns with the estate document lifecycle */ auditLog?: Array; [key: string]: { [key: string]: unknown; } | 'https://openinherit.org/v3/catalogue.json' | string | string | number | string | string | null | string | Array | Array | Array | Array | Array | Array | Array | Array | 'manual_entry' | 'ai_extracted' | 'ocr_scanned' | 'imported' | 'migrated' | 'system_generated' | Array | CompletenessWritable | Array | Conformance | Array | Array | { /** * Whether the gift list is currently shareable */ enabled?: boolean; /** * The owner's personal message shown at the top of the gift list */ personalMessage?: string; /** * Who can see the gift list */ visibility?: 'public' | 'link_only' | 'private'; /** * Asset interest IDs that someone has marked as bought. These are hidden from the public gift list to prevent duplicate gifts */ fulfilledItems?: Array; } | { /** * When the letter was last generated */ lastGenerated?: string; /** * Incremental version number of the letter */ version?: number; /** * Whether the letter has been delivered to the legacy contacts */ delivered?: boolean; /** * How the letter was delivered */ deliveryMethod?: 'printed' | 'digital' | 'both'; /** * Number of items in the catalogue when the letter was last generated. Used to detect staleness — if the current item count differs significantly, the letter should be regenerated */ itemCountAtGeneration?: number; } | Array | undefined; }; /** * Unique identifier for the estate (UUID v4) */ export type EstateId = string; /** * Opaque cursor for pagination — use the value returned in the previous response */ export type Cursor = string; /** * Maximum number of items to return (1–100) */ export type Limit = number; export type ListEstatesData = { body?: never; path?: never; query?: { /** * Opaque cursor for pagination — use the value returned in the previous response */ cursor?: string; /** * Maximum number of items to return (1–100) */ limit?: number; /** * Filter by estate status */ status?: 'draft' | 'active' | 'locked' | 'archived'; /** * Filter by jurisdiction code (ISO 3166-2) */ jurisdiction?: string; }; url: '/estates'; }; export type ListEstatesResponses = { /** * Paginated list of estates */ 200: PaginatedEstateList; }; export type ListEstatesResponse = ListEstatesResponses[keyof ListEstatesResponses]; export type CreateEstateData = { body: EstateWritable; path?: never; query?: never; url: '/estates'; }; export type CreateEstateErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateEstateError = CreateEstateErrors[keyof CreateEstateErrors]; export type CreateEstateResponses = { /** * Estate created successfully */ 201: Estate; }; export type CreateEstateResponse = CreateEstateResponses[keyof CreateEstateResponses]; export type DeleteEstateData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}'; }; export type DeleteEstateErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteEstateError = DeleteEstateErrors[keyof DeleteEstateErrors]; export type DeleteEstateResponses = { /** * Estate deleted successfully */ 204: void; }; export type DeleteEstateResponse = DeleteEstateResponses[keyof DeleteEstateResponses]; export type GetEstateData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}'; }; export type GetEstateErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetEstateError = GetEstateErrors[keyof GetEstateErrors]; export type GetEstateResponses = { /** * Estate retrieved successfully */ 200: Estate; }; export type GetEstateResponse = GetEstateResponses[keyof GetEstateResponses]; export type UpdateEstateData = { body: EstateWritable; headers?: { /** * ETag value from a previous response for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}'; }; export type UpdateEstateErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; /** * Precondition failed — ETag mismatch */ 412: Error; }; export type UpdateEstateError = UpdateEstateErrors[keyof UpdateEstateErrors]; export type UpdateEstateResponses = { /** * Estate updated successfully */ 200: Estate; }; export type UpdateEstateResponse = UpdateEstateResponses[keyof UpdateEstateResponses]; export type ListPeopleData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/people'; }; export type ListPeopleResponses = { /** * List of people */ 200: { items: Array; }; }; export type ListPeopleResponse = ListPeopleResponses[keyof ListPeopleResponses]; export type CreatePersonData = { body: PersonWritable; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/people'; }; export type CreatePersonErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreatePersonError = CreatePersonErrors[keyof CreatePersonErrors]; export type CreatePersonResponses = { /** * Person created successfully */ 201: Person; }; export type CreatePersonResponse = CreatePersonResponses[keyof CreatePersonResponses]; export type DeletePersonData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the person (UUID v4) */ personId: string; }; query?: never; url: '/estates/{estateId}/people/{personId}'; }; export type DeletePersonErrors = { /** * The requested resource was not found */ 404: Error; /** * The request conflicts with the current state of the resource */ 409: Error; }; export type DeletePersonError = DeletePersonErrors[keyof DeletePersonErrors]; export type DeletePersonResponses = { /** * Person deleted successfully */ 204: void; }; export type DeletePersonResponse = DeletePersonResponses[keyof DeletePersonResponses]; export type GetPersonData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the person (UUID v4) */ personId: string; }; query?: never; url: '/estates/{estateId}/people/{personId}'; }; export type GetPersonErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetPersonError = GetPersonErrors[keyof GetPersonErrors]; export type GetPersonResponses = { /** * Person retrieved successfully */ 200: Person; }; export type GetPersonResponse = GetPersonResponses[keyof GetPersonResponses]; export type UpdatePersonData = { body: PersonWritable; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the person (UUID v4) */ personId: string; }; query?: never; url: '/estates/{estateId}/people/{personId}'; }; export type UpdatePersonErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdatePersonError = UpdatePersonErrors[keyof UpdatePersonErrors]; export type UpdatePersonResponses = { /** * Person updated successfully */ 200: Person; }; export type UpdatePersonResponse = UpdatePersonResponses[keyof UpdatePersonResponses]; export type ReplacePersonData = { body: PersonWritable; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the person (UUID v4) */ personId: string; }; query?: never; url: '/estates/{estateId}/people/{personId}'; }; export type ReplacePersonErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplacePersonError = ReplacePersonErrors[keyof ReplacePersonErrors]; export type ReplacePersonResponses = { /** * Person replaced successfully */ 200: Person; }; export type ReplacePersonResponse = ReplacePersonResponses[keyof ReplacePersonResponses]; export type ListRelationshipsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/relationships'; }; export type ListRelationshipsResponses = { /** * List of relationships */ 200: { items: Array; }; }; export type ListRelationshipsResponse = ListRelationshipsResponses[keyof ListRelationshipsResponses]; export type CreateRelationshipData = { body: Relationship; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/relationships'; }; export type CreateRelationshipErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateRelationshipError = CreateRelationshipErrors[keyof CreateRelationshipErrors]; export type CreateRelationshipResponses = { /** * Relationship created successfully */ 201: Relationship; }; export type CreateRelationshipResponse = CreateRelationshipResponses[keyof CreateRelationshipResponses]; export type DeleteRelationshipData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the relationship (UUID v4) */ relationshipId: string; }; query?: never; url: '/estates/{estateId}/relationships/{relationshipId}'; }; export type DeleteRelationshipErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteRelationshipError = DeleteRelationshipErrors[keyof DeleteRelationshipErrors]; export type DeleteRelationshipResponses = { /** * Relationship deleted successfully */ 204: void; }; export type DeleteRelationshipResponse = DeleteRelationshipResponses[keyof DeleteRelationshipResponses]; export type GetRelationshipData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the relationship (UUID v4) */ relationshipId: string; }; query?: never; url: '/estates/{estateId}/relationships/{relationshipId}'; }; export type GetRelationshipErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetRelationshipError = GetRelationshipErrors[keyof GetRelationshipErrors]; export type GetRelationshipResponses = { /** * Relationship retrieved successfully */ 200: Relationship; }; export type GetRelationshipResponse = GetRelationshipResponses[keyof GetRelationshipResponses]; export type UpdateRelationshipData = { body: Relationship; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the relationship (UUID v4) */ relationshipId: string; }; query?: never; url: '/estates/{estateId}/relationships/{relationshipId}'; }; export type UpdateRelationshipErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateRelationshipError = UpdateRelationshipErrors[keyof UpdateRelationshipErrors]; export type UpdateRelationshipResponses = { /** * Relationship updated successfully */ 200: Relationship; }; export type UpdateRelationshipResponse = UpdateRelationshipResponses[keyof UpdateRelationshipResponses]; export type ReplaceRelationshipData = { body: Relationship; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the relationship (UUID v4) */ relationshipId: string; }; query?: never; url: '/estates/{estateId}/relationships/{relationshipId}'; }; export type ReplaceRelationshipErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceRelationshipError = ReplaceRelationshipErrors[keyof ReplaceRelationshipErrors]; export type ReplaceRelationshipResponses = { /** * Relationship replaced successfully */ 200: Relationship; }; export type ReplaceRelationshipResponse = ReplaceRelationshipResponses[keyof ReplaceRelationshipResponses]; export type ListKinshipsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/kinships'; }; export type ListKinshipsResponses = { /** * List of kinships */ 200: { items: Array; }; }; export type ListKinshipsResponse = ListKinshipsResponses[keyof ListKinshipsResponses]; export type CreateKinshipData = { body: Kinship; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/kinships'; }; export type CreateKinshipErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateKinshipError = CreateKinshipErrors[keyof CreateKinshipErrors]; export type CreateKinshipResponses = { /** * Kinship created successfully */ 201: Kinship; }; export type CreateKinshipResponse = CreateKinshipResponses[keyof CreateKinshipResponses]; export type DeleteKinshipData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the kinship (UUID v4) */ kinshipId: string; }; query?: never; url: '/estates/{estateId}/kinships/{kinshipId}'; }; export type DeleteKinshipErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteKinshipError = DeleteKinshipErrors[keyof DeleteKinshipErrors]; export type DeleteKinshipResponses = { /** * Kinship deleted successfully */ 204: void; }; export type DeleteKinshipResponse = DeleteKinshipResponses[keyof DeleteKinshipResponses]; export type GetKinshipData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the kinship (UUID v4) */ kinshipId: string; }; query?: never; url: '/estates/{estateId}/kinships/{kinshipId}'; }; export type GetKinshipErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetKinshipError = GetKinshipErrors[keyof GetKinshipErrors]; export type GetKinshipResponses = { /** * Kinship retrieved successfully */ 200: Kinship; }; export type GetKinshipResponse = GetKinshipResponses[keyof GetKinshipResponses]; export type UpdateKinshipData = { body: Kinship; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the kinship (UUID v4) */ kinshipId: string; }; query?: never; url: '/estates/{estateId}/kinships/{kinshipId}'; }; export type UpdateKinshipErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateKinshipError = UpdateKinshipErrors[keyof UpdateKinshipErrors]; export type UpdateKinshipResponses = { /** * Kinship updated successfully */ 200: Kinship; }; export type UpdateKinshipResponse = UpdateKinshipResponses[keyof UpdateKinshipResponses]; export type ReplaceKinshipData = { body: Kinship; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the kinship (UUID v4) */ kinshipId: string; }; query?: never; url: '/estates/{estateId}/kinships/{kinshipId}'; }; export type ReplaceKinshipErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceKinshipError = ReplaceKinshipErrors[keyof ReplaceKinshipErrors]; export type ReplaceKinshipResponses = { /** * Kinship replaced successfully */ 200: Kinship; }; export type ReplaceKinshipResponse = ReplaceKinshipResponses[keyof ReplaceKinshipResponses]; export type ListPropertiesData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/properties'; }; export type ListPropertiesResponses = { /** * List of properties */ 200: { items: Array; }; }; export type ListPropertiesResponse = ListPropertiesResponses[keyof ListPropertiesResponses]; export type CreatePropertyData = { body: Property; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/properties'; }; export type CreatePropertyErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreatePropertyError = CreatePropertyErrors[keyof CreatePropertyErrors]; export type CreatePropertyResponses = { /** * Property created successfully */ 201: Property; }; export type CreatePropertyResponse = CreatePropertyResponses[keyof CreatePropertyResponses]; export type DeletePropertyData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the property (UUID v4) */ propertyId: string; }; query?: never; url: '/estates/{estateId}/properties/{propertyId}'; }; export type DeletePropertyErrors = { /** * The requested resource was not found */ 404: Error; /** * The request conflicts with the current state of the resource */ 409: Error; }; export type DeletePropertyError = DeletePropertyErrors[keyof DeletePropertyErrors]; export type DeletePropertyResponses = { /** * Property deleted successfully */ 204: void; }; export type DeletePropertyResponse = DeletePropertyResponses[keyof DeletePropertyResponses]; export type GetPropertyData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the property (UUID v4) */ propertyId: string; }; query?: never; url: '/estates/{estateId}/properties/{propertyId}'; }; export type GetPropertyErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetPropertyError = GetPropertyErrors[keyof GetPropertyErrors]; export type GetPropertyResponses = { /** * Property retrieved successfully */ 200: Property; }; export type GetPropertyResponse = GetPropertyResponses[keyof GetPropertyResponses]; export type UpdatePropertyData = { body: Property; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the property (UUID v4) */ propertyId: string; }; query?: never; url: '/estates/{estateId}/properties/{propertyId}'; }; export type UpdatePropertyErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdatePropertyError = UpdatePropertyErrors[keyof UpdatePropertyErrors]; export type UpdatePropertyResponses = { /** * Property updated successfully */ 200: Property; }; export type UpdatePropertyResponse = UpdatePropertyResponses[keyof UpdatePropertyResponses]; export type ReplacePropertyData = { body: Property; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the property (UUID v4) */ propertyId: string; }; query?: never; url: '/estates/{estateId}/properties/{propertyId}'; }; export type ReplacePropertyErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplacePropertyError = ReplacePropertyErrors[keyof ReplacePropertyErrors]; export type ReplacePropertyResponses = { /** * Property replaced successfully */ 200: Property; }; export type ReplacePropertyResponse = ReplacePropertyResponses[keyof ReplacePropertyResponses]; export type ListAssetsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/assets'; }; export type ListAssetsResponses = { /** * List of assets */ 200: { items: Array; }; }; export type ListAssetsResponse = ListAssetsResponses[keyof ListAssetsResponses]; export type CreateAssetData = { body: AssetWritable; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/assets'; }; export type CreateAssetErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateAssetError = CreateAssetErrors[keyof CreateAssetErrors]; export type CreateAssetResponses = { /** * Asset created successfully */ 201: Asset; }; export type CreateAssetResponse = CreateAssetResponses[keyof CreateAssetResponses]; export type DeleteAssetData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the asset (UUID v4) */ assetId: string; }; query?: never; url: '/estates/{estateId}/assets/{assetId}'; }; export type DeleteAssetErrors = { /** * The requested resource was not found */ 404: Error; /** * The request conflicts with the current state of the resource */ 409: Error; }; export type DeleteAssetError = DeleteAssetErrors[keyof DeleteAssetErrors]; export type DeleteAssetResponses = { /** * Asset deleted successfully */ 204: void; }; export type DeleteAssetResponse = DeleteAssetResponses[keyof DeleteAssetResponses]; export type GetAssetData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the asset (UUID v4) */ assetId: string; }; query?: never; url: '/estates/{estateId}/assets/{assetId}'; }; export type GetAssetErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetAssetError = GetAssetErrors[keyof GetAssetErrors]; export type GetAssetResponses = { /** * Asset retrieved successfully */ 200: Asset; }; export type GetAssetResponse = GetAssetResponses[keyof GetAssetResponses]; export type UpdateAssetData = { body: AssetWritable; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the asset (UUID v4) */ assetId: string; }; query?: never; url: '/estates/{estateId}/assets/{assetId}'; }; export type UpdateAssetErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateAssetError = UpdateAssetErrors[keyof UpdateAssetErrors]; export type UpdateAssetResponses = { /** * Asset updated successfully */ 200: Asset; }; export type UpdateAssetResponse = UpdateAssetResponses[keyof UpdateAssetResponses]; export type ReplaceAssetData = { body: AssetWritable; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the asset (UUID v4) */ assetId: string; }; query?: never; url: '/estates/{estateId}/assets/{assetId}'; }; export type ReplaceAssetErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceAssetError = ReplaceAssetErrors[keyof ReplaceAssetErrors]; export type ReplaceAssetResponses = { /** * Asset replaced successfully */ 200: Asset; }; export type ReplaceAssetResponse = ReplaceAssetResponses[keyof ReplaceAssetResponses]; export type ListLiabilitiesData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/liabilities'; }; export type ListLiabilitiesResponses = { /** * List of liabilities */ 200: { items: Array; }; }; export type ListLiabilitiesResponse = ListLiabilitiesResponses[keyof ListLiabilitiesResponses]; export type CreateLiabilityData = { body: Liability; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/liabilities'; }; export type CreateLiabilityErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateLiabilityError = CreateLiabilityErrors[keyof CreateLiabilityErrors]; export type CreateLiabilityResponses = { /** * Liability created successfully */ 201: Liability; }; export type CreateLiabilityResponse = CreateLiabilityResponses[keyof CreateLiabilityResponses]; export type DeleteLiabilityData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the liability (UUID v4) */ liabilityId: string; }; query?: never; url: '/estates/{estateId}/liabilities/{liabilityId}'; }; export type DeleteLiabilityErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteLiabilityError = DeleteLiabilityErrors[keyof DeleteLiabilityErrors]; export type DeleteLiabilityResponses = { /** * Liability deleted successfully */ 204: void; }; export type DeleteLiabilityResponse = DeleteLiabilityResponses[keyof DeleteLiabilityResponses]; export type GetLiabilityData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the liability (UUID v4) */ liabilityId: string; }; query?: never; url: '/estates/{estateId}/liabilities/{liabilityId}'; }; export type GetLiabilityErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetLiabilityError = GetLiabilityErrors[keyof GetLiabilityErrors]; export type GetLiabilityResponses = { /** * Liability retrieved successfully */ 200: Liability; }; export type GetLiabilityResponse = GetLiabilityResponses[keyof GetLiabilityResponses]; export type UpdateLiabilityData = { body: Liability; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the liability (UUID v4) */ liabilityId: string; }; query?: never; url: '/estates/{estateId}/liabilities/{liabilityId}'; }; export type UpdateLiabilityErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateLiabilityError = UpdateLiabilityErrors[keyof UpdateLiabilityErrors]; export type UpdateLiabilityResponses = { /** * Liability updated successfully */ 200: Liability; }; export type UpdateLiabilityResponse = UpdateLiabilityResponses[keyof UpdateLiabilityResponses]; export type ReplaceLiabilityData = { body: Liability; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the liability (UUID v4) */ liabilityId: string; }; query?: never; url: '/estates/{estateId}/liabilities/{liabilityId}'; }; export type ReplaceLiabilityErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceLiabilityError = ReplaceLiabilityErrors[keyof ReplaceLiabilityErrors]; export type ReplaceLiabilityResponses = { /** * Liability replaced successfully */ 200: Liability; }; export type ReplaceLiabilityResponse = ReplaceLiabilityResponses[keyof ReplaceLiabilityResponses]; export type ListBequestsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/bequests'; }; export type ListBequestsResponses = { /** * List of bequests */ 200: { items: Array; }; }; export type ListBequestsResponse = ListBequestsResponses[keyof ListBequestsResponses]; export type CreateBequestData = { body: Bequest; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/bequests'; }; export type CreateBequestErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateBequestError = CreateBequestErrors[keyof CreateBequestErrors]; export type CreateBequestResponses = { /** * Bequest created successfully */ 201: Bequest; }; export type CreateBequestResponse = CreateBequestResponses[keyof CreateBequestResponses]; export type DeleteBequestData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the bequest (UUID v4) */ bequestId: string; }; query?: never; url: '/estates/{estateId}/bequests/{bequestId}'; }; export type DeleteBequestErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteBequestError = DeleteBequestErrors[keyof DeleteBequestErrors]; export type DeleteBequestResponses = { /** * Bequest deleted successfully */ 204: void; }; export type DeleteBequestResponse = DeleteBequestResponses[keyof DeleteBequestResponses]; export type GetBequestData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the bequest (UUID v4) */ bequestId: string; }; query?: never; url: '/estates/{estateId}/bequests/{bequestId}'; }; export type GetBequestErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetBequestError = GetBequestErrors[keyof GetBequestErrors]; export type GetBequestResponses = { /** * Bequest retrieved successfully */ 200: Bequest; }; export type GetBequestResponse = GetBequestResponses[keyof GetBequestResponses]; export type UpdateBequestData = { body: Bequest; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the bequest (UUID v4) */ bequestId: string; }; query?: never; url: '/estates/{estateId}/bequests/{bequestId}'; }; export type UpdateBequestErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateBequestError = UpdateBequestErrors[keyof UpdateBequestErrors]; export type UpdateBequestResponses = { /** * Bequest updated successfully */ 200: Bequest; }; export type UpdateBequestResponse = UpdateBequestResponses[keyof UpdateBequestResponses]; export type ReplaceBequestData = { body: Bequest; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the bequest (UUID v4) */ bequestId: string; }; query?: never; url: '/estates/{estateId}/bequests/{bequestId}'; }; export type ReplaceBequestErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceBequestError = ReplaceBequestErrors[keyof ReplaceBequestErrors]; export type ReplaceBequestResponses = { /** * Bequest replaced successfully */ 200: Bequest; }; export type ReplaceBequestResponse = ReplaceBequestResponses[keyof ReplaceBequestResponses]; export type ListTrustsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/trusts'; }; export type ListTrustsResponses = { /** * List of trusts */ 200: { items: Array; }; }; export type ListTrustsResponse = ListTrustsResponses[keyof ListTrustsResponses]; export type CreateTrustData = { body: Trust; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/trusts'; }; export type CreateTrustErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateTrustError = CreateTrustErrors[keyof CreateTrustErrors]; export type CreateTrustResponses = { /** * Trust created successfully */ 201: Trust; }; export type CreateTrustResponse = CreateTrustResponses[keyof CreateTrustResponses]; export type DeleteTrustData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the trust (UUID v4) */ trustId: string; }; query?: never; url: '/estates/{estateId}/trusts/{trustId}'; }; export type DeleteTrustErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteTrustError = DeleteTrustErrors[keyof DeleteTrustErrors]; export type DeleteTrustResponses = { /** * Trust deleted successfully */ 204: void; }; export type DeleteTrustResponse = DeleteTrustResponses[keyof DeleteTrustResponses]; export type GetTrustData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the trust (UUID v4) */ trustId: string; }; query?: never; url: '/estates/{estateId}/trusts/{trustId}'; }; export type GetTrustErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetTrustError = GetTrustErrors[keyof GetTrustErrors]; export type GetTrustResponses = { /** * Trust retrieved successfully */ 200: Trust; }; export type GetTrustResponse = GetTrustResponses[keyof GetTrustResponses]; export type UpdateTrustData = { body: Trust; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the trust (UUID v4) */ trustId: string; }; query?: never; url: '/estates/{estateId}/trusts/{trustId}'; }; export type UpdateTrustErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateTrustError = UpdateTrustErrors[keyof UpdateTrustErrors]; export type UpdateTrustResponses = { /** * Trust updated successfully */ 200: Trust; }; export type UpdateTrustResponse = UpdateTrustResponses[keyof UpdateTrustResponses]; export type ReplaceTrustData = { body: Trust; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the trust (UUID v4) */ trustId: string; }; query?: never; url: '/estates/{estateId}/trusts/{trustId}'; }; export type ReplaceTrustErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceTrustError = ReplaceTrustErrors[keyof ReplaceTrustErrors]; export type ReplaceTrustResponses = { /** * Trust replaced successfully */ 200: Trust; }; export type ReplaceTrustResponse = ReplaceTrustResponses[keyof ReplaceTrustResponses]; export type ListExecutorsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/executors'; }; export type ListExecutorsResponses = { /** * List of executors */ 200: { items: Array; }; }; export type ListExecutorsResponse = ListExecutorsResponses[keyof ListExecutorsResponses]; export type CreateExecutorData = { body: Executor; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/executors'; }; export type CreateExecutorErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateExecutorError = CreateExecutorErrors[keyof CreateExecutorErrors]; export type CreateExecutorResponses = { /** * Executor created successfully */ 201: Executor; }; export type CreateExecutorResponse = CreateExecutorResponses[keyof CreateExecutorResponses]; export type DeleteExecutorData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the executor (UUID v4) */ executorId: string; }; query?: never; url: '/estates/{estateId}/executors/{executorId}'; }; export type DeleteExecutorErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteExecutorError = DeleteExecutorErrors[keyof DeleteExecutorErrors]; export type DeleteExecutorResponses = { /** * Executor deleted successfully */ 204: void; }; export type DeleteExecutorResponse = DeleteExecutorResponses[keyof DeleteExecutorResponses]; export type GetExecutorData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the executor (UUID v4) */ executorId: string; }; query?: never; url: '/estates/{estateId}/executors/{executorId}'; }; export type GetExecutorErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetExecutorError = GetExecutorErrors[keyof GetExecutorErrors]; export type GetExecutorResponses = { /** * Executor retrieved successfully */ 200: Executor; }; export type GetExecutorResponse = GetExecutorResponses[keyof GetExecutorResponses]; export type UpdateExecutorData = { body: Executor; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the executor (UUID v4) */ executorId: string; }; query?: never; url: '/estates/{estateId}/executors/{executorId}'; }; export type UpdateExecutorErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateExecutorError = UpdateExecutorErrors[keyof UpdateExecutorErrors]; export type UpdateExecutorResponses = { /** * Executor updated successfully */ 200: Executor; }; export type UpdateExecutorResponse = UpdateExecutorResponses[keyof UpdateExecutorResponses]; export type ReplaceExecutorData = { body: Executor; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the executor (UUID v4) */ executorId: string; }; query?: never; url: '/estates/{estateId}/executors/{executorId}'; }; export type ReplaceExecutorErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceExecutorError = ReplaceExecutorErrors[keyof ReplaceExecutorErrors]; export type ReplaceExecutorResponses = { /** * Executor replaced successfully */ 200: Executor; }; export type ReplaceExecutorResponse = ReplaceExecutorResponses[keyof ReplaceExecutorResponses]; export type ListGuardiansData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/guardians'; }; export type ListGuardiansResponses = { /** * List of guardians */ 200: { items: Array; }; }; export type ListGuardiansResponse = ListGuardiansResponses[keyof ListGuardiansResponses]; export type CreateGuardianData = { body: Guardian; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/guardians'; }; export type CreateGuardianErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateGuardianError = CreateGuardianErrors[keyof CreateGuardianErrors]; export type CreateGuardianResponses = { /** * Guardian created successfully */ 201: Guardian; }; export type CreateGuardianResponse = CreateGuardianResponses[keyof CreateGuardianResponses]; export type DeleteGuardianData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the guardian (UUID v4) */ guardianId: string; }; query?: never; url: '/estates/{estateId}/guardians/{guardianId}'; }; export type DeleteGuardianErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteGuardianError = DeleteGuardianErrors[keyof DeleteGuardianErrors]; export type DeleteGuardianResponses = { /** * Guardian deleted successfully */ 204: void; }; export type DeleteGuardianResponse = DeleteGuardianResponses[keyof DeleteGuardianResponses]; export type GetGuardianData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the guardian (UUID v4) */ guardianId: string; }; query?: never; url: '/estates/{estateId}/guardians/{guardianId}'; }; export type GetGuardianErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetGuardianError = GetGuardianErrors[keyof GetGuardianErrors]; export type GetGuardianResponses = { /** * Guardian retrieved successfully */ 200: Guardian; }; export type GetGuardianResponse = GetGuardianResponses[keyof GetGuardianResponses]; export type UpdateGuardianData = { body: Guardian; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the guardian (UUID v4) */ guardianId: string; }; query?: never; url: '/estates/{estateId}/guardians/{guardianId}'; }; export type UpdateGuardianErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateGuardianError = UpdateGuardianErrors[keyof UpdateGuardianErrors]; export type UpdateGuardianResponses = { /** * Guardian updated successfully */ 200: Guardian; }; export type UpdateGuardianResponse = UpdateGuardianResponses[keyof UpdateGuardianResponses]; export type ReplaceGuardianData = { body: Guardian; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the guardian (UUID v4) */ guardianId: string; }; query?: never; url: '/estates/{estateId}/guardians/{guardianId}'; }; export type ReplaceGuardianErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceGuardianError = ReplaceGuardianErrors[keyof ReplaceGuardianErrors]; export type ReplaceGuardianResponses = { /** * Guardian replaced successfully */ 200: Guardian; }; export type ReplaceGuardianResponse = ReplaceGuardianResponses[keyof ReplaceGuardianResponses]; export type ListWishesData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/wishes'; }; export type ListWishesResponses = { /** * List of wishes */ 200: { items: Array; }; }; export type ListWishesResponse = ListWishesResponses[keyof ListWishesResponses]; export type CreateWishData = { body: Wish; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/wishes'; }; export type CreateWishErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateWishError = CreateWishErrors[keyof CreateWishErrors]; export type CreateWishResponses = { /** * Wish created successfully */ 201: Wish; }; export type CreateWishResponse = CreateWishResponses[keyof CreateWishResponses]; export type DeleteWishData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the wish (UUID v4) */ wishId: string; }; query?: never; url: '/estates/{estateId}/wishes/{wishId}'; }; export type DeleteWishErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteWishError = DeleteWishErrors[keyof DeleteWishErrors]; export type DeleteWishResponses = { /** * Wish deleted successfully */ 204: void; }; export type DeleteWishResponse = DeleteWishResponses[keyof DeleteWishResponses]; export type GetWishData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the wish (UUID v4) */ wishId: string; }; query?: never; url: '/estates/{estateId}/wishes/{wishId}'; }; export type GetWishErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetWishError = GetWishErrors[keyof GetWishErrors]; export type GetWishResponses = { /** * Wish retrieved successfully */ 200: Wish; }; export type GetWishResponse = GetWishResponses[keyof GetWishResponses]; export type UpdateWishData = { body: Wish; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the wish (UUID v4) */ wishId: string; }; query?: never; url: '/estates/{estateId}/wishes/{wishId}'; }; export type UpdateWishErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateWishError = UpdateWishErrors[keyof UpdateWishErrors]; export type UpdateWishResponses = { /** * Wish updated successfully */ 200: Wish; }; export type UpdateWishResponse = UpdateWishResponses[keyof UpdateWishResponses]; export type ReplaceWishData = { body: Wish; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the wish (UUID v4) */ wishId: string; }; query?: never; url: '/estates/{estateId}/wishes/{wishId}'; }; export type ReplaceWishErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceWishError = ReplaceWishErrors[keyof ReplaceWishErrors]; export type ReplaceWishResponses = { /** * Wish replaced successfully */ 200: Wish; }; export type ReplaceWishResponse = ReplaceWishResponses[keyof ReplaceWishResponses]; export type ListDocumentsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/documents'; }; export type ListDocumentsResponses = { /** * List of documents */ 200: { items: Array; }; }; export type ListDocumentsResponse = ListDocumentsResponses[keyof ListDocumentsResponses]; export type CreateDocumentData = { body: Document; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/documents'; }; export type CreateDocumentErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateDocumentError = CreateDocumentErrors[keyof CreateDocumentErrors]; export type CreateDocumentResponses = { /** * Document created successfully */ 201: Document; }; export type CreateDocumentResponse = CreateDocumentResponses[keyof CreateDocumentResponses]; export type DeleteDocumentData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the document (UUID v4) */ documentId: string; }; query?: never; url: '/estates/{estateId}/documents/{documentId}'; }; export type DeleteDocumentErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteDocumentError = DeleteDocumentErrors[keyof DeleteDocumentErrors]; export type DeleteDocumentResponses = { /** * Document deleted successfully */ 204: void; }; export type DeleteDocumentResponse = DeleteDocumentResponses[keyof DeleteDocumentResponses]; export type GetDocumentData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the document (UUID v4) */ documentId: string; }; query?: never; url: '/estates/{estateId}/documents/{documentId}'; }; export type GetDocumentErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetDocumentError = GetDocumentErrors[keyof GetDocumentErrors]; export type GetDocumentResponses = { /** * Document retrieved successfully */ 200: Document; }; export type GetDocumentResponse = GetDocumentResponses[keyof GetDocumentResponses]; export type UpdateDocumentData = { body: Document; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the document (UUID v4) */ documentId: string; }; query?: never; url: '/estates/{estateId}/documents/{documentId}'; }; export type UpdateDocumentErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateDocumentError = UpdateDocumentErrors[keyof UpdateDocumentErrors]; export type UpdateDocumentResponses = { /** * Document updated successfully */ 200: Document; }; export type UpdateDocumentResponse = UpdateDocumentResponses[keyof UpdateDocumentResponses]; export type ReplaceDocumentData = { body: Document; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the document (UUID v4) */ documentId: string; }; query?: never; url: '/estates/{estateId}/documents/{documentId}'; }; export type ReplaceDocumentErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceDocumentError = ReplaceDocumentErrors[keyof ReplaceDocumentErrors]; export type ReplaceDocumentResponses = { /** * Document replaced successfully */ 200: Document; }; export type ReplaceDocumentResponse = ReplaceDocumentResponses[keyof ReplaceDocumentResponses]; export type ListAttestationsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/attestations'; }; export type ListAttestationsResponses = { /** * List of attestations */ 200: { items: Array; }; }; export type ListAttestationsResponse = ListAttestationsResponses[keyof ListAttestationsResponses]; export type CreateAttestationData = { body: Attestation; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/attestations'; }; export type CreateAttestationErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateAttestationError = CreateAttestationErrors[keyof CreateAttestationErrors]; export type CreateAttestationResponses = { /** * Attestation created successfully */ 201: Attestation; }; export type CreateAttestationResponse = CreateAttestationResponses[keyof CreateAttestationResponses]; export type DeleteAttestationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the attestation (UUID v4) */ attestationId: string; }; query?: never; url: '/estates/{estateId}/attestations/{attestationId}'; }; export type DeleteAttestationErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteAttestationError = DeleteAttestationErrors[keyof DeleteAttestationErrors]; export type DeleteAttestationResponses = { /** * Attestation deleted successfully */ 204: void; }; export type DeleteAttestationResponse = DeleteAttestationResponses[keyof DeleteAttestationResponses]; export type GetAttestationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the attestation (UUID v4) */ attestationId: string; }; query?: never; url: '/estates/{estateId}/attestations/{attestationId}'; }; export type GetAttestationErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetAttestationError = GetAttestationErrors[keyof GetAttestationErrors]; export type GetAttestationResponses = { /** * Attestation retrieved successfully */ 200: Attestation; }; export type GetAttestationResponse = GetAttestationResponses[keyof GetAttestationResponses]; export type UpdateAttestationData = { body: Attestation; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the attestation (UUID v4) */ attestationId: string; }; query?: never; url: '/estates/{estateId}/attestations/{attestationId}'; }; export type UpdateAttestationErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateAttestationError = UpdateAttestationErrors[keyof UpdateAttestationErrors]; export type UpdateAttestationResponses = { /** * Attestation updated successfully */ 200: Attestation; }; export type UpdateAttestationResponse = UpdateAttestationResponses[keyof UpdateAttestationResponses]; export type ReplaceAttestationData = { body: Attestation; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the attestation (UUID v4) */ attestationId: string; }; query?: never; url: '/estates/{estateId}/attestations/{attestationId}'; }; export type ReplaceAttestationErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceAttestationError = ReplaceAttestationErrors[keyof ReplaceAttestationErrors]; export type ReplaceAttestationResponses = { /** * Attestation replaced successfully */ 200: Attestation; }; export type ReplaceAttestationResponse = ReplaceAttestationResponses[keyof ReplaceAttestationResponses]; export type ListNonprobateTransfersData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/nonprobate-transfers'; }; export type ListNonprobateTransfersResponses = { /** * List of nonprobate transfers */ 200: { items: Array; }; }; export type ListNonprobateTransfersResponse = ListNonprobateTransfersResponses[keyof ListNonprobateTransfersResponses]; export type CreateNonprobateTransferData = { body: NonprobateTransfer; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/nonprobate-transfers'; }; export type CreateNonprobateTransferErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateNonprobateTransferError = CreateNonprobateTransferErrors[keyof CreateNonprobateTransferErrors]; export type CreateNonprobateTransferResponses = { /** * NonprobateTransfer created successfully */ 201: NonprobateTransfer; }; export type CreateNonprobateTransferResponse = CreateNonprobateTransferResponses[keyof CreateNonprobateTransferResponses]; export type DeleteNonprobateTransferData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the nonprobate transfer (UUID v4) */ transferId: string; }; query?: never; url: '/estates/{estateId}/nonprobate-transfers/{transferId}'; }; export type DeleteNonprobateTransferErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteNonprobateTransferError = DeleteNonprobateTransferErrors[keyof DeleteNonprobateTransferErrors]; export type DeleteNonprobateTransferResponses = { /** * NonprobateTransfer deleted successfully */ 204: void; }; export type DeleteNonprobateTransferResponse = DeleteNonprobateTransferResponses[keyof DeleteNonprobateTransferResponses]; export type GetNonprobateTransferData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the nonprobate transfer (UUID v4) */ transferId: string; }; query?: never; url: '/estates/{estateId}/nonprobate-transfers/{transferId}'; }; export type GetNonprobateTransferErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetNonprobateTransferError = GetNonprobateTransferErrors[keyof GetNonprobateTransferErrors]; export type GetNonprobateTransferResponses = { /** * NonprobateTransfer retrieved successfully */ 200: NonprobateTransfer; }; export type GetNonprobateTransferResponse = GetNonprobateTransferResponses[keyof GetNonprobateTransferResponses]; export type UpdateNonprobateTransferData = { body: NonprobateTransfer; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the nonprobate transfer (UUID v4) */ transferId: string; }; query?: never; url: '/estates/{estateId}/nonprobate-transfers/{transferId}'; }; export type UpdateNonprobateTransferErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateNonprobateTransferError = UpdateNonprobateTransferErrors[keyof UpdateNonprobateTransferErrors]; export type UpdateNonprobateTransferResponses = { /** * NonprobateTransfer updated successfully */ 200: NonprobateTransfer; }; export type UpdateNonprobateTransferResponse = UpdateNonprobateTransferResponses[keyof UpdateNonprobateTransferResponses]; export type ReplaceNonprobateTransferData = { body: NonprobateTransfer; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the nonprobate transfer (UUID v4) */ transferId: string; }; query?: never; url: '/estates/{estateId}/nonprobate-transfers/{transferId}'; }; export type ReplaceNonprobateTransferErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceNonprobateTransferError = ReplaceNonprobateTransferErrors[keyof ReplaceNonprobateTransferErrors]; export type ReplaceNonprobateTransferResponses = { /** * NonprobateTransfer replaced successfully */ 200: NonprobateTransfer; }; export type ReplaceNonprobateTransferResponse = ReplaceNonprobateTransferResponses[keyof ReplaceNonprobateTransferResponses]; export type ListProxyAuthorisationsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/proxy-authorisations'; }; export type ListProxyAuthorisationsResponses = { /** * List of proxy authorisations */ 200: { items: Array; }; }; export type ListProxyAuthorisationsResponse = ListProxyAuthorisationsResponses[keyof ListProxyAuthorisationsResponses]; export type CreateProxyAuthorisationData = { body: ProxyAuthorisation; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/proxy-authorisations'; }; export type CreateProxyAuthorisationErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateProxyAuthorisationError = CreateProxyAuthorisationErrors[keyof CreateProxyAuthorisationErrors]; export type CreateProxyAuthorisationResponses = { /** * ProxyAuthorisation created successfully */ 201: ProxyAuthorisation; }; export type CreateProxyAuthorisationResponse = CreateProxyAuthorisationResponses[keyof CreateProxyAuthorisationResponses]; export type DeleteProxyAuthorisationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the proxy authorisation (UUID v4) */ authorisationId: string; }; query?: never; url: '/estates/{estateId}/proxy-authorisations/{authorisationId}'; }; export type DeleteProxyAuthorisationErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteProxyAuthorisationError = DeleteProxyAuthorisationErrors[keyof DeleteProxyAuthorisationErrors]; export type DeleteProxyAuthorisationResponses = { /** * ProxyAuthorisation deleted successfully */ 204: void; }; export type DeleteProxyAuthorisationResponse = DeleteProxyAuthorisationResponses[keyof DeleteProxyAuthorisationResponses]; export type GetProxyAuthorisationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the proxy authorisation (UUID v4) */ authorisationId: string; }; query?: never; url: '/estates/{estateId}/proxy-authorisations/{authorisationId}'; }; export type GetProxyAuthorisationErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetProxyAuthorisationError = GetProxyAuthorisationErrors[keyof GetProxyAuthorisationErrors]; export type GetProxyAuthorisationResponses = { /** * ProxyAuthorisation retrieved successfully */ 200: ProxyAuthorisation; }; export type GetProxyAuthorisationResponse = GetProxyAuthorisationResponses[keyof GetProxyAuthorisationResponses]; export type UpdateProxyAuthorisationData = { body: ProxyAuthorisation; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the proxy authorisation (UUID v4) */ authorisationId: string; }; query?: never; url: '/estates/{estateId}/proxy-authorisations/{authorisationId}'; }; export type UpdateProxyAuthorisationErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateProxyAuthorisationError = UpdateProxyAuthorisationErrors[keyof UpdateProxyAuthorisationErrors]; export type UpdateProxyAuthorisationResponses = { /** * ProxyAuthorisation updated successfully */ 200: ProxyAuthorisation; }; export type UpdateProxyAuthorisationResponse = UpdateProxyAuthorisationResponses[keyof UpdateProxyAuthorisationResponses]; export type ReplaceProxyAuthorisationData = { body: ProxyAuthorisation; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the proxy authorisation (UUID v4) */ authorisationId: string; }; query?: never; url: '/estates/{estateId}/proxy-authorisations/{authorisationId}'; }; export type ReplaceProxyAuthorisationErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceProxyAuthorisationError = ReplaceProxyAuthorisationErrors[keyof ReplaceProxyAuthorisationErrors]; export type ReplaceProxyAuthorisationResponses = { /** * ProxyAuthorisation replaced successfully */ 200: ProxyAuthorisation; }; export type ReplaceProxyAuthorisationResponse = ReplaceProxyAuthorisationResponses[keyof ReplaceProxyAuthorisationResponses]; export type ListDealerInterestsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/dealer-interests'; }; export type ListDealerInterestsResponses = { /** * List of dealer interests */ 200: { items: Array; }; }; export type ListDealerInterestsResponse = ListDealerInterestsResponses[keyof ListDealerInterestsResponses]; export type CreateDealerInterestData = { body: DealerInterest; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/dealer-interests'; }; export type CreateDealerInterestErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateDealerInterestError = CreateDealerInterestErrors[keyof CreateDealerInterestErrors]; export type CreateDealerInterestResponses = { /** * DealerInterest created successfully */ 201: DealerInterest; }; export type CreateDealerInterestResponse = CreateDealerInterestResponses[keyof CreateDealerInterestResponses]; export type DeleteDealerInterestData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the dealer interest (UUID v4) */ interestId: string; }; query?: never; url: '/estates/{estateId}/dealer-interests/{interestId}'; }; export type DeleteDealerInterestErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteDealerInterestError = DeleteDealerInterestErrors[keyof DeleteDealerInterestErrors]; export type DeleteDealerInterestResponses = { /** * DealerInterest deleted successfully */ 204: void; }; export type DeleteDealerInterestResponse = DeleteDealerInterestResponses[keyof DeleteDealerInterestResponses]; export type GetDealerInterestData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the dealer interest (UUID v4) */ interestId: string; }; query?: never; url: '/estates/{estateId}/dealer-interests/{interestId}'; }; export type GetDealerInterestErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetDealerInterestError = GetDealerInterestErrors[keyof GetDealerInterestErrors]; export type GetDealerInterestResponses = { /** * DealerInterest retrieved successfully */ 200: DealerInterest; }; export type GetDealerInterestResponse = GetDealerInterestResponses[keyof GetDealerInterestResponses]; export type UpdateDealerInterestData = { body: DealerInterest; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the dealer interest (UUID v4) */ interestId: string; }; query?: never; url: '/estates/{estateId}/dealer-interests/{interestId}'; }; export type UpdateDealerInterestErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdateDealerInterestError = UpdateDealerInterestErrors[keyof UpdateDealerInterestErrors]; export type UpdateDealerInterestResponses = { /** * DealerInterest updated successfully */ 200: DealerInterest; }; export type UpdateDealerInterestResponse = UpdateDealerInterestResponses[keyof UpdateDealerInterestResponses]; export type ReplaceDealerInterestData = { body: DealerInterest; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the dealer interest (UUID v4) */ interestId: string; }; query?: never; url: '/estates/{estateId}/dealer-interests/{interestId}'; }; export type ReplaceDealerInterestErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceDealerInterestError = ReplaceDealerInterestErrors[keyof ReplaceDealerInterestErrors]; export type ReplaceDealerInterestResponses = { /** * DealerInterest replaced successfully */ 200: DealerInterest; }; export type ReplaceDealerInterestResponse = ReplaceDealerInterestResponses[keyof ReplaceDealerInterestResponses]; export type ExportEstateJsonData = { body?: ExportJsonRequest; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/export/json'; }; export type ExportEstateJsonErrors = { /** * The requested resource was not found */ 404: Error; }; export type ExportEstateJsonError = ExportEstateJsonErrors[keyof ExportEstateJsonErrors]; export type ExportEstateJsonResponses = { /** * INHERIT document exported successfully */ 200: Schema; }; export type ExportEstateJsonResponse = ExportEstateJsonResponses[keyof ExportEstateJsonResponses]; export type ExportEstatePdfData = { body: ExportPdfRequest; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/export/pdf'; }; export type ExportEstatePdfErrors = { /** * The requested resource was not found */ 404: Error; }; export type ExportEstatePdfError = ExportEstatePdfErrors[keyof ExportEstatePdfErrors]; export type ExportEstatePdfResponses = { /** * PDF report generated successfully */ 200: Blob | File; }; export type ExportEstatePdfResponse = ExportEstatePdfResponses[keyof ExportEstatePdfResponses]; export type ImportEstateData = { body: SchemaWritable; path?: never; query?: never; url: '/estates/import'; }; export type ImportEstateErrors = { /** * The request body failed schema validation */ 400: Error; }; export type ImportEstateError = ImportEstateErrors[keyof ImportEstateErrors]; export type ImportEstateResponses = { /** * Estate imported successfully */ 201: ImportResult; }; export type ImportEstateResponse = ImportEstateResponses[keyof ImportEstateResponses]; export type ValidateEstateData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/validate'; }; export type ValidateEstateErrors = { /** * The requested resource was not found */ 404: Error; }; export type ValidateEstateError = ValidateEstateErrors[keyof ValidateEstateErrors]; export type ValidateEstateResponses = { /** * Validation result returned successfully */ 200: ValidationResult; }; export type ValidateEstateResponse = ValidateEstateResponses[keyof ValidateEstateResponses]; export type UnlinkCompanionData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/companion'; }; export type UnlinkCompanionErrors = { /** * The requested resource was not found */ 404: Error; }; export type UnlinkCompanionError = UnlinkCompanionErrors[keyof UnlinkCompanionErrors]; export type UnlinkCompanionResponses = { /** * Companion unlinked successfully */ 204: void; }; export type UnlinkCompanionResponse = UnlinkCompanionResponses[keyof UnlinkCompanionResponses]; export type GetCompanionData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/companion'; }; export type GetCompanionErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetCompanionError = GetCompanionErrors[keyof GetCompanionErrors]; export type GetCompanionResponses = { /** * Companion estate summary returned successfully */ 200: EstateSummary; }; export type GetCompanionResponse = GetCompanionResponses[keyof GetCompanionResponses]; export type LinkCompanionData = { body: CompanionLink; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/companion'; }; export type LinkCompanionErrors = { /** * The requested resource was not found */ 404: Error; /** * The request conflicts with the current state of the resource */ 409: Error; }; export type LinkCompanionError = LinkCompanionErrors[keyof LinkCompanionErrors]; export type LinkCompanionResponses = { /** * Companion linked successfully */ 200: Estate; }; export type LinkCompanionResponse = LinkCompanionResponses[keyof LinkCompanionResponses]; export type GetEstateSummaryData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/summary'; }; export type GetEstateSummaryErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetEstateSummaryError = GetEstateSummaryErrors[keyof GetEstateSummaryErrors]; export type GetEstateSummaryResponses = { /** * Estate summary returned successfully */ 200: EstateSummary; }; export type GetEstateSummaryResponse = GetEstateSummaryResponses[keyof GetEstateSummaryResponses]; export type ListCataloguesData = { body?: never; path?: never; query?: { /** * Opaque cursor for pagination — use the value returned in the previous response */ cursor?: string; /** * Maximum number of items to return (1–100) */ limit?: number; }; url: '/catalogues'; }; export type ListCataloguesResponses = { /** * Paginated list of catalogues */ 200: { items: Array; cursor?: string; hasMore: boolean; }; }; export type ListCataloguesResponse = ListCataloguesResponses[keyof ListCataloguesResponses]; export type CreateCatalogueData = { body: CatalogueWritable; path?: never; query?: never; url: '/catalogues'; }; export type CreateCatalogueErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateCatalogueError = CreateCatalogueErrors[keyof CreateCatalogueErrors]; export type CreateCatalogueResponses = { /** * Catalogue created successfully */ 201: Catalogue; }; export type CreateCatalogueResponse = CreateCatalogueResponses[keyof CreateCatalogueResponses]; export type DeleteCatalogueData = { body?: never; path: { /** * Unique identifier for the catalogue (UUID v4) */ catalogueId: string; }; query?: never; url: '/catalogues/{catalogueId}'; }; export type DeleteCatalogueErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteCatalogueError = DeleteCatalogueErrors[keyof DeleteCatalogueErrors]; export type DeleteCatalogueResponses = { /** * Catalogue deleted successfully */ 204: void; }; export type DeleteCatalogueResponse = DeleteCatalogueResponses[keyof DeleteCatalogueResponses]; export type GetCatalogueData = { body?: never; path: { /** * Unique identifier for the catalogue (UUID v4) */ catalogueId: string; }; query?: never; url: '/catalogues/{catalogueId}'; }; export type GetCatalogueErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetCatalogueError = GetCatalogueErrors[keyof GetCatalogueErrors]; export type GetCatalogueResponses = { /** * Catalogue retrieved successfully */ 200: Catalogue; }; export type GetCatalogueResponse = GetCatalogueResponses[keyof GetCatalogueResponses]; export type UpdateCatalogueData = { body: CatalogueWritable; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the catalogue (UUID v4) */ catalogueId: string; }; query?: never; url: '/catalogues/{catalogueId}'; }; export type UpdateCatalogueErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; /** * Precondition failed — ETag mismatch */ 412: Error; }; export type UpdateCatalogueError = UpdateCatalogueErrors[keyof UpdateCatalogueErrors]; export type UpdateCatalogueResponses = { /** * Catalogue updated successfully */ 200: Catalogue; }; export type UpdateCatalogueResponse = UpdateCatalogueResponses[keyof UpdateCatalogueResponses]; export type ListValuationsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/valuations'; }; export type ListValuationsResponses = { /** * List of valuations */ 200: { items: Array; }; }; export type ListValuationsResponse = ListValuationsResponses[keyof ListValuationsResponses]; export type CreateValuationData = { body: Valuation; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/valuations'; }; export type CreateValuationErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateValuationError = CreateValuationErrors[keyof CreateValuationErrors]; export type CreateValuationResponses = { /** * Valuation created successfully */ 201: Valuation; }; export type CreateValuationResponse = CreateValuationResponses[keyof CreateValuationResponses]; export type DeleteValuationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the valuation (UUID v4) */ valuationId: string; }; query?: never; url: '/estates/{estateId}/valuations/{valuationId}'; }; export type DeleteValuationErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteValuationError = DeleteValuationErrors[keyof DeleteValuationErrors]; export type DeleteValuationResponses = { /** * Valuation deleted successfully */ 204: void; }; export type DeleteValuationResponse = DeleteValuationResponses[keyof DeleteValuationResponses]; export type GetValuationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the valuation (UUID v4) */ valuationId: string; }; query?: never; url: '/estates/{estateId}/valuations/{valuationId}'; }; export type GetValuationErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetValuationError = GetValuationErrors[keyof GetValuationErrors]; export type GetValuationResponses = { /** * Valuation retrieved successfully */ 200: Valuation; }; export type GetValuationResponse = GetValuationResponses[keyof GetValuationResponses]; export type ReplaceValuationData = { body: Valuation; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the valuation (UUID v4) */ valuationId: string; }; query?: never; url: '/estates/{estateId}/valuations/{valuationId}'; }; export type ReplaceValuationErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceValuationError = ReplaceValuationErrors[keyof ReplaceValuationErrors]; export type ReplaceValuationResponses = { /** * Valuation replaced successfully */ 200: Valuation; }; export type ReplaceValuationResponse = ReplaceValuationResponses[keyof ReplaceValuationResponses]; export type ListInsurancePoliciesData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/insurance-policies'; }; export type ListInsurancePoliciesResponses = { /** * List of insurance policies */ 200: { items: Array; }; }; export type ListInsurancePoliciesResponse = ListInsurancePoliciesResponses[keyof ListInsurancePoliciesResponses]; export type CreateInsurancePolicyData = { body: InsurancePolicy; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/insurance-policies'; }; export type CreateInsurancePolicyErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateInsurancePolicyError = CreateInsurancePolicyErrors[keyof CreateInsurancePolicyErrors]; export type CreateInsurancePolicyResponses = { /** * Insurance policy created successfully */ 201: InsurancePolicy; }; export type CreateInsurancePolicyResponse = CreateInsurancePolicyResponses[keyof CreateInsurancePolicyResponses]; export type DeleteInsurancePolicyData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the insurance policy (UUID v4) */ policyId: string; }; query?: never; url: '/estates/{estateId}/insurance-policies/{policyId}'; }; export type DeleteInsurancePolicyErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteInsurancePolicyError = DeleteInsurancePolicyErrors[keyof DeleteInsurancePolicyErrors]; export type DeleteInsurancePolicyResponses = { /** * Insurance policy deleted successfully */ 204: void; }; export type DeleteInsurancePolicyResponse = DeleteInsurancePolicyResponses[keyof DeleteInsurancePolicyResponses]; export type GetInsurancePolicyData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the insurance policy (UUID v4) */ policyId: string; }; query?: never; url: '/estates/{estateId}/insurance-policies/{policyId}'; }; export type GetInsurancePolicyErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetInsurancePolicyError = GetInsurancePolicyErrors[keyof GetInsurancePolicyErrors]; export type GetInsurancePolicyResponses = { /** * Insurance policy retrieved successfully */ 200: InsurancePolicy; }; export type GetInsurancePolicyResponse = GetInsurancePolicyResponses[keyof GetInsurancePolicyResponses]; export type ReplaceInsurancePolicyData = { body: InsurancePolicy; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the insurance policy (UUID v4) */ policyId: string; }; query?: never; url: '/estates/{estateId}/insurance-policies/{policyId}'; }; export type ReplaceInsurancePolicyErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceInsurancePolicyError = ReplaceInsurancePolicyErrors[keyof ReplaceInsurancePolicyErrors]; export type ReplaceInsurancePolicyResponses = { /** * Insurance policy replaced successfully */ 200: InsurancePolicy; }; export type ReplaceInsurancePolicyResponse = ReplaceInsurancePolicyResponses[keyof ReplaceInsurancePolicyResponses]; export type ListOrganisationsData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/organisations'; }; export type ListOrganisationsResponses = { /** * List of organisations */ 200: { items: Array; }; }; export type ListOrganisationsResponse = ListOrganisationsResponses[keyof ListOrganisationsResponses]; export type CreateOrganisationData = { body: OrganisationWritable; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/organisations'; }; export type CreateOrganisationErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreateOrganisationError = CreateOrganisationErrors[keyof CreateOrganisationErrors]; export type CreateOrganisationResponses = { /** * Organisation created successfully */ 201: Organisation; }; export type CreateOrganisationResponse = CreateOrganisationResponses[keyof CreateOrganisationResponses]; export type DeleteOrganisationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the organisation (UUID v4) */ organisationId: string; }; query?: never; url: '/estates/{estateId}/organisations/{organisationId}'; }; export type DeleteOrganisationErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeleteOrganisationError = DeleteOrganisationErrors[keyof DeleteOrganisationErrors]; export type DeleteOrganisationResponses = { /** * Organisation deleted successfully */ 204: void; }; export type DeleteOrganisationResponse = DeleteOrganisationResponses[keyof DeleteOrganisationResponses]; export type GetOrganisationData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the organisation (UUID v4) */ organisationId: string; }; query?: never; url: '/estates/{estateId}/organisations/{organisationId}'; }; export type GetOrganisationErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetOrganisationError = GetOrganisationErrors[keyof GetOrganisationErrors]; export type GetOrganisationResponses = { /** * Organisation retrieved successfully */ 200: Organisation; }; export type GetOrganisationResponse = GetOrganisationResponses[keyof GetOrganisationResponses]; export type ReplaceOrganisationData = { body: OrganisationWritable; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the organisation (UUID v4) */ organisationId: string; }; query?: never; url: '/estates/{estateId}/organisations/{organisationId}'; }; export type ReplaceOrganisationErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplaceOrganisationError = ReplaceOrganisationErrors[keyof ReplaceOrganisationErrors]; export type ReplaceOrganisationResponses = { /** * Organisation replaced successfully */ 200: Organisation; }; export type ReplaceOrganisationResponse = ReplaceOrganisationResponses[keyof ReplaceOrganisationResponses]; export type ListPowersOfAppointmentData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/powersOfAppointment'; }; export type ListPowersOfAppointmentResponses = { /** * List of powers of appointment */ 200: { items: Array; }; }; export type ListPowersOfAppointmentResponse = ListPowersOfAppointmentResponses[keyof ListPowersOfAppointmentResponses]; export type CreatePowerOfAppointmentData = { body: PowerOfAppointment; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; }; query?: never; url: '/estates/{estateId}/powersOfAppointment'; }; export type CreatePowerOfAppointmentErrors = { /** * The request body failed schema validation */ 400: Error; }; export type CreatePowerOfAppointmentError = CreatePowerOfAppointmentErrors[keyof CreatePowerOfAppointmentErrors]; export type CreatePowerOfAppointmentResponses = { /** * Power of appointment created successfully */ 201: PowerOfAppointment; }; export type CreatePowerOfAppointmentResponse = CreatePowerOfAppointmentResponses[keyof CreatePowerOfAppointmentResponses]; export type DeletePowerOfAppointmentData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the power of appointment (UUID v4) */ powerOfAppointmentId: string; }; query?: never; url: '/estates/{estateId}/powersOfAppointment/{powerOfAppointmentId}'; }; export type DeletePowerOfAppointmentErrors = { /** * The requested resource was not found */ 404: Error; }; export type DeletePowerOfAppointmentError = DeletePowerOfAppointmentErrors[keyof DeletePowerOfAppointmentErrors]; export type DeletePowerOfAppointmentResponses = { /** * Power of appointment deleted successfully */ 204: void; }; export type DeletePowerOfAppointmentResponse = DeletePowerOfAppointmentResponses[keyof DeletePowerOfAppointmentResponses]; export type GetPowerOfAppointmentData = { body?: never; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the power of appointment (UUID v4) */ powerOfAppointmentId: string; }; query?: never; url: '/estates/{estateId}/powersOfAppointment/{powerOfAppointmentId}'; }; export type GetPowerOfAppointmentErrors = { /** * The requested resource was not found */ 404: Error; }; export type GetPowerOfAppointmentError = GetPowerOfAppointmentErrors[keyof GetPowerOfAppointmentErrors]; export type GetPowerOfAppointmentResponses = { /** * Power of appointment retrieved successfully */ 200: PowerOfAppointment; }; export type GetPowerOfAppointmentResponse = GetPowerOfAppointmentResponses[keyof GetPowerOfAppointmentResponses]; export type UpdatePowerOfAppointmentData = { body: PowerOfAppointment; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the power of appointment (UUID v4) */ powerOfAppointmentId: string; }; query?: never; url: '/estates/{estateId}/powersOfAppointment/{powerOfAppointmentId}'; }; export type UpdatePowerOfAppointmentErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type UpdatePowerOfAppointmentError = UpdatePowerOfAppointmentErrors[keyof UpdatePowerOfAppointmentErrors]; export type UpdatePowerOfAppointmentResponses = { /** * Power of appointment updated successfully */ 200: PowerOfAppointment; }; export type UpdatePowerOfAppointmentResponse = UpdatePowerOfAppointmentResponses[keyof UpdatePowerOfAppointmentResponses]; export type ReplacePowerOfAppointmentData = { body: PowerOfAppointment; headers?: { /** * ETag value for optimistic concurrency control */ 'If-Match'?: string; }; path: { /** * Unique identifier for the estate (UUID v4) */ estateId: string; /** * Unique identifier for the power of appointment (UUID v4) */ powerOfAppointmentId: string; }; query?: never; url: '/estates/{estateId}/powersOfAppointment/{powerOfAppointmentId}'; }; export type ReplacePowerOfAppointmentErrors = { /** * The request body failed schema validation */ 400: Error; /** * The requested resource was not found */ 404: Error; }; export type ReplacePowerOfAppointmentError = ReplacePowerOfAppointmentErrors[keyof ReplacePowerOfAppointmentErrors]; export type ReplacePowerOfAppointmentResponses = { /** * Power of appointment replaced successfully */ 200: PowerOfAppointment; }; export type ReplacePowerOfAppointmentResponse = ReplacePowerOfAppointmentResponses[keyof ReplacePowerOfAppointmentResponses];