{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "th/mfa/passport-application-royal-thai-embassy-london",
  "version": "1.0.0",
  "title": "Thailand Passport Application Form (Form 1) — Royal Thai Embassy, London",
  "description": "The Ministry of Foreign Affairs' (MFA) \"Form 1\" (แบบฟอร์ม 1, \"คำร้องขอหนังสือเดินทางไปต่างประเทศ\" — Application for a Passport Abroad), distributed by the Royal Thai Embassy, London for Thai nationals resident in the United Kingdom or Ireland applying for or renewing a Thai passport. Opens Thailand's Passport vertical (5 of 6; Taxes, Business Formation, Visa, and DMV are already modelled). A genuinely flat print form (pdfjs-dist confirms 0 AcroForm/Widget annotations on the form's single page) with a clean, fully extractable Thai-language text layer read via coordinate-sorted line grouping. The embassy's own published FAQ (`london.thaiembassy.org`) confirms the underlying process: the applicant completes this form ahead of a booked appointment, attends in person for biometric capture (photograph, and the embassy contacts the applicant by phone once the physical passport is ready), and the finished passport is issued in Thailand and shipped back to London for return by post or in-person collection — this form itself is the pre-appointment paperwork, not a substitute for the in-person biometric step. The form prints no required-field asterisks anywhere, so only fields unconditionally essential to identifying the applicant and processing the request (name, national ID number, date of birth details, and the Thailand and UK/Ireland contact particulars) are marked `required`, a disclosed judgment call consistent with this registry's `bd/dip`/`th/dlt` precedent for source forms without printed requiredness markup. `สัญชาติ (Nationality)` is printed with the fixed value \"ไทย\" (Thai) rather than a blank — since the embassy's passport service is restricted to Thai nationals by definition, this is excluded from `fields[]` as a static, non-fillable value rather than modelled as a single-value enum. The form's closing section (\"please mark X in front of the statement you wish; leave blank if you wish neither\") explicitly frames the postal-return-vs-in-person-collection choice as optional, so `deliveryPreference` is modelled as a non-required enum, with the in-person-collection option's own contact-phone blank gated by `requiredWhen`. No documents checklist is printed anywhere on this single-page specimen (unlike this registry's `gh/mfa` precedent, which prints an explicit evidence-of-citizenship/identity list) and the embassy's own requirements page is a client-side-rendered application that returned no static, fetchable checklist text this cycle — so no `documents[]` array is modelled in this v1.0.0, a disclosed scoping decision rather than an assumption. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Thailand or the Ministry of Foreign Affairs.",
  "status": "draft",
  "jurisdiction": {
    "country": "TH",
    "level": "national"
  },
  "authority": {
    "name": "Royal Thai Embassy, London (Ministry of Foreign Affairs of the Kingdom of Thailand)",
    "abbreviation": "MFA",
    "url": "https://london.thaiembassy.org"
  },
  "process": {
    "type": "application",
    "language": "th"
  },
  "source": {
    "url": "https://image.mfa.go.th/mfa/0/umufy3EgqL/Passport/Rev_Form_1_Passport_Application_Form_%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1_1-%E0%B8%84%E0%B8%B3%E0%B8%A3%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%82%E0%B8%AD%E0%B8%AB%E0%B8%99%E0%B8%B1%E0%B8%87%E0%B8%AA%E0%B8%B7%E0%B8%AD%E0%B9%80%E0%B8%94%E0%B8%B4%E0%B8%99%E0%B8%97%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%9B%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8.pdf",
    "retrievedAt": "2026-07-13",
    "documentRef": "แบบฟอร์ม 1: คำร้องขอหนังสือเดินทางไปต่างประเทศ (Form 1: Application for a Passport Abroad), Royal Thai Embassy, London"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-13",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-13",
    "notes": "GovSchema Standard Research cycle GOV-2709. Scouted alongside a Thailand National ID (DOPA บัตรประจำตัวประชาชน) candidate this cycle, which was confirmed a dead end: no citizen-fillable application form is published anywhere (only non-fillable public-service-guide PDFs describing an in-person, officer-driven, biometric-capture workflow where the บ.ป.1 request form itself is filled and printed by the district-office officer, not the applicant). Independently re-fetched this form directly from image.mfa.go.th (HTTP 200, application/pdf, 295,714 bytes, sha256 da567c0215b34de801b6929708819e86a52d81188993cc18a504d73d8a5d36a5). pdfjs-dist (v4, legacy build) getAnnotations() confirms 0 Widget annotations on the form's single page; getTextContent() confirms a real, fully extractable Thai-language text layer (114 text items) — a flat print form, not an AcroForm and not a scanned image. Every field below was read via coordinate-sorted line grouping (getTextContent() items grouped by rounded y-coordinate, ordered by x) rather than an embedded field name. Also fetched london.thaiembassy.org's own Thai-passport service page and FAQ (client-side-rendered React/Next.js application; the server-delivered HTML included the FAQ prose reproduced in this schema's description but no static, fetchable supporting-documents checklist), corroborating the appointment-based, biometric, in-person issuance process this form's own paperwork precedes. This form is embassy-specific (scoped to Thai nationals resident in the UK or Ireland, addressed to the Royal Thai Embassy, London specifically, per its own printed UK/Ireland address and reference-contact fields) rather than a domestic, nationwide specimen — disclosed here and in the title, consistent with this registry's own `pt/mne/requerimento-passaporte-consular` precedent for a single-consulate-scoped passport form. `สัญชาติ (Nationality: Thai)` is printed as a fixed value, not a blank, and is therefore excluded from `fields[]` rather than modelled as a redundant single-value enum. Two hand-authored valid fixtures (0 errors each) plus 6 mutation-control fixtures (each raising exactly 1 error) are committed under `conformance/th/mfa/passport-application-royal-thai-embassy-london/1.0.0/` and pass this registry's validator and conformance runner."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering",
    "assertedAt": "2026-07-13"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "applicationDate",
      "label": "วันที่ (Date)",
      "type": "date",
      "required": true,
      "description": "The date the form is completed, printed as a day/month/พ.ศ.(Buddhist-era year) blank at the top of the form. Modelled as a single canonical ISO date; the printed year blank is Buddhist Era (Gregorian year + 543), a conversion the consuming agent is expected to perform.",
      "sourceRef": "วันที่ ...................... เดือน ...................... พ.ศ. 25..."
    },
    {
      "name": "applicantName",
      "label": "ชื่อ (Name)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The applicant's full name in Thai.",
      "sourceRef": "ชื่อ ....................................................................",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "gender",
      "label": "เพศ (Gender)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Printed as a bare blank with no enumerated options, so modelled as free text rather than an invented enum, matching this registry's own gh/gis precedent for the same kind of unlabelled-option blank.",
      "sourceRef": "เพศ .......................",
      "validation": { "maxLength": 20 }
    },
    {
      "name": "ethnicity",
      "label": "เชื้อชาติ (Ethnicity)",
      "type": "string",
      "required": true,
      "description": "The applicant's ethnicity, distinct from the fixed \"สัญชาติ ไทย\" (Nationality: Thai) printed immediately before it on the same line.",
      "sourceRef": "เชื้อชาติ ......................",
      "validation": { "maxLength": 50 }
    },
    {
      "name": "nationalIdNumber",
      "label": "เลขประจำตัวประชาชน (National ID Number)",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The applicant's own 13-digit Thai National ID Card number.",
      "sourceRef": "เลขประจำตัวประชาชน",
      "validation": { "pattern": "^[0-9]{13}$" }
    },
    {
      "name": "fullNameEnglish",
      "label": "ชื่อและนามสกุล (ภาษาอังกฤษ ตัวพิมพ์ใหญ่) — Name and Surname (English, Block Capitals)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The applicant's full name transliterated into English, to be written in block capitals, matching the name to be printed in the passport.",
      "sourceRef": "ชื่อและนามสกุล (ภาษาอังกฤษ ตัวพิมพ์ใหญ่) .....................................................................",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "birthProvince",
      "label": "เกิดที่จังหวัด (Born in Province)",
      "type": "string",
      "required": true,
      "description": "The Thai province where the applicant was born.",
      "sourceRef": "เกิดที่จังหวัด ............................................. เมื่อวันที่ ......... เดือน ...................... พ.ศ. ................. ค.ศ. ...........",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "birthDate",
      "label": "เมื่อวันที่...เดือน...พ.ศ....ค.ศ. (Date of Birth)",
      "type": "date",
      "required": true,
      "classification": "pii",
      "description": "The applicant's date of birth. The specimen prints parallel Buddhist-era (พ.ศ.) and Gregorian (ค.ศ.) year blanks for the same date; modelled as a single canonical ISO date.",
      "sourceRef": "เกิดที่จังหวัด ............................................. เมื่อวันที่ ......... เดือน ...................... พ.ศ. ................. ค.ศ. ..........."
    },
    {
      "name": "age",
      "label": "อายุ (Age)",
      "type": "integer",
      "required": false,
      "description": "The applicant's age in years at the time of application.",
      "sourceRef": "อายุ ........... ปี สูง ............. ซม. อาชีพ ...............................................................................................................",
      "validation": { "minimum": 0, "maximum": 130 }
    },
    {
      "name": "heightCm",
      "label": "สูง (Height, cm)",
      "type": "number",
      "required": false,
      "description": "The applicant's height in centimetres.",
      "sourceRef": "อายุ ........... ปี สูง ............. ซม. อาชีพ ...............................................................................................................",
      "validation": { "minimum": 0, "maximum": 250 }
    },
    {
      "name": "occupation",
      "label": "อาชีพ (Occupation)",
      "type": "string",
      "required": false,
      "description": "The applicant's occupation.",
      "sourceRef": "อายุ ........... ปี สูง ............. ซม. อาชีพ ...............................................................................................................",
      "validation": { "maxLength": 100 }
    },
    {
      "name": "addressThailand",
      "label": "ที่อยู่ตามทะเบียนบ้านในประเทศไทย (Address per House Registration in Thailand)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The applicant's registered home address in Thailand, spanning two printed blank lines.",
      "sourceRef": "ที่อยู่ตามทะเบียนบ้านในประเทศไทย .................................................................................................................",
      "validation": { "maxLength": 300 }
    },
    {
      "name": "emailThailand",
      "label": "อีเมล (E-mail) — Thailand contact",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Contact email printed alongside the Thailand address block.",
      "sourceRef": "อีเมล (E-mail) ..................................................... หมายเลขโทรศัพท์ / มือถือ ......................................................",
      "validation": { "pattern": "^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$", "maxLength": 254 }
    },
    {
      "name": "phoneThailand",
      "label": "หมายเลขโทรศัพท์ / มือถือ — Thailand contact",
      "type": "string",
      "required": false,
      "description": "Contact phone/mobile number printed alongside the Thailand address block.",
      "sourceRef": "อีเมล (E-mail) ..................................................... หมายเลขโทรศัพท์ / มือถือ ......................................................",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "addressUkIreland",
      "label": "ที่อยู่ในสหราชอาณาจักรหรือไอร์แลนด์ (ภาษาอังกฤษ) — Address in the UK or Ireland (English)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The applicant's current residential address in the United Kingdom or Ireland, written in English, spanning two printed blank lines.",
      "sourceRef": "ที่อยู่ในสหราชอาณาจักรหรือไอร์แลนด์ (ภาษาอังกฤษ) ......................................................................................",
      "validation": { "maxLength": 300 }
    },
    {
      "name": "emailUkIreland",
      "label": "อีเมล (E-mail) — UK/Ireland contact",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "Contact email printed alongside the UK/Ireland address block — the embassy's stated appointment-confirmation channel per its own FAQ.",
      "sourceRef": "อีเมล (E-mail) ..................................................... หมายเลขโทรศัพท์ / มือถือ ......................................................",
      "validation": { "pattern": "^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$", "maxLength": 254 }
    },
    {
      "name": "phoneUkIreland",
      "label": "หมายเลขโทรศัพท์ / มือถือ — UK/Ireland contact",
      "type": "string",
      "required": true,
      "description": "Contact phone/mobile number printed alongside the UK/Ireland address block.",
      "sourceRef": "อีเมล (E-mail) ..................................................... หมายเลขโทรศัพท์ / มือถือ ......................................................",
      "validation": { "maxLength": 30 }
    },
    {
      "name": "fatherName",
      "label": "ชื่อบิดา (Father's Name)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The applicant's father's full name.",
      "sourceRef": "ชื่อบิดา .................................................................................................................................................................",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "fatherNationalIdNumber",
      "label": "เลขประจำตัวประชาชน (Father's National ID Number)",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "The applicant's father's 13-digit Thai National ID Card number, where applicable.",
      "sourceRef": "เลขประจำตัวประชาชน",
      "validation": { "pattern": "^[0-9]{13}$" }
    },
    {
      "name": "motherName",
      "label": "ชื่อมารดา (Mother's Name)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The applicant's mother's full name.",
      "sourceRef": "ชื่อมารดา .............................................................................................................................................................",
      "validation": { "maxLength": 200 }
    },
    {
      "name": "motherNationalIdNumber",
      "label": "เลขประจำตัวประชาชน (Mother's National ID Number)",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "The applicant's mother's 13-digit Thai National ID Card number, where applicable.",
      "sourceRef": "เลขประจำตัวประชาชน",
      "validation": { "pattern": "^[0-9]{13}$" }
    },
    {
      "name": "referenceContactThailand",
      "label": "ชื่อ ที่อยู่ และหมายเลขโทรศัพท์ของบุคคลอ้างอิงในประเทศไทย (Reference Contact in Thailand)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Name, address, and phone number of a reference person in Thailand to contact if the applicant cannot be reached.",
      "sourceRef": "ชื่อ ที่อยู่ และหมายเลขโทรศัพท์ของบุคคลอ้างอิงในประเทศไทย กรณีติดต่อท่านไม่ได้",
      "validation": { "maxLength": 300 }
    },
    {
      "name": "referenceContactUkIreland",
      "label": "ชื่อ ที่อยู่ และหมายเลขโทรศัพท์ของบุคคลอ้างอิงสหราชอาณาจักรหรือไอร์แลนด์ (Reference Contact in the UK or Ireland)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Name, address, and phone number of a reference person in the UK or Ireland to contact if the applicant cannot be reached.",
      "sourceRef": "ชื่อ ที่อยู่ และหมายเลขโทรศัพท์ของบุคคลอ้างอิงสหราชอาณาจักรหรือไอร์แลนด์ กรณีติดต่อท่านไม่ได้",
      "validation": { "maxLength": 300 }
    },
    {
      "name": "deliveryPreference",
      "label": "Return preference for the completed passport",
      "type": "enum",
      "required": false,
      "description": "The form's own instruction frames this choice as optional (\"please mark X in front of the statement you wish; leave blank if you wish neither\"): return the finished passport by post (applicant must separately provide a 500g postage-paid envelope), or collect it in person at the Embassy once contacted by phone.",
      "sourceRef": "กรุณาใส่เครื่องหมาย X หน้าข้อความที่ท่านมีความประสงค์ หากไม่ประสงค์ให้เว้นว่างไว้",
      "validation": {
        "enum": ["postal-return", "in-person-collection"]
      }
    },
    {
      "name": "collectionContactPhoneNumber",
      "label": "หมายเลขโทรศัพท์ (Contact Phone Number for In-Person Collection)",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "deliveryPreference",
        "equals": "in-person-collection"
      },
      "description": "The phone number at which the Embassy can reach the applicant once the passport is ready for in-person collection.",
      "sourceRef": "ข้าพเจ้ามีความประสงค์จะมาหนังสือเดินทางด้วยตนเอง โดยสถานเอกอัครราชทูตฯ สามารถติดต่อข้าพเจ้าได้ที่หมายเลขโทรศัพท์ ..........................................................",
      "validation": { "maxLength": 30 }
    }
  ]
}
