{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "jm/pica/passport-application",
  "version": "1.0.0",
  "title": "Jamaican Passport Application Form",
  "description": "The Passport, Immigration and Citizenship Agency's (PICA) \"Jamaican Passport Application Form\", a genuine fillable AcroForm covering first-time, renewal, and replacement (lost/damaged/expired) passport applications in a single unified document. Banked as the single most attractive of Jamaica's four disclosed-STRONG backlog verticals left open by the GOV-4360 cycle (see jm/orc/business-name-registration-individual, Business Formation), given its field-level typing as a true AcroForm rather than a flat/scanned specimen. Opens Jamaica's Passport vertical (2 of 6). This schema models Section A (Applicant's Personal Data), Section B (marriage particulars, conditional on marital status), Section C (Consent for Minor, conditional on an unprinted under-18 eligibility gate), Section D (particulars of the applicant's most recent passport, conditional on the Section E declaration branch), Section E (Declaration of Applicant), Section F (two emergency contact persons), Section G (Official Certification by a qualifying third-party referee), Section H (religious-headgear declaration, conditional on an unprinted eligibility gate), Section I (parents' particulars, conditional on an unprinted born-outside-Jamaica eligibility gate), and Section J (sixteen free-text supplementary-information lines). It excludes Section K (\"FOR OFFICIAL USE ONLY\") and the \"RECEPTION TEAM\" block entirely, since both are completed by PICA staff, not the applicant, and models supporting evidence (photographs, citizenship evidence, photo identification, name-change evidence, a police report for a lost passport, and the signed application itself) as documents[] entries drawn from the form's own printed guideline pages. Filing this application is an applicant's own action performed with the Passport, Immigration and Citizenship Agency; this schema does not file the application itself, and the live source is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Jamaica or the Passport, Immigration and Citizenship Agency.",
  "status": "draft",
  "jurisdiction": {
    "country": "JM",
    "level": "national"
  },
  "authority": {
    "name": "Passport, Immigration and Citizenship Agency",
    "abbreviation": "PICA",
    "url": "https://www.pica.gov.jm"
  },
  "process": {
    "type": "application",
    "language": "en"
  },
  "source": {
    "url": "https://www.pica.gov.jm/sites/default/files/Forms/Jamaica-Passport-Application-Compressed.pdf",
    "retrievedAt": "2026-07-22",
    "documentRef": "\"Jamaican Passport Application Form\", Passport, Immigration and Citizenship Agency (PICA), native fillable AcroForm PDF, 6 pages (4 fillable form pages, Sections A-K, followed by 2 pages of printed \"Guidelines for Jamaican Passport Application\")."
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-22",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-22",
    "notes": "GOV-4367 (\"GovSchema Standard Research\"). Consumes the single most attractive of Jamaica's four disclosed-STRONG banked-backlog verticals left open by the GOV-4360 cycle (see CATALOG.md's Known Gaps entry 0f) — PICA's own genuine AcroForm passport application, flagged in that cycle's own scouting notes as \"the richest and cleanest source of all six Jamaican verticals scouted, a true fillable AcroForm rather than a flat/scanned specimen\". Opens Jamaica's Passport vertical (2 of 6); Business Formation is already open via jm/orc/business-name-registration-individual, and DMV/Visa/Taxes remain open, STRONG banked backlog for future cycles (National ID is a confirmed dead end per the GOV-4360 cycle's own screening).\n\nIndependently re-fetched and re-hashed rather than trusted from the prior cycle's own banked report alone: `https://www.pica.gov.jm/sites/default/files/Forms/Jamaica-Passport-Application-Compressed.pdf` (linked from the live, unauthenticated `/passport/application-forms` page), HTTP 200, `Content-Type: application/pdf`, 776,064 bytes (byte-for-byte match with the GOV-4360 cycle's own reported ~776KB size), sha256 `aa259402cb3e6231a4661e6d6e567645c9cafb3e87741231c5b530e8c5c44e40`. Confirmed mechanically via `pdfjs-dist`'s (vendored at `/tmp/node_modules/pdfjs-dist`) `getAnnotations()` API across all 6 pages: 172 `/Widget` annotations resolving to exactly 152 unique AcroForm field names (an exact match with the GOV-4360 cycle's own reported field count), concentrated on pages 1-4 (57, 26, 36, and 53 widgets respectively); pages 5-6 carry zero widgets and are the printed guideline pages, not fillable form content. Text extracted via `getTextContent()`, grouped by row (y-coordinate, tolerance 2pt) and column (x-coordinate), to recover every printed section heading, field label, and radio/checkbox option caption, cross-referenced against each widget's own `rect` to resolve column and section membership. A `pdfjs-dist` + `node-canvas` (vendored at `/tmp/node_modules/canvas`) render-to-PNG attempt at 2.5x scale for all 4 form pages confirmed the overall box/line/radio-button grid layout (comb-style text boxes, circular radio buttons grouped in rows) but could not render the form's own embedded glyphs (a `getPathGenerator`/`Requesting object that isn't resolved yet` font-resolution failure) — the same disclosed sandboxed PDF-render tooling gap this registry's `eg/mfa/civil-status-record-request` and other schemas have already hit; text-layer extraction was unaffected and is this schema's primary evidentiary basis.\n\nModels 110 `fields[]` across 12 steps (Eligibility Gates; Section A Personal Data; Section B Marriage Details; Section C Consent for Minor; Section D Particulars of Most Recent Passport; Section E Declaration of Applicant; Section F First Emergency Contact; Section F Second Emergency Contact; Section G Official Certification; Section H Religious Headgear; Section I Born Outside Jamaica; Section J Supplementary Information) plus 6 `documents[]` entries, sourced from the form's own two-page printed guidelines (pages 5-6).\n\n## Disclosed source-fidelity findings\n\n1. **Three unprinted boolean eligibility gates model conditions the form's own section headers state in prose but never back with a printed checkbox** — `applicantIsMinor` (Section C's own header: \"Applicable to persons under 18 years of age\"), `wearsHeadgearForReligiousReasons` (Section H's own header), and `applicantBornOutsideJamaica` (Section I's own header: \"TO BE COMPLETED BY APPLICANTS BORN OUTSIDE OF JAMAICA\"). This is the same unprinted-condition convention this registry's Botswana (`bw/dic/passport-application` Finding 3), Zambia, Ethiopia, Malta, and Cyprus passport schemas already use for their own section-applicability gates, since GSP-0013's `Condition` grammar has no derivation operator (e.g. age-from-date-of-birth, or country-of-birth-vs-Jamaica) that could compute any of these three directly from an already-answered field.\n2. **Sections B (Marriage Details) and D (Most Recent Passport) are gated on already-answered enum fields rather than a further unprinted boolean**, since the form's own printed structure makes both conditions directly derivable: Section B's own header (\"TO BE COMPLETED IF APPLICANT IS OR HAS BEEN MARRIED\") is modelled `requiredWhen maritalStatus in [MARRIED, DIVORCED, WIDOWED]` (GSP-0013's `in` operator), and Section D's own header (\"required whether the passport is expired or current, damaged, lost or otherwise unavailable\") is modelled `requiredWhen priorPassportDeclaration in [SURRENDERED, LOST_OR_UNAVAILABLE]` (i.e. not `NEVER_HELD`) against Section E's own three-way declaration. A `LOST_OR_UNAVAILABLE`-only subset of Section D's own fields (`mostRecentPassportLossDate`, `passportIssuedInNameSurname`, `passportIssuedInNameFirstName`, `placeOfPassportLoss`, `circumstancesOfPassportLoss`) is further narrowed off the `SURRENDERED` branch, since their own printed captions (\"Name in which stolen, lost or unavailable passport was issued\"; \"BRIEF STATEMENT OF CIRCUMSTANCES WHERE PASSPORT HAS BEEN DAMAGED\") apply only to a lost/damaged passport, not a simply-surrendered one.\n3. **Section E's own \"Declaration\" AcroForm field is a genuine radio-button group (mutually exclusive) across all three printed declaration paragraphs**, even though each paragraph is presented as its own free-standing sentence rather than an explicit \"tick one\" instruction. The three paragraphs are logically mutually exclusive in substance (never held one; held one now surrendered; held one now lost/unavailable), so the radio-button implementation is semantically consistent with the printed content — modelled as a required 3-value enum (`priorPassportDeclaration`), ordered top-to-bottom by each option's own y-position on the page (the underlying AcroForm's own shared `/V` entry does not distinguish per-widget export values, so position, not field-reported value, is this schema's basis for enum ordering throughout).\n4. **`placeOfBirth` is modelled as a single field backed by three separate AcroForm text widgets** (`Applicant_Place_of_Birth`, `Applicant_Place_of_Birth2`, `Applicant_Place_of_Birth1`, in that on-page order). The first two widgets are an unambiguous two-line box directly beneath one label (\"Place of Birth: (Town, City and Parish)\") — the same multi-line-box-under-one-label pattern this schema also uses for `profession`, `permanentAddress`, `mailingAddress`, `permanentTown`, `mailingTown`, `placeOfMarriage`, `marriageCountry`, both emergency contacts' own address/town pairs, and `placeOfPassportLoss` (in each case, two or three same-width AcroForm widgets stacked directly beneath a single printed label with no distinguishing sub-caption, collapsed here into one logical, generously-sized field rather than modelled as separate implementation-level line1/line2 fields). The third widget, however, sits beneath a **second, standalone \"Place of Birth\" label reprinted further down the page** (with no parenthetical this time), positioned immediately beside where the \"Mother's First Name\" column begins — after the intervening Date of Birth/Sex/Height row breaks the visual continuity. It is not certain from the source alone whether this third widget is a continuation line of the same answer (consistent with its internal AcroForm name and identical `alternativeText`, both shared with the first two widgets) or a distinct, mislabelled field the form's original designer intended to caption differently. This schema takes the conservative reading — a third line of the same `placeOfBirth` answer — given the shared internal name and alternative text, but discloses the ambiguity here rather than silently resolving it.\n5. **`circumstancesOfPassportLoss` collapses three separate ruled-line AcroForm widgets** (`Circumstances_of_passport_loss1/2/3`) under one \"BRIEF STATEMENT OF CIRCUMSTANCES WHERE PASSPORT HAS BEEN DAMAGED\" heading into a single, generously-sized free-text field, per the same collapsing convention as Finding 4.\n6. **`consentGiverNameInDeclaration` and `consentGiverRelationshipInDeclaration` are printed restatements of `consentGiverSurname`/`consentGiverFirstName`/`relationToMinor` already captured earlier in the same Section C**, embedded in the section's own narrative consent sentence (\"I (name)... the (Relationship)...\"). Similarly, `applicantFullNameForCertification` in Section G restates the applicant's own `surname`/`firstName` already captured in Section A, embedded in the certifying official's own narrative sentence (\"hereby certify that I have known [Full Name of Applicant]... as stated on application\"). All three are modelled as their own distinct fields, since each is backed by its own separate AcroForm widget and GSP-0013 has no field-equality assertion this schema could use to express \"must match a value already given\" instead.\n7. **No signature line anywhere on this form is backed by an AcroForm widget** — not the applicant's own Section E signature, not the parent/legal guardian's Section C signature, and not the certifying official's Section G signature; each is a plain underlined blank. This is a genuine departure from this registry's non-AcroForm passport schemas (e.g. `bw/dic/passport-application`, `zm/dnrpc/passport-application`), which model \"signature\" as a plain string field for lack of any better-typed alternative on a flat specimen — here, since every other data point on this same form is backed by a real, distinguishing AcroForm widget and these three specifically are not, this schema excludes all three from `fields[]` and instead models a single `signedApplicationForm` document, since wet-ink signature capture is out of scope for a machine-readable field. The parent/legal guardian's Section C consent **date** is likewise excluded (no backing widget), unlike the applicant's own Section E declaration date (`Declaration_Date`, modelled as `declarationDate`) and the certifying official's own Section G certification date (`Date_of_Certification`, modelled as `certificationDate`), both of which do have real AcroForm widgets.\n8. **Section J (\"SUPPLEMENTARY INFORMATION\") prints 18 ruled lines but the underlying AcroForm exposes only 16 unique field names** — two pairs of adjacent lines share one field name apiece (`Supplimentry_Information4` appears on two separate ruled lines, as does `Supplimentry_Information17`), while a would-be `Supplimentry_Information5` is never used at all. This is a genuine duplicate-widget naming defect in the source AcroForm (filling one of a duplicated pair auto-fills its sibling line, since they are literally the same underlying field), not a schema limitation. Modelled as 16 independent, renumbered optional free-text fields (`supplementaryInformationLine1`-`supplementaryInformationLine16`), each `sourceRef`-annotated with its own actual AcroForm field name for traceability. The source PDF's own internal field name for `specialVisibleFeatures` (`Apecial visible Feature`) contains its own typo, corrected here to a clean camelCase name; the printed label itself (\"Special Visible Features\") is spelled correctly.\n9. **Section G's own \"Address of Certifying Official\" column is split across five separate stacked AcroForm text widgets** (Building/Apartment Number and Name — explicitly \"(if applicable)\" per its own printed caption, hence the sole optional field in this block; Street Number and Street Name; Town; City; Parish/State), while the adjacent \"Country\" column carries three (Country, Postal/Zip Code, Telephone). This is a genuinely different split from the applicant's own Section A permanent/mailing address blocks (each a simple Address/Town/Country/Zip/State column set) — Section G's own five-way Town/City/Parish/State breakdown has no analogue elsewhere on this form and is modelled field-for-field as the source AcroForm actually structures it, not assumed identical to Section A's own convention.\n10. **Section F's two emergency-contact blocks (\"FIRST CONTACT PERSON\"/\"SECOND CONTACT PERSON\") are printed as visually identical blocks with no annotation distinguishing one as optional.** This schema models the first contact's own fields as required and the second contact's own fields as entirely optional, a disclosed judgment call (the same convention this registry's Botswana/Zambia passport schemas apply to their own next-of-kin/emergency-contact sections) rather than assuming a second contact is universally mandatory.\n11. **`residentialPhoneNumber`/`businessPhoneNumber` and `permanentAddress`/`mailingAddress` (with their own Town/Country/Zip/State companions) are each modelled as independently optional, with no selector or validation rule requiring at least one of the pair.** The form itself prints \"Mailing Address (If different from permanent address)\", confirming the mailing block is conditional in substance on the applicant actually having a different mailing address, while `permanentAddress` itself carries no such qualifier and is modelled required. The two phone-number columns (Residential/Business) carry no qualifier distinguishing either as mandatory; both are modelled optional, the same disclose-rather-than-fabricate treatment `bw/dic/passport-application` Finding 2 applies to an analogous unconditioned either/or pair.\n12. **`maidenSurname`, `previousName`, `middleName`, `specialVisibleFeatures`, `permanentZipCode`/`mailingZipCode`, `permanentState`/`mailingState`, and `certifyingOfficialZipCode` are modelled optional** since not every applicant has a maiden surname, a prior name, a middle name, a distinguishing mark, or a postal code/state on their address (Jamaican addresses commonly carry a Parish rather than a postal code or state) — the source prints no optionality marker for any of these, the same disclosed judgment-call convention `bw/dic/passport-application` Finding 5/7 applies to its own comparable fields.\n13. **`previousPassportOrTravelDocumentNumber` (Section E's own \"other than Passport or Travel Document No. ___, which is submitted herewith\") is modelled bare-optional, not gated on `priorPassportDeclaration`.** The sentence structure implies this blank is only completed if such an exception document exists, which is not guaranteed even within the `SURRENDERED` declaration branch — the same disclosed no-printed-signal treatment `bw/dic/passport-application` Finding 9 applies to its own analogous ungated optional field.\n14. **Section K (\"FOR OFFICIAL USE ONLY\") and the \"RECEPTION TEAM\" block are excluded in full**, including the eleven-row \"DOCUMENTS SUBMITTED\" table (document number and issue date per document type — Birth Certificate, Adoption Certificate, Marriage Certificate, Naturalization Certificate, Registration Certificate, Certification of Citizenship, Divorce Certificate, Driver's Licence, Tax Registration Number, Electoral Identification, Other) and the Outpost Staff/Passport Office reception sign-off fields — all completed by PICA staff recording which documents were physically produced and processed, not applicant-supplied data. This mirrors `bw/dic/passport-application` Finding 10's own exclusion of its source form's \"For Official Use Only\" page.\n15. **Radio-button and checkbox-grid option orderings (`maritalStatus`, `eyeColour`, `sex`, `relationToMinor`) were resolved by cross-referencing each radio widget's own `rect` x-position against the nearest printed option caption's own x-position**, not by the AcroForm's own reported `fieldValue` (which returns the field's shared `/V` entry, identical and uninformative across every sibling widget in a group, e.g. every `Eye Colour` widget reporting `null` and every `Declaration` widget reporting the same string). `eyeColour` in particular is an 11-value enum (Dark Brown, Brown, Grey, Grey Blue, Blue, Hazel, Chestnut, Black, Red, Burgundy, Mixed) confirmed by an 11-widget-to-11-caption exact positional match across four printed rows.\n\n## Conformance\n\n3 valid mock scenarios (a first-time adult applicant declaring `NEVER_HELD` with no marriage, minor-consent, headgear, or foreign-birth branches triggered; a married adult renewing after a lost passport, triggering Section B, the `LOST_OR_UNAVAILABLE` subset of Section D, and a police-report document; and a minor applicant born outside Jamaica with a legal guardian's consent and a religious-headgear declaration, triggering Sections C, H, and I together) plus 17 mutation-control fixtures (a missing statically-required field for `surname`, `firstName`, `maritalStatus`, `eyeColour`, `dateOfBirth`, `sex`, `mothersFirstName`, `mothersMaidenName`, `permanentAddress`, `permanentTown`, `permanentCountry`, `priorPassportDeclaration`, `declarationDate`, and `emergencyFirstContactSurname` [14 fixtures]; a missing `requiredWhen`-true field (`consentGiverSurname`) while its gate is active; an invalid enum value (`eyeColour`); and an unknown top-level field) are committed under `conformance/jm/pica/passport-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 20 fixtures: all 3 valid scenarios at 0 errors, all 17 mutation controls each raising exactly 1 error, and confirmed every `requiredWhen` field reference resolves (0 dangling references). 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/`."
  },
  "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-22"
  },
  "license": "CC-BY-4.0",
  "steps": [
    {
      "id": "eligibility_gates",
      "title": "Eligibility Gates",
      "fields": ["applicantIsMinor", "wearsHeadgearForReligiousReasons", "applicantBornOutsideJamaica"],
      "next": "personal_data"
    },
    {
      "id": "personal_data",
      "title": "Section A: Applicant's Personal Data",
      "fields": ["surname", "firstName", "middleName", "profession", "maritalStatus", "maidenSurname", "eyeColour", "previousName", "placeOfBirth", "dateOfBirth", "heightCm", "sex", "mothersFirstName", "specialVisibleFeatures", "mothersMaidenName", "permanentAddress", "mailingAddress", "permanentTown", "mailingTown", "permanentCountry", "mailingCountry", "permanentZipCode", "permanentState", "mailingZipCode", "mailingState", "residentialPhoneNumber", "businessPhoneNumber", "emailAddress"],
      "next": "marriage_details"
    },
    {
      "id": "marriage_details",
      "title": "Section B: Marriage Details",
      "fields": ["dateOfMarriage", "placeOfMarriage", "marriageCountry", "spouseSurname", "spouseFirstName"],
      "next": "minor_consent"
    },
    {
      "id": "minor_consent",
      "title": "Section C: Consent for Minor",
      "fields": ["consentGiverSurname", "consentGiverFirstName", "consentGiverMiddleName", "relationToMinor", "consentGiverNameInDeclaration", "consentGiverRelationshipInDeclaration", "minorFullName"],
      "next": "recent_passport_details"
    },
    {
      "id": "recent_passport_details",
      "title": "Section D: Particulars of Most Recent Passport",
      "fields": ["mostRecentPassportNumber", "mostRecentPassportIssueDate", "mostRecentPassportIssuePlace", "mostRecentPassportLossDate", "passportIssuedInNameSurname", "passportIssuedInNameFirstName", "passportIssuedInNameMiddleName", "placeOfPassportLoss", "circumstancesOfPassportLoss"],
      "next": "declaration"
    },
    {
      "id": "declaration",
      "title": "Section E: Declaration of Applicant",
      "fields": ["priorPassportDeclaration", "previousPassportOrTravelDocumentNumber", "declarationDate"],
      "next": "emergency_contact_first"
    },
    {
      "id": "emergency_contact_first",
      "title": "Section F: First Emergency Contact",
      "fields": ["emergencyFirstContactSurname", "emergencyFirstContactFirstName", "emergencyFirstContactMiddleName", "emergencyFirstContactAddress", "emergencyFirstContactTown", "emergencyFirstContactCountry", "emergencyFirstContactState", "emergencyFirstContactZipCode", "emergencyFirstContactPhoneNumber", "emergencyFirstContactRelationship"],
      "next": "emergency_contact_second"
    },
    {
      "id": "emergency_contact_second",
      "title": "Section F: Second Emergency Contact",
      "fields": ["emergencySecondContactSurname", "emergencySecondContactFirstName", "emergencySecondContactMiddleName", "emergencySecondContactAddress", "emergencySecondContactTown", "emergencySecondContactCountry", "emergencySecondContactState", "emergencySecondContactZipCode", "emergencySecondContactPhoneNumber", "emergencySecondContactRelationship"],
      "next": "official_certification"
    },
    {
      "id": "official_certification",
      "title": "Section G: Official Certification",
      "fields": ["certifyingOfficialFullName", "certifyingOfficialDesignationOccupation", "applicantFullNameForCertification", "certifyingOfficialBuildingOrApartment", "certifyingOfficialStreetAddress", "certifyingOfficialTown", "certifyingOfficialCity", "certifyingOfficialParishOrState", "certifyingOfficialCountry", "certifyingOfficialZipCode", "certifyingOfficialPhoneNumber", "certificationDate"],
      "next": "religious_headgear"
    },
    {
      "id": "religious_headgear",
      "title": "Section H: Religious Headgear",
      "fields": ["religionOrSectName"],
      "next": "born_outside_jamaica"
    },
    {
      "id": "born_outside_jamaica",
      "title": "Section I: Applicants Born Outside Jamaica",
      "fields": ["fatherNameForeignBorn", "motherNameForeignBorn", "fatherPlaceOfBirthForeignBorn", "motherPlaceOfBirthForeignBorn", "fatherDateOfBirthForeignBorn", "motherDateOfBirthForeignBorn"],
      "next": "supplementary_information"
    },
    {
      "id": "supplementary_information",
      "title": "Section J: Supplementary Information",
      "fields": ["supplementaryInformationLine1", "supplementaryInformationLine2", "supplementaryInformationLine3", "supplementaryInformationLine4", "supplementaryInformationLine5", "supplementaryInformationLine6", "supplementaryInformationLine7", "supplementaryInformationLine8", "supplementaryInformationLine9", "supplementaryInformationLine10", "supplementaryInformationLine11", "supplementaryInformationLine12", "supplementaryInformationLine13", "supplementaryInformationLine14", "supplementaryInformationLine15", "supplementaryInformationLine16"]
    }
  ],
  "fields": [
    { "name": "applicantIsMinor", "label": "Applicant is under 18 years of age", "type": "boolean", "required": true, "fieldRole": "eligibility", "description": "Not a printed checkbox. Section C's own header reads \"CONSENT FOR MINOR (Applicable to persons under 18 years of age. Mother, Father or Legal Guardian may give consent)\" — this directly-supplied boolean gates Section C. See this schema's own verification.notes Finding 1.", "sourceRef": "Jamaican Passport Application Form, page 2, Section C header" },
    { "name": "wearsHeadgearForReligiousReasons", "label": "Applicant must wear headgear for religious reasons", "type": "boolean", "required": true, "fieldRole": "eligibility", "description": "Not a printed checkbox. Section H's own header reads \"TO BE COMPLETED BY APPLICANTS WHO MUST WEAR HEADGEAR FOR RELIGIOUS REASONS\". See this schema's own verification.notes Finding 1.", "sourceRef": "Jamaican Passport Application Form, page 4, Section H header" },
    { "name": "applicantBornOutsideJamaica", "label": "Applicant was born outside of Jamaica", "type": "boolean", "required": true, "fieldRole": "eligibility", "description": "Not a printed checkbox. Section I's own header reads \"TO BE COMPLETED BY APPLICANTS BORN OUTSIDE OF JAMAICA\". See this schema's own verification.notes Finding 1.", "sourceRef": "Jamaican Passport Application Form, page 4, Section I header" },

    { "name": "surname", "label": "Surname", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Surname\" (Applicant_Surname)", "validation": { "maxLength": 100 } },
    { "name": "firstName", "label": "First Name", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"First Name\" (Applicant_Firstname)", "validation": { "maxLength": 100 } },
    { "name": "middleName", "label": "Middle Name(s)", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 12.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Middle Name(s)\" (Applicant_Middle_Name)", "validation": { "maxLength": 100 } },
    { "name": "profession", "label": "Profession or Occupation", "type": "string", "required": true, "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Profession or Occupation\" (Profession, Profession1). See this schema's own verification.notes Finding 4.", "validation": { "maxLength": 300 } },
    { "name": "maritalStatus", "label": "Marital Status", "type": "enum", "required": true, "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Marital Status: Single / Divorced / Married / Widowed\" (radio group \"Marital Status\"). See this schema's own verification.notes Finding 15.", "validation": { "enum": ["SINGLE", "DIVORCED", "MARRIED", "WIDOWED"] } },
    { "name": "maidenSurname", "label": "Maiden Surname (family name at birth)", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 12.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Maiden Surname (family name at birth)\" (Applicant_Maiden_Surname)", "validation": { "maxLength": 100 } },
    { "name": "eyeColour", "label": "Eye Colour", "type": "enum", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Eye Colour\" (radio group \"Eye Colour\": Dark Brown / Brown / Grey / Grey Blue / Blue / Hazel / Chestnut / Black / Red / Burgundy / Mixed). See this schema's own verification.notes Finding 15.", "validation": { "enum": ["DARK_BROWN", "BROWN", "GREY", "GREY_BLUE", "BLUE", "HAZEL", "CHESTNUT", "BLACK", "RED", "BURGUNDY", "MIXED"] } },
    { "name": "previousName", "label": "Previous Name (if name has been changed other than by marriage)", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 12.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Previous Name: (If name has been changed other than by marriage)\" (Applicant_Previous_Name)", "validation": { "maxLength": 150 } },
    { "name": "placeOfBirth", "label": "Place of Birth (Town, City and Parish)", "type": "string", "required": true, "classification": "pii", "description": "Backed by three separate AcroForm widgets. See this schema's own verification.notes Finding 4 for the full disclosed ambiguity.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Place of Birth: (Town, City and Parish)\" (Applicant_Place_of_Birth, Applicant_Place_of_Birth2, Applicant_Place_of_Birth1)", "validation": { "maxLength": 300 } },
    { "name": "dateOfBirth", "label": "Date of Birth", "type": "date", "required": true, "classification": "sensitive-pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Date of Birth (DD/MM/YYYY)\" (Applicant_Date_of_Birth)" },
    { "name": "heightCm", "label": "Height (cm)", "type": "integer", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Height ... cm\" (Applicant_Height)", "validation": { "minimum": 30, "maximum": 250 } },
    { "name": "sex", "label": "Sex", "type": "enum", "required": true, "classification": "sensitive-pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Sex: Male / Female\" (radio group \"Sex\"). See this schema's own verification.notes Finding 15.", "validation": { "enum": ["MALE", "FEMALE"] } },
    { "name": "mothersFirstName", "label": "Mother's First Name", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Mother's First Name\" (Applicant_Mother_First_Name)", "validation": { "maxLength": 150 } },
    { "name": "specialVisibleFeatures", "label": "Special Visible Features", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 8 and 12 for the source AcroForm's own internal-name typo (\"Apecial visible Feature\") and this field's optionality.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Special Visible Features\" (internal AcroForm name: Apecial visible Feature)", "validation": { "maxLength": 300 } },
    { "name": "mothersMaidenName", "label": "Mother's Maiden Name (Surname before Marriage)", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Mother's Maiden Name (Surname before Marriage)\" (Applicant_Mother_Maiden_Name)", "validation": { "maxLength": 150 } },
    { "name": "permanentAddress", "label": "Permanent Address — Street Number and Street Name", "type": "string", "required": true, "classification": "pii", "description": "See this schema's own verification.notes Finding 4 (multi-widget collapsing convention).", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"APPLICANT'S PERMANENT ADDRESS: Street Number and Street name\" (Applicant_Permanent_Address, Applicant_Permanent_Address1)", "validation": { "maxLength": 300 } },
    { "name": "mailingAddress", "label": "Mailing Address — Street Number and Street Name (if different from permanent address)", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 11.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"APPLICANT'S MAILING ADDRESS (If different from permanent address): Street Number and Street name\" (Applicant_Mailing_Address, Applicant_Mailing_Address1)", "validation": { "maxLength": 300 } },
    { "name": "permanentTown", "label": "Permanent Address — Town, City and Parish", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Town, City and Parish\" (Applicant_Permanent_Town, Applicant_Permanent_Town1)", "validation": { "maxLength": 200 } },
    { "name": "mailingTown", "label": "Mailing Address — Town, City and Parish", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Town, City and Parish\" (Applicant_Mailing_Town, Applicant_Mailing_Town1)", "validation": { "maxLength": 200 } },
    { "name": "permanentCountry", "label": "Permanent Address — Country", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Country\" (Applicant_Permanent_Country)", "validation": { "maxLength": 100 } },
    { "name": "mailingCountry", "label": "Mailing Address — Country", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Country\" (Applicant_Mailing_Country)", "validation": { "maxLength": 100 } },
    { "name": "permanentZipCode", "label": "Permanent Address — Postal or Zip Code", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 12.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Postal or Zip Code\" (Applicant_Permanent_Address_Zip_Code)", "validation": { "maxLength": 20 } },
    { "name": "permanentState", "label": "Permanent Address — State", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 12.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"State\" (Applicant_Permanent_State)", "validation": { "maxLength": 100 } },
    { "name": "mailingZipCode", "label": "Mailing Address — Postal or Zip Code", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Postal or Zip Code\" (Applicant_Mailing_Address_Zip_Code)", "validation": { "maxLength": 20 } },
    { "name": "mailingState", "label": "Mailing Address — State", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"State\" (Applicant_Mailing_State)", "validation": { "maxLength": 100 } },
    { "name": "residentialPhoneNumber", "label": "Residential Telephone Number", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 11.", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Residential Telephone Number: Area Code / Seven Digit Number\" (Residential_Phone_Number)", "validation": { "maxLength": 20 } },
    { "name": "businessPhoneNumber", "label": "Business Telephone Number", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"Business Telephone Number: Area Code / Seven Digit Number\" (Business_Phone_Number)", "validation": { "maxLength": 20 } },
    { "name": "emailAddress", "label": "E-Mail Address", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 1, Section A — \"E-Mail Address:\" (Email_Address)", "validation": { "maxLength": 150 } },

    { "name": "dateOfMarriage", "label": "Date of Marriage", "type": "date", "required": false, "classification": "sensitive-pii", "requiredWhen": { "field": "maritalStatus", "in": ["MARRIED", "DIVORCED", "WIDOWED"] }, "description": "See this schema's own verification.notes Finding 2.", "sourceRef": "Jamaican Passport Application Form, page 1, Section B — \"Date of Marriage (DD/MM/YYYY)\" (Applicant_Date_of_Marriage)" },
    { "name": "placeOfMarriage", "label": "Place of Marriage (Town, City and Parish)", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "maritalStatus", "in": ["MARRIED", "DIVORCED", "WIDOWED"] }, "sourceRef": "Jamaican Passport Application Form, page 1, Section B — \"Place of Marriage: (Town, City and Parish)\" (Applicant_Place_of_Marriage, Applicant_Place_of_Marriage1)", "validation": { "maxLength": 250 } },
    { "name": "marriageCountry", "label": "Country of Marriage", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "maritalStatus", "in": ["MARRIED", "DIVORCED", "WIDOWED"] }, "sourceRef": "Jamaican Passport Application Form, page 1, Section B — \"Country:\" (Applicant_Marriage_Country, Applicant_Marriage_Country1)", "validation": { "maxLength": 200 } },
    { "name": "spouseSurname", "label": "Spouse's Surname", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "maritalStatus", "in": ["MARRIED", "DIVORCED", "WIDOWED"] }, "sourceRef": "Jamaican Passport Application Form, page 1, Section B — \"Spouse's Name: (If Married, divorced or widowed) Surname\" (Spouse_Sur_Name)", "validation": { "maxLength": 100 } },
    { "name": "spouseFirstName", "label": "Spouse's First Name", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "maritalStatus", "in": ["MARRIED", "DIVORCED", "WIDOWED"] }, "sourceRef": "Jamaican Passport Application Form, page 1, Section B — \"First Name\" (Spouse_Name)", "validation": { "maxLength": 100 } },

    { "name": "consentGiverSurname", "label": "Parent or Legal Guardian — Surname", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantIsMinor", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"Surname (parent or legal guardian)\" (Applicant_Parent_SurName)", "validation": { "maxLength": 100 } },
    { "name": "consentGiverFirstName", "label": "Parent or Legal Guardian — First Name", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantIsMinor", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"First Name\" (Applicant_Parent_Firstname)", "validation": { "maxLength": 100 } },
    { "name": "consentGiverMiddleName", "label": "Parent or Legal Guardian — Middle Name(s)", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"Middle Name(s)\" (Applicant_Parent_Middlename)", "validation": { "maxLength": 100 } },
    { "name": "relationToMinor", "label": "Relationship to Minor", "type": "enum", "required": false, "requiredWhen": { "field": "applicantIsMinor", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"Relationship to above-named person to minor: Mother / Father / Legal Guardian\" (radio group \"Relation_to_minor\"). See this schema's own verification.notes Finding 15.", "validation": { "enum": ["MOTHER", "FATHER", "LEGAL_GUARDIAN"] } },
    { "name": "consentGiverNameInDeclaration", "label": "Consent Declaration — \"I (name)...\"", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantIsMinor", "equals": true }, "description": "See this schema's own verification.notes Finding 6.", "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"I (name)... the (Relationship)...\" (Applicant_Parent_Name)", "validation": { "maxLength": 200 } },
    { "name": "consentGiverRelationshipInDeclaration", "label": "Consent Declaration — \"...the (Relationship)...\"", "type": "string", "required": false, "requiredWhen": { "field": "applicantIsMinor", "equals": true }, "description": "See this schema's own verification.notes Finding 6.", "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"...the (Relationship)...\" (Applicant_Parent_relation)", "validation": { "maxLength": 100 } },
    { "name": "minorFullName", "label": "Minor's Name", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantIsMinor", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 2, Section C — \"Of (Minor's Name)..., give my consent for him/her to hold a passport.\" (minor_name)", "validation": { "maxLength": 200 } },

    { "name": "mostRecentPassportNumber", "label": "Most Recent Passport — Passport Number", "type": "string", "required": false, "classification": "sensitive-pii", "requiredWhen": { "field": "priorPassportDeclaration", "in": ["SURRENDERED", "LOST_OR_UNAVAILABLE"] }, "description": "See this schema's own verification.notes Finding 2.", "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Passport Number\" (Recent_Passport_Number)", "validation": { "maxLength": 30 } },
    { "name": "mostRecentPassportIssueDate", "label": "Most Recent Passport — Date of Issue", "type": "date", "required": false, "requiredWhen": { "field": "priorPassportDeclaration", "in": ["SURRENDERED", "LOST_OR_UNAVAILABLE"] }, "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Date of Issue (DD/MM/YYYY)\" (Recent_Passport_Issue_Date)" },
    { "name": "mostRecentPassportIssuePlace", "label": "Most Recent Passport — Place of Issue", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "priorPassportDeclaration", "in": ["SURRENDERED", "LOST_OR_UNAVAILABLE"] }, "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Place of Issue\" (Recent_Passport_Issue_Place)", "validation": { "maxLength": 150 } },
    { "name": "mostRecentPassportLossDate", "label": "Most Recent Passport — Date of Loss", "type": "date", "required": false, "requiredWhen": { "field": "priorPassportDeclaration", "equals": "LOST_OR_UNAVAILABLE" }, "description": "See this schema's own verification.notes Finding 2.", "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Date of Loss (DD/MM/YYYY)\" (Recent_Passport_Loss_Date)" },
    { "name": "passportIssuedInNameSurname", "label": "Name in Which Stolen/Lost/Unavailable Passport Was Issued — Surname", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "priorPassportDeclaration", "equals": "LOST_OR_UNAVAILABLE" }, "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Name in which stolen, lost or unavailable passport was issued: Surname\" (Passport_Stolen_Sur_Name)", "validation": { "maxLength": 100 } },
    { "name": "passportIssuedInNameFirstName", "label": "Name in Which Stolen/Lost/Unavailable Passport Was Issued — First Name", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "priorPassportDeclaration", "equals": "LOST_OR_UNAVAILABLE" }, "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"First Name\" (Passport_Stolen_First_Name)", "validation": { "maxLength": 100 } },
    { "name": "passportIssuedInNameMiddleName", "label": "Name in Which Stolen/Lost/Unavailable Passport Was Issued — Middle Name(s)", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Middle Names(s)\" (Passport_Stolen_Middle_Name)", "validation": { "maxLength": 100 } },
    { "name": "placeOfPassportLoss", "label": "Place of Loss (City, Parish)", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "priorPassportDeclaration", "equals": "LOST_OR_UNAVAILABLE" }, "description": "See this schema's own verification.notes Finding 4.", "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"Place of Loss (City, Parish):\" (Place_of_Passport_loss, Place_of_Passport_loss1)", "validation": { "maxLength": 200 } },
    { "name": "circumstancesOfPassportLoss", "label": "Brief Statement of Circumstances Where Passport Has Been Damaged", "type": "string", "required": false, "requiredWhen": { "field": "priorPassportDeclaration", "equals": "LOST_OR_UNAVAILABLE" }, "description": "See this schema's own verification.notes Finding 5.", "sourceRef": "Jamaican Passport Application Form, page 2, Section D — \"BRIEF STATEMENT OF CIRCUMSTANCES WHERE PASSPORT HAS BEEN DAMAGED\" (Circumstances_of_passport_loss1, 2, 3)", "validation": { "maxLength": 600 } },

    { "name": "priorPassportDeclaration", "label": "Declaration Regarding Prior Passports", "type": "enum", "required": true, "sourceRef": "Jamaican Passport Application Form, page 2, Section E — three declaration paragraphs (radio group \"Declaration\"). See this schema's own verification.notes Finding 3.", "validation": { "enum": ["NEVER_HELD", "SURRENDERED", "LOST_OR_UNAVAILABLE"] } },
    { "name": "previousPassportOrTravelDocumentNumber", "label": "Previous Passport or Travel Document Number (if applicable)", "type": "string", "required": false, "classification": "sensitive-pii", "description": "See this schema's own verification.notes Finding 13.", "sourceRef": "Jamaican Passport Application Form, page 2, Section E — \"...other than Passport or Travel Document No. ..., which is submitted herewith\" (Travel_Document_Number)", "validation": { "maxLength": 30 } },
    { "name": "declarationDate", "label": "Date of Declaration", "type": "date", "required": true, "sourceRef": "Jamaican Passport Application Form, page 2, Section E — \"Date of Declaration (DD/MM/YYYY)\" (Declaration_Date)" },

    { "name": "emergencyFirstContactSurname", "label": "First Contact Person — Surname", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"FIRST CONTACT PERSON: Surname\" (Emergency_First_Contact_Surname)", "validation": { "maxLength": 100 } },
    { "name": "emergencyFirstContactFirstName", "label": "First Contact Person — First Name", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"First Name\" (Emergency_First_Contact_Firstname)", "validation": { "maxLength": 100 } },
    { "name": "emergencyFirstContactMiddleName", "label": "First Contact Person — Middle Names", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Middle Names\" (Emergency_First_Contact_Middlename)", "validation": { "maxLength": 100 } },
    { "name": "emergencyFirstContactAddress", "label": "First Contact Person — Street Number and Street Name", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Street Number and Street name\" (Emergency_First_Contact_Address1, Emergency_First_Contact_Address2)", "validation": { "maxLength": 300 } },
    { "name": "emergencyFirstContactTown", "label": "First Contact Person — Town, City and Parish/State", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Town, City and Parish/State\" (Emergency_First_Contact_Town1, Emergency_First_Contact_Town2)", "validation": { "maxLength": 200 } },
    { "name": "emergencyFirstContactCountry", "label": "First Contact Person — Country", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Country\" (Emergency_First_Contact_Country)", "validation": { "maxLength": 100 } },
    { "name": "emergencyFirstContactState", "label": "First Contact Person — State", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"State\" (Emergency_First_Contact_state)", "validation": { "maxLength": 100 } },
    { "name": "emergencyFirstContactZipCode", "label": "First Contact Person — Postal or Zip Code", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Postal or Zip Code\" (Emergency_First_Contact_Zip_Code)", "validation": { "maxLength": 20 } },
    { "name": "emergencyFirstContactPhoneNumber", "label": "First Contact Person — Telephone Number", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Telephone Number: Area Code / Seven Digit Number\" (Emergency_First_Contact_Phone_Number)", "validation": { "maxLength": 20 } },
    { "name": "emergencyFirstContactRelationship", "label": "First Contact Person — Relationship", "type": "string", "required": true, "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Relationship\" (Emergency_First_Contact_Relation)", "validation": { "maxLength": 100 } },

    { "name": "emergencySecondContactSurname", "label": "Second Contact Person — Surname", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 10.", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"SECOND CONTACT PERSON: Surname\" (Emergency_Second_Contact_Surname)", "validation": { "maxLength": 100 } },
    { "name": "emergencySecondContactFirstName", "label": "Second Contact Person — First Name", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"First Name\" (Emergency_Second_Contact_Firstname)", "validation": { "maxLength": 100 } },
    { "name": "emergencySecondContactMiddleName", "label": "Second Contact Person — Middle Names", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Middle Names\" (Emergency_Second_Contact_Middlename)", "validation": { "maxLength": 100 } },
    { "name": "emergencySecondContactAddress", "label": "Second Contact Person — Street Number and Street Name", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Street Number and Street name\" (Emergency_Second_Contact_Address1, Emergency_Second_Contact_Address2)", "validation": { "maxLength": 300 } },
    { "name": "emergencySecondContactTown", "label": "Second Contact Person — Town, City and Parish/State", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Town, City and Parish/ State\" (Emergency_Second_Contact_Town1, Emergency_Second_Contact_Town2)", "validation": { "maxLength": 200 } },
    { "name": "emergencySecondContactCountry", "label": "Second Contact Person — Country", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Country\" (Emergency_Second_Contact_Country)", "validation": { "maxLength": 100 } },
    { "name": "emergencySecondContactState", "label": "Second Contact Person — State", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"State\" (Emergency_Second_Contact_state)", "validation": { "maxLength": 100 } },
    { "name": "emergencySecondContactZipCode", "label": "Second Contact Person — Postal or Zip Code", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Postal or Zip Code\" (Emergency_Second_Contact_Zip_Code)", "validation": { "maxLength": 20 } },
    { "name": "emergencySecondContactPhoneNumber", "label": "Second Contact Person — Telephone Number", "type": "string", "required": false, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Telephone Number: Area Code / Seven Digit Number\" (Emergency_Second_Contact_Phone_Number)", "validation": { "maxLength": 20 } },
    { "name": "emergencySecondContactRelationship", "label": "Second Contact Person — Relationship", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 3, Section F — \"Relationship\" (Emergency_Second_Contact_Relation)", "validation": { "maxLength": 100 } },

    { "name": "certifyingOfficialFullName", "label": "Certifying Official — Full Name", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"I [First Name, Middle Name(s), Surname]\" (Official_Certificate)", "validation": { "maxLength": 250 } },
    { "name": "certifyingOfficialDesignationOccupation", "label": "Certifying Official — Designation/Occupation", "type": "string", "required": true, "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Designation/Occupation\" (Designation)", "validation": { "maxLength": 150 } },
    { "name": "applicantFullNameForCertification", "label": "Full Name of Applicant (as stated on application)", "type": "string", "required": true, "classification": "pii", "description": "See this schema's own verification.notes Finding 6.", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"hereby certify that I have known ... Full Name of Applicant (in the case of a minor, the person giving consent) as stated on application\" (Full_Name_of_Applicant)", "validation": { "maxLength": 250 } },
    { "name": "certifyingOfficialBuildingOrApartment", "label": "Certifying Official — Building/Apartment Number and Name (if applicable)", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 9.", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Building/Apartment Number and Name (if applicable)\" (Address_of_Certifying_Official)", "validation": { "maxLength": 150 } },
    { "name": "certifyingOfficialStreetAddress", "label": "Certifying Official — Street Number and Street Name", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Street Number and Street name\" (Street_Name_of_Certifying_Official)", "validation": { "maxLength": 200 } },
    { "name": "certifyingOfficialTown", "label": "Certifying Official — Town", "type": "string", "required": true, "classification": "pii", "description": "See this schema's own verification.notes Finding 9.", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Town, City and Parish/ State\" (Town_Name_of_Certifying_Official)", "validation": { "maxLength": 150 } },
    { "name": "certifyingOfficialCity", "label": "Certifying Official — City", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Town, City and Parish/ State\" (City_Name_of_Certifying_Official)", "validation": { "maxLength": 150 } },
    { "name": "certifyingOfficialParishOrState", "label": "Certifying Official — Parish/State", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Town, City and Parish/ State\" (Parish_Name_of_Certifying_Official)", "validation": { "maxLength": 150 } },
    { "name": "certifyingOfficialCountry", "label": "Certifying Official — Country", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Country\" (Certifying_Official_Country_Name)", "validation": { "maxLength": 100 } },
    { "name": "certifyingOfficialZipCode", "label": "Certifying Official — Postal Code or Zip Code", "type": "string", "required": false, "classification": "pii", "description": "See this schema's own verification.notes Finding 12.", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Postal Code or Zip Code\" (Certifying_Official_Zip_Code)", "validation": { "maxLength": 20 } },
    { "name": "certifyingOfficialPhoneNumber", "label": "Certifying Official — Telephone Number", "type": "string", "required": true, "classification": "pii", "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Telephone Number: Area Code / Seven Digit Number\" (Certifying_Official_Phone)", "validation": { "maxLength": 20 } },
    { "name": "certificationDate", "label": "Date of Certification", "type": "date", "required": true, "sourceRef": "Jamaican Passport Application Form, page 3, Section G — \"Date of Certification (DD/MM/YYYY)\" (Date_of_Certification)" },

    { "name": "religionOrSectName", "label": "Religion/Sect", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "wearsHeadgearForReligiousReasons", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section H — \"(Religion/Sect)\" (Religion_Name)", "validation": { "maxLength": 150 } },

    { "name": "fatherNameForeignBorn", "label": "Father's Name", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantBornOutsideJamaica", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section I — \"Father's Name:\" (Applicant_born_out_jamaica_Father_Name)", "validation": { "maxLength": 200 } },
    { "name": "motherNameForeignBorn", "label": "Mother's Name", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantBornOutsideJamaica", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section I — \"Mother's Name:\" (Applicant_born_out_jamaica_Mother_Name)", "validation": { "maxLength": 200 } },
    { "name": "fatherPlaceOfBirthForeignBorn", "label": "Father's Place of Birth", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantBornOutsideJamaica", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section I — \"Father's Place of Birth:\" (Applicant_born_out_jamaica_Father_POB)", "validation": { "maxLength": 200 } },
    { "name": "motherPlaceOfBirthForeignBorn", "label": "Mother's Place of Birth", "type": "string", "required": false, "classification": "pii", "requiredWhen": { "field": "applicantBornOutsideJamaica", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section I — \"Mother's Place of Birth:\" (Applicant_born_out_jamaica_Mother_POB)", "validation": { "maxLength": 200 } },
    { "name": "fatherDateOfBirthForeignBorn", "label": "Father's Date of Birth", "type": "date", "required": false, "classification": "sensitive-pii", "requiredWhen": { "field": "applicantBornOutsideJamaica", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section I — \"Father's Date of Birth: (DD/MM/YYYY)\" (Applicant_born_out_jamaica_Father_DOB)" },
    { "name": "motherDateOfBirthForeignBorn", "label": "Mother's Date of Birth", "type": "date", "required": false, "classification": "sensitive-pii", "requiredWhen": { "field": "applicantBornOutsideJamaica", "equals": true }, "sourceRef": "Jamaican Passport Application Form, page 4, Section I — \"Mother's Date of Birth: (DD/MM/YYYY)\" (Applicant_born_out_jamaica_Mother_DOB)" },

    { "name": "supplementaryInformationLine1", "label": "Supplementary Information (line 1)", "type": "string", "required": false, "description": "See this schema's own verification.notes Finding 8 for why Section J's 16 unique underlying AcroForm fields are renumbered 1-16 here despite 18 printed ruled lines.", "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information1)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine2", "label": "Supplementary Information (line 2)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information2)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine3", "label": "Supplementary Information (line 3)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information3)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine4", "label": "Supplementary Information (line 4)", "type": "string", "required": false, "description": "Backed by a source AcroForm field name (Supplimentry_Information4) duplicated across two adjacent printed ruled lines. See this schema's own verification.notes Finding 8.", "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information4, duplicated widget)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine5", "label": "Supplementary Information (line 5)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information6)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine6", "label": "Supplementary Information (line 6)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information7)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine7", "label": "Supplementary Information (line 7)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information8)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine8", "label": "Supplementary Information (line 8)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information9)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine9", "label": "Supplementary Information (line 9)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information10)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine10", "label": "Supplementary Information (line 10)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information11)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine11", "label": "Supplementary Information (line 11)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information12)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine12", "label": "Supplementary Information (line 12)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information13)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine13", "label": "Supplementary Information (line 13)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information14)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine14", "label": "Supplementary Information (line 14)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information15)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine15", "label": "Supplementary Information (line 15)", "type": "string", "required": false, "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information16)", "validation": { "maxLength": 200 } },
    { "name": "supplementaryInformationLine16", "label": "Supplementary Information (line 16)", "type": "string", "required": false, "description": "Backed by a source AcroForm field name (Supplimentry_Information17) duplicated across two adjacent printed ruled lines. See this schema's own verification.notes Finding 8.", "sourceRef": "Jamaican Passport Application Form, page 4, Section J (Supplimentry_Information17, duplicated widget)", "validation": { "maxLength": 200 } }
  ],
  "documents": [
    {
      "id": "photographs",
      "label": "Two identical, professionally produced colour photographs (taken within the last 6 months), one certified on its reverse by the certifying official",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Jamaican Passport Application Form, page 5, Guidelines 2.0/2.1, and page 6, Guideline 3.2 (certified-reverse inscription requirement)"
    },
    {
      "id": "citizenshipEvidence",
      "label": "Evidence of Jamaican citizenship (Birth Certificate, Certificate of Registration, Certificate of Naturalization, Adoption Certificate, or Letter of Certification of Citizenship)",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Jamaican Passport Application Form, page 5, Guideline 1.1"
    },
    {
      "id": "photoIdentification",
      "label": "Credible photographic identification (National Voter's Identification, Driver's Licence, Previous Passport, or other identification approved by the Passport Officers)",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Jamaican Passport Application Form, page 5, Guideline 1.3 — \"required, particularly for first time applicants\""
    },
    {
      "id": "nameChangeEvidence",
      "label": "Certified copy of Marriage Certificate(s), Divorce Judgement(s), or Deed Poll substantiating a name change",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": { "field": "maritalStatus", "in": ["MARRIED", "DIVORCED", "WIDOWED"] },
      "sourceRef": "Jamaican Passport Application Form, page 5, Guideline 1.4 — required only \"where the married name is being used\"; this schema approximates that condition against maritalStatus, disclosed as a judgment call"
    },
    {
      "id": "policeReportForLostPassport",
      "label": "Police report for a lost, stolen, or destroyed passport",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "requiredWhen": { "field": "priorPassportDeclaration", "equals": "LOST_OR_UNAVAILABLE" },
      "sourceRef": "Jamaican Passport Application Form, page 6, Guideline 6.0"
    },
    {
      "id": "signedApplicationForm",
      "label": "The fully completed application form, signed by the applicant, and — where applicable — by the parent/legal guardian and the certifying official",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Jamaican Passport Application Form, page 2 Section E, page 2 Section C, and page 3 Section G signature lines. See this schema's own verification.notes Finding 7 for why these three signature lines are modelled as a document rather than as fields[]."
    }
  ]
}
