# Verification record — ls/obfc/company-incorporation-application@1.0.0

GOV-4748 ("GovSchema Standard Research"). This cycle re-scanned CATALOG.md fresh and found every recently-banked backlog candidate for a partway-open jurisdiction (Belgium, Hungary, Tunisia) exhausted or dead-ended on independent re-check: Hungary's Business Formation candidate is now a confirmed dead end (ceginformaciosszolgalat.kormany.hu's own "Szerzodesmintak" page states that, since 2025-03-01, the Word-format company-constitution templates it once published are no longer accepted, and incorporation is now performed exclusively through a sealed third-party XML e-filing tool); Tunisia's DMV candidate (attt.com.tn) remains unreachable on a fresh timeout, unchanged from the prior cycle; Belgium's National ID candidate remains this registry's own standing confirmed-weak finding (in-person biometric enrolment at the commune, no citizen-filled application form). Also re-confirmed Morocco's four remaining verticals (Business Formation/OMPIC, DMV/NARSA, Taxes/DGI, National ID/CNIE) are all still unreachable or login-gated, matching the GOV-4114 finding three days prior, and North Macedonia's own banked Visa candidate remains a soft dead end (a 2014 pre-Prespa-Agreement PDF with no live-site corroboration). Pivoted to scouting a genuinely new jurisdiction.

