{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "kr/moj/visa-application",
  "version": "1.0.0",
  "title": "South Korea Visa Application",
  "description": "Application for a South Korean entry visa (사증, sa-jeung), filed by a foreign national at a Korean diplomatic mission (embassy or consulate-general) abroad, through the Ministry of Justice's gazetted Visa Application Form used uniformly across every visa category and mission worldwide. Covers personal details, passport information, contact information, marital/family details, education, employment, details of the intended visit (purpose, dates, prior travel history), invitation details, funding details, and the applicant's declaration. Does not model the separate Confirmation of Visa Issuance process (사증발급인정신청서, Attached Form No. 21 — filed by a sponsor/inviter already in Korea, a different form and process), the HiKorea e-Application portal's authenticated wizard (hikorea.go.kr, which requires an ARC/account login to view), or the purpose-specific supporting-document list in Enforcement Rule Annex 5 (which varies across roughly 30 visa purpose categories). It does not submit the application; the live visa.go.kr source and the responsible diplomatic mission are always authoritative (see VERIFICATION.md).",
  "status": "draft",
  "jurisdiction": {
    "country": "KR",
    "level": "national"
  },
  "authority": {
    "name": "Ministry of Justice, Republic of Korea — Korea Immigration Service",
    "abbreviation": "MOJ",
    "url": "https://www.visa.go.kr/"
  },
  "process": {
    "type": "application",
    "language": "ko-KR"
  },
  "source": {
    "url": "https://www.visa.go.kr/downfile/VisaapplicationForm_EN.pdf",
    "retrievedAt": "2026-07-05",
    "documentRef": "출입국관리법 시행규칙 별지 제17호서식 (개정 2022. 2. 7.) — Enforcement Rule of the Immigration Act, Attached Form No. 17, Visa Application Form (amended 2022-02-07), bilingual Korean/English, hosted directly by the Korea Visa Portal (visa.go.kr) and mirrored byte-for-byte at Korean diplomatic missions worldwide (e.g. overseas.mofa.go.kr embassy sites)."
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-05",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-01",
    "notes": "Source-derived reference schema authored field-by-field from the Ministry of Justice/Korea Immigration Service gazetted Visa Application Form (・別紙 第17号書式, Enforcement Rule of the Immigration Act Attached Form No. 17, amended 2022-02-07), a bilingual Korean/English PDF downloaded directly from the Korea Visa Portal (visa.go.kr/downfile/VisaapplicationForm_EN.pdf), a static PDF with a real text layer (no scanned image, no login, no CAPTCHA). Picked up from the GOV-1289 new-jurisdiction research candidate backlog (this was GOV-1292), one of two remaining South Korea vertical gaps alongside GOV-1293 (Taxes) after GOV-1291/GOV-1294 closed DMV and National ID. Closes South Korea's Visa vertical (now 4/6 KR verticals modelled: Passport, DMV, National ID, Visa), and moves the global Visa vertical from 10/13 to 11/13 jurisdictions. The FOR OFFICIAL USE ONLY block on page 1 (processing/approval fields completed by the diplomatic mission, not the applicant) is explicitly out of scope, consistent with this registry's convention of modelling only applicant-supplied fields. The form's several repeating tables (prior Korea visits, prior other-country trips, family members in Korea, accompanying family members) are each flattened to a single 'most recent/first entry' field set, since GovSchema v0.3 fields are flat with no array/repeating-group model yet (spec/v0.3/SPEC.md §6.1) — the same precedent already used by in/mha/evisa-etourist's previousVisaType/previousVisaPlaceOfIssue/previousVisaDateOfIssue fields. Two related processes are explicitly out of scope and noted in the description: the Confirmation of Visa Issuance form (사증발급인정신청서, Attached Form No. 21 — filed by a sponsor/inviter already resident in Korea, a structurally different process/form), and the HiKorea e-Application portal (hikorea.go.kr), which requires an ARC/account login to reach its data-entry wizard and was therefore not usable as a live-DOM source (same login-gated-portal class recorded elsewhere in this registry, e.g. nz/dia/realme-verified-identity, de/auswaertiges-amt/national-visa-application). Status remains 'draft' pending an independent second reviewer's field-by-field pass; see the review-gate issue."
  },
  "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-05"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "familyName",
      "label": "Family Name (as shown in passport)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.1",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "givenNames",
      "label": "Given Names (as shown in passport)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.1",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "chineseCharacterName",
      "label": "Chinese character name (漢字姓名)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Only applicable to applicants whose legal name has a Chinese-character (Hanja/Kanji) rendering.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.2",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "sex",
      "label": "Sex",
      "type": "enum",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.3",
      "validation": {
        "enum": [
          "male",
          "female"
        ]
      }
    },
    {
      "name": "dateOfBirth",
      "label": "Date of Birth",
      "type": "date",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.4"
    },
    {
      "name": "nationality",
      "label": "Nationality",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.5",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "countryOfBirth",
      "label": "Country of Birth",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.6",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "nationalIdentityNumber",
      "label": "National Identity No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The applicant's national identity number in their country of nationality, where one exists.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.7",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "hasUsedOtherNames",
      "label": "Has the applicant ever used any other names to enter or depart Korea?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.8"
    },
    {
      "name": "otherNameFamilyName",
      "label": "Other family name previously used",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasUsedOtherNames",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.8",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "otherNameGivenName",
      "label": "Other given name previously used",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasUsedOtherNames",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.8",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "isDualNational",
      "label": "Is the applicant a citizen of more than one country?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.9"
    },
    {
      "name": "dualNationalityCountries",
      "label": "Other countries of nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "isDualNational",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1.9",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "periodOfStay",
      "label": "Period of Stay (Long/Short-term)",
      "type": "enum",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 2.1",
      "validation": {
        "enum": [
          "long_term_over_90_days",
          "short_term_90_days_or_less"
        ]
      }
    },
    {
      "name": "statusOfStay",
      "label": "Status of Stay (visa category/status code applied for)",
      "type": "string",
      "required": true,
      "description": "The specific Korean visa/status-of-stay category code (e.g. C-3, D-2, E-7) the applicant is applying for. The form provides a blank field rather than a fixed checkbox list here; the 'FOR OFFICIAL USE ONLY' block that follows on the same form (basic details, reception, approval) is completed by the diplomatic mission, not the applicant, and is out of scope for this schema.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 2.2",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "passportType",
      "label": "Passport Type",
      "type": "enum",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.1",
      "validation": {
        "enum": [
          "diplomatic",
          "official",
          "regular",
          "other"
        ]
      }
    },
    {
      "name": "passportTypeOtherDetail",
      "label": "Passport type detail, if 'Other'",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "passportType",
        "equals": "other"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.1",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "passportNumber",
      "label": "Passport No.",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.2",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "passportIssuingCountry",
      "label": "Country of Passport",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.3",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "passportPlaceOfIssue",
      "label": "Place of Issue",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.4",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "passportIssueDate",
      "label": "Date of Issue",
      "type": "date",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.5"
    },
    {
      "name": "passportExpiryDate",
      "label": "Date of Expiry",
      "type": "date",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.6"
    },
    {
      "name": "hasOtherValidPassport",
      "label": "Does the applicant have any other valid passports?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.7"
    },
    {
      "name": "otherPassportType",
      "label": "Other passport's type",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "hasOtherValidPassport",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.7(a)",
      "validation": {
        "enum": [
          "diplomatic",
          "official",
          "regular",
          "other"
        ]
      }
    },
    {
      "name": "otherPassportNumber",
      "label": "Other passport's Passport No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasOtherValidPassport",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.7(b)",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "otherPassportIssuingCountry",
      "label": "Other passport's Country of Passport",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasOtherValidPassport",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.7(c)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "otherPassportExpiryDate",
      "label": "Other passport's Date of Expiry",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "hasOtherValidPassport",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 3.7(d)"
    },
    {
      "name": "homeCountryAddress",
      "label": "Home Country Address of the applicant",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.1",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "currentResidentialAddress",
      "label": "Current Residential Address (if different from home country address)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.2",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "cellPhoneNumber",
      "label": "Cell Phone No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.3",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "telephoneNumber",
      "label": "Telephone No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.3",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "emailAddress",
      "label": "E-mail",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.4",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "emergencyContactFullName",
      "label": "Emergency Contact — Full Name in English",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.5(a)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "emergencyContactCountryOfResidence",
      "label": "Emergency Contact — Country of Residence",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.5(b)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "emergencyContactPhoneNumber",
      "label": "Emergency Contact — Telephone No.",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.5(c)",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "emergencyContactRelationship",
      "label": "Emergency Contact — Relationship to the applicant",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 4.5(d)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "maritalStatus",
      "label": "Current Marital Status",
      "type": "enum",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.1",
      "validation": {
        "enum": [
          "married",
          "divorced",
          "single"
        ]
      }
    },
    {
      "name": "spouseFamilyName",
      "label": "Spouse — Family Name (in English)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "married"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.2(a)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "spouseGivenNames",
      "label": "Spouse — Given Names (in English)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "married"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.2(b)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "spouseDateOfBirth",
      "label": "Spouse — Date of Birth",
      "type": "date",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "married"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.2(c)"
    },
    {
      "name": "spouseNationality",
      "label": "Spouse — Nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "married"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.2(d)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "spouseResidentialAddress",
      "label": "Spouse — Residential Address",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "married"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.2(e)",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "spouseContactNumber",
      "label": "Spouse — Contact No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "maritalStatus",
        "equals": "married"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.2(f)",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "hasChildren",
      "label": "Does the applicant have children?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.3"
    },
    {
      "name": "numberOfChildren",
      "label": "Number of children",
      "type": "integer",
      "required": false,
      "requiredWhen": {
        "field": "hasChildren",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 5.3",
      "validation": {
        "minimum": 1
      }
    },
    {
      "name": "highestEducationLevel",
      "label": "Highest degree or level of education completed",
      "type": "enum",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 6.1",
      "validation": {
        "enum": [
          "masters_or_doctoral",
          "bachelors",
          "high_school",
          "other"
        ]
      }
    },
    {
      "name": "highestEducationLevelOtherDetail",
      "label": "Education level detail, if 'Other'",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "highestEducationLevel",
        "equals": "other"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 6.1",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "schoolName",
      "label": "Name of School",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 6.2",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "schoolLocation",
      "label": "Location of School (city/province/country)",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 6.3",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "currentOccupation",
      "label": "Current personal circumstances",
      "type": "enum",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 7.1",
      "validation": {
        "enum": [
          "entrepreneur",
          "self_employed",
          "employed",
          "civil_servant",
          "student",
          "retired",
          "unemployed",
          "other"
        ]
      }
    },
    {
      "name": "currentOccupationOtherDetail",
      "label": "Occupation detail, if 'Other'",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "currentOccupation",
        "equals": "other"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 7.1",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "employerOrInstitutionName",
      "label": "Name of Company/Institute/School",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "any": [
          {
            "field": "currentOccupation",
            "equals": "entrepreneur"
          },
          {
            "field": "currentOccupation",
            "equals": "self_employed"
          },
          {
            "field": "currentOccupation",
            "equals": "employed"
          },
          {
            "field": "currentOccupation",
            "equals": "civil_servant"
          },
          {
            "field": "currentOccupation",
            "equals": "student"
          }
        ]
      },
      "description": "Required for occupations with an associated employer, business, or school (entrepreneur, self-employed, employed, civil servant, student); not applicable to retired/unemployed applicants.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 7.2(a)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "positionOrCourse",
      "label": "Position/Course",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "any": [
          {
            "field": "currentOccupation",
            "equals": "entrepreneur"
          },
          {
            "field": "currentOccupation",
            "equals": "self_employed"
          },
          {
            "field": "currentOccupation",
            "equals": "employed"
          },
          {
            "field": "currentOccupation",
            "equals": "civil_servant"
          },
          {
            "field": "currentOccupation",
            "equals": "student"
          }
        ]
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 7.2(b)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "employerOrInstitutionAddress",
      "label": "Address of Company/Institute/School",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "any": [
          {
            "field": "currentOccupation",
            "equals": "entrepreneur"
          },
          {
            "field": "currentOccupation",
            "equals": "self_employed"
          },
          {
            "field": "currentOccupation",
            "equals": "employed"
          },
          {
            "field": "currentOccupation",
            "equals": "civil_servant"
          },
          {
            "field": "currentOccupation",
            "equals": "student"
          }
        ]
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 7.2(c)",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "employerOrInstitutionPhoneNumber",
      "label": "Telephone No.",
      "type": "string",
      "required": false,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 7.2(d)",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "purposeOfVisit",
      "label": "Purpose of Visit to Korea",
      "type": "enum",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.1",
      "validation": {
        "enum": [
          "tourism_transit",
          "meeting_conference",
          "medical_tourism",
          "business_trip",
          "study_training",
          "work",
          "trade_investment_intra_corporate_transferee",
          "visiting_family_relatives_friends",
          "marriage_migrant",
          "diplomatic_official",
          "other"
        ]
      }
    },
    {
      "name": "purposeOfVisitOtherDetail",
      "label": "Purpose of visit detail, if 'Other'",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "purposeOfVisit",
        "equals": "other"
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.1",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "intendedPeriodOfStay",
      "label": "Intended Period of Stay",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.2",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "intendedDateOfEntry",
      "label": "Intended Date of Entry",
      "type": "date",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.3"
    },
    {
      "name": "addressInKorea",
      "label": "Address in Korea (including hotels)",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.4",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "contactNumberInKorea",
      "label": "Contact No. in Korea",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.5",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "hasVisitedKoreaLast5Years",
      "label": "Has the applicant travelled to Korea in the last 5 years?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.6"
    },
    {
      "name": "mostRecentKoreaVisitPurpose",
      "label": "Most recent visit — Purpose of Visit",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasVisitedKoreaLast5Years",
        "equals": true
      },
      "description": "The source form provides a repeating table for every prior visit; GovSchema v0.3 fields are flat (no array/repeating-group model yet, see spec/v0.3/SPEC.md §6.1), so this document models only the applicant's most recent prior visit. A future MINOR version could add a repeating-group model once the spec supports it (GSP-0009, proposed).",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.6",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "mostRecentKoreaVisitStartDate",
      "label": "Most recent visit — Period of Stay start date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "hasVisitedKoreaLast5Years",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.6"
    },
    {
      "name": "mostRecentKoreaVisitEndDate",
      "label": "Most recent visit — Period of Stay end date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "hasVisitedKoreaLast5Years",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.6"
    },
    {
      "name": "hasTravelledOtherCountriesLast5Years",
      "label": "Has the applicant travelled outside their country of residence, excluding Korea, in the last 5 years?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.7"
    },
    {
      "name": "mostRecentOtherCountryVisited",
      "label": "Most recent other trip — Name of Country",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasTravelledOtherCountriesLast5Years",
        "equals": true
      },
      "description": "The source form provides a repeating table for every prior trip; this document models only the most recent one, for the same flat-fields reason as mostRecentKoreaVisitPurpose.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.7",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "mostRecentOtherCountryVisitPurpose",
      "label": "Most recent other trip — Purpose of Visit",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasTravelledOtherCountriesLast5Years",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.7",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "mostRecentOtherCountryVisitStartDate",
      "label": "Most recent other trip — Period of Stay start date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "hasTravelledOtherCountriesLast5Years",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.7"
    },
    {
      "name": "mostRecentOtherCountryVisitEndDate",
      "label": "Most recent other trip — Period of Stay end date",
      "type": "date",
      "required": false,
      "requiredWhen": {
        "field": "hasTravelledOtherCountriesLast5Years",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.7"
    },
    {
      "name": "hasFamilyMembersInKorea",
      "label": "Does the applicant have any family member(s) staying in Korea?",
      "type": "boolean",
      "required": true,
      "description": "Scope of family members per the source form: spouse, children, parents, siblings.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.8"
    },
    {
      "name": "familyMemberInKoreaFullName",
      "label": "Family member in Korea — Full name in English",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasFamilyMembersInKorea",
        "equals": true
      },
      "description": "The source form provides a repeating table for multiple family members; this document models only one, for the same flat-fields reason as mostRecentKoreaVisitPurpose.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.8",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "familyMemberInKoreaDateOfBirth",
      "label": "Family member in Korea — Date of Birth",
      "type": "date",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasFamilyMembersInKorea",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.8"
    },
    {
      "name": "familyMemberInKoreaNationality",
      "label": "Family member in Korea — Nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasFamilyMembersInKorea",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.8",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "familyMemberInKoreaRelationship",
      "label": "Family member in Korea — Relationship to the applicant",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasFamilyMembersInKorea",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.8",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "isTravellingWithFamilyMembers",
      "label": "Is the applicant travelling to Korea with any family member(s)?",
      "type": "boolean",
      "required": true,
      "description": "Scope of family members per the source form: spouse, children, parents, siblings.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.9"
    },
    {
      "name": "accompanyingFamilyMemberFullName",
      "label": "Accompanying family member — Full name in English",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "isTravellingWithFamilyMembers",
        "equals": true
      },
      "description": "The source form provides a repeating table for multiple family members; this document models only one, for the same flat-fields reason as mostRecentKoreaVisitPurpose.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.9",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "accompanyingFamilyMemberDateOfBirth",
      "label": "Accompanying family member — Date of Birth",
      "type": "date",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "isTravellingWithFamilyMembers",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.9"
    },
    {
      "name": "accompanyingFamilyMemberNationality",
      "label": "Accompanying family member — Nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "isTravellingWithFamilyMembers",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.9",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "accompanyingFamilyMemberRelationship",
      "label": "Accompanying family member — Relationship to the applicant",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "isTravellingWithFamilyMembers",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 8.9",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "hasInvitingPersonOrOrganization",
      "label": "Is there anyone inviting the applicant for the visa?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 9.1"
    },
    {
      "name": "invitingPersonOrOrganizationName",
      "label": "Name of inviting person/organization (Korean, foreign resident in Korea, company, or institute)",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasInvitingPersonOrOrganization",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 9.1(a)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "invitingPersonDateOfBirthOrBusinessRegistrationNo",
      "label": "Date of Birth/Business Registration No. of inviting person/organization",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasInvitingPersonOrOrganization",
        "equals": true
      },
      "description": "A single combined field on the source form: an individual inviter's date of birth, or an organization inviter's business registration number.",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 9.1(b)",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "invitingPersonRelationship",
      "label": "Relationship to the applicant",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasInvitingPersonOrOrganization",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 9.1(c)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "invitingPersonAddress",
      "label": "Address of inviting person/organization",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasInvitingPersonOrOrganization",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 9.1(d)",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "invitingPersonPhoneNumber",
      "label": "Phone No. of inviting person/organization",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hasInvitingPersonOrOrganization",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 9.1(e)",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "estimatedTravelCostsUsd",
      "label": "Estimated travel costs (in US dollars)",
      "type": "number",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 10.1",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "travelExpensesPayerName",
      "label": "Name of Person/Organization (Company) paying travel-related expenses",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 10.2(a)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "travelExpensesPayerRelationship",
      "label": "Payer's relationship to the applicant",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 10.2(b)",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "travelExpensesSupportType",
      "label": "Type of Support",
      "type": "string",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 10.2(c)",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "travelExpensesPayerContactNumber",
      "label": "Payer's Contact No.",
      "type": "string",
      "required": false,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 10.2(d)",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "receivedAssistanceCompletingForm",
      "label": "Did the applicant receive assistance in completing this form?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 11.1"
    },
    {
      "name": "formAssistantFullName",
      "label": "Assisting person — Full Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "receivedAssistanceCompletingForm",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 11.1",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "formAssistantDateOfBirth",
      "label": "Assisting person — Date of Birth",
      "type": "date",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "receivedAssistanceCompletingForm",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 11.1"
    },
    {
      "name": "formAssistantPhoneNumber",
      "label": "Assisting person — Telephone No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "receivedAssistanceCompletingForm",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 11.1",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "formAssistantRelationship",
      "label": "Assisting person — Relationship to the applicant",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "receivedAssistanceCompletingForm",
        "equals": true
      },
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 11.1",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "declarationAgreed",
      "label": "I declare that I agree with the terms of application, that statements made are true and correct, and that I will comply with the Immigration Act",
      "type": "boolean",
      "required": true,
      "fieldRole": "eligibility",
      "eligibleValues": [
        true
      ],
      "description": "A person under 17 requires the signature of a parent or legal guardian instead of the applicant's own signature (out of scope here, a physical-signature detail, not a data field).",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 12 (서약 / DECLARATION)"
    },
    {
      "name": "declarationDate",
      "label": "Date of Application",
      "type": "date",
      "required": true,
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 12"
    }
  ],
  "crossFieldValidation": [
    {
      "id": "passportExpiryAfterIssue",
      "compare": {
        "field": "passportExpiryDate",
        "operator": "greaterThan",
        "compareTo": "passportIssueDate"
      }
    },
    {
      "id": "koreaVisitEndNotBeforeStart",
      "compare": {
        "field": "mostRecentKoreaVisitEndDate",
        "operator": "greaterThanOrEqual",
        "compareTo": "mostRecentKoreaVisitStartDate"
      }
    },
    {
      "id": "otherCountryVisitEndNotBeforeStart",
      "compare": {
        "field": "mostRecentOtherCountryVisitEndDate",
        "operator": "greaterThanOrEqual",
        "compareTo": "mostRecentOtherCountryVisitStartDate"
      }
    }
  ],
  "documents": [
    {
      "id": "passportPhoto",
      "label": "Passport-size photo (35mm x 45mm)",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Visa Application Form (사증발급신청서, Attached Form No. 17) — Item 1, PHOTO box: color photo taken within the last 6 months, full face without hat, front view against a white or off-white background."
    },
    {
      "id": "categorySpecificSupportingDocuments",
      "label": "Supporting documents required for the specific visa category applied for",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "출입국관리법 시행규칙 제76조제1항 및 별표5 (Enforcement Rule Article 76(1) and Annex 5) — the attachment list varies by the specific visa category/purpose (roughly 30 categories); not enumerated in this schema (see VERIFICATION.md)."
    }
  ],
  "steps": [
    {
      "id": "personal_details",
      "title": "Personal Details",
      "fields": [
        "familyName",
        "givenNames",
        "chineseCharacterName",
        "sex",
        "dateOfBirth",
        "nationality",
        "countryOfBirth",
        "nationalIdentityNumber",
        "hasUsedOtherNames",
        "otherNameFamilyName",
        "otherNameGivenName",
        "isDualNational",
        "dualNationalityCountries"
      ],
      "next": "visa_details"
    },
    {
      "id": "visa_details",
      "title": "Details of Visa Application",
      "fields": [
        "periodOfStay",
        "statusOfStay"
      ],
      "next": "passport_information"
    },
    {
      "id": "passport_information",
      "title": "Passport Information",
      "fields": [
        "passportType",
        "passportTypeOtherDetail",
        "passportNumber",
        "passportIssuingCountry",
        "passportPlaceOfIssue",
        "passportIssueDate",
        "passportExpiryDate",
        "hasOtherValidPassport",
        "otherPassportType",
        "otherPassportNumber",
        "otherPassportIssuingCountry",
        "otherPassportExpiryDate"
      ],
      "next": "contact_information"
    },
    {
      "id": "contact_information",
      "title": "Contact Information",
      "fields": [
        "homeCountryAddress",
        "currentResidentialAddress",
        "cellPhoneNumber",
        "telephoneNumber",
        "emailAddress",
        "emergencyContactFullName",
        "emergencyContactCountryOfResidence",
        "emergencyContactPhoneNumber",
        "emergencyContactRelationship"
      ],
      "next": "marital_status_and_family"
    },
    {
      "id": "marital_status_and_family",
      "title": "Marital Status and Family Details",
      "fields": [
        "maritalStatus",
        "spouseFamilyName",
        "spouseGivenNames",
        "spouseDateOfBirth",
        "spouseNationality",
        "spouseResidentialAddress",
        "spouseContactNumber",
        "hasChildren",
        "numberOfChildren"
      ],
      "next": "education"
    },
    {
      "id": "education",
      "title": "Education",
      "fields": [
        "highestEducationLevel",
        "highestEducationLevelOtherDetail",
        "schoolName",
        "schoolLocation"
      ],
      "next": "employment"
    },
    {
      "id": "employment",
      "title": "Employment",
      "fields": [
        "currentOccupation",
        "currentOccupationOtherDetail",
        "employerOrInstitutionName",
        "positionOrCourse",
        "employerOrInstitutionAddress",
        "employerOrInstitutionPhoneNumber"
      ],
      "next": "details_of_visit"
    },
    {
      "id": "details_of_visit",
      "title": "Details of Visit",
      "fields": [
        "purposeOfVisit",
        "purposeOfVisitOtherDetail",
        "intendedPeriodOfStay",
        "intendedDateOfEntry",
        "addressInKorea",
        "contactNumberInKorea",
        "hasVisitedKoreaLast5Years",
        "mostRecentKoreaVisitPurpose",
        "mostRecentKoreaVisitStartDate",
        "mostRecentKoreaVisitEndDate",
        "hasTravelledOtherCountriesLast5Years",
        "mostRecentOtherCountryVisited",
        "mostRecentOtherCountryVisitPurpose",
        "mostRecentOtherCountryVisitStartDate",
        "mostRecentOtherCountryVisitEndDate",
        "hasFamilyMembersInKorea",
        "familyMemberInKoreaFullName",
        "familyMemberInKoreaDateOfBirth",
        "familyMemberInKoreaNationality",
        "familyMemberInKoreaRelationship",
        "isTravellingWithFamilyMembers",
        "accompanyingFamilyMemberFullName",
        "accompanyingFamilyMemberDateOfBirth",
        "accompanyingFamilyMemberNationality",
        "accompanyingFamilyMemberRelationship"
      ],
      "next": "invitation_details"
    },
    {
      "id": "invitation_details",
      "title": "Details of Invitation",
      "fields": [
        "hasInvitingPersonOrOrganization",
        "invitingPersonOrOrganizationName",
        "invitingPersonDateOfBirthOrBusinessRegistrationNo",
        "invitingPersonRelationship",
        "invitingPersonAddress",
        "invitingPersonPhoneNumber"
      ],
      "next": "funding_details"
    },
    {
      "id": "funding_details",
      "title": "Funding Details",
      "fields": [
        "estimatedTravelCostsUsd",
        "travelExpensesPayerName",
        "travelExpensesPayerRelationship",
        "travelExpensesSupportType",
        "travelExpensesPayerContactNumber"
      ],
      "next": "form_assistance"
    },
    {
      "id": "form_assistance",
      "title": "Assistance with this Form",
      "fields": [
        "receivedAssistanceCompletingForm",
        "formAssistantFullName",
        "formAssistantDateOfBirth",
        "formAssistantPhoneNumber",
        "formAssistantRelationship"
      ],
      "next": "declaration"
    },
    {
      "id": "declaration",
      "title": "Declaration",
      "fields": [
        "declarationAgreed",
        "declarationDate"
      ]
    }
  ]
}