{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "pg/ica/passport-application",
  "version": "1.0.0",
  "title": "Papua New Guinea Application for a Travel Document (ICA Form FA 81)",
  "description": "Papua New Guinea's Immigration and Citizenship Authority's (ICA) \"Application for a Travel Document\" (Form FA 81), made under the Passport Act of 1982. Covers a Standard, Official, or Diplomatic Passport, a Certificate of Identity, or an Emergency Travel Document; filed by the applicant directly, or by a lodging parent/legal guardian for a child applicant under 17. Models the applicant's own particulars, birth place and physical description, marital status and address (Sections 1–8); the parent/legal guardian consent block for an applicant under 17 (Section 9); proposed departure details (Section 10); a previously-issued PNG travel document, including lost/stolen/destroyed/damaged status and any police report (Sections 11–12); the mandatory third-party Certificate Regarding Applicant (Section 13); the applicant's own Declaration (Section 14); the interpreter/witness block for an applicant who cannot read or write English (Section 15); and the Evidence of Citizenship attachment, including parents' and grandparents' particulars and the applicant's own citizenship status (Attachment A, page 4). Opens Papua New Guinea's Passport vertical (2 of 6 verticals now open, alongside Business Formation via pg/ipa/business-name-registration); DMV, Visa, Taxes, and National ID & Civic Documents remain open, unscreened backlog for a future cycle. This document does not file the application itself; the live source is always authoritative. See VERIFICATION.md for the full sourcing record and every disclosed scoping decision, including this specimen's complete absence of any fillable signature widget anywhere across all 4 pages. GovSchema is an independent, non-profit standards body; it is not affiliated with, endorsed by, or operated by the Independent State of Papua New Guinea or its Immigration and Citizenship Authority.",
  "status": "draft",
  "jurisdiction": {
    "country": "PG",
    "level": "national"
  },
  "authority": {
    "name": "Immigration and Citizenship Authority",
    "abbreviation": "ICA",
    "url": "https://ica.gov.pg"
  },
  "process": {
    "type": "application",
    "language": "en"
  },
  "source": {
    "url": "https://ica.gov.pg/uploads/media/post_file_5437896-passport-application-form-fillable-savable.pdf",
    "retrievedAt": "2026-07-31",
    "documentRef": "Form FA 81, \"Application for a Travel Document\", Passport Act of 1982"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-31",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-31",
    "notes": "GOV-5812 (\"GovSchema Standard Research\"). Re-scanned CATALOG.md fresh: the Executive Summary's own most recent entries (GOV-5791, GOV-5798, GOV-5805) show Papua New Guinea opened as the registry's 101st jurisdiction via Business Formation only (pg/ipa/business-name-registration@1.0.0, 1 of 6 verticals), with the Known Gaps \"0t.\" entry explicitly banking PG's other five verticals (DMV, Visa, Passport, Taxes, National ID) plus a sibling IPA Form A-2 as open, unscreened backlog for a future cycle. This cycle screened all five: \n\n- Passport: found and authored (this document) — see below.\n- National ID: the Papua New Guinea Civil and Identity Registry's (PNGCIR) own NID/birth registration forms (pngcir.gov.pg/wp-content/uploads/2020/03/Births-NID-Registration-form_new_Citizenship_Form.pdf, HTTP 200, 836,266 bytes; and .../2020/01/Form-1-Birth.pdf, HTTP 200, 475,527 bytes) are live and unauthenticated, but both are flat PDFs confirmed via pdfjs-dist to carry zero AcroForm widgets (no fillable fields at all) — weaker candidates than the Passport form's genuine 93-widget AcroForm, not authored this cycle.\n- Visa: the ICA's own \"Application to Extend Entry Permit\" (ica.gov.pg/uploads/media/post_file_2430587-visa-extension-form-new-savable.pdf, HTTP 200, 123,043 bytes, confirmed 62 widgets across 2 pages) and a first-entry \"Application for entry permit\" mirrored by the PNG-Japan Society (png.or.jp/wp-content/uploads/2016/01/Application_for_entry_permit_form_new_savable.pdf, HTTP 200, 180,934 bytes, confirmed 102 widgets across 4 pages, itself watermarked \"Downloaded from www.immigration.gov.pg\") are both live, unauthenticated, and genuinely rich AcroForms — real candidates for a future cycle, but not authored this cycle since the Passport candidate (93 widgets, hosted directly on ica.gov.pg with no third-party mirror) was judged the stronger single pick and this cycle's own scope is one deliverable.\n- DMV: the Road Traffic Authority's (RTA) driver-licence Forms 1 and 2 (rta.gov.pg/pdfs/forms/Form1.pdf and Form2.pdf, both HTTP 200) are live and unauthenticated but both confirmed via pdfjs-dist to carry zero AcroForm widgets; the RTA's \"Road Traffic Rules — Licensing of Drivers 2017\" (rta.gov.pg/pdfs/licences&approvals/RTR_LicensingOfDrivers2017.pdf, HTTP 200, 1,450,313 bytes) is a 26-page regulatory document, not an application form at all, and likewise carries no widgets. No viable DMV candidate found this cycle.\n- Taxes: the Internal Revenue Commission's (IRC) own downloads page (irc.gov.pg/downloads/) returned HTTP 403 to both WebFetch and a direct fetch attempt; no direct static individual income-tax-return form URL was found by search (only a GST/Goods & Services Tax form, static.irc.gov.pg/.../G1-Goods-Services-Tax-Return.pdf, a business tax, not individual income tax). Sources otherwise point to the myIRC online portal, which this cycle could not confirm is reachable without a login. No viable Taxes candidate found this cycle.\n\nThe Passport candidate — ICA's Form FA 81, \"Application for a Travel Document\" — was the clear winner of the five: hosted directly on the Immigration and Citizenship Authority's own official domain (ica.gov.pg, no third-party mirror), no login/CAPTCHA/WAF gate, and a genuine 93-widget AcroForm across 4 pages, richer than every other PG vertical candidate found this cycle (including the Visa candidates at 62 and 102 widgets, which remain open backlog). PG's own sibling Form A-2 (overseas company registration, banked in GOV-5791 as a weaker Business Formation companion) was not re-screened this cycle since a stronger candidate (Passport) was found first among the five verticals actually in scope.\n\nIndependently re-fetched https://ica.gov.pg/uploads/media/post_file_5437896-passport-application-form-fillable-savable.pdf directly via plain curl (twice, to confirm reproducibility): HTTP 200, 327,603 bytes both times, sha256 a61da176b95c22f05cd554b36d635791bbf7e867bd1e41a12514e902a2c2cf28 both times, no login/CAPTCHA/WAF gate (served directly by Cloudflare with a permissive cache-control header; Last-Modified: Tue, 12 Mar 2019, so this is a long-standing, stable specimen, not a recent upload). Confirmed via pdfjs-dist to be a genuine native (searchable-text) PDF, 4 pages, with 93 total AcroForm Widget annotations (page 1: 0 — a pure cover/instructions page; page 2: 39; page 3: 38; page 4: 16), each cross-checked against the page's own text-layer content and, for every checkbox group and the two combo-box dropdowns, against a canvas-rendered PNG of the page to visually confirm option-to-checkbox and label-to-widget mapping (rect-position inference alone was not trusted for the 5-option documentType and 5-option previousDocumentStatus groups, or for the two Section-14 date dropdowns).\n\nDisclosed scoping decisions:\n1. **No fillable signature widget exists anywhere on this specimen.** Every \"Signed\"/\"Signature\"/\"Signature of Witness\"/\"Signature or Mark\" line across all 4 pages (Section 9's two consent rows, Section 13's certificate, Section 14's declaration, and Section 15's interpreter/witness row) was checked against the full page-3/page-2 annotation dump and confirmed to have **zero** backing AcroForm widget — only the accompanying Date field (where one exists) is a real widget. This differs from both bz/doi/passport-application (one signature widget, submitterSignature) and tt/imd/passport-application-first-adult (one signature widget) — this registry's own convention of only modelling signature capture where a genuine widget exists therefore means **no** signature field is modelled in this schema at all, not even a single one.\n2. **This entire specimen prints no required/optional signal of any kind** — no asterisk, no \"(required)\"/\"(optional)\" caption, on any of its 4 pages (confirmed by a full page-by-page text-layer read). Absent any printed signal, this schema follows the same policy the DR Congo visa schema (cd/maeci/visa-application) adopted under an identical constraint: required only the fields necessary to identify the applicant and the substance of the application (document type, full name, sex, date of birth, birth province/country, occupation, marital status, residential address, the mandatory Section 13 certificate and Section 14 declaration fields), and bare-optional for physical-description minutiae, secondary addresses, travel-logistics detail, and every conditional block (parental consent, previous-travel-document history, interpreter/witness), which are instead gated by requiredWhen wherever the form's own prose states a real conditional relationship.\n3. **Two directly-supplied boolean gates** (applicantUnder17, applicantCannotReadWriteEnglish) were added to model conditions the form states in prose (Instruction 8; Section 15's own header) without a printed checkbox of their own — mirroring this registry's own hasSponsor/hasHostInMalta convention (cd/maeci/visa-application; mt/identita/long-stay-visa-application). Neither is invented eligibility logic: both conditions are stated outright on the form itself, just without a backing widget.\n4. **otherParentFullName (Section 9's second consent block) is left bare-optional**, not gated on applicantUnder17, since the form provides two parent/guardian consent blocks but neither Instruction 8 nor Section 9's own header states unambiguously that both must always be completed (a sole-custodial or sole-surviving parent could not otherwise satisfy a hard requiredWhen gate here) — consistent with this registry's standing lesson never to gate requiredness on an otherwise-optional trigger absent an explicit either/or signal.\n5. **Several internal PDF field names are generic auto-numbered artifacts** (\"Text10\", \"Text13\" through \"Text39\", \"Date_2\" through \"Date_7\", \"Full name_2\", \"Occupation_2\"/\"Occupation_3\", \"Address_2\", \"Telephone number_2\"), disambiguated throughout by rect position and cross-checked against the canvas-rendered page images, not by internal name.\n6. **Two page-4 fields are printed as single combined boxes**, not separate ones: \"Full name and date of birth of mother\" and \"Place of birth and Citizenship of mother\" (and the equivalent father fields) are each backed by exactly one AcroForm widget, modelled as one combined field each (motherFullNameAndDateOfBirth, motherPlaceOfBirthAndCitizenship, and the father equivalents), not decomposed into name/date-of-birth or place/citizenship sub-fields the source itself does not separate.\n7. **Attachment A's own two \"Are you a citizen...\" questions are printed with a grammatical typo** (\"Are you are citizen of Papua New Guinea?\" / \"Are you are citizen of foreign country?\") — quoted verbatim (sic) in sourceRef rather than silently corrected.\n8. **Five independent AcroForm checkboxes model documentType and five model previousDocumentStatus** — neither is a single PDF radio-button field (each checkbox is its own independent Btn widget with generic exportValue \"Yes\"), so both are modelled as mutually-exclusive enums rather than as five separate boolean fields, consistent with this registry's established convention for this checkbox-group pattern.\n9. **One crossFieldValidation rule** (travelDocumentExpiryNotBeforeIssue) checks the previous travel document's own expiry date is not before its issue date — a genuine structural date-sanity rule, not invented eligibility logic, mirroring bz/doi/passport-application's own reportDateNotBeforeDateOfLoss rule.\n\nModels 79 fields[] across 8 steps (2 of the 79 are directly-supplied gates without a backing widget; the other 77 collapse this specimen's 93 total AcroForm widgets, since 16 widgets across 5 checkbox/dropdown groups — documentType [5→1], sex [2→1], hasChangedName [2→1], maritalStatus [2→1], previouslyIssuedTravelDocument [2→1], previousDocumentStatus [5→1], lossReportedToPolice [2→1], livedAllLifeInPNG [2→1], isCitizenOfPNG [2→1], isCitizenOfForeignCountry [2→1] — each collapse into one enum/boolean field), 7 documents[] entries (fee payment, photographs, evidence of citizenship, the conditional previous travel document, and three attestations: the Section 13 certificate, the Section 14 declaration, and the conditional Section 9 parental consent), and 1 crossFieldValidation rule.\n\n3 valid mock scenarios (a minimal adult applicant with no previous travel document and full English literacy; an under-17 applicant with both parental consent blocks and a lost-previous-passport branch fully populated, including the police-report sub-branch; an applicant who cannot read or write English exercising the full interpreter/witness block) plus 13 mutation-control fixtures (7 missing-required fixtures covering each step carrying a statically-required field; 3 missing-requiredWhen fixtures, one per conditional branch; an invalid-enum-value fixture; an unknown-field-rejected fixture; and a crossFieldValidation-violation fixture with the previous travel document's expiry date set before its issue date) committed under conformance/pg/ica/passport-application/1.0.0/. An ephemeral, from-scratch conformance checker (deriving required/requiredWhen/crossFieldValidation rules directly from this schema's own fields[], discarded after use, not committed) ran all 16 fixtures: all 3 valid scenarios at 0 errors, all 13 mutation controls each raising exactly 1 error. Validated clean with node tools/validate.mjs and node tools/validate-ajv.mjs, individually and as part of the full registry run.\n\nOpens Papua New Guinea's Passport vertical (2 of 6). DMV and Taxes remain confirmed dead ends this cycle (no viable static-form candidate found); Visa has two live, unauthenticated, genuinely rich AcroForm candidates (62 and 102 widgets) banked as unauthored backlog for a future cycle; National ID has two live but flat (zero-widget) candidates, weaker than a genuine AcroForm; PG's own sibling Form A-2 was not re-screened this cycle."
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "documentType",
      "label": "Type of Travel Document",
      "type": "enum",
      "required": true,
      "description": "The kind of travel document applied for. Five independent AcroForm checkboxes (Check Box1/2/3/4/5), not a single radio-button field; modelled as a mutually-exclusive enum since the printed layout (two rows of boxes under one heading) presents them as a single-select choice with no explicit \"tick one only\" instruction of its own.",
      "validation": {
        "enum": [
          "STANDARD_PASSPORT",
          "OFFICIAL_PASSPORT",
          "CERTIFICATE_OF_IDENTITY",
          "DIPLOMATIC_PASSPORT",
          "EMERGENCY_TRAVEL_DOCUMENT"
        ]
      },
      "sourceRef": "Section 1 — \"Standard Passport / Official Passport / Certificate of Identity / Diplomatic Passport / Emergency Travel Document\""
    },
    {
      "name": "familyName",
      "label": "Family Name/Surname",
      "type": "string",
      "required": true,
      "sourceRef": "Section 2, Applicant's Name — \"Family name/Surname\"",
      "classification": "pii"
    },
    {
      "name": "givenNames",
      "label": "Given Names",
      "type": "string",
      "required": true,
      "sourceRef": "Section 2, Applicant's Name — \"Given names\"",
      "classification": "pii"
    },
    {
      "name": "sex",
      "label": "Sex",
      "type": "enum",
      "required": true,
      "validation": {
        "enum": [
          "MALE",
          "FEMALE"
        ]
      },
      "sourceRef": "Section 3 — \"Male / Female\"",
      "classification": "sensitive-pii"
    },
    {
      "name": "hasChangedName",
      "label": "Has Applicant Ever Changed Name?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Section 4 — \"Has Applicant ever changed his/her name? Yes / No\""
    },
    {
      "name": "previousNames",
      "label": "Previous Names",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasChangedName",
        "equals": true
      },
      "sourceRef": "Section 4 — \"If Yes, state previous names here\"",
      "classification": "pii"
    },
    {
      "name": "birthVillage",
      "label": "Birth Place — Village",
      "type": "string",
      "required": false,
      "sourceRef": "Section 5, Birth Place and Date — \"Village\"",
      "classification": "pii"
    },
    {
      "name": "birthTown",
      "label": "Birth Place — Town",
      "type": "string",
      "required": false,
      "sourceRef": "Section 5, Birth Place and Date — \"Town\"",
      "classification": "pii"
    },
    {
      "name": "birthProvince",
      "label": "Birth Place — Province",
      "type": "string",
      "required": true,
      "sourceRef": "Section 5, Birth Place and Date — \"Province\"",
      "classification": "pii"
    },
    {
      "name": "birthCountry",
      "label": "Birth Place — Country",
      "type": "string",
      "required": true,
      "sourceRef": "Section 5, Birth Place and Date — \"Country\"",
      "classification": "pii"
    },
    {
      "name": "dateOfBirth",
      "label": "Date of Birth",
      "type": "date",
      "required": true,
      "sourceRef": "Section 5, Birth Place and Date — \"Date of Birth\"",
      "classification": "sensitive-pii"
    },
    {
      "name": "heightCm",
      "label": "Height (cm)",
      "type": "number",
      "required": false,
      "sourceRef": "Section 6, Personal Particulars — \"Height ___ cm\""
    },
    {
      "name": "colourOfHair",
      "label": "Colour of Hair",
      "type": "string",
      "required": false,
      "sourceRef": "Section 6, Personal Particulars — \"Colour of hair\"; internal PDF field name \"Text10\" is a generic auto-numbered artifact disambiguated by rect position (it is the Height box, immediately left of the Colour of hair box — see VERIFICATION.md)"
    },
    {
      "name": "colourOfEyes",
      "label": "Colour of Eyes",
      "type": "string",
      "required": false,
      "sourceRef": "Section 6, Personal Particulars — \"Colour of eyes\""
    },
    {
      "name": "visualDistinguishingMarks",
      "label": "Visual Distinguishing Marks",
      "type": "string",
      "required": false,
      "sourceRef": "Section 6, Personal Particulars — \"Visual Distinguishing marks\""
    },
    {
      "name": "occupation",
      "label": "Occupation",
      "type": "string",
      "required": true,
      "sourceRef": "Section 6, Personal Particulars — \"Occupation:\""
    },
    {
      "name": "maritalStatus",
      "label": "Marital Status",
      "type": "enum",
      "required": true,
      "validation": {
        "enum": [
          "MARRIED",
          "SINGLE"
        ]
      },
      "sourceRef": "Section 7, Marital Status (tick whichever applies) — \"Married / Single\""
    },
    {
      "name": "spouseName",
      "label": "Name of Husband/Wife",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "MARRIED"
      },
      "sourceRef": "Section 7 — \"If Married, Name of husband/wife:\"",
      "classification": "pii"
    },
    {
      "name": "residentialAddress",
      "label": "Residential Address",
      "type": "string",
      "required": true,
      "sourceRef": "Section 8, Address and Telephone — \"Residential :\"",
      "classification": "pii"
    },
    {
      "name": "residentialTelephone",
      "label": "Residential Telephone",
      "type": "string",
      "required": false,
      "sourceRef": "Section 8 — \"Telephone :\" (residential row)",
      "classification": "pii"
    },
    {
      "name": "correspondenceAddress",
      "label": "Correspondence Address",
      "type": "string",
      "required": false,
      "sourceRef": "Section 8 — \"Correspondence :\"",
      "classification": "pii"
    },
    {
      "name": "correspondenceTelephone",
      "label": "Correspondence Telephone",
      "type": "string",
      "required": false,
      "sourceRef": "Section 8 — \"Telephone :\" (correspondence row)",
      "classification": "pii"
    },
    {
      "name": "applicantUnder17",
      "label": "Applicant Is Under 17 Years of Age",
      "type": "boolean",
      "required": true,
      "description": "Directly-supplied gate: the form prints no single yes/no checkbox for the applicant's own age bracket, but Instruction 8 (\"CONSENT OF PARENTS: Applicants under 17 years of age must furnish the consent of their parents or legal guardians\") and Section 9's own italic header (\"If Applicant is under 17 years of age, please provide consent to the application\") make the condition explicit in prose. Mirrors this registry's own established convention of a directly-supplied boolean gate for a printed-but-uncheckboxed condition (e.g. cd/maeci/visa-application's hasSponsor).",
      "sourceRef": "Instruction 8; Section 9 header, \"If Applicant is under 17 years of age, please provide consent to the application\""
    },
    {
      "name": "lodgingParentFullName",
      "label": "Consent of Lodging Parent or Legal Guardian — Full Name",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantUnder17",
        "equals": true
      },
      "description": "A single blank line printed under both a \"(First name)\" and a \"(Family name)\" caption, backed by one AcroForm text widget (\"Text13\") — modelled as one combined full-name field rather than two, since only one widget exists for the whole line.",
      "sourceRef": "Section 9, Consent of Lodging Parent or Legal Guardian — \"I, ___ (First name) (Family name)\"",
      "classification": "pii"
    },
    {
      "name": "lodgingParentConsentDate",
      "label": "Consent of Lodging Parent — Date Signed",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "applicantUnder17",
        "equals": true
      },
      "description": "The date accompanying the lodging parent/guardian's \"Signed\" line. The \"Signed\" line itself has no backing AcroForm widget anywhere on this specimen (see VERIFICATION.md) and so is not modelled as a fillable field.",
      "sourceRef": "Section 9 — \"Signed ___ Date ___\" (lodging parent row)"
    },
    {
      "name": "lodgingParentWitnessDate",
      "label": "Consent of Lodging Parent — Witness Date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "applicantUnder17",
        "equals": true
      },
      "description": "The date accompanying the \"Signature of Witness\" line for the lodging parent's consent. As with the parent's own signature, \"Signature of Witness\" itself has no backing widget — only its date does.",
      "sourceRef": "Section 9 — \"Signature of Witness ___ Date ___\" (lodging parent row)"
    },
    {
      "name": "otherParentFullName",
      "label": "Consent of Other Parent or Legal Guardian — Full Name",
      "type": "string",
      "required": false,
      "description": "Bare-optional even when applicantUnder17 is true: the form provides a second consent block (\"Consent of Other Parent or legal Guardian\") alongside the first, but neither Instruction 8 nor Section 9's own header states unambiguously that both parents/guardians must always consent (e.g. a sole surviving or sole-custodial parent could not satisfy a hard requiredWhen gate here) — disclosed rather than invented, consistent with this registry's standing lesson to never gate requiredness on an otherwise-optional trigger absent an explicit either/or signal.",
      "sourceRef": "Section 9, Consent of Other Parent or legal Guardian — \"I, ___ (First name) (Family name)\"",
      "classification": "pii"
    },
    {
      "name": "otherParentConsentDate",
      "label": "Consent of Other Parent — Date Signed",
      "type": "date",
      "required": false,
      "sourceRef": "Section 9 — \"Signed ___ Date ___\" (other parent row)"
    },
    {
      "name": "otherParentWitnessDate",
      "label": "Consent of Other Parent — Witness Date",
      "type": "date",
      "required": false,
      "description": "Backed by an internal PDF field literally named \"Text15\" — a generic auto-numbered artifact, disambiguated by rect position as the witness date on the Other Parent consent row.",
      "sourceRef": "Section 9 — \"Signature of Witness ___ Date ___\" (other parent row)"
    },
    {
      "name": "vesselOrAirline",
      "label": "Vessel or Airline",
      "type": "string",
      "required": false,
      "sourceRef": "Section 10, Proposed Departure Details — \"Vessel or Airline\""
    },
    {
      "name": "portOrAirport",
      "label": "Port or Airport",
      "type": "string",
      "required": false,
      "sourceRef": "Section 10 — \"Port or Airport\""
    },
    {
      "name": "countriesProposedToVisit",
      "label": "Countries Proposed to Visit",
      "type": "string",
      "required": false,
      "sourceRef": "Section 10 — \"Countries proposed to visit\""
    },
    {
      "name": "proposedDepartureDate",
      "label": "Proposed Departure Date",
      "type": "date",
      "required": false,
      "sourceRef": "Section 10 — \"Date\" (departure row)"
    },
    {
      "name": "previouslyIssuedTravelDocument",
      "label": "Previously Issued a PNG Travel Document?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Section 11 — \"Has applicant previously been issued with a Papua New Guinea Travel Document? Yes / No\""
    },
    {
      "name": "travelDocumentNumber",
      "label": "Previous Travel Document Number",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "previouslyIssuedTravelDocument",
        "equals": true
      },
      "sourceRef": "Section 11 — \"Travel Document number\""
    },
    {
      "name": "travelDocumentIssueDate",
      "label": "Previous Travel Document — Issue Date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "previouslyIssuedTravelDocument",
        "equals": true
      },
      "sourceRef": "Section 11 — \"Issue Date\""
    },
    {
      "name": "travelDocumentExpiryDate",
      "label": "Previous Travel Document — Expiry Date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "previouslyIssuedTravelDocument",
        "equals": true
      },
      "sourceRef": "Section 11 — \"Expiry Date\""
    },
    {
      "name": "bearerNameAtTimeOfIssue",
      "label": "Bearer's Name at Time of Issue",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "previouslyIssuedTravelDocument",
        "equals": true
      },
      "sourceRef": "Section 11 — \"Bearer's name at time of issue\"",
      "classification": "pii"
    },
    {
      "name": "previousDocumentStatus",
      "label": "This Previous Travel Document",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "previouslyIssuedTravelDocument",
        "equals": true
      },
      "description": "Five independent checkboxes (Check Box18-22), modelled as a mutually-exclusive enum, consistent with documentType above.",
      "validation": {
        "enum": [
          "ATTACHED",
          "LOST",
          "STOLEN",
          "DESTROYED",
          "DAMAGED"
        ]
      },
      "sourceRef": "Section 12 — \"Is attached / Has been lost / Has been stolen / Has been destroyed / Has been damaged\""
    },
    {
      "name": "lossTheftCircumstances",
      "label": "Explain Circumstances of Loss/Theft/Other",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "previousDocumentStatus",
        "in": [
          "LOST",
          "STOLEN",
          "DESTROYED",
          "DAMAGED"
        ]
      },
      "sourceRef": "Section 12 — \"Explain circumstances of loss/theft/other\""
    },
    {
      "name": "lossReportedToPolice",
      "label": "Has the Loss Been Reported to the Police?",
      "type": "boolean",
      "required": false,
      "requiredWhen": {
        "field": "previousDocumentStatus",
        "in": [
          "LOST",
          "STOLEN"
        ]
      },
      "sourceRef": "Section 12 — \"Has the loss been reported to the police? Yes / No\""
    },
    {
      "name": "policeReportOfficerOrStation",
      "label": "Police Officer or Station Reported To",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "lossReportedToPolice",
        "equals": true
      },
      "sourceRef": "Section 12 — \"If Yes, to which police officer or police station was the report made?\""
    },
    {
      "name": "policeReportDate",
      "label": "Date of Police Report",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "lossReportedToPolice",
        "equals": true
      },
      "sourceRef": "Section 12 — \"Date of report\""
    },
    {
      "name": "certifierName",
      "label": "Certifier's Name",
      "type": "string",
      "required": true,
      "description": "The third-party certifier (a lawyer, medical practitioner, magistrate, minister of religion, commissioner of oaths, or commissioned officer of the Defence Force or Police Force per Instruction 7) who has known the applicant personally for more than 3 years.",
      "sourceRef": "Section 13, CERTIFICATE REGARDING APPLICANT — \"I, [Name]\"",
      "classification": "pii"
    },
    {
      "name": "certifierOccupation",
      "label": "Certifier's Occupation",
      "type": "string",
      "required": true,
      "sourceRef": "Section 13 — \"Occupation\""
    },
    {
      "name": "certifierAddress",
      "label": "Certifier's Address",
      "type": "string",
      "required": true,
      "sourceRef": "Section 13 — \"of [Address]\"",
      "classification": "pii"
    },
    {
      "name": "certifierTelephone",
      "label": "Certifier's Telephone",
      "type": "string",
      "required": false,
      "sourceRef": "Section 13 — \"Telephone\"",
      "classification": "pii"
    },
    {
      "name": "certifierKnownApplicantName",
      "label": "Applicant's Name (as Known to Certifier)",
      "type": "string",
      "required": true,
      "sourceRef": "Section 13 — \"hereby declare that I have known personally the applicant [Applicant's name]\"",
      "classification": "pii"
    },
    {
      "name": "certificateDate",
      "label": "Certificate Date",
      "type": "date",
      "required": true,
      "description": "The date accompanying the certifier's signature line. The \"Signature\" line itself has no backing AcroForm widget (see VERIFICATION.md); only the Date does.",
      "sourceRef": "Section 13 — \"Signature ___ Date ___\""
    },
    {
      "name": "declarantName",
      "label": "Declarant's Name",
      "type": "string",
      "required": true,
      "description": "The applicant's own name in the Declaration's \"I, ___\" line (or, per Instruction 10, the lodging parent/legal guardian's name when the applicant is a child unable to sign).",
      "sourceRef": "Section 14, DECLARATION — \"I, [name] declare that the statements made in this application are true and correct in every particular.\"",
      "classification": "pii"
    },
    {
      "name": "declarationDay",
      "label": "Declaration — Day",
      "type": "enum",
      "required": true,
      "description": "A combo-box dropdown of ordinal days (1st-31st), not a free-text field.",
      "validation": {
        "enum": [
          "1st",
          "2nd",
          "3rd",
          "4th",
          "5th",
          "6th",
          "7th",
          "8th",
          "9th",
          "10th",
          "11th",
          "12th",
          "13th",
          "14th",
          "15th",
          "16th",
          "17th",
          "18th",
          "19th",
          "20th",
          "21st",
          "22nd",
          "23rd",
          "24th",
          "25th",
          "26th",
          "27th",
          "28th",
          "29th",
          "30th",
          "31st"
        ]
      },
      "sourceRef": "Section 14 — \"Dated this ___ day\""
    },
    {
      "name": "declarationMonth",
      "label": "Declaration — Month",
      "type": "enum",
      "required": true,
      "description": "A combo-box dropdown of month names, not a free-text field.",
      "validation": {
        "enum": [
          "January",
          "February",
          "March",
          "April",
          "May",
          "June",
          "July",
          "August",
          "September",
          "October",
          "November",
          "December"
        ]
      },
      "sourceRef": "Section 14 — \"of ___ (year)\" (month dropdown, printed between \"of\" and \"(year)\")"
    },
    {
      "name": "declarationYear",
      "label": "Declaration — Year",
      "type": "string",
      "required": true,
      "sourceRef": "Section 14 — \"of ___ (year)\" (year text field)"
    },
    {
      "name": "applicantCannotReadWriteEnglish",
      "label": "Applicant Cannot Read or Write English",
      "type": "boolean",
      "required": true,
      "description": "Directly-supplied gate: Section 15's own header (\"Applicants who cannot read or write English\") states the condition in prose with no printed yes/no checkbox of its own, mirroring applicantUnder17 above and this registry's own hasSponsor-style convention.",
      "sourceRef": "Section 15 header, \"Applicants who cannot read or write English\""
    },
    {
      "name": "explainedInLanguage",
      "label": "Language the Declaration Was Explained In",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "sourceRef": "Section 15 — \"The above declaration has been read/interpreted and explained by me in [language] language\""
    },
    {
      "name": "presenceOfWitnessName",
      "label": "Explained in the Presence Of",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "sourceRef": "Section 15 — \"to the applicant in the presence of [name]\"",
      "classification": "pii"
    },
    {
      "name": "interpreterFullName",
      "label": "Interpreter's Full Name",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "sourceRef": "Section 15 — \"Full name\" (interpreter/signatory column)",
      "classification": "pii"
    },
    {
      "name": "witnessFullName",
      "label": "Witness's Full Name",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "description": "Internal PDF field name \"Full name_2\", disambiguated by rect position as the witness column.",
      "sourceRef": "Section 15 — \"Full name\" (Signature of Witness column)",
      "classification": "pii"
    },
    {
      "name": "interpreterOccupation",
      "label": "Interpreter's Occupation",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "description": "Internal PDF field name \"Occupation_2\".",
      "sourceRef": "Section 15 — \"Occupation\" (interpreter/signatory column)"
    },
    {
      "name": "witnessOccupation",
      "label": "Witness's Occupation",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "description": "Internal PDF field name \"Occupation_3\".",
      "sourceRef": "Section 15 — \"Occupation\" (Signature of Witness column)"
    },
    {
      "name": "interpreterAddress",
      "label": "Interpreter's Address",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "sourceRef": "Section 15 — \"Address\" (interpreter/signatory column)",
      "classification": "pii"
    },
    {
      "name": "witnessAddress",
      "label": "Witness's Address",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "description": "Internal PDF field name \"Address_2\".",
      "sourceRef": "Section 15 — \"Address\" (Signature of Witness column)",
      "classification": "pii"
    },
    {
      "name": "interpreterTelephone",
      "label": "Interpreter's Telephone Number",
      "type": "string",
      "required": false,
      "sourceRef": "Section 15 — \"Telephone number\" (interpreter/signatory column)",
      "classification": "pii"
    },
    {
      "name": "interpreterDate",
      "label": "Interpreter's Date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "description": "Internal PDF field name \"Date_6\".",
      "sourceRef": "Section 15 — \"Date\" (interpreter/signatory column)"
    },
    {
      "name": "witnessTelephone",
      "label": "Witness's Telephone Number",
      "type": "string",
      "required": false,
      "description": "Internal PDF field name \"Telephone number_2\".",
      "sourceRef": "Section 15 — \"Telephone number\" (Signature of Witness column)",
      "classification": "pii"
    },
    {
      "name": "witnessDate",
      "label": "Witness's Date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "applicantCannotReadWriteEnglish",
        "equals": true
      },
      "description": "Internal PDF field name \"Date_7\".",
      "sourceRef": "Section 15 — \"Date\" (Signature of Witness column)"
    },
    {
      "name": "motherFullNameAndDateOfBirth",
      "label": "Mother — Full Name and Date of Birth",
      "type": "string",
      "required": true,
      "description": "A single combined field: the source prints \"Full name and date of birth of mother\" over one AcroForm text box, not two separate boxes.",
      "sourceRef": "Attachment A — \"Full name and date of birth of mother\"",
      "classification": "pii"
    },
    {
      "name": "motherPlaceOfBirthAndCitizenship",
      "label": "Mother — Place of Birth and Citizenship",
      "type": "string",
      "required": true,
      "description": "A single combined field, mirroring motherFullNameAndDateOfBirth.",
      "sourceRef": "Attachment A — \"Place of birth and Citizenship of mother\"",
      "classification": "pii"
    },
    {
      "name": "fatherFullNameAndDateOfBirth",
      "label": "Father — Full Name and Date of Birth",
      "type": "string",
      "required": true,
      "sourceRef": "Attachment A — \"Full name and date of birth of father\"",
      "classification": "pii"
    },
    {
      "name": "fatherPlaceOfBirthAndCitizenship",
      "label": "Father — Place of Birth and Citizenship",
      "type": "string",
      "required": true,
      "sourceRef": "Attachment A — \"Place of birth and Citizenship of father\"",
      "classification": "pii"
    },
    {
      "name": "mothersParentsFullName",
      "label": "Mother's Parents — Full Name",
      "type": "string",
      "required": false,
      "sourceRef": "Attachment A — \"Full name of mother's parents\"",
      "classification": "pii"
    },
    {
      "name": "mothersParentsPlaceOfBirth",
      "label": "Mother's Parents — Place of Birth",
      "type": "string",
      "required": false,
      "sourceRef": "Attachment A — \"Place of birth of mother's parents\""
    },
    {
      "name": "fathersParentsFullName",
      "label": "Father's Parents — Full Name",
      "type": "string",
      "required": false,
      "sourceRef": "Attachment A — \"Full name of father's parents\"",
      "classification": "pii"
    },
    {
      "name": "fathersParentsPlaceOfBirth",
      "label": "Father's Parents — Place of Birth",
      "type": "string",
      "required": false,
      "sourceRef": "Attachment A — \"Place of birth of father's parents\""
    },
    {
      "name": "livedAllLifeInPNG",
      "label": "Have You Lived All Your Life in Papua New Guinea?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Attachment A — \"Have you lived all your life in Papua New Guinea? Yes / No\""
    },
    {
      "name": "ifNotAllLifeInPNGWhere",
      "label": "If Not, Where?",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "livedAllLifeInPNG",
        "equals": false
      },
      "sourceRef": "Attachment A — \"If No, where?\""
    },
    {
      "name": "isCitizenOfPNG",
      "label": "Are You a Citizen of Papua New Guinea?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Attachment A — \"Are you are citizen of Papua New Guinea? Yes / No\" (sic, printed exactly this way)"
    },
    {
      "name": "isCitizenOfForeignCountry",
      "label": "Are You a Citizen of a Foreign Country?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Attachment A — \"Are you are citizen of foreign country? Yes / No\" (sic, printed exactly this way)"
    },
    {
      "name": "supplementaryInformation",
      "label": "Supplementary Information",
      "type": "string",
      "required": false,
      "sourceRef": "Attachment A — \"Supplementary Information\" (free-text box)"
    }
  ],
  "steps": [
    {
      "id": "travel_document_and_particulars",
      "title": "Sections 1–8: Type of Travel Document and Applicant Particulars",
      "next": "parental_consent",
      "fields": [
        "documentType",
        "familyName",
        "givenNames",
        "sex",
        "hasChangedName",
        "previousNames",
        "birthVillage",
        "birthTown",
        "birthProvince",
        "birthCountry",
        "dateOfBirth",
        "heightCm",
        "colourOfHair",
        "colourOfEyes",
        "visualDistinguishingMarks",
        "occupation",
        "maritalStatus",
        "spouseName",
        "residentialAddress",
        "residentialTelephone",
        "correspondenceAddress",
        "correspondenceTelephone"
      ]
    },
    {
      "id": "parental_consent",
      "title": "Section 9: Consent of Parent or Legal Guardian (applicant under 17)",
      "next": "departure_details",
      "fields": [
        "applicantUnder17",
        "lodgingParentFullName",
        "lodgingParentConsentDate",
        "lodgingParentWitnessDate",
        "otherParentFullName",
        "otherParentConsentDate",
        "otherParentWitnessDate"
      ]
    },
    {
      "id": "departure_details",
      "title": "Section 10: Proposed Departure Details",
      "next": "previous_travel_document",
      "fields": [
        "vesselOrAirline",
        "portOrAirport",
        "countriesProposedToVisit",
        "proposedDepartureDate"
      ]
    },
    {
      "id": "previous_travel_document",
      "title": "Sections 11–12: Previous Travel Document",
      "next": "certificate_regarding_applicant",
      "fields": [
        "previouslyIssuedTravelDocument",
        "travelDocumentNumber",
        "travelDocumentIssueDate",
        "travelDocumentExpiryDate",
        "bearerNameAtTimeOfIssue",
        "previousDocumentStatus",
        "lossTheftCircumstances",
        "lossReportedToPolice",
        "policeReportOfficerOrStation",
        "policeReportDate"
      ]
    },
    {
      "id": "certificate_regarding_applicant",
      "title": "Section 13: Certificate Regarding Applicant",
      "next": "declaration",
      "fields": [
        "certifierName",
        "certifierOccupation",
        "certifierAddress",
        "certifierTelephone",
        "certifierKnownApplicantName",
        "certificateDate"
      ]
    },
    {
      "id": "declaration",
      "title": "Section 14: Declaration",
      "next": "interpreter_and_witness",
      "fields": [
        "declarantName",
        "declarationDay",
        "declarationMonth",
        "declarationYear"
      ]
    },
    {
      "id": "interpreter_and_witness",
      "title": "Section 15: Applicants Who Cannot Read or Write English",
      "next": "evidence_of_citizenship",
      "fields": [
        "applicantCannotReadWriteEnglish",
        "explainedInLanguage",
        "presenceOfWitnessName",
        "interpreterFullName",
        "witnessFullName",
        "interpreterOccupation",
        "witnessOccupation",
        "interpreterAddress",
        "witnessAddress",
        "interpreterTelephone",
        "interpreterDate",
        "witnessTelephone",
        "witnessDate"
      ]
    },
    {
      "id": "evidence_of_citizenship",
      "title": "Attachment A: Evidence of Citizenship",
      "fields": [
        "motherFullNameAndDateOfBirth",
        "motherPlaceOfBirthAndCitizenship",
        "fatherFullNameAndDateOfBirth",
        "fatherPlaceOfBirthAndCitizenship",
        "mothersParentsFullName",
        "mothersParentsPlaceOfBirth",
        "fathersParentsFullName",
        "fathersParentsPlaceOfBirth",
        "livedAllLifeInPNG",
        "ifNotAllLifeInPNGWhere",
        "isCitizenOfPNG",
        "isCitizenOfForeignCountry",
        "supplementaryInformation"
      ]
    }
  ],
  "documents": [
    {
      "id": "applicationFeeReceipt",
      "label": "Passport application fee receipt (K100)",
      "category": "payment",
      "required": true,
      "amount": {
        "currency": "PGK",
        "value": 100
      },
      "sourceRef": "Instruction 2, FEE — \"The fee for a passport is K100. This must be paid at your nearest cash office and a receipt thereof must be attached to your application.\""
    },
    {
      "id": "applicantPhotographs",
      "label": "Two recent passport-style photographs (35mm x 45mm, head and shoulders, full face, light background)",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Instruction 9, PHOTOGRAPHS"
    },
    {
      "id": "evidenceOfCitizenship",
      "label": "Birth certificate or citizenship certificate (and, for married women, marriage certificate)",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Instruction 6, EVIDENCE OF CITIZENSHIP"
    },
    {
      "id": "previousTravelDocument",
      "label": "Previous travel document (attached to this application)",
      "category": "identity-document",
      "required": false,
      "requiredWhen": {
        "all": [
          {
            "field": "previouslyIssuedTravelDocument",
            "equals": true
          },
          {
            "field": "previousDocumentStatus",
            "equals": "ATTACHED"
          }
        ]
      },
      "belongsTo": "applicant",
      "sourceRef": "Instruction 5, PREVIOUS TRAVEL DOCUMENTS — \"You must attach your previous travel document unless it has been lost, stolen or destroyed.\""
    },
    {
      "id": "certificateRegardingApplicant",
      "label": "Certificate Regarding Applicant, completed and signed by an authorised certifier",
      "category": "attestation",
      "required": true,
      "statement": "I have known personally the applicant for a period of more than 3 years and that the signature and photographs on or accompanying the application are those of the applicant, to the best of my knowledge and belief the statement made by the applicant in this form are true.",
      "sourceRef": "Section 13, CERTIFICATE REGARDING APPLICANT; Instruction 7"
    },
    {
      "id": "applicantDeclaration",
      "label": "Applicant's (or lodging parent/legal guardian's) signed Declaration",
      "category": "attestation",
      "required": true,
      "statement": "I declare that the statements made in this application are true and correct in every particular.",
      "sourceRef": "Section 14, DECLARATION; Instruction 10"
    },
    {
      "id": "parentalConsentDeclaration",
      "label": "Signed parental/legal-guardian consent to the passport being issued",
      "category": "attestation",
      "required": false,
      "requiredWhen": {
        "field": "applicantUnder17",
        "equals": true
      },
      "statement": "I, the father/mother/legal guardian, hereby give my consent to the applicant above being issued with a passport.",
      "sourceRef": "Section 9, Consent of Lodging Parent or Legal Guardian; Instruction 8"
    }
  ],
  "crossFieldValidation": [
    {
      "id": "travelDocumentExpiryNotBeforeIssue",
      "compare": {
        "field": "travelDocumentExpiryDate",
        "operator": "greaterThanOrEqual",
        "compareTo": "travelDocumentIssueDate"
      }
    }
  ]
}
