{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "ls/rsl/company-income-tax-return",
  "version": "1.0.0",
  "title": "Lesotho — Company Income Tax Return (Form S128-C)",
  "description": "Revenue Services Lesotho's (RSL) Form S128-C, \"Company Income Tax Return for Year Ended 31 March 2023\" — a companion to ls/rsl/individual-income-tax-return within Lesotho's Taxes vertical (already open, 2 of 6). Resident companies, non-resident companies, and Lesotho branches of non-resident companies use this annual return to reconcile chargeable income (manufacturing, commercial farming, and other business income, plus property, investment, and foreign-source income) and compute tax due or overpaid for the year. This v1.0.0 schema is scoped to the core declaration a Lesotho-resident company with only Lesotho-source business income completes: Details of Company, Part A (Lesotho-Source Business Income & Expenses), Part D (Chargeable Income, Lesotho-source lines only), Part F (Tax Computation), and the Declaration of Paid Preparer / Declaration of Nominated Officer sections. Part B (Foreign-Source Business Income & Expenses), Part C (Property & Other Income and Expenses), Part E (Credit for Foreign Tax Paid), and Part G (Related Parties Transactions Reporting) are out of scope for this version and deferred to a future minor version. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of Lesotho or Revenue Services Lesotho.",
  "status": "draft",
  "jurisdiction": {
    "country": "LS",
    "level": "national"
  },
  "authority": {
    "name": "Revenue Services Lesotho",
    "abbreviation": "RSL",
    "url": "https://www.rsl.org.ls"
  },
  "process": {
    "type": "filing",
    "language": "en"
  },
  "source": {
    "url": "https://www.rsl.org.ls/sites/default/files/2024-07/Company%20Income%20Tax%20Return%202023%20%282%29.pdf",
    "retrievedAt": "2026-07-24",
    "documentRef": "FORM S128-C — Company Income Tax Return, Year Ended 31 March 2023"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-24",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-24",
    "notes": "GOV-4762 (\"GovSchema Standard Research\"). Companion schema to ls/rsl/individual-income-tax-return (GOV-4755), which disclosed this form as open backlog in RSL's own \"Forms & Instructions\" library. The PDF was fetched live and unauthenticated from rsl.org.ls (317,637 bytes). The form is a flat (non-fillable, non-XFA) 6-page PDF with no AcroForm annotations; all fields were reconstructed from the rendered page images (node-canvas at 2.5x scale) cross-checked against the pdfjs-dist text layer, which was found consistent with the visual layout for this specimen (unlike the individual return's own ghost-text finding). See this document's own VERIFICATION.md for the full sourcing record."
  },
  "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-24"
  },
  "license": "CC-BY-4.0",
  "steps": [
    {
      "id": "company_details",
      "title": "Details of Company",
      "fields": [
        "substitutedAccountingDate",
        "companyResidencyStatus",
        "finalReturn",
        "companyName",
        "tin",
        "phone",
        "email",
        "natureOfBusiness",
        "nominatedOfficerNameAndDesignation"
      ],
      "next": "lesotho_business_income"
    },
    {
      "id": "lesotho_business_income",
      "title": "Part A - Lesotho-Source Business Income & Expenses",
      "fields": [
        "manufacturingIncome",
        "manufacturingExpenses",
        "manufacturingNetProfitOrLoss",
        "farmingIncomeLesotho",
        "farmingExpensesLesotho",
        "farmingNetProfitOrLossLesotho",
        "otherBusinessIncomeLesotho",
        "otherBusinessExpensesLesotho",
        "otherBusinessNetProfitOrLossLesotho"
      ],
      "next": "chargeable_income"
    },
    {
      "id": "chargeable_income",
      "title": "Part D - Chargeable Income (Lesotho-Source)",
      "fields": [
        "manufacturingIncomeOrLossPartD",
        "manufacturingLossesBroughtForward",
        "chargeableManufacturingIncome",
        "farmingIncomeOrLossLesothoPartD",
        "farmingLossesBroughtForwardLesotho",
        "chargeableFarmingIncomeLesotho",
        "otherBusinessIncomeOrLossLesothoPartD",
        "propertyOtherIncomeOrLossLesothoPartD",
        "businessPropertyOtherIncomeSumLesotho",
        "businessPropertyOtherLossesBroughtForwardLesotho",
        "chargeableBusinessPropertyOtherIncomeLesotho"
      ],
      "next": "tax_computation"
    },
    {
      "id": "tax_computation",
      "title": "Part F - Tax Computation",
      "fields": [
        "taxComputationManufacturingIncome",
        "taxComputationManufacturingTax",
        "taxComputationFarmingIncomeLesotho",
        "taxComputationFarmingTaxLesotho",
        "resident109Election",
        "taxComputationOtherIncomeLesotho",
        "taxComputationOtherTaxLesotho",
        "totalTaxBeforeCreditsIncome",
        "totalTaxBeforeCreditsTax",
        "creditForForeignTaxPaid",
        "incomeTaxWhtPaid",
        "advanceInstallmentIncomeTaxPaid",
        "advanceCorporationTaxPayments",
        "totalTaxPaid",
        "taxDue",
        "taxOverpaid",
        "claimingRepaymentOfOverpaidTax"
      ],
      "next": "declarations"
    },
    {
      "id": "declarations",
      "title": "Declarations",
      "fields": [
        "paidPreparerName",
        "paidPreparerDate",
        "paidPreparerTin",
        "paidPreparerFirmName",
        "paidPreparerFirmTin",
        "paidPreparerFirmAddress",
        "paidPreparerPhone",
        "paidPreparerEmail",
        "officerTin",
        "declarationDate",
        "officerPostalAddress",
        "officerPostalCode",
        "officerPhone",
        "officerEmail",
        "previousOfficerChangeDate",
        "previousOfficerName"
      ]
    }
  ],
  "fields": [
    {
      "name": "substitutedAccountingDate",
      "label": "Enter approved substituted accounting date if different from above (day, month, year)",
      "type": "date",
      "required": false,
      "description": "Only completed by a company with RSL-approved substituted accounting date (an accounting year-end other than 31 March).",
      "sourceRef": "Page 1, header",
      "validation": {}
    },
    {
      "name": "companyResidencyStatus",
      "label": "Tick/circle applicable box(es) — Resident company / Non-resident company / Lesotho branch of non-resident company",
      "type": "enum",
      "required": true,
      "description": "The company's residency classification for the tax year. Mutually exclusive with the \"Lesotho branch of non-resident company\" case treated as its own option (a branch is not itself a resident or a standalone non-resident company).",
      "sourceRef": "Page 1, DETAILS OF COMPANY, \"Tick/circle applicable box(es)\"",
      "validation": {
        "enum": [
          "resident",
          "non-resident",
          "lesotho-branch-of-non-resident"
        ]
      }
    },
    {
      "name": "finalReturn",
      "label": "Final return (out of business)",
      "type": "boolean",
      "required": false,
      "description": "Ticked when this is the company's final return because it has ceased business. Independent of companyResidencyStatus — the source form allows ticking multiple boxes.",
      "sourceRef": "Page 1, DETAILS OF COMPANY, \"Final return (out of business)\"",
      "validation": {}
    },
    {
      "name": "companyName",
      "label": "Name of company",
      "type": "string",
      "required": true,
      "sourceRef": "Page 1, DETAILS OF COMPANY",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "tin",
      "label": "TIN",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The company's Taxpayer Identification Number, printed as a comb-box field.",
      "sourceRef": "Page 1, DETAILS OF COMPANY",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "phone",
      "label": "Contact telephone number",
      "type": "string",
      "required": false,
      "sourceRef": "Page 1, DETAILS OF COMPANY",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "email",
      "label": "Email address",
      "type": "string",
      "required": false,
      "sourceRef": "Page 1, DETAILS OF COMPANY",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 200
      }
    },
    {
      "name": "natureOfBusiness",
      "label": "Nature of business",
      "type": "string",
      "required": false,
      "sourceRef": "Page 1, DETAILS OF COMPANY",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "nominatedOfficerNameAndDesignation",
      "label": "Name and designation of nominated officer",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The individual the company has nominated as responsible officer for this return; this same person signs the Declaration of Nominated Officer.",
      "sourceRef": "Page 1, DETAILS OF COMPANY",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "manufacturingIncome",
      "label": "1(a). Business income — Manufacturing Income (Resident Companies only)",
      "type": "number",
      "required": false,
      "description": "Sales/turnover, investments, interest, premiums, gains from business assets, etc., including net business income from partnerships, trusts, and estates (attach schedule). Applicable only to resident companies; non-resident companies and Lesotho branches leave this column blank.",
      "sourceRef": "Page 1, PART A, item 1, col. (a)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "manufacturingExpenses",
      "label": "2. Total Expenses — Manufacturing Income (a)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 1, PART A, item 2, col. (a)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "manufacturingNetProfitOrLoss",
      "label": "3. Current year net profit or loss (line 1-2) — Manufacturing Income (a)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 1, PART A, item 3, col. (a)",
      "validation": {}
    },
    {
      "name": "farmingIncomeLesotho",
      "label": "1(b). Business income — Commercial Farming Income",
      "type": "number",
      "required": false,
      "description": "Lesotho-source commercial farming income, including net income from partnerships, trusts, and estates (attach schedule).",
      "sourceRef": "Page 1, PART A, item 1, col. (b)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "farmingExpensesLesotho",
      "label": "2. Total Expenses — Commercial Farming Income (b)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 1, PART A, item 2, col. (b)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "farmingNetProfitOrLossLesotho",
      "label": "3. Current year net profit or loss (line 1-2) — Commercial Farming Income (b)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 1, PART A, item 3, col. (b)",
      "validation": {}
    },
    {
      "name": "otherBusinessIncomeLesotho",
      "label": "1(c). Business income — Other Business Income",
      "type": "number",
      "required": false,
      "description": "Lesotho-source business income other than manufacturing or commercial farming, including net business income from partnerships, trusts, and estates (attach schedule).",
      "sourceRef": "Page 1, PART A, item 1, col. (c)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherBusinessExpensesLesotho",
      "label": "2. Total Expenses — Other Business Income (c)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 1, PART A, item 2, col. (c)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherBusinessNetProfitOrLossLesotho",
      "label": "3. Current year net profit or loss (line 1-2) — Other Business Income (c)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 1, PART A, item 3, col. (c)",
      "validation": {}
    },
    {
      "name": "manufacturingIncomeOrLossPartD",
      "label": "1(a). Enter manufacturing income or loss from Part A, line 3, col. (a)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 1a",
      "validation": {}
    },
    {
      "name": "manufacturingLossesBroughtForward",
      "label": "1(b). Enter manufacturing losses brought forward from prior years",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 1b",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "chargeableManufacturingIncome",
      "label": "1(c). Chargeable manufacturing income (1a-1b). If zero or less, enter nil",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 1c",
      "validation": {}
    },
    {
      "name": "farmingIncomeOrLossLesothoPartD",
      "label": "2(a). Enter Lesotho-source commercial farming income or loss from Part A, line 3, col. (b)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 2a",
      "validation": {}
    },
    {
      "name": "farmingLossesBroughtForwardLesotho",
      "label": "2(b). Enter Lesotho-source commercial farming losses from prior years",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 2b",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "chargeableFarmingIncomeLesotho",
      "label": "2(c). Chargeable commercial farming income (2a-2b). If zero or less, enter nil",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 2c",
      "validation": {}
    },
    {
      "name": "otherBusinessIncomeOrLossLesothoPartD",
      "label": "3(a). Enter other Lesotho-source business income or loss from Part A, line 3, col. (c)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 2, PART D, item 3a",
      "validation": {}
    },
    {
      "name": "propertyOtherIncomeOrLossLesothoPartD",
      "label": "3(b). Enter Lesotho-source property & other income or loss from Part C, line 8, col. (a)",
      "type": "number",
      "required": false,
      "description": "Pass-through total from Part C (Property & Other Income and Expenses), which is out of scope for this schema version. A company with such income can still record Part C's own final total here; the detailed schedule build-up is deferred to a future minor version.",
      "sourceRef": "Page 3, PART D, item 3b",
      "validation": {}
    },
    {
      "name": "businessPropertyOtherIncomeSumLesotho",
      "label": "3(c). Add lines 3a and 3b",
      "type": "number",
      "required": false,
      "sourceRef": "Page 3, PART D, item 3c",
      "validation": {}
    },
    {
      "name": "businessPropertyOtherLossesBroughtForwardLesotho",
      "label": "3(d). Enter Lesotho-source, business, property, and other losses from prior years",
      "type": "number",
      "required": false,
      "sourceRef": "Page 3, PART D, item 3d",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "chargeableBusinessPropertyOtherIncomeLesotho",
      "label": "3(e). Chargeable Lesotho-source business, property and other income. Subtract line (d) from line (c). If zero or less, enter nil",
      "type": "number",
      "required": false,
      "sourceRef": "Page 3, PART D, item 3e",
      "validation": {}
    },
    {
      "name": "taxComputationManufacturingIncome",
      "label": "1(a). Enter in col. (a) manufacturing income from Part D, line 1c",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 1a, col. (a)",
      "validation": {}
    },
    {
      "name": "taxComputationManufacturingTax",
      "label": "1(a). Tax (column (a) * 10%)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 1a, col. (c)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxComputationFarmingIncomeLesotho",
      "label": "1(b). Enter in col. (a) Lesotho-source commercial farming income from Part D, line 2c",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 1b, col. (a)",
      "validation": {}
    },
    {
      "name": "taxComputationFarmingTaxLesotho",
      "label": "1(b). Tax (column (a) * 10%)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 1b, col. (c)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "resident109Election",
      "label": "Non-resident companies electing under section 109 to be taxed by assessment must use a tax rate of 40%",
      "type": "boolean",
      "required": false,
      "description": "When true, the 40% rate (rather than the standard 25%) applies to taxComputationOtherTaxLesotho. Only relevant to non-resident companies.",
      "sourceRef": "Page 4, PART F, item 1c note, \"*Non-resident companies electing under section 109...\"",
      "validation": {}
    },
    {
      "name": "taxComputationOtherIncomeLesotho",
      "label": "1(c). Enter in col. (a) Lesotho-source business, property and other income from Part D, line 3e",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 1c, col. (a)",
      "validation": {}
    },
    {
      "name": "taxComputationOtherTaxLesotho",
      "label": "1(c). Tax (column (a) * 25% or, under section 109 election, 40%)",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 1c, col. (c)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxBeforeCreditsIncome",
      "label": "2. Total tax before credits — column (a): add 1a+1b+1c+1d+1e",
      "type": "number",
      "required": false,
      "description": "This schema models only the Lesotho-source rows (1a-1c); the foreign-source rows (1d-1e) are out of scope (see Part B/Part D section 4 deferral) and assumed nil for a company with no foreign-source income.",
      "sourceRef": "Page 4, PART F, item 2, col. (a)",
      "validation": {}
    },
    {
      "name": "totalTaxBeforeCreditsTax",
      "label": "2. Total tax before credits — column (c): add 1b+1c+1d+1e+1f",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 2, col. (c)",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "creditForForeignTaxPaid",
      "label": "3(a). Credit for foreign tax paid from Part E, line 2",
      "type": "number",
      "required": false,
      "description": "Pass-through total from Part E (Credit for Foreign Tax Paid), which is out of scope for this schema version and assumed nil for a company with no foreign-source income.",
      "sourceRef": "Page 4, PART F, item 3a",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "incomeTaxWhtPaid",
      "label": "3(b). Income tax (WHT) paid",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 3b",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "advanceInstallmentIncomeTaxPaid",
      "label": "3(c). Advance installment of income tax paid",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 3c",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "advanceCorporationTaxPayments",
      "label": "3(d). Advance corporation tax payments",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 3d",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxPaid",
      "label": "4. Total tax paid. Add 3a+3b+3c+3d",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxDue",
      "label": "5. Tax due. Line 2 minus line 4. Enter nil if less than -0-",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "taxOverpaid",
      "label": "6. Tax overpaid. Line 4 minus line 2. Enter nil if less than -0-",
      "type": "number",
      "required": false,
      "sourceRef": "Page 4, PART F, item 6",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "claimingRepaymentOfOverpaidTax",
      "label": "If you are claiming repayment of the tax overpaid as shown on this line, tick this box",
      "type": "boolean",
      "required": false,
      "description": "When ticked, proof of banking details from the company's bank must be attached.",
      "sourceRef": "Page 4, PART F, item 6",
      "validation": {}
    },
    {
      "name": "paidPreparerName",
      "label": "Name of paid preparer",
      "type": "string",
      "required": false,
      "description": "Declaration of Paid Preparer (external tax consultant/accountant/auditor). Skip this section if there is no paid preparer.",
      "classification": "pii",
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "paidPreparerDate",
      "label": "Date (day, month, year) [paid preparer]",
      "type": "date",
      "required": false,
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {}
    },
    {
      "name": "paidPreparerTin",
      "label": "TIN of paid preparer",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "paidPreparerFirmName",
      "label": "Firm's name",
      "type": "string",
      "required": false,
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "paidPreparerFirmTin",
      "label": "Firm's TIN",
      "type": "string",
      "required": false,
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "paidPreparerFirmAddress",
      "label": "Firm's physical address",
      "type": "string",
      "required": false,
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "paidPreparerPhone",
      "label": "Contact telephone number [paid preparer]",
      "type": "string",
      "required": false,
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "paidPreparerEmail",
      "label": "Email address [paid preparer]",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 6, Declaration of Paid Preparer",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 200
      }
    },
    {
      "name": "officerTin",
      "label": "TIN [of nominated officer]",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The nominated officer's own Taxpayer Identification Number, distinct from the company's TIN entered in Details of Company.",
      "sourceRef": "Page 6, Declaration of Nominated Officer",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "declarationDate",
      "label": "Date (day, month, year) [nominated officer]",
      "type": "date",
      "required": true,
      "description": "The date the nominated officer signs the declaration that the return is correct and complete, and (if applicable) confirms having ticked the repayment box on Part F, line 6.",
      "sourceRef": "Page 6, Declaration of Nominated Officer",
      "validation": {}
    },
    {
      "name": "officerPostalAddress",
      "label": "Postal address of officer (P/Bag or P.O Box)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 6, Declaration of Nominated Officer",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "officerPostalCode",
      "label": "Postal code",
      "type": "string",
      "required": false,
      "sourceRef": "Page 6, Declaration of Nominated Officer",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "officerPhone",
      "label": "Contact telephone number [nominated officer]",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 6, Declaration of Nominated Officer",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "officerEmail",
      "label": "Email address [nominated officer]",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 6, Declaration of Nominated Officer",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 200
      }
    },
    {
      "name": "previousOfficerChangeDate",
      "label": "Date of change (day, month, year) [if nominated officer changed during the year of assessment]",
      "type": "date",
      "required": false,
      "description": "Only completed when the company changed its nominated officer during the year of assessment. The source form has no separate yes/no checkbox for this scenario, so it is not requiredWhen-gated on previousOfficerName — see this registry's own notEquals-empty-string-absent-field anti-pattern notes.",
      "sourceRef": "Page 6, Declaration of Nominated Officer, \"If there has been a change of nominated officer...\"",
      "validation": {}
    },
    {
      "name": "previousOfficerName",
      "label": "Name of previous nominated officer",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 6, Declaration of Nominated Officer, \"If there has been a change of nominated officer...\"",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    }
  ],
  "documents": [
    {
      "id": "businessIncomeSchedule",
      "label": "Schedule of net business income from partnerships, trusts, and estates (if applicable)",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "sourceRef": "Page 1, PART A, item 1 — \"attach schedule\""
    },
    {
      "id": "proofOfBankingDetails",
      "label": "Proof of banking details from the company's bank",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "claimingRepaymentOfOverpaidTax",
        "equals": true
      },
      "belongsTo": "applicant",
      "sourceRef": "Page 4, PART F, item 6 — \"and attach proof of banking details from your bank\""
    }
  ],
  "crossFieldValidation": [
    {
      "id": "manufacturingIncomePartDMatchesPartA",
      "compare": {
        "field": "manufacturingIncomeOrLossPartD",
        "operator": "equals",
        "compareTo": "manufacturingNetProfitOrLoss"
      }
    },
    {
      "id": "farmingIncomePartDMatchesPartA",
      "compare": {
        "field": "farmingIncomeOrLossLesothoPartD",
        "operator": "equals",
        "compareTo": "farmingNetProfitOrLossLesotho"
      }
    },
    {
      "id": "otherBusinessIncomePartDMatchesPartA",
      "compare": {
        "field": "otherBusinessIncomeOrLossLesothoPartD",
        "operator": "equals",
        "compareTo": "otherBusinessNetProfitOrLossLesotho"
      }
    },
    {
      "id": "taxComputationManufacturingIncomeMatchesPartD",
      "compare": {
        "field": "taxComputationManufacturingIncome",
        "operator": "equals",
        "compareTo": "chargeableManufacturingIncome"
      }
    },
    {
      "id": "taxComputationFarmingIncomeMatchesPartD",
      "compare": {
        "field": "taxComputationFarmingIncomeLesotho",
        "operator": "equals",
        "compareTo": "chargeableFarmingIncomeLesotho"
      }
    },
    {
      "id": "taxComputationOtherIncomeMatchesPartD",
      "compare": {
        "field": "taxComputationOtherIncomeLesotho",
        "operator": "equals",
        "compareTo": "chargeableBusinessPropertyOtherIncomeLesotho"
      }
    }
  ]
}
