{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "rw/rdb/rf-001-domestic-company-application-for-incorporation",
  "version": "1.0.0",
  "title": "Rwanda Domestic Company Application for Incorporation (RDB Form RF-001)",
  "description": "Rwanda Development Board's (RDB) \"RF-001 Domestic Company Application Form for Incorporation\", used to register a domestic company under Law N° 007/2021 of 05/02/2021 governing companies. Opens Rwanda's Business Formation vertical (3 of 6, alongside DMV and Visa), continuing Rwanda's research thread from GOV-2569's scouting cycle, where this candidate was first identified and left as backlog. The specimen is a genuine, unauthenticated, directly downloadable 10-page PDF (18 numbered sections) hosted on RDB's own businessprocedures.rdb.rw domain -- the registry's own live Business Registration Guide site (matching the general online Business Registration process RDB's org.rdb.rw and business-registration pages describe as free and completed within hours). Unlike this registry's other two Rwanda schemas (rw/rra's Motor Vehicle Registration Form and rw/dgie's Visa Application), this specimen carries a real, position-anchored text layer (confirmed via pdfjs-dist) but, like rw/dgie, **0 AcroForm widgets** -- a flat, print-and-hand-fill specimen documenting the data RDB's registration process collects, rather than a fillable digital form in its own right. It models the shared RF-001 form's full printed breadth: the Registration-reason and Category (company-type) selectors; company Identification; the filing Applicant; the company's Head office address; an optional Chairman of the board; the Managing director; an optional Company employee/secretary; a bounded 2-slot Member of the board group; optional Auditor and Accountant blocks (each a Person-or-Organization alternative); a bounded 3-slot Business activities (RCPA code/name) group; company-level Capital information (a 5-subtype share table plus a Guarantee type/Amount table, each requiredWhen the selected Category implies shares or a guarantee respectively); a first Subscriber slot (Person-or-Organization, with its own share table); a first Guarantor slot (Person-or-Organization, with its own Guarantee type/Amount table, requiredWhen Category implies a guarantee); Employment; and the Amalgamation/Declaring-to-be-dormant/Dissolution sections, each requiredWhen the matching Registration-reason value. 256 `fields[]` entries in total and 19 `documents[]` entries (18 checklist attachments from Section 18 plus the printed certification statement); see VERIFICATION.md for the full sourcing record, the AcroForm widget count, and every scoping/disclosure judgment call, including why several change-of-particulars-related attachments and the business-activities/board-member/subscriber/guarantor repeating groups are bounded rather than open-ended. This v1.0.0's conformance fixtures exercise the \"new\" (incorporation) pathway named in this schema's own title; GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Rwanda or the Rwanda Development Board.",
  "status": "draft",
  "jurisdiction": {
    "country": "RW",
    "level": "national"
  },
  "authority": {
    "name": "Rwanda Development Board",
    "abbreviation": "RDB",
    "url": "https://rdb.rw"
  },
  "process": {
    "type": "registration",
    "language": "en"
  },
  "source": {
    "url": "https://businessprocedures.rdb.rw/media/2.5_rf-001%20domestic%20company.pdf",
    "retrievedAt": "2026-07-12",
    "documentRef": "Form RF-001, \"Domestic Company Application Form for Incorporation\" (Rwanda Development Board), hosted on RDB's Business Procedures site (businessprocedures.rdb.rw); a genuine 10-page, position-anchored-text-layer but 0-AcroForm-widget PDF, 1,218,128 bytes."
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-12",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-12",
    "notes": "GovSchema Standard Research cycle GOV-2585, authoring a candidate pre-scouted and confirmed strong in GOV-2569's research cycle but left unauthored. Independently re-fetched the source PDF directly via curl this cycle: HTTP 200, Content-Type application/pdf, 1,218,128 bytes, sha256 0bbcfa32fc17ea7d38365575bcadf72a7948c029bacd020e505757396700da8b -- matching the issue's own cited hash and size exactly, independently re-derived rather than trusted. pdfjs-dist (legacy build, v3) getAnnotations() across all 10 pages confirms 0 Widget annotations -- like rw/dgie/visa-application (and unlike rw/rra/vrf-e06-motor-vehicle-registration-form's genuine AcroForm/XFA), this is a flat, print-and-hand-fill specimen, notwithstanding its 1.2MB size (a real, position-anchored getTextContent() text layer throughout, not a scanned image -- confirmed by reading full per-page text and cross-checking item counts against the form's own 18 numbered sections). Every page's text was extracted with x/y coordinates (item.transform[4]/[5]) and read in visual (not content-stream) order, since this specimen's content stream interleaves its 2-column pages (e.g. page 10 prints Employment/Amalgamation/Dormant/Dissolution/Attachments sections 14-18 in one content-stream pass and the Attachments checkbox list plus Certification statement in another, requiring y-coordinate sorting to recover true reading order -- disclosed since naively concatenating getTextContent() items in stream order would have misread the section sequence). All 18 numbered sections were accounted for. This schema models 256 fields[] entries: the Registration-reason and Category (company-type) selectors (each a tick-box group modelled as a single closed enum, including Category's own printed asymmetry -- an 'Unlimited public' option with no 'Unlimited private' counterpart, a 'Limited by guarantee private' option with no public counterpart -- taken verbatim rather than symmetrized); company Identification; the filing Applicant (a full 17-field identity+address block, reused as a template across 6 person-slots: Applicant, Chairman, Managing director, Company secretary, and 2 Member-of-the-board slots); the Head office address; a bounded 2-slot Member of the board group (the base specimen prints exactly 2 slots before its own 'Add more pages as needed' note, matching this registry's established bounded-repeating-group convention, cf. ng/cac's 4 director slots); optional Auditor and Accountant blocks, each a Person-or-Organization alternative (Type selector plus person- or organization-only sub-fields gated by requiredWhen, sharing one address/contact sub-block per the source's own 'Person resident address /Organization registered office address' combined caption); a bounded 3-slot Business activities (RCPA code/name) group, flattened from the source's own unbounded ~17-blank-row dashed table; company-level Capital information (a 5-subtype share table -- Ordinary/Not-confer-voting/Special-limited-conditional-voting/Redeemable/Preferential-distribution -- plus a Guarantee type/Amount table), requiredWhen the selected Category implies shares or a guarantee respectively; a first Subscriber slot (Person-or-Organization, with its own share table, requiredWhen registrationType=new); a first Guarantor slot (Person-or-Organization, with its own Guarantee type/Amount table, requiredWhen Category implies a guarantee); Employment; and the Amalgamation/Declaring-to-be-dormant/Dissolution sections, each requiredWhen the matching Registration-reason value. Two judgment calls disclosed in the field descriptions themselves: (1) only each share table's Ordinary-share row is requiredWhen-gated when the table applies at all -- the other 4 printed share-subtype rows are additional, genuinely optional share classes, not co-required as a group (caught during this cycle's own conformance-fixture testing: an earlier draft gated all 5 subtypes identically, which a from-scratch positive fixture holding only ordinary shares correctly flagged as over-strict, then fixed before this schema was finalised); (2) the bounded business-activity Name fields are deliberately NOT requiredWhen-gated on their sibling RCPA-code field via notEquals empty-string, since an unused slot's RCPA-code field is absent (undefined), not an empty string, and gating on notEquals against an absent value would misfire -- this registry's own documented gotcha (cf. rw/dgie/visa-application's child1Gender precedent) -- disclosed in prose instead. 19 documents[] entries: 18 checklist attachments read from Section 18's two-column tick-box list (each requiredWhen-gated to its own uniquely-named registrationType/applicantPosition value where the mapping is unambiguous -- e.g. amalgamationProposal/amalgamationResolution to registrationType=amalgamation, powerOfAttorney to applicantPosition=power_of_attorney -- and left optional, undisclosed to any single requiredWhen condition, where a 'change_of_particulars' filing's several alternative sub-reasons (name change, articles alteration, branch opening, share issuance/division/reduction, limited<->unlimited conversion) would otherwise be wrongly co-required as a group) plus the printed Certification statement (attestation, required: true, quoted verbatim). Confirmed via live web search that Law N deg 007/2021 of 05/02/2021 governing companies (Official Gazette N deg 04 ter of 08/02/2021) is Rwanda's current companies statute, and that its three company-type categories (Limited by Shares, Limited by Guarantee, Limited by Shares and by Guarantee) correspond to this specimen's own printed Category options -- corroborating, not just citing, the source's currency. Conformance run: 2 valid mock scenarios (a Limited-by-shares-private new incorporation with a single individual subscriber and 0 employees; a Limited-by-guarantee-private new incorporation exercising the full officer roster -- Chairman, Company secretary, 2 Board members, an organization Auditor, a person Accountant, an organization Subscriber, and a person Guarantor -- plus the passport-ID-document branch), 0 errors each; 5 mutation-control fixtures (missing required field, invalid enum value, missing a category-conditional capital field, invalid date format, missing a required document), each raising exactly 1 error -- using a disposable validate_instance.mjs script (not committed) implementing this schema's own required/requiredWhen Condition grammar plus ad hoc type/validation checks, matching this registry's established from-scratch-conformance-checker convention. See VERIFICATION.md for the full sourcing record, per-section field inventory, and every scoping/disclosure judgment call."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering (Standards Engineer)",
    "assertedAt": "2026-07-12"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "registrationType",
      "label": "Registration",
      "type": "enum",
      "required": true,
      "description": "The single reason this filing is being made; the source prints these 8 options as one tick-box group (\"Registration:\"). This schema models the form's full printed breadth rather than narrowing to the incorporation-only pathway named in this schema's own title, since RDB uses one shared RF-001 specimen for all of new incorporation, subsequent particulars changes, dormancy, dissolution, amalgamation, correction, and court-ordered filings alike -- matching this registry's established full-breadth-over-narrowing precedent (cf. ng/nis Form C1's reasonForApplication). v1.0.0's conformance fixtures exercise the \"new\" (incorporation) pathway, consistent with this schema's title and the GOV-2585 assignment scope; the other 7 pathways' own downstream sections (15-17) are modelled with requiredWhen gates but not independently fixture-tested this cycle.",
      "sourceRef": "\"Registration:\" — \"New\" / \"Change of particulars\" / \"Declaring to be dormant\" / \"Dissolution\" / \"Amalgamation\" / \"Order of Correction\" / \"Cessation to be dormant\" / \"Court order\"",
      "validation": {
        "enum": [
          "new",
          "change_of_particulars",
          "declaring_to_be_dormant",
          "dissolution",
          "amalgamation",
          "order_of_correction",
          "cessation_to_be_dormant",
          "court_order"
        ]
      }
    },
    {
      "name": "category",
      "label": "Category (company type)",
      "type": "enum",
      "required": true,
      "description": "The company's legal category, as the source's own 6-option tick-box group prints it verbatim -- including its own asymmetry (e.g. an \"Unlimited public\" option with no printed \"Unlimited private\" counterpart, and a guarantee-only \"Limited by guarantee private\" option with no printed public counterpart); this schema does not invent a symmetrical set the source itself does not offer.",
      "sourceRef": "\"Category:\" — \"Limited by shares private\" / \"Limited by shares public\" / \"Unlimited public\" / \"Limited by shares and guarantee private\" / \"Limited by shares and guarantee public\" / \"Limited by guarantee private\"",
      "validation": {
        "enum": [
          "limited_by_shares_private",
          "limited_by_shares_public",
          "unlimited_public",
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      }
    },
    {
      "name": "companyCode",
      "label": "Company code",
      "type": "string",
      "required": false,
      "description": "Assigned by RDB once a company already exists in the registry; left blank on a New-incorporation filing and completed on a subsequent Change of particulars/Dormancy/Dissolution/Amalgamation/Correction/Court-order filing against an existing company.",
      "sourceRef": "Section 1: Identification — \"Company code:\"",
      "requiredWhen": {
        "field": "registrationType",
        "notEquals": "new"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "nameReservationId",
      "label": "Name reservation ID",
      "type": "string",
      "required": false,
      "description": "The identifier of the company name already reserved with RDB prior to incorporation.",
      "sourceRef": "Section 1: Identification — \"Name reservation ID:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "companyName",
      "label": "Company name",
      "type": "string",
      "required": true,
      "sourceRef": "Section 1: Identification — \"Company name:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "companyAbbreviation",
      "label": "Abbreviation",
      "type": "enum",
      "required": false,
      "description": "The company's chosen legal-suffix abbreviation, a two-option tick-box pair.",
      "sourceRef": "Section 1: Identification — \"Abbreviation:\" — \"Ltd\" / \"Limited\"",
      "validation": {
        "enum": [
          "Ltd",
          "Limited"
        ]
      }
    },
    {
      "name": "applicantPosition",
      "label": "Applicant position",
      "type": "enum",
      "required": true,
      "sourceRef": "Section 2: Applicant — \"Applicant position:\" — \"Power of attorney\" / \"Representative\" / \"Managing director\" / \"Chairman of the board\"",
      "validation": {
        "enum": [
          "power_of_attorney",
          "representative",
          "managing_director",
          "chairman_of_the_board"
        ]
      }
    },
    {
      "name": "applicantFirstName",
      "label": "Applicant: First name",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"First name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantMiddleName",
      "label": "Applicant: Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: many applicants have no middle name and the form provides no separate \"none\" indicator.",
      "sourceRef": "Section 2: Applicant — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantFamilyName",
      "label": "Applicant: Family name",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Family name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantGender",
      "label": "Applicant: Gender",
      "type": "enum",
      "required": true,
      "classification": "pii",
      "description": "The form's own two-option tick-box pair (no third option is printed).",
      "sourceRef": "Section 2: Applicant — \"Gender:\" — \"Female\" / \"Male\"",
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "applicantIdDocumentType",
      "label": "Applicant: ID document type",
      "type": "enum",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "applicantIdDocumentNumber",
      "label": "Applicant: ID document number",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "sourceRef": "Section 2: Applicant — \"ID document Nr.:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "applicantPassportCountry",
      "label": "Applicant: Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the ID document type selected is Passport.",
      "sourceRef": "Section 2: Applicant — \"Passport country:\"",
      "requiredWhen": {
        "field": "applicantIdDocumentType",
        "equals": "passport"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantDateOfBirth",
      "label": "Applicant: Date of birth",
      "type": "date",
      "required": true,
      "classification": "sensitive-pii",
      "sourceRef": "Section 2: Applicant — \"Date of birth:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "applicantResidentCountry",
      "label": "Applicant: Resident address — Country",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Resident address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantResidentProvince",
      "label": "Applicant: Resident address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: this specimen's administrative-division fields (Province/District/Sector/Cell) follow Rwanda's own subnational structure and are left optional at the individual field level since a non-Rwandan resident address may not decompose into these divisions.",
      "sourceRef": "Section 2: Applicant — \"Resident address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantResidentDistrict",
      "label": "Applicant: Resident address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Resident address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantResidentSector",
      "label": "Applicant: Resident address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Resident address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantResidentCell",
      "label": "Applicant: Resident address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Resident address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "applicantResidentStreetAndHouseNumber",
      "label": "Applicant: Resident address — Street name and house number",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Resident address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "applicantPhone",
      "label": "Applicant: Phone",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 2: Applicant — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "applicantEmail",
      "label": "Applicant: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 2: Applicant — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "applicantPoBox",
      "label": "Applicant: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address, not every resident/registered address includes one.",
      "sourceRef": "Section 2: Applicant — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "headOfficeCountry",
      "label": "Head office address (Registered address): Country",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "headOfficeProvince",
      "label": "Head office address: Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "headOfficeDistrict",
      "label": "Head office address: District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "headOfficeSector",
      "label": "Head office address: Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "headOfficeCell",
      "label": "Head office address: Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "headOfficeStreetAndHouseNumber",
      "label": "Head office address: Street name and house number",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "headOfficePhone",
      "label": "Head office address: Phone",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 3: Head office address (Registered address) — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "headOfficeEmail",
      "label": "Head office address: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 3: Head office address (Registered address) — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "headOfficePoBox",
      "label": "Head office address: P.O. Box",
      "type": "string",
      "required": false,
      "sourceRef": "Section 3: Head office address (Registered address) — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "headOfficeWorkingHoursFrom",
      "label": "Head office address: Working hours — From",
      "type": "string",
      "required": false,
      "sourceRef": "Section 3: Head office address (Registered address) — \"Working hours From:\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "headOfficeWorkingHoursTo",
      "label": "Head office address: Working hours — To",
      "type": "string",
      "required": false,
      "sourceRef": "Section 3: Head office address (Registered address) — \"To:\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "chairmanFirstName",
      "label": "Chairman of the board: First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"First name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanMiddleName",
      "label": "Chairman of the board: Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: many applicants have no middle name and the form provides no separate \"none\" indicator.",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanFamilyName",
      "label": "Chairman of the board: Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Family name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanGender",
      "label": "Chairman of the board: Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "description": "The form's own two-option tick-box pair (no third option is printed).",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Gender:\" — \"Female\" / \"Male\"",
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "chairmanIdDocumentType",
      "label": "Chairman of the board: ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "chairmanIdDocumentNumber",
      "label": "Chairman of the board: ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"ID document Nr.:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "chairmanPassportCountry",
      "label": "Chairman of the board: Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the ID document type selected is Passport.",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Passport country:\"",
      "requiredWhen": {
        "field": "chairmanIdDocumentType",
        "equals": "passport"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanDateOfBirth",
      "label": "Chairman of the board: Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Date of birth:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "chairmanResidentCountry",
      "label": "Chairman of the board: Resident address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Resident address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanResidentProvince",
      "label": "Chairman of the board: Resident address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: this specimen's administrative-division fields (Province/District/Sector/Cell) follow Rwanda's own subnational structure and are left optional at the individual field level since a non-Rwandan resident address may not decompose into these divisions.",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Resident address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanResidentDistrict",
      "label": "Chairman of the board: Resident address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Resident address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanResidentSector",
      "label": "Chairman of the board: Resident address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Resident address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanResidentCell",
      "label": "Chairman of the board: Resident address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Resident address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chairmanResidentStreetAndHouseNumber",
      "label": "Chairman of the board: Resident address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Resident address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "chairmanPhone",
      "label": "Chairman of the board: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "chairmanEmail",
      "label": "Chairman of the board: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "chairmanPoBox",
      "label": "Chairman of the board: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address, not every resident/registered address includes one.",
      "sourceRef": "Section 4: Chairman of the board (Optional) — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "managingDirectorFirstName",
      "label": "Managing director: First name",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"First name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorMiddleName",
      "label": "Managing director: Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: many applicants have no middle name and the form provides no separate \"none\" indicator.",
      "sourceRef": "Section 5: Managing director — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorFamilyName",
      "label": "Managing director: Family name",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Family name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorGender",
      "label": "Managing director: Gender",
      "type": "enum",
      "required": true,
      "classification": "pii",
      "description": "The form's own two-option tick-box pair (no third option is printed).",
      "sourceRef": "Section 5: Managing director — \"Gender:\" — \"Female\" / \"Male\"",
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "managingDirectorIdDocumentType",
      "label": "Managing director: ID document type",
      "type": "enum",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "managingDirectorIdDocumentNumber",
      "label": "Managing director: ID document number",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "sourceRef": "Section 5: Managing director — \"ID document Nr.:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "managingDirectorPassportCountry",
      "label": "Managing director: Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the ID document type selected is Passport.",
      "sourceRef": "Section 5: Managing director — \"Passport country:\"",
      "requiredWhen": {
        "field": "managingDirectorIdDocumentType",
        "equals": "passport"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorDateOfBirth",
      "label": "Managing director: Date of birth",
      "type": "date",
      "required": true,
      "classification": "sensitive-pii",
      "sourceRef": "Section 5: Managing director — \"Date of birth:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "managingDirectorResidentCountry",
      "label": "Managing director: Resident address — Country",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Resident address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorResidentProvince",
      "label": "Managing director: Resident address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: this specimen's administrative-division fields (Province/District/Sector/Cell) follow Rwanda's own subnational structure and are left optional at the individual field level since a non-Rwandan resident address may not decompose into these divisions.",
      "sourceRef": "Section 5: Managing director — \"Resident address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorResidentDistrict",
      "label": "Managing director: Resident address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Resident address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorResidentSector",
      "label": "Managing director: Resident address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Resident address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorResidentCell",
      "label": "Managing director: Resident address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Resident address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "managingDirectorResidentStreetAndHouseNumber",
      "label": "Managing director: Resident address — Street name and house number",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Resident address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "managingDirectorPhone",
      "label": "Managing director: Phone",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Section 5: Managing director — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "managingDirectorEmail",
      "label": "Managing director: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 5: Managing director — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "managingDirectorPoBox",
      "label": "Managing director: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address, not every resident/registered address includes one.",
      "sourceRef": "Section 5: Managing director — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "companySecretaryFirstName",
      "label": "Company employee / secretary: First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"First name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryMiddleName",
      "label": "Company employee / secretary: Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: many applicants have no middle name and the form provides no separate \"none\" indicator.",
      "sourceRef": "Section 6: Company employee / secretary — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryFamilyName",
      "label": "Company employee / secretary: Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Family name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryGender",
      "label": "Company employee / secretary: Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "description": "The form's own two-option tick-box pair (no third option is printed).",
      "sourceRef": "Section 6: Company employee / secretary — \"Gender:\" — \"Female\" / \"Male\"",
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "companySecretaryIdDocumentType",
      "label": "Company employee / secretary: ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "companySecretaryIdDocumentNumber",
      "label": "Company employee / secretary: ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 6: Company employee / secretary — \"ID document Nr.:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "companySecretaryPassportCountry",
      "label": "Company employee / secretary: Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the ID document type selected is Passport.",
      "sourceRef": "Section 6: Company employee / secretary — \"Passport country:\"",
      "requiredWhen": {
        "field": "companySecretaryIdDocumentType",
        "equals": "passport"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryDateOfBirth",
      "label": "Company employee / secretary: Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Date of birth:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "companySecretaryResidentCountry",
      "label": "Company employee / secretary: Resident address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Resident address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryResidentProvince",
      "label": "Company employee / secretary: Resident address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: this specimen's administrative-division fields (Province/District/Sector/Cell) follow Rwanda's own subnational structure and are left optional at the individual field level since a non-Rwandan resident address may not decompose into these divisions.",
      "sourceRef": "Section 6: Company employee / secretary — \"Resident address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryResidentDistrict",
      "label": "Company employee / secretary: Resident address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Resident address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryResidentSector",
      "label": "Company employee / secretary: Resident address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Resident address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryResidentCell",
      "label": "Company employee / secretary: Resident address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Resident address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "companySecretaryResidentStreetAndHouseNumber",
      "label": "Company employee / secretary: Resident address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Resident address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "companySecretaryPhone",
      "label": "Company employee / secretary: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 6: Company employee / secretary — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "companySecretaryEmail",
      "label": "Company employee / secretary: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 6: Company employee / secretary — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "companySecretaryPoBox",
      "label": "Company employee / secretary: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address, not every resident/registered address includes one.",
      "sourceRef": "Section 6: Company employee / secretary — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "boardMember1FirstName",
      "label": "Member of the board 1: First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"First name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1MiddleName",
      "label": "Member of the board 1: Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: many applicants have no middle name and the form provides no separate \"none\" indicator.",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1FamilyName",
      "label": "Member of the board 1: Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Family name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1Gender",
      "label": "Member of the board 1: Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "description": "The form's own two-option tick-box pair (no third option is printed).",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Gender:\" — \"Female\" / \"Male\"",
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "boardMember1IdDocumentType",
      "label": "Member of the board 1: ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "boardMember1IdDocumentNumber",
      "label": "Member of the board 1: ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"ID document Nr.:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "boardMember1PassportCountry",
      "label": "Member of the board 1: Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the ID document type selected is Passport.",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Passport country:\"",
      "requiredWhen": {
        "field": "boardMember1IdDocumentType",
        "equals": "passport"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1DateOfBirth",
      "label": "Member of the board 1: Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Date of birth:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "boardMember1ResidentCountry",
      "label": "Member of the board 1: Resident address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Resident address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1ResidentProvince",
      "label": "Member of the board 1: Resident address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: this specimen's administrative-division fields (Province/District/Sector/Cell) follow Rwanda's own subnational structure and are left optional at the individual field level since a non-Rwandan resident address may not decompose into these divisions.",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Resident address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1ResidentDistrict",
      "label": "Member of the board 1: Resident address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Resident address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1ResidentSector",
      "label": "Member of the board 1: Resident address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Resident address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1ResidentCell",
      "label": "Member of the board 1: Resident address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Resident address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember1ResidentStreetAndHouseNumber",
      "label": "Member of the board 1: Resident address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Resident address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "boardMember1Phone",
      "label": "Member of the board 1: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "boardMember1Email",
      "label": "Member of the board 1: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "boardMember1PoBox",
      "label": "Member of the board 1: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address, not every resident/registered address includes one.",
      "sourceRef": "Section 7: Member of the board, slot 1 — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "boardMember2FirstName",
      "label": "Member of the board 2: First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"First name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2MiddleName",
      "label": "Member of the board 2: Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: many applicants have no middle name and the form provides no separate \"none\" indicator.",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2FamilyName",
      "label": "Member of the board 2: Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Family name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2Gender",
      "label": "Member of the board 2: Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "description": "The form's own two-option tick-box pair (no third option is printed).",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Gender:\" — \"Female\" / \"Male\"",
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "boardMember2IdDocumentType",
      "label": "Member of the board 2: ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "boardMember2IdDocumentNumber",
      "label": "Member of the board 2: ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"ID document Nr.:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "boardMember2PassportCountry",
      "label": "Member of the board 2: Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the ID document type selected is Passport.",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Passport country:\"",
      "requiredWhen": {
        "field": "boardMember2IdDocumentType",
        "equals": "passport"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2DateOfBirth",
      "label": "Member of the board 2: Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Date of birth:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "boardMember2ResidentCountry",
      "label": "Member of the board 2: Resident address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Resident address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2ResidentProvince",
      "label": "Member of the board 2: Resident address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: this specimen's administrative-division fields (Province/District/Sector/Cell) follow Rwanda's own subnational structure and are left optional at the individual field level since a non-Rwandan resident address may not decompose into these divisions.",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Resident address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2ResidentDistrict",
      "label": "Member of the board 2: Resident address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Resident address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2ResidentSector",
      "label": "Member of the board 2: Resident address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Resident address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2ResidentCell",
      "label": "Member of the board 2: Resident address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Resident address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "boardMember2ResidentStreetAndHouseNumber",
      "label": "Member of the board 2: Resident address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Resident address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "boardMember2Phone",
      "label": "Member of the board 2: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "boardMember2Email",
      "label": "Member of the board 2: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "boardMember2PoBox",
      "label": "Member of the board 2: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address, not every resident/registered address includes one.",
      "sourceRef": "Section 7: Member of the board, slot 2 — \"P.O. Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "auditorType",
      "label": "Auditor: Type",
      "type": "enum",
      "required": false,
      "sourceRef": "Section 8: Auditor — \"Type:\" — \"Person\" / \"Organization\"",
      "validation": {
        "enum": [
          "person",
          "organization"
        ]
      }
    },
    {
      "name": "auditorPersonFirstName",
      "label": "Auditor (person): First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"First name:\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorPersonMiddleName",
      "label": "Auditor (person): Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required, whether or not the person branch applies: many applicants have no middle name.",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorPersonFamilyName",
      "label": "Auditor (person): Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"Family name:\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorPersonGender",
      "label": "Auditor (person): Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"Gender:\" — \"Female\" / \"Male\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "auditorPersonIdDocumentType",
      "label": "Auditor (person): ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "auditorPersonIdDocumentNumber",
      "label": "Auditor (person): ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"ID document Nr.:\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "person"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "auditorPersonPassportCountry",
      "label": "Auditor (person): Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the person branch applies and Passport is the selected ID document type.",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"Passport country:\"",
      "requiredWhen": {
        "all": [
          {
            "field": "auditorType",
            "equals": "person"
          },
          {
            "field": "auditorPersonIdDocumentType",
            "equals": "passport"
          }
        ]
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorPersonDateOfBirth",
      "label": "Auditor (person): Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 8: Auditor — \"Person:\" — \"Date of birth:\" (D D / M M / Y Y Y Y)",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "person"
      }
    },
    {
      "name": "auditorOrganizationCompanyOrEnterpriseCode",
      "label": "Auditor (organization): Company/Enterprise code (or other)",
      "type": "string",
      "required": false,
      "sourceRef": "Section 8: Auditor — \"Organization:\" — \"Company/Enterprise code/other:\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "auditorOrganizationRegisteredName",
      "label": "Auditor (organization): Registered name",
      "type": "string",
      "required": false,
      "sourceRef": "Section 8: Auditor — \"Organization:\" — \"Registered name:\"",
      "requiredWhen": {
        "field": "auditorType",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "auditorAddressCountry",
      "label": "Auditor: Person resident / Organization registered office address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person resident address /Organization registered office address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorAddressProvince",
      "label": "Auditor: Person resident / Organization registered office address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required at the individual field level, for the same reason as the person-block address fields elsewhere in this schema: a non-Rwandan address may not decompose into Province/District/Sector/Cell.",
      "sourceRef": "Section 8: Auditor — \"Person resident address /Organization registered office address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorAddressDistrict",
      "label": "Auditor: Person resident / Organization registered office address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person resident address /Organization registered office address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorAddressSector",
      "label": "Auditor: Person resident / Organization registered office address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person resident address /Organization registered office address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorAddressCell",
      "label": "Auditor: Person resident / Organization registered office address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person resident address /Organization registered office address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "auditorAddressStreetAndHouseNumber",
      "label": "Auditor: Person resident / Organization registered office address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Person resident address /Organization registered office address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "auditorPhone",
      "label": "Auditor: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 8: Auditor — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "auditorEmail",
      "label": "Auditor: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 8: Auditor — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "auditorPoBox",
      "label": "Auditor: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address.",
      "sourceRef": "Section 8: Auditor — \"P.O.Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "accountantType",
      "label": "Accountant: Type",
      "type": "enum",
      "required": false,
      "sourceRef": "Section 9: Accountant — \"Type:\" — \"Person\" / \"Organization\"",
      "validation": {
        "enum": [
          "person",
          "organization"
        ]
      }
    },
    {
      "name": "accountantPersonFirstName",
      "label": "Accountant (person): First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"First name:\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantPersonMiddleName",
      "label": "Accountant (person): Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required, whether or not the person branch applies: many applicants have no middle name.",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantPersonFamilyName",
      "label": "Accountant (person): Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"Family name:\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantPersonGender",
      "label": "Accountant (person): Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"Gender:\" — \"Female\" / \"Male\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "accountantPersonIdDocumentType",
      "label": "Accountant (person): ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "accountantPersonIdDocumentNumber",
      "label": "Accountant (person): ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"ID document Nr.:\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "person"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "accountantPersonPassportCountry",
      "label": "Accountant (person): Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the person branch applies and Passport is the selected ID document type.",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"Passport country:\"",
      "requiredWhen": {
        "all": [
          {
            "field": "accountantType",
            "equals": "person"
          },
          {
            "field": "accountantPersonIdDocumentType",
            "equals": "passport"
          }
        ]
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantPersonDateOfBirth",
      "label": "Accountant (person): Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 9: Accountant — \"Person:\" — \"Date of birth:\" (D D / M M / Y Y Y Y)",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "person"
      }
    },
    {
      "name": "accountantOrganizationCompanyOrEnterpriseCode",
      "label": "Accountant (organization): Company/Enterprise code (or other)",
      "type": "string",
      "required": false,
      "sourceRef": "Section 9: Accountant — \"Organization:\" — \"Company/Enterprise code/other:\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "accountantOrganizationRegisteredName",
      "label": "Accountant (organization): Registered name",
      "type": "string",
      "required": false,
      "sourceRef": "Section 9: Accountant — \"Organization:\" — \"Registered name:\"",
      "requiredWhen": {
        "field": "accountantType",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "accountantAddressCountry",
      "label": "Accountant: Person resident / Organization registered office address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person resident address /Organization registered office address:\" — \"Country:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantAddressProvince",
      "label": "Accountant: Person resident / Organization registered office address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required at the individual field level, for the same reason as the person-block address fields elsewhere in this schema: a non-Rwandan address may not decompose into Province/District/Sector/Cell.",
      "sourceRef": "Section 9: Accountant — \"Person resident address /Organization registered office address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantAddressDistrict",
      "label": "Accountant: Person resident / Organization registered office address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person resident address /Organization registered office address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantAddressSector",
      "label": "Accountant: Person resident / Organization registered office address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person resident address /Organization registered office address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantAddressCell",
      "label": "Accountant: Person resident / Organization registered office address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person resident address /Organization registered office address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accountantAddressStreetAndHouseNumber",
      "label": "Accountant: Person resident / Organization registered office address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Person resident address /Organization registered office address:\" — \"Street name and house number:\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "accountantPhone",
      "label": "Accountant: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 9: Accountant — \"Phone:\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "accountantEmail",
      "label": "Accountant: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 9: Accountant — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "accountantPoBox",
      "label": "Accountant: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address.",
      "sourceRef": "Section 9: Accountant — \"P.O.Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "businessActivity1RcpaCode",
      "label": "Business activity 1: RCPA code",
      "type": "string",
      "required": true,
      "description": "Section 10 prints a long, unbounded dashed table (~17 blank rows) for the company's business-activity codes/names under Rwanda's Common Products and Activities (RCPA) classification; flattened here to 3 numbered slots per this registry's established bounded-repeating-group convention. At least one business activity is required.",
      "sourceRef": "Section 10: Business activities — RCPA Code / Name table, row 1, column \"RCPA Code\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "businessActivity1Name",
      "label": "Business activity 1: Name",
      "type": "string",
      "required": false,
      "description": "Expected to be filled in whenever businessActivity1RcpaCode is filled in, but not machine-gated with requiredWhen: businessActivity1RcpaCode is itself optional and absent (not empty-string) when unused, and comparing an absent sibling field against a sentinel value risks the misfire class this registry has already hit and fixed elsewhere (cf. rw/dgie/visa-application's child1Gender disclosure).",
      "sourceRef": "Section 10: Business activities — RCPA Code / Name table, row 1, column \"Name\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "businessActivity2RcpaCode",
      "label": "Business activity 2: RCPA code",
      "type": "string",
      "required": false,
      "sourceRef": "Section 10: Business activities — RCPA Code / Name table, row 2, column \"RCPA Code\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "businessActivity2Name",
      "label": "Business activity 2: Name",
      "type": "string",
      "required": false,
      "description": "Expected to be filled in whenever businessActivity2RcpaCode is filled in, but not machine-gated with requiredWhen: businessActivity2RcpaCode is itself optional and absent (not empty-string) when unused, and comparing an absent sibling field against a sentinel value risks the misfire class this registry has already hit and fixed elsewhere (cf. rw/dgie/visa-application's child1Gender disclosure).",
      "sourceRef": "Section 10: Business activities — RCPA Code / Name table, row 2, column \"Name\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "businessActivity3RcpaCode",
      "label": "Business activity 3: RCPA code",
      "type": "string",
      "required": false,
      "sourceRef": "Section 10: Business activities — RCPA Code / Name table, row 3, column \"RCPA Code\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "businessActivity3Name",
      "label": "Business activity 3: Name",
      "type": "string",
      "required": false,
      "description": "Expected to be filled in whenever businessActivity3RcpaCode is filled in, but not machine-gated with requiredWhen: businessActivity3RcpaCode is itself optional and absent (not empty-string) when unused, and comparing an absent sibling field against a sentinel value risks the misfire class this registry has already hit and fixed elsewhere (cf. rw/dgie/visa-application's child1Gender disclosure).",
      "sourceRef": "Section 10: Business activities — RCPA Code / Name table, row 3, column \"Name\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "capitalOrdinarySharesNumber",
      "label": "Capital information: Ordinary share — Number of shares",
      "type": "integer",
      "required": false,
      "description": "Required when the share table applies at all: a company issuing share capital is expected to hold at least ordinary shares. The other 4 printed share-subtype rows on this table are additional, genuinely optional share classes -- not co-required whenever this row is.",
      "sourceRef": "Section 11: Capital information — Share type table, row \"Ordinary share\", column \"Number of shares\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_private",
          "limited_by_shares_public",
          "unlimited_public",
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalOrdinarySharesParValue",
      "label": "Capital information: Ordinary share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Ordinary share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalOrdinarySharesTotal",
      "label": "Capital information: Ordinary share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Ordinary share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalNonVotingSharesNumber",
      "label": "Capital information: Not confer voting rights share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Not confer voting rights share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalNonVotingSharesParValue",
      "label": "Capital information: Not confer voting rights share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Not confer voting rights share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalNonVotingSharesTotal",
      "label": "Capital information: Not confer voting rights share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Not confer voting rights share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalSpecialLimitedConditionalVotingSharesNumber",
      "label": "Capital information: Confer special, limited, or conditional voting rights share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Confer special, limited, or conditional voting rights share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalSpecialLimitedConditionalVotingSharesParValue",
      "label": "Capital information: Confer special, limited, or conditional voting rights share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Confer special, limited, or conditional voting rights share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalSpecialLimitedConditionalVotingSharesTotal",
      "label": "Capital information: Confer special, limited, or conditional voting rights share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Confer special, limited, or conditional voting rights share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalRedeemableSharesNumber",
      "label": "Capital information: Redeemable share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Redeemable share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalRedeemableSharesParValue",
      "label": "Capital information: Redeemable share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Redeemable share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalRedeemableSharesTotal",
      "label": "Capital information: Redeemable share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Redeemable share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalPreferentialDistributionSharesNumber",
      "label": "Capital information: Confer preferential rights to distributions of share capital or income share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Confer preferential rights to distributions of share capital or income share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalPreferentialDistributionSharesParValue",
      "label": "Capital information: Confer preferential rights to distributions of share capital or income share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Confer preferential rights to distributions of share capital or income share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalPreferentialDistributionSharesTotal",
      "label": "Capital information: Confer preferential rights to distributions of share capital or income share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Confer preferential rights to distributions of share capital or income share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalTotalNumberOfShares",
      "label": "Capital information: Total for the company — total number of shares",
      "type": "integer",
      "required": false,
      "description": "The share-type table's own summary row (\"Total for the company\" / \"Total for each subscriber\"); aggregates across all 5 printed share-type rows above.",
      "sourceRef": "Section 11: Capital information — Share type table, row \"Total for the company\", column \"Number of shares\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_private",
          "limited_by_shares_public",
          "unlimited_public",
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalTotalAmount",
      "label": "Capital information: Total for the company — total amount",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Share type table, row \"Total for the company\", column \"Total\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_private",
          "limited_by_shares_public",
          "unlimited_public",
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGuaranteeType",
      "label": "Capital information: Guarantee type",
      "type": "string",
      "required": false,
      "description": "The nature/class of guarantee undertaken, as freely described by the source's own unruled \"Guarantee type\" column (no fixed enumerated list is printed).",
      "sourceRef": "Section 11: Capital information — Guarantee type / Amount table, column \"Guarantee type\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "capitalGuaranteeAmount",
      "label": "Capital information: Guarantee amount",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — Guarantee type / Amount table, column \"Amount\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGuaranteeTotal",
      "label": "Capital information: Total (company guarantee)",
      "type": "number",
      "required": false,
      "sourceRef": "Section 11: Capital information — \"Total (company guarantee)\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1Type",
      "label": "Subscriber 1: Type",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "sourceRef": "Section 12: Subscribers — \"Type:\" — \"Person\" / \"Organization\"",
      "validation": {
        "enum": [
          "person",
          "organization"
        ]
      }
    },
    {
      "name": "subscriber1PersonFirstName",
      "label": "Subscriber 1 (person): First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"First name:\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1PersonMiddleName",
      "label": "Subscriber 1 (person): Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required, whether or not the person branch applies: many applicants have no middle name.",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1PersonFamilyName",
      "label": "Subscriber 1 (person): Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"Family name:\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1PersonGender",
      "label": "Subscriber 1 (person): Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"Gender:\" — \"Female\" / \"Male\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "subscriber1PersonIdDocumentType",
      "label": "Subscriber 1 (person): ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "subscriber1PersonIdDocumentNumber",
      "label": "Subscriber 1 (person): ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"ID document Nr.:\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "person"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "subscriber1PersonPassportCountry",
      "label": "Subscriber 1 (person): Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the person branch applies and Passport is the selected ID document type.",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"Passport country:\"",
      "requiredWhen": {
        "all": [
          {
            "field": "subscriber1Type",
            "equals": "person"
          },
          {
            "field": "subscriber1PersonIdDocumentType",
            "equals": "passport"
          }
        ]
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1PersonDateOfBirth",
      "label": "Subscriber 1 (person): Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 12: Subscribers — \"Person:\" — \"Date of birth:\" (D D / M M / Y Y Y Y)",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "person"
      }
    },
    {
      "name": "subscriber1OrganizationCompanyOrEnterpriseCode",
      "label": "Subscriber 1 (organization): Company/Enterprise code (or other)",
      "type": "string",
      "required": false,
      "sourceRef": "Section 12: Subscribers — \"Organization:\" — \"Company/Enterprise code/other:\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "subscriber1OrganizationRegisteredName",
      "label": "Subscriber 1 (organization): Registered name",
      "type": "string",
      "required": false,
      "sourceRef": "Section 12: Subscribers — \"Organization:\" — \"Registered name:\"",
      "requiredWhen": {
        "field": "subscriber1Type",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "subscriber1AddressCountry",
      "label": "Subscriber 1: Person resident / Organization registered office address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person resident address /Organization registered office address:\" — \"Country:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1AddressProvince",
      "label": "Subscriber 1: Person resident / Organization registered office address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required at the individual field level, for the same reason as the person-block address fields elsewhere in this schema: a non-Rwandan address may not decompose into Province/District/Sector/Cell.",
      "sourceRef": "Section 12: Subscribers — \"Person resident address /Organization registered office address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1AddressDistrict",
      "label": "Subscriber 1: Person resident / Organization registered office address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person resident address /Organization registered office address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1AddressSector",
      "label": "Subscriber 1: Person resident / Organization registered office address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person resident address /Organization registered office address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1AddressCell",
      "label": "Subscriber 1: Person resident / Organization registered office address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person resident address /Organization registered office address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "subscriber1AddressStreetAndHouseNumber",
      "label": "Subscriber 1: Person resident / Organization registered office address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Person resident address /Organization registered office address:\" — \"Street name and house number:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "subscriber1Phone",
      "label": "Subscriber 1: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 12: Subscribers — \"Phone:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "subscriber1Email",
      "label": "Subscriber 1: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 12: Subscribers — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "subscriber1PoBox",
      "label": "Subscriber 1: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address.",
      "sourceRef": "Section 12: Subscribers — \"P.O.Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "subscriber1OrdinarySharesNumber",
      "label": "Subscriber 1: Ordinary share — Number of shares",
      "type": "integer",
      "required": false,
      "description": "Required when the share table applies at all: a company issuing share capital is expected to hold at least ordinary shares. The other 4 printed share-subtype rows on this table are additional, genuinely optional share classes -- not co-required whenever this row is.",
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Ordinary share\", column \"Number of shares\"",
      "requiredWhen": {
        "all": [
          {
            "field": "registrationType",
            "equals": "new"
          },
          {
            "field": "category",
            "in": [
              "limited_by_shares_private",
              "limited_by_shares_public",
              "unlimited_public",
              "limited_by_shares_and_guarantee_private",
              "limited_by_shares_and_guarantee_public"
            ]
          }
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1OrdinarySharesParValue",
      "label": "Subscriber 1: Ordinary share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Ordinary share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1OrdinarySharesTotal",
      "label": "Subscriber 1: Ordinary share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Ordinary share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1NonVotingSharesNumber",
      "label": "Subscriber 1: Not confer voting rights share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Not confer voting rights share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1NonVotingSharesParValue",
      "label": "Subscriber 1: Not confer voting rights share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Not confer voting rights share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1NonVotingSharesTotal",
      "label": "Subscriber 1: Not confer voting rights share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Not confer voting rights share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1SpecialLimitedConditionalVotingSharesNumber",
      "label": "Subscriber 1: Confer special, limited, or conditional voting rights share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Confer special, limited, or conditional voting rights share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1SpecialLimitedConditionalVotingSharesParValue",
      "label": "Subscriber 1: Confer special, limited, or conditional voting rights share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Confer special, limited, or conditional voting rights share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1SpecialLimitedConditionalVotingSharesTotal",
      "label": "Subscriber 1: Confer special, limited, or conditional voting rights share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Confer special, limited, or conditional voting rights share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1RedeemableSharesNumber",
      "label": "Subscriber 1: Redeemable share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Redeemable share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1RedeemableSharesParValue",
      "label": "Subscriber 1: Redeemable share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Redeemable share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1RedeemableSharesTotal",
      "label": "Subscriber 1: Redeemable share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Redeemable share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1PreferentialDistributionSharesNumber",
      "label": "Subscriber 1: Confer preferential rights to distributions of share capital or income share — Number of shares",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Confer preferential rights to distributions of share capital or income share\", column \"Number of shares\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1PreferentialDistributionSharesParValue",
      "label": "Subscriber 1: Confer preferential rights to distributions of share capital or income share — Par value",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Confer preferential rights to distributions of share capital or income share\", column \"Par value\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1PreferentialDistributionSharesTotal",
      "label": "Subscriber 1: Confer preferential rights to distributions of share capital or income share — Total",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Confer preferential rights to distributions of share capital or income share\", column \"Total\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1TotalNumberOfShares",
      "label": "Subscriber 1: Total for each subscriber — total number of shares",
      "type": "integer",
      "required": false,
      "description": "The share-type table's own summary row (\"Total for the company\" / \"Total for each subscriber\"); aggregates across all 5 printed share-type rows above.",
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Total for each subscriber\", column \"Number of shares\"",
      "requiredWhen": {
        "all": [
          {
            "field": "registrationType",
            "equals": "new"
          },
          {
            "field": "category",
            "in": [
              "limited_by_shares_private",
              "limited_by_shares_public",
              "unlimited_public",
              "limited_by_shares_and_guarantee_private",
              "limited_by_shares_and_guarantee_public"
            ]
          }
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "subscriber1TotalAmount",
      "label": "Subscriber 1: Total for each subscriber — total amount",
      "type": "number",
      "required": false,
      "sourceRef": "Section 12: Subscribers — Share type table, row \"Total for each subscriber\", column \"Total\"",
      "requiredWhen": {
        "all": [
          {
            "field": "registrationType",
            "equals": "new"
          },
          {
            "field": "category",
            "in": [
              "limited_by_shares_private",
              "limited_by_shares_public",
              "unlimited_public",
              "limited_by_shares_and_guarantee_private",
              "limited_by_shares_and_guarantee_public"
            ]
          }
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "guarantor1Type",
      "label": "Guarantor 1: Type",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "sourceRef": "Section 13: Guarantor — \"Type:\" — \"Person\" / \"Organization\"",
      "validation": {
        "enum": [
          "person",
          "organization"
        ]
      }
    },
    {
      "name": "guarantor1PersonFirstName",
      "label": "Guarantor 1 (person): First name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"First name:\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1PersonMiddleName",
      "label": "Guarantor 1 (person): Middle name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required, whether or not the person branch applies: many applicants have no middle name.",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"Middle name:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1PersonFamilyName",
      "label": "Guarantor 1 (person): Family name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"Family name:\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "person"
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1PersonGender",
      "label": "Guarantor 1 (person): Gender",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"Gender:\" — \"Female\" / \"Male\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "female",
          "male"
        ]
      }
    },
    {
      "name": "guarantor1PersonIdDocumentType",
      "label": "Guarantor 1 (person): ID document type",
      "type": "enum",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"ID document:\" — \"National ID Card\" / \"Passport\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "person"
      },
      "validation": {
        "enum": [
          "national_id_card",
          "passport"
        ]
      }
    },
    {
      "name": "guarantor1PersonIdDocumentNumber",
      "label": "Guarantor 1 (person): ID document number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"ID document Nr.:\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "person"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "guarantor1PersonPassportCountry",
      "label": "Guarantor 1 (person): Passport country (if a passport is the ID document)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Meaningful, and expected to be completed, only when the person branch applies and Passport is the selected ID document type.",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"Passport country:\"",
      "requiredWhen": {
        "all": [
          {
            "field": "guarantor1Type",
            "equals": "person"
          },
          {
            "field": "guarantor1PersonIdDocumentType",
            "equals": "passport"
          }
        ]
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1PersonDateOfBirth",
      "label": "Guarantor 1 (person): Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Section 13: Guarantor — \"Person:\" — \"Date of birth:\" (D D / M M / Y Y Y Y)",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "person"
      }
    },
    {
      "name": "guarantor1OrganizationCompanyOrEnterpriseCode",
      "label": "Guarantor 1 (organization): Company/Enterprise code (or other)",
      "type": "string",
      "required": false,
      "sourceRef": "Section 13: Guarantor — \"Organization:\" — \"Company/Enterprise code/other:\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "guarantor1OrganizationRegisteredName",
      "label": "Guarantor 1 (organization): Registered name",
      "type": "string",
      "required": false,
      "sourceRef": "Section 13: Guarantor — \"Organization:\" — \"Registered name:\"",
      "requiredWhen": {
        "field": "guarantor1Type",
        "equals": "organization"
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "guarantor1AddressCountry",
      "label": "Guarantor 1: Person resident / Organization registered office address — Country",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person resident address /Organization registered office address:\" — \"Country:\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1AddressProvince",
      "label": "Guarantor 1: Person resident / Organization registered office address — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required at the individual field level, for the same reason as the person-block address fields elsewhere in this schema: a non-Rwandan address may not decompose into Province/District/Sector/Cell.",
      "sourceRef": "Section 13: Guarantor — \"Person resident address /Organization registered office address:\" — \"Province:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1AddressDistrict",
      "label": "Guarantor 1: Person resident / Organization registered office address — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person resident address /Organization registered office address:\" — \"District:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1AddressSector",
      "label": "Guarantor 1: Person resident / Organization registered office address — Sector",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person resident address /Organization registered office address:\" — \"Sector:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1AddressCell",
      "label": "Guarantor 1: Person resident / Organization registered office address — Cell",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person resident address /Organization registered office address:\" — \"Cell:\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "guarantor1AddressStreetAndHouseNumber",
      "label": "Guarantor 1: Person resident / Organization registered office address — Street name and house number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Person resident address /Organization registered office address:\" — \"Street name and house number:\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "guarantor1Phone",
      "label": "Guarantor 1: Phone",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Section 13: Guarantor — \"Phone:\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "guarantor1Email",
      "label": "Guarantor 1: E-mail",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not marked as obligatory by the source.",
      "sourceRef": "Section 13: Guarantor — \"E-mail:\"",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 150
      }
    },
    {
      "name": "guarantor1PoBox",
      "label": "Guarantor 1: P.O. Box",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Not required: a P.O. Box is a supplementary mailing address.",
      "sourceRef": "Section 13: Guarantor — \"P.O.Box:\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "guarantor1GuaranteeType",
      "label": "Guarantor 1: Guarantee type",
      "type": "string",
      "required": false,
      "description": "The nature/class of guarantee undertaken, as freely described by the source's own unruled \"Guarantee type\" column (no fixed enumerated list is printed).",
      "sourceRef": "Section 13: Guarantor — Guarantee type / Amount table, column \"Guarantee type\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "guarantor1GuaranteeAmount",
      "label": "Guarantor 1: Guarantee amount",
      "type": "number",
      "required": false,
      "sourceRef": "Section 13: Guarantor — Guarantee type / Amount table, column \"Amount\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "guarantor1GuaranteeTotal",
      "label": "Guarantor 1: Total for each guarantor",
      "type": "number",
      "required": false,
      "sourceRef": "Section 13: Guarantor — \"Total for each guarantor\"",
      "requiredWhen": {
        "field": "category",
        "in": [
          "limited_by_shares_and_guarantee_private",
          "limited_by_shares_and_guarantee_public",
          "limited_by_guarantee_private"
        ]
      },
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "dateOfHiringFirstEmployee",
      "label": "Date of hiring first employee",
      "type": "date",
      "required": false,
      "description": "Not required: a newly incorporated company may have no employees yet.",
      "sourceRef": "Section 14: Employment — \"Date of hiring first employee:\" (D D / M M / Y Y Y Y)"
    },
    {
      "name": "numberOfEmployeesOnRegistrationDate",
      "label": "Number of employees on registration date",
      "type": "integer",
      "required": false,
      "sourceRef": "Section 14: Employment — \"Number of employees on registration date:\"",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "amalgamatedCompanyCode",
      "label": "Amalgamated company code",
      "type": "string",
      "required": false,
      "sourceRef": "Section 15: Amalgamation — \"Amalgamated company code:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "amalgamation"
      },
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "dormantResolutionDate",
      "label": "Date of dormant resolution",
      "type": "date",
      "required": false,
      "sourceRef": "Section 16: Declaring to be dormant — \"Date of dormant resolution:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "declaring_to_be_dormant"
      }
    },
    {
      "name": "dormantStartDate",
      "label": "Dormant start date",
      "type": "date",
      "required": false,
      "sourceRef": "Section 16: Declaring to be dormant — \"Dormant start date:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "declaring_to_be_dormant"
      }
    },
    {
      "name": "cessationResolutionDate",
      "label": "Date of cessation resolution",
      "type": "date",
      "required": false,
      "description": "Section 16's own printed header covers both declaring a company dormant and ceasing dormancy; this field and cessationDate belong to the cessation-of-dormancy pathway.",
      "sourceRef": "Section 16: Declaring to be dormant — \"Date of cessation resolution:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "cessation_to_be_dormant"
      }
    },
    {
      "name": "cessationDate",
      "label": "Cessation date",
      "type": "date",
      "required": false,
      "sourceRef": "Section 16: Declaring to be dormant — \"Cessation date:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "cessation_to_be_dormant"
      }
    },
    {
      "name": "dissolutionResolutionDate",
      "label": "Dissolution / liquidation: Resolution date",
      "type": "date",
      "required": false,
      "sourceRef": "Section 17: Dissolution / liquidation — \"Resolution date:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "dissolution"
      }
    },
    {
      "name": "dissolutionOperationEndDate",
      "label": "Dissolution / liquidation: Operation end date",
      "type": "date",
      "required": false,
      "sourceRef": "Section 17: Dissolution / liquidation — \"Operation end date:\"",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "dissolution"
      }
    },
    {
      "name": "certificationSigningDate",
      "label": "Certification signing date",
      "type": "date",
      "required": true,
      "sourceRef": "Page 10, beside the (unwidgeted) signature line following the Certification statement — \"Date:\""
    }
  ],
  "documents": [
    {
      "id": "memorandum",
      "label": "Memorandum",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Memorandum\""
    },
    {
      "id": "articles",
      "label": "Articles",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "new"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Articles\""
    },
    {
      "id": "evidenceOfPaymentOfFee",
      "label": "Evidence of payment of fee(s)",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "the source's checklist does not tie this specifically to one registrationType value, so it is left optional rather than requiredWhen-gated",
      "constraints": {
        "mediaTypes": [
          "application/pdf",
          "image/jpeg",
          "image/png"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Evidence of payment of fee(s)\""
    },
    {
      "id": "amalgamationProposal",
      "label": "Amalgamation proposal",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "amalgamation"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Amalgamation proposal\""
    },
    {
      "id": "amalgamationResolution",
      "label": "Amalgamation resolution",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "amalgamation"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Amalgamation resolution\""
    },
    {
      "id": "resolutionToChangeName",
      "label": "Resolution to change the name",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "one of several alternative sub-reasons a \"change_of_particulars\" filing can carry (see registrationType); this schema does not capture which specific particular is changing as its own selector, so this and the following 6 change-of-particulars-related attachments are left optional rather than all requiredWhen-gated to registrationType alone (which would wrongly force every one of them whenever any single particular changes)",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to change the name\""
    },
    {
      "id": "resolutionToAlterOrRevokeArticles",
      "label": "Resolution to alter or revoke the articles of association",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to alter or revoke the articles of association\""
    },
    {
      "id": "resolutionToOpenBranch",
      "label": "Resolution to open branch",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to open branch\""
    },
    {
      "id": "resolutionToIssueShares",
      "label": "Resolution to issue shares",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to issue shares\""
    },
    {
      "id": "resolutionToDivideSubdivideOrConsolidateShares",
      "label": "Resolution to divide, subdivide or consolidate shares",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to divide, subdivide or consolidate shares\""
    },
    {
      "id": "resolutionToReduceShareCapital",
      "label": "Resolution to reduce the share capital",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to reduce the share capital\""
    },
    {
      "id": "resolutionConversionLimitedToUnlimited",
      "label": "Resolution of the conversion of limited companies into unlimited companies",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution of the conversion of limited companies into unlimited companies\""
    },
    {
      "id": "resolutionConversionUnlimitedToLimited",
      "label": "Resolution of the conversion of unlimited companies into a limited companies",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "see resolutionToChangeName for the shared change-of-particulars scoping disclosure",
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution of the conversion of unlimited companies into a limited companies\""
    },
    {
      "id": "resolutionToDeclareCompanyDormant",
      "label": "Resolution to declare company as dormant",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "declaring_to_be_dormant"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to declare company as dormant\""
    },
    {
      "id": "resolutionToCeaseBeingDormant",
      "label": "Resolution to cease being dormant",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "cessation_to_be_dormant"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution to cease being dormant\""
    },
    {
      "id": "resolutionOfLiquidation",
      "label": "Resolution of liquidation",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "registrationType",
        "equals": "dissolution"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Resolution of liquidation\""
    },
    {
      "id": "powerOfAttorney",
      "label": "Power of attorney",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": {
        "field": "applicantPosition",
        "equals": "power_of_attorney"
      },
      "constraints": {
        "mediaTypes": [
          "application/pdf"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Power of attorney\""
    },
    {
      "id": "othersAttachment",
      "label": "Others",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "handling": "the source's own open-ended catch-all checklist entry",
      "constraints": {
        "mediaTypes": [
          "application/pdf",
          "image/jpeg",
          "image/png"
        ]
      },
      "sourceRef": "Section 18: Attachments (checklist) — \"Others\""
    },
    {
      "id": "applicationCertification",
      "label": "Certification that all information is complete and correct",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "statement": "I hereby certify that the information given to the best of my knowledge is true, complete and all signatures in the attachments are made by the persons stated. I also understand that any false declaration may lead to prosecution.",
      "sourceRef": "Page 10, \"Certification\" — \"I hereby certify that the information given to the best of my knowledge is true, complete and all signatures in the attachments are made by the persons stated. I also understand that any false declaration may lead to prosecution.\""
    }
  ]
}