Lesotho (ISO 3166-1 alpha-2 code LS, uncontested) was scouted next, absent from this registry's 97 jurisdictions entirely. Its Companies Registry publishes an extensive, live, unauthenticated PDF forms library directly on the One-Stop Business Facilitation Centre's own domain (http://www.obfc.org.ls/legislation/), including Form 1 (the primary incorporation application authored here), Forms 1A/1B (ordinary/other-class shareholder lists), Form 8 (director's consent to act), and Schedules 2-4 (Model Articles for private/public/single-shareholder companies) — all disclosed as open companion-schema backlog below, following this registry's established main-form-now/companion-annex-later convention.

## Reaching the live source

Fetched directly: `http://www.obfc.org.ls/legislation/form%201.pdf`, HTTP 200, `Content-Type: application/pdf`, `Content-Length: 480143` (byte-identical to the downloaded file), `Last-Modified: Fri, 08 Jul 2016 08:57:11 GMT` (a long-stable specimen), sha256 `c6538309c9b9e2af0f69d01c00e749d2d178db74699417de849594651cad0b26`, no login/CAPTCHA/WAF gate. `www.obfc.org.ls` resolves and serves this file directly; the bare `obfc.org.ls` (no `www`) does not resolve.

## Extraction method

`pdfjs-dist` (`/tmp/node_modules/pdfjs-dist/legacy/build/pdf.js`). `getDocument().promise` reports 4 pages; a raw byte-search for the string `AcroForm` returns no match, confirming a flat, non-fillable PDF (this registry's established flat-PDF pattern), not a dynamic XFA or AcroForm specimen. `getTextContent()` returned every text item's raw string together with its own `transform` x/y position on all 4 pages; the great majority of body text reads in natural top-to-bottom, left-to-right order, but every checkbox glyph (`☐`, Unicode U+2610) on every page is emitted at the very end of that page's own item stream, out of visual sequence with its label — a distinct non-sequential-reading-order pattern from every prior case this registry has documented (see `gov-form-pdf-extraction`), resolved here by cross-referencing each checkbox's own x/y position against the y-coordinate of its printed label text (checkboxes and labels share the same or an adjacent y-band, confirmed page by page) rather than by trusting item order or falling back to `node-canvas` rendering, which was not needed since the text layer itself was already complete and unscrambled.

## Document structure

Page 1: Section 1 (person presenting the application — name, ID, physical/postal address, telephone, email); Section 2 (proposed company name, trade name, and a Yes/No name-similarity declaration — "Yes" requires the registered proprietor's consent to be attached); Section 3 (the company's constitution — a Model-Articles Yes/No choice, where "No" requires the company's own Articles to be attached, plus three independent single-tick "is this a public/non-profit/private company?" boxes). Page 2: Section 4 (share capital at incorporation, plus a two-option anticipated-turnover tick); Section 5 (when the company expects to start business, plus whether it will have employees); Section 6 (one or more 4-digit business-activity codes); Section 7 (registered office address). Page 3: Section 8 (main business address, tickable as "same as registered office" or given in full); Section 9 (a tick-at-least-one choice of where legal documents may be served — the registered office, the main business address, or a named director/agent from Section 10); Section 10 (a table of directors/secretaries/executives/nominated officers/accountants/agents, with an explicit "Use continuation sheet if necessary" instruction and no printed maximum row count). Page 4: Section 11, headed "To be filled by Directors for Tax purposes only" — three repeated blocks (surname/forename, bank account details, marital status, and, if married, matrimonial-regime and spouse particulars), corresponding one-to-one with the first three rows of Section 10's own table.

## Disclosed findings and interpretation choices

1. **Checkboxes without a printed "No" counterpart** (`isPublicCompany`, `isNonProfitCompany`, `isPrivateCompany`, `willHaveEmployees`) are each modelled as a required boolean, with the form's own single "tick if yes" convention documented in each field's own description: an absent tick is false, not a missing answer.
2. **`startTiming`'s "immediately" value has no printed label.** The source prints one labelled tick option, "Later (State date - MM/YY)", and a second, unlabelled tick-box positioned on the question's own line ("When do you expect to start business?"), confirmed via its own x/y position sitting between that question line and the "Later" line beneath it. Read as the form's own implicit "start immediately upon incorporation" option by process of elimination — the only other reading of a second checkbox on what is otherwise a two-option question — and disclosed here as an interpretation rather than a literal transcription, per this registry's own precedent (`notequals-empty-string-absent-field-bug`) of disclosing rather than silently assuming unstated structure.
3. **Section 10 (`officials`) is bounded to 3 slots**, gated by a synthetic `officialsCount` field not printed on the form. The source's own "Use continuation sheet if necessary" instruction states no maximum, unlike this registry's prior bounded-repeating-group precedents that had a literal printed row count (e.g. Zambia's own "minimum of two...private, three...public" director note) — this schema instead bounds at 3 to match Section 11's own printed capacity (exactly three repeated tax-purpose blocks), since Section 11 only ever applies to whichever of Section 10's officials hold the position of Director. A 4th+ official, and any Section 10 official beyond the first three regardless of position, is disclosed backlog, not silently dropped.
4. **`official{N}Position` is modelled as a closed enum** (Director, Secretary, Executive, Nominated Officer, Accountant, Agent, Other) rather than free text, reading the form's own parenthetical "(Director, Chief Executive Officer, Nominated Officer, Accountant, Agent etc.)" as an illustrative-but-closed list for this schema's purposes; "Other" is added to keep the field usable for a role the form's own "etc." leaves open, disclosed as a modelling choice rather than a literal option the source prints.
5. **Section 11 fields are `requiredWhen official{N}Position equals "Director"`**, not unconditionally required across all three slots, since the section's own heading restricts it explicitly to directors ("To be filled by Directors for Tax purposes only") — an official filling a different Section 10 role (e.g. Secretary, Accountant) does not complete Section 11 at all.
6. **`director{N}MatrimonialRegime`/`SpouseName`/`SpouseSurname` are further gated on `director{N}MaritalStatus equals "Married"`**, matching the source's own "If Married" sub-heading; `SpouseMaidenNames`/`SpouseTin` are left unconditionally optional, since the form prints no separate requiredness signal for either beyond the shared "If Married" block, and "(if any)" on the TIN field is itself an explicit optional-value marker.
7. **`official{N}PostalAddress`/`Email` and `registeredOfficeTel`/`Email`/`mainBusinessTel`/`Email` are modelled unconditionally optional**, while each block's own Physical Address (or, for the registered/main-business office blocks, every other address component) is required — the form prints "Postal Address; Physical Address; Email" together with no requiredness marker distinguishing them, so this schema follows this registry's own preference (`notequals-empty-string-absent-field-bug`) for treating a physical, locatable address as the meaningful required minimum over inventing a stricter reading.
8. **Requiredness generally** (Section 1 presenter particulars, Section 2 company name, Section 4 capital/turnover, Section 6 activity codes, Section 7 registered-office address components) was assigned by engineering judgment against what a Companies Registry clerk could not process an incorporation application without, since this source — like several other forms in this registry — prints no global asterisk/mandatory convention.
9. **`businessActivityCodes` is modelled as a single free-text field**, not a bounded array of individual code fields, since the source itself prints one blank ("Insert one or more 4-digit codes from the list") with no per-code sub-boxes to bound against — matching this registry's own precedent (e.g. Zambia's `otherBusinessActivities`) of a single string field for an open-ended, form-native list.
10. **Companion forms disclosed as open backlog, not modelled in this v1.0.0**: Form 1A ("List of shareholders — Ordinary shares"), Form 1B ("List of shareholders — Other than ordinary shares"), Form 8 ("Consent to act as a company director"), and Schedules 2/3/4 (Model Articles for a private company, a public company, and a single-shareholding company respectively) — each independently fetched and confirmed live/unauthenticated this cycle (see the forms-library listing below), each a genuinely separate filing action from Form 1 itself.

## Forms-library corroboration

`http://www.obfc.org.ls/legislation/` lists dozens of real, directly-linked PDFs (confirmed by fetching three: `Form%2001A.pdf`, 109,272 bytes, 3 pages, opening "List of shareholders – Ordinary shares... Form 1A"; `Form%2001B.pdf`, 110,890 bytes, 3 pages, opening "List of shareholders – Other than ordinary shares... Form 1B"; `Form%2008.pdf`, 88,942 bytes, 1 page, opening "Consent to act as a company director... Form 8") — independent corroboration that Form 1 is the Registry's own current, actively-maintained primary incorporation form, not a stale orphaned file, and that this registry's disclosed companion-form backlog (Finding 10 above) is real and readily reachable in a future cycle.

## Conformance

4 valid mock scenarios (a minimal private company adopting Model Articles, starting immediately, no employees, single director who is also the sole official; the same company type fully populated with a similar proposed name — triggering the consent-attached path — and a "start later" date; a public company with 3 officials filling Director/Accountant/Agent roles, exercising every officialsCount-gated slot and every married-director spouse sub-block; a non-profit private company with an unmarried director) plus 34 static-`required`-field mutation fixtures (one per `required: true` field), 8 `requiredWhen`-gate mutation fixtures (`expectedStartDate`; the Section 8 main-business address block; each of the officials-table's two bounded-slot gates (`officialsCount` >= 2 and >= 3); each of the three directors' own Section 11 gate, one fixture per slot to confirm each slot's own `official{N}Position` reference rather than a copy-pasted sibling; and the nested marital-status sub-gate), and 1 unknown-field-rejected fixture — 43 total mutation fixtures — committed under `conformance/ls/obfc/company-incorporation-application/1.0.0/`.

An ephemeral, from-scratch conformance checker (deriving required/requiredWhen rules directly from this schema's own `fields[]`, discarded after use, not committed) ran all 47 fixtures: all 4 valid scenarios at 0 errors, all 43 mutation controls each raising exactly 1 error, and the unknown-field fixture correctly rejected. Validated clean with `node tools/validate.mjs` and `node tools/validate-ajv.mjs`, individually and as part of the full registry run. `registry-index.json` regenerated via `npm run build-index` in `tools/govschema-client/`.