{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "mt/identita/long-stay-visa-application",
  "version": "1.0.0",
  "title": "Malta Long Stay Maltese (D) Visa Application",
  "description": "Identita's (Malta's national Agency for identity documents, passports, visas, expatriates and the Public Registry) Central Visa Unit \"Long Stay Maltese (D) Visa Application\", filed by a non-EU/EEA/Swiss national applying for Malta's own national (Category D) long-stay visa, which permits a stay in Malta exceeding the 90-day Schengen short-stay limit for a purpose such as professional/business travel, cultural or sporting participation, an official visit, medical treatment, or study. Deepens Malta past its first three published verticals (mt/jobsplus/self-employed-declaration-of-commencement, Business Formation; mt/identita/passport-application, Passport; mt/identita/national-identity-card-application, National ID), opening the Visa vertical (4/6). This is Malta's distinct national long-stay visa, not the Schengen (short-stay, Category C) visa this registry already covers via the EU-harmonized fr/france-visas/schengen-visa-application. This document models the applicant's own identity, contact, and passport particulars (Section 01); the intended travel's purpose, dates, and the applicant's home and Malta-accommodation addresses (Section 02); the host in Malta's own particulars, whether an organisation or a natural person, and who is paying for the trip (Section 03); the Parental Authority/Legal Guardian particulars for a minor applicant (Section 04); an EU/EEA/Swiss-citizen (or EU/UK Withdrawal Agreement beneficiary) family member's particulars, printed as a continuation of Section 04 (page 5); and the applicant's own signed declaration, consenting to data collection, background checks, and processing under the General Data Protection Regulation (Section 05). It excludes Section 06's own supporting-documents checklist items' physical content (modelled instead as documents[] entries) and does not model a separate 'Declaration of Proof Form' the host completes when a host applies, which is a distinct companion document outside this schema's own field set. Filing this application is a citizen/traveller action performed with the Central Visa Unit; this schema does not file the application itself, and the live source is always authoritative. See VERIFICATION.md for the full field-by-field duplicate-vs-distinct comparison against the German template and every disclosed scope decision. GovSchema is independent and is not affiliated with, endorsed by, or operated by Malta or Identita.",
  "status": "draft",
  "jurisdiction": {
    "country": "MT",
    "level": "national"
  },
  "authority": {
    "name": "Identita (Malta's Agency for Identity Cards, Passports, Visas, Expatriates and Public Registry) — Central Visa Unit",
    "abbreviation": "Identita",
    "url": "https://identita.gov.mt"
  },
  "process": {
    "type": "application",
    "language": "en"
  },
  "source": {
    "url": "https://dvisa.identita.gov.mt/resources/dist/documents/application-v4.pdf",
    "retrievedAt": "2026-07-21",
    "documentRef": "\"Long Stay Maltese (D) Visa Application\", Central Visa Unit, Identita, native (non-AcroForm) PDF, 6 pages, Version 2 dated 11.08.2023."
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-21",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-21",
    "notes": "GOV-4230 (\"GovSchema Standard Research\", parent GOV-4215/GOV-4223). Overturns this registry's own prior \"MT Visa confirmed dead end\" finding (recorded during the GOV-4215 scouting cycle) — that finding examined only Malta's Schengen (short-stay, Category C) visa, which duplicates the EU-harmonized template already published as fr/france-visas/schengen-visa-application; it did not examine Malta's distinct national (Category D) long-stay visa, issued by Identita's own Central Visa Unit, which is genuinely unscreened and structurally analogous to Germany's and Estonia's own national-visa schemas already in this registry. Opens Malta's Visa vertical (4/6 -- Business Formation, Passport, and National ID already published; DMV remains the sole open gap, Taxes remains a confirmed dead end).\n\nSource: https://dvisa.identita.gov.mt/resources/dist/documents/application-v4.pdf (\"Long Stay Maltese (D) Visa Application\", Central Visa Unit, Identita, Version 2 dated 11.08.2023). Re-fetched directly with a realistic desktop Chrome User-Agent: HTTP 200, Content-Type application/pdf, 626,201 bytes (byte-identical to this cycle's own scouting note), sha256 b68be680039130d27847ab591e592a5487c6a45ece9bb03db801e12b9aa51112, no login/CAPTCHA/Cloudflare gate on the asset itself. Confirmed mechanically: the retrieved bytes begin %PDF-1.4 and contain zero /AcroForm or /Widget occurrences (a flat, print-and-fill specimen, the same class as this registry's other Identita-family forms), with exactly 6 /Type/Page objects, matching the source's own '1 of 6' through '6 of 6' page footers.\n\nThis PDF's own text-showing operators use readable embedded fonts (not the glyph-index encoding this registry's other Identita-family PDFs required pdfjs-dist's own ToUnicode-CMap extraction to decode), but pdfjs-dist was used regardless, per this registry's own established Maltese-Identita-family extraction pattern, to recover clean, position-tagged Unicode text for all 6 pages directly rather than a raw zlib-stream/paren-regex read; text was grouped by y-coordinate row and sorted by x-coordinate per page to reconstruct each field label and its layout position.\n\nModels 63 fields[] across 9 steps mirroring the form's own numbered sections (01 Applicant's Details incl. Contact Details and Passport Details; 02 Travel Information incl. Home Address and Malta Accommodation Details; 03 Host Details in Malta; 04 Parental Authority/Legal Guardian, plus an unnumbered EU/EEA/Swiss family member sub-block continuing Section 04 on page 5), plus 9 documents[] entries (6 physical/checklist documents from Section 06, 1 conditional host-side companion form, 2 attestation signature entries from Section 05's Declaration).\n\nDisclosed source-fidelity findings: (1) This form carries no asterisks or other required/optional printed signal anywhere across all 6 pages (confirmed by grepping every extracted text item for '*' -- zero matches), unlike both sibling Identita-family forms already in this registry (mt/identita/passport-application's asterisk-as-checkbox convention, mt/identita/national-identity-card-application's asterisk-as-mandatory convention). Every field is therefore modelled required/optional by domain judgment (core identity/travel/passport particulars required; supplementary contact and administrative-subdivision fields optional), disclosed per-field rather than inferred from any printed mark. (2) Section 03's own note ('...if applicable host is required to fill in details...') and Section 04's own header ('IN CASE OF MINORS...') each condition their whole section on a fact not itself a printed checkbox -- modelled as directly-supplied boolean gates hasHostInMalta and applicantIsMinor respectively, the same convention mt/identita/passport-application established for its own spouseSectionApplies/citizenshipSectionApplies/applicantIsMinor. (3) The EU/EEA/Swiss/UK-Withdrawal-Agreement family member block (page 5) prints no section number of its own, sitting between the Parent 1/Parent 2 blocks (Section 04) and the 'Applicant's Signature' line that closes Section 04, then the '05 DECLARATION' heading -- modelled as a continuation of Section 04, not its own numbered section; closely parallel to ee/vm/long-stay-visa-application's own euRelativeAccompanying gate, though Malta's form asks for the family member's own travel-document/ID number and relationship category rather than Estonia's narrower spouse/child/ascendant/grandchild/registered-partner-only enum (Malta additionally lists Grandchild explicitly alongside a bare 'Other'). (4) Parent 2 / Legal Guardian 2's block is printed identically to Parent 1's with no distinguishing note about a single-guardian case; modelled requiredWhen applicantIsMinor per the printed symmetry, disclosed as a judgment call since a minor with only one legal guardian could not complete it. (5) Both 'Applicant's Signature / Date of Signature' lines (closing Section 04's family-details block on page 5, and closing Section 05's Declaration further down page 5) read identically despite Section 04 nominally being about a parent/guardian's authority -- modelled as two separate attestation documents[] entries per their distinct printed positions and scopes, not collapsed into one, since the form itself prints them as two separate signature/date pairs. (6) Section 06's supporting-documents checklist (Valid Passport, Invitation, Means of Transport, Health Insurance, Financial Means, Others) prints no conditional signal distinguishing which items apply to which purpose-of-travel category; modelled required:true for the five named categories and required:false only for the open-ended 'Others' catch-all, consistent with this registry's 'no printed distinguishing signal -> required' default for a passport-office/visa-office checklist (see mt/identita/passport-application's own Section 02 treatment). (7) Unlike de/auswaertiges-amt/national-visa-application and ee/vm/long-stay-visa-application, this form's own printed checklist does not list an applicant photo as a submitted document (though the Declaration's own consent text references 'the taking of my photograph...are mandatory for the examination of the application' as an in-person biometric-capture step, not a submitted print) -- disclosed as a genuine absence rather than an oversight; no applicantPhoto document is modelled. (8) The Declaration's own text includes the parenthetical 'Applicable in case a multiple entry visa is applied for:' immediately before its background-checks consent paragraph, implying a single-vs-multiple-entry-visa choice exists somewhere in the process, but no corresponding selectable field appears anywhere on the printed form; disclosed here rather than fabricated as a field.\n\nDuplicate-vs-distinct comparison against de/auswaertiges-amt/national-visa-application (verdict: genuinely distinct, not a duplicate -- full field-by-field comparison in VERIFICATION.md): the two forms share only the shape of their opening identity/travel-document items (name, date/place of birth, nationality, marital status, travel-document type/number/dates), the same Schengen-harmonized convention common to every EU/Schengen-associated country's national long-stay visa form in this registry. Malta's form then diverges with its own Host Details in Malta section (organisation-vs-person host, host contact particulars, a 'who is paying' field) with no counterpart in Germany's form at all; an EU/EEA/Swiss/UK-Withdrawal-Agreement family member sub-block closely paralleling (but not identical to) Estonia's own euRelativeAccompanying section rather than Germany's unconditional father/mother-of-applicant section; a minors-only Parental Authority/Legal Guardian section (Germany's Section 4 instead covers the adult applicant's own parents, unconditionally, regardless of the applicant's age); its own 7-category purpose-of-travel taxonomy sharing no labels with Germany's 6-category or Estonia's 8-category lists; and no counterpart at all to Germany's criminal-conviction (Section 14) or notifiable-disease (Section 16) declarations, nor to its children-details or accompanying-family-members sections. Net: a genuinely distinct national D-visa form -- authored as its own schema, consistent with the ee/vm precedent (genuinely distinct) rather than the Poland/Portugal/Switzerland duplicate precedent.\n\n2 valid mock scenarios (a single adult applicant travelling for business, no host, no minor/EU-family sections; a minor applicant accompanying an EU-citizen family member, staying with a host organisation in Malta, funded by that host organisation) plus 8 mutation-control fixtures (a missing statically-required field; a missing otherTravelDocumentTypeDetails while travelDocumentType is OTHER; a missing hostType while hasHostInMalta is true; a missing hostOrganisationName while hostType is ORGANISATION; a missing parent1Surname while applicantIsMinor is true; a missing euFamilyMemberSurname while euEeaFamilyMemberAccompanying is true; an invalid gender enum value; an unknown top-level field) committed under conformance/mt/identita/long-stay-visa-application/1.0.0/. An ephemeral, from-scratch conformance checker (deriving required/requiredWhen rules directly from this schema's own fields[]/documents[], discarded after use, not committed) ran all 10: both valid scenarios at 0 errors, all 8 mutation controls each raising exactly 1 error, and confirmed every requiredWhen field reference resolves (0 dangling references) and both crossFieldValidation rules hold on the valid scenarios. Validated clean with node tools/validate.mjs and node tools/validate-ajv.mjs, individually and as part of the full registry run."
  },
  "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-21"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "title",
      "label": "Title",
      "type": "enum",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Title\" — \"Mr / Mrs / Ms / Other\"",
      "validation": {
        "enum": [
          "MR",
          "MRS",
          "MS",
          "OTHER"
        ]
      }
    },
    {
      "name": "surname",
      "label": "Full Legal Surname (as shown on passport)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 1, Section 01 — \"Full Legal Surname (as shown on passport)\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "givenNames",
      "label": "Full Legal Given Name(s) (as shown on passport)",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 1, Section 01 — \"Full Legal Given Name(s) (as shown on passport)\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "identityDocumentNumber",
      "label": "Identity Document Number",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The applicant's own national identity document number (issued by their country of nationality/residence), not a Maltese identity card number — this is a visa application for a non-Maltese national.",
      "sourceRef": "Page 1, Section 01 — \"Identity Document Number\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "nationality",
      "label": "Nationality",
      "type": "string",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Nationality\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "otherNationalities",
      "label": "Other Nationalities, if applicable",
      "type": "string",
      "required": false,
      "sourceRef": "Page 1, Section 01 — \"Other Nationalities if applicable\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "placeOfBirth",
      "label": "Place of Birth",
      "type": "string",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Place of Birth\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "countryOfBirth",
      "label": "Country of Birth",
      "type": "string",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Country of Birth\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "dateOfBirth",
      "label": "Date of Birth",
      "type": "date",
      "required": true,
      "classification": "sensitive-pii",
      "sourceRef": "Page 1, Section 01 — \"Date of Birth\""
    },
    {
      "name": "currentOccupation",
      "label": "Current Occupation",
      "type": "string",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Current Occupation\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "gender",
      "label": "Gender",
      "type": "enum",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Gender\" — \"Male / Female / Other\"",
      "validation": {
        "enum": [
          "MALE",
          "FEMALE",
          "OTHER"
        ]
      }
    },
    {
      "name": "maritalStatus",
      "label": "Marital Status",
      "type": "enum",
      "required": true,
      "sourceRef": "Page 1, Section 01 — \"Marital Status\" — \"Never Married / Married / Separated / Other\"",
      "validation": {
        "enum": [
          "NEVER_MARRIED",
          "MARRIED",
          "SEPARATED",
          "OTHER"
        ]
      }
    },
    {
      "name": "fixedTelephoneNumber",
      "label": "Fixed Telephone No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 1, Section 01 — Contact Details — \"Fixed Telephone No.\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "mobileNumber",
      "label": "Mobile No.",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 1, Section 01 — Contact Details — \"Mobile No.\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "personalEmailAddress",
      "label": "Personal Email Address",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 1, Section 01 — Contact Details — \"Personal Email Address\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "travelDocumentType",
      "label": "Type of Travel Document",
      "type": "enum",
      "required": true,
      "description": "Passport Details note: \"Passport on which visa shall be affixed, all passport details shown below must be provided.\"",
      "sourceRef": "Page 1-2, Section 01 — Passport Details — \"Ordinary / Diplomatic / Service / Special / Temporary / Other\"",
      "validation": {
        "enum": [
          "ORDINARY",
          "DIPLOMATIC",
          "SERVICE",
          "SPECIAL",
          "TEMPORARY",
          "OTHER"
        ]
      }
    },
    {
      "name": "otherTravelDocumentTypeDetails",
      "label": "If other, specify here",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "travelDocumentType",
        "equals": "OTHER"
      },
      "sourceRef": "Page 2, Section 01 — Passport Details — \"If other specify here\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "travelDocumentNumber",
      "label": "Travel Document No.",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "sourceRef": "Page 2, Section 01 — Passport Details — \"Travel Document No.\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "issuingCountry",
      "label": "Issuing Country",
      "type": "string",
      "required": true,
      "sourceRef": "Page 2, Section 01 — Passport Details — \"Issuing Country\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "dateOfIssue",
      "label": "Date of Issue",
      "type": "date",
      "required": true,
      "sourceRef": "Page 2, Section 01 — Passport Details — \"Date of Issue\""
    },
    {
      "name": "validUntil",
      "label": "Valid until",
      "type": "date",
      "required": true,
      "sourceRef": "Page 2, Section 01 — Passport Details — \"Valid until\""
    },
    {
      "name": "purposeOfTravel",
      "label": "Purpose of travel",
      "type": "enum",
      "required": true,
      "description": "The form's own 7-option list, sharing no labels with de/auswaertiges-amt/national-visa-application's 6-category list (Employment/Study/Au pair/Language course/Family reunion/Other) or ee/vm/long-stay-visa-application's 8-category list (Business/Medical reasons/Study/Short term employment in Estonia/Visiting family or friends/Remote working/Startup entrepreneurship/Other). See VERIFICATION.md.",
      "sourceRef": "Page 2, Section 02 — \"Purpose of travel\" — \"Professional/Business / Cultural / Sports / Official Visit / Medical Reasons / Study / Other\"",
      "validation": {
        "enum": [
          "PROFESSIONAL_BUSINESS",
          "CULTURAL",
          "SPORTS",
          "OFFICIAL_VISIT",
          "MEDICAL_REASONS",
          "STUDY",
          "OTHER"
        ]
      }
    },
    {
      "name": "purposeOfTravelOtherDetails",
      "label": "Purpose of travel — Please Specify",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "purposeOfTravel",
        "equals": "OTHER"
      },
      "sourceRef": "Page 2, Section 02 — \"Other / Please Specify\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "borderOfFirstEntry",
      "label": "Border of First Entry",
      "type": "string",
      "required": true,
      "sourceRef": "Page 2, Section 02 — \"Border of First Entry\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "tentativeDateOfArrival",
      "label": "Tentative Date of Arrival",
      "type": "date",
      "required": true,
      "sourceRef": "Page 2, Section 02 — \"Tentative Date of Arrival\""
    },
    {
      "name": "tentativeDateOfDeparture",
      "label": "Tentative Date of Departure",
      "type": "date",
      "required": true,
      "sourceRef": "Page 2, Section 02 — \"Tentative Date of Departure\""
    },
    {
      "name": "currentCountryOfResidence",
      "label": "Current Country of Residence at time of application",
      "type": "string",
      "required": true,
      "sourceRef": "Page 2, Section 02 — \"Current Country of Residence at time of application\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "homeAddress",
      "label": "Applicant's Home Address in Full — Address",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"Address\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "homeDistrict",
      "label": "Applicant's Home Address in Full — District",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The form prints District/Province/State as three separate, presumably alternative, administrative-subdivision boxes to accommodate different countries' address formats; not every applicant's address uses all three. See VERIFICATION.md.",
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"District\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "homeProvince",
      "label": "Applicant's Home Address in Full — Province",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"Province\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "homeState",
      "label": "Applicant's Home Address in Full — State",
      "type": "string",
      "required": false,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"State\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "homeCity",
      "label": "Applicant's Home Address in Full — City",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"City\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "homePostcode",
      "label": "Applicant's Home Address in Full — Postcode",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"Postcode\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "homeCountry",
      "label": "Applicant's Home Address in Full — Country",
      "type": "string",
      "required": true,
      "sourceRef": "Page 2, Section 02 — Applicant's Home Address in Full — \"Country\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "maltaAccommodationAddress",
      "label": "Applicant's Accommodation Details in Malta — Address",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Accommodation Details in Malta — \"Address\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "maltaAccommodationCity",
      "label": "Applicant's Accommodation Details in Malta — City",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Accommodation Details in Malta — \"City\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "maltaAccommodationPostcode",
      "label": "Applicant's Accommodation Details in Malta — Postcode",
      "type": "string",
      "required": true,
      "classification": "pii",
      "sourceRef": "Page 2, Section 02 — Applicant's Accommodation Details in Malta — \"Postcode\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "hasHostInMalta",
      "label": "Do you have a host in Malta?",
      "type": "boolean",
      "required": true,
      "description": "Section 03's own printed note reads: \"Please see Declaration of Proof Form and if applicable host is required to fill in details...\" — the \"if applicable\" wording indicates this whole section is conditional (e.g. an applicant staying at a hotel and self-funding has no host), but the form prints no checkbox distinguishing this. Modelled as a directly-supplied boolean gate, not itself a printed field, the same convention mt/identita/passport-application established for its own spouseSectionApplies/citizenshipSectionApplies. See VERIFICATION.md.",
      "sourceRef": "Page 3, Section 03 — \"HOST DETAILS IN MALTA\" note: \"...if applicable host is required to fill in details...\""
    },
    {
      "name": "hostType",
      "label": "Host",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"Host\" — \"Organisation / Person\"",
      "validation": {
        "enum": [
          "ORGANISATION",
          "PERSON"
        ]
      }
    },
    {
      "name": "hostOrganisationName",
      "label": "Organisation's Name",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "hostType",
        "equals": "ORGANISATION"
      },
      "sourceRef": "Page 3, Section 03 — \"Organisation's Name\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "hostFullName",
      "label": "Full Name of Host",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hostType",
        "equals": "PERSON"
      },
      "sourceRef": "Page 3, Section 03 — \"Full Name of Host\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "hostAddress",
      "label": "Host — Address",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"Address\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "hostCity",
      "label": "Host — City",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"City\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "hostPostcode",
      "label": "Host — Postcode",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"Postcode\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "hostIdentityDocumentNumber",
      "label": "Host — Identity Document Number",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "description": "Modelled as always required once a host applies, though it is most likely only meaningful for a host who is a natural person (hostType PERSON) rather than an organisation; the form prints one shared field beneath both host-type options with no visible split. See VERIFICATION.md.",
      "sourceRef": "Page 3, Section 03 — \"Identity Document Number\"",
      "validation": {
        "maxLength": 50
      }
    },
    {
      "name": "hostFixedTelephoneNumber",
      "label": "Host — Fixed Telephone No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "visibleWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"Fixed Telephone No.\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "hostMobileNumber",
      "label": "Host — Mobile No.",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"Mobile No.\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "hostEmailAddress",
      "label": "Host — Email Address",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "sourceRef": "Page 3, Section 03 — \"Email Address\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "whoIsPaying",
      "label": "Who is paying",
      "type": "enum",
      "required": true,
      "description": "Asked independently of hasHostInMalta, since \"Myself\" is a valid answer with no host at all.",
      "sourceRef": "Page 3, Section 03 — \"Who is paying\" — \"Myself / Host Person / Host Organisation\"",
      "validation": {
        "enum": [
          "MYSELF",
          "HOST_PERSON",
          "HOST_ORGANISATION"
        ]
      }
    },
    {
      "name": "applicantIsMinor",
      "label": "Is the applicant a minor (under 18 years of age)?",
      "type": "boolean",
      "required": true,
      "description": "Section 04's own printed header reads \"PARENTAL AUTHORITY (IN CASE OF MINORS UNDER 18 YEARS OF AGE) / LEGAL GUARDIAN\", tying the whole section to a minor applicant, but prints no checkbox for it. Modelled as a directly-supplied boolean gate, the same convention mt/identita/passport-application established for its own applicantIsMinor. See VERIFICATION.md.",
      "sourceRef": "Page 4, Section 04 — \"PARENTAL AUTHORITY (IN CASE OF MINORS UNDER 18 YEARS OF AGE) / LEGAL GUARDIAN\""
    },
    {
      "name": "parent1Surname",
      "label": "Parent 1 / Legal Guardian 1 — Surname",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Surname\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent1Name",
      "label": "Parent 1 / Legal Guardian 1 — Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Name\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent1Nationality",
      "label": "Parent 1 / Legal Guardian 1 — Nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Nationality\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent1MobileNumber",
      "label": "Parent 1 / Legal Guardian 1 — Mobile Number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Mobile Number\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "parent1Email",
      "label": "Parent 1 / Legal Guardian 1 — Email",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Email\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "parent1Address",
      "label": "Parent 1 / Legal Guardian 1 — Address (if different from applicant's contact)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "visibleWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Address (if different from applicant's contact)\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "parent1Postcode",
      "label": "Parent 1 / Legal Guardian 1 — Postcode",
      "type": "string",
      "required": false,
      "classification": "pii",
      "visibleWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Postcode\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "parent1Country",
      "label": "Parent 1 / Legal Guardian 1 — Country",
      "type": "string",
      "required": false,
      "visibleWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 1 / Legal Guardian 1 — \"Country\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent2Surname",
      "label": "Parent 2 / Legal Guardian 2 — Surname",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "description": "The form prints Parent 2 / Legal Guardian 2 as an identical block to Parent 1, with no note distinguishing a single-guardian case; modelled requiredWhen applicantIsMinor per the printed symmetry, though a minor with only one legal guardian may not be able to complete it. See VERIFICATION.md.",
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Surname\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent2Name",
      "label": "Parent 2 / Legal Guardian 2 — Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Name\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent2Nationality",
      "label": "Parent 2 / Legal Guardian 2 — Nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Nationality\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "parent2MobileNumber",
      "label": "Parent 2 / Legal Guardian 2 — Mobile Number",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Mobile Number\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "parent2Email",
      "label": "Parent 2 / Legal Guardian 2 — Email",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Email\"",
      "validation": {
        "maxLength": 200
      }
    },
    {
      "name": "parent2Address",
      "label": "Parent 2 / Legal Guardian 2 — Address (if different from applicant's contact)",
      "type": "string",
      "required": false,
      "classification": "pii",
      "visibleWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Address (if different from applicant's contact)\"",
      "validation": {
        "maxLength": 300
      }
    },
    {
      "name": "parent2Postcode",
      "label": "Parent 2 / Legal Guardian 2 — Postcode",
      "type": "string",
      "required": false,
      "classification": "pii",
      "visibleWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Postcode\"",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "parent2Country",
      "label": "Parent 2 / Legal Guardian 2 — Country",
      "type": "string",
      "required": false,
      "visibleWhen": {
        "field": "applicantIsMinor",
        "equals": true
      },
      "sourceRef": "Page 4, Section 04 — Parent 2 / Legal Guardian 2 — \"Country\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "euEeaFamilyMemberAccompanying",
      "label": "Is the applicant joining or travelling with a family member who is an EU, EEA, Swiss citizen, or an EU/UK Withdrawal Agreement beneficiary?",
      "type": "boolean",
      "required": true,
      "description": "Printed on page 5 directly above the \"05 DECLARATION\" heading, with no section number of its own; structurally the continuation of Section 04 (it follows immediately after the Parent 1/Parent 2 blocks and precedes the Section-04-closing \"Applicant's Signature\" line). Has no counterpart in de/auswaertiges-amt/national-visa-application, but closely parallels ee/vm/long-stay-visa-application's own euRelativeAccompanying gate. Modelled as a directly-supplied boolean gate, not itself a printed checkbox. See VERIFICATION.md.",
      "sourceRef": "Page 5 — \"In the case that the family member is an EU, EEA, Swiss citizen or a person who has been granted beneficiary status in Malta under the EU/UK withdraw agreement provide the following details in respect of the said family member:\""
    },
    {
      "name": "euFamilyMemberSurname",
      "label": "EU/EEA/Swiss family member — Surname",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "euEeaFamilyMemberAccompanying",
        "equals": true
      },
      "sourceRef": "Page 5 — EU/EEA/Swiss family member block — \"Surname\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "euFamilyMemberName",
      "label": "EU/EEA/Swiss family member — Name",
      "type": "string",
      "required": false,
      "classification": "pii",
      "requiredWhen": {
        "field": "euEeaFamilyMemberAccompanying",
        "equals": true
      },
      "sourceRef": "Page 5 — EU/EEA/Swiss family member block — \"Name\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "euFamilyMemberTravelDocOrIdNumber",
      "label": "EU/EEA/Swiss family member — Travel Doc. or ID Card No.",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "requiredWhen": {
        "field": "euEeaFamilyMemberAccompanying",
        "equals": true
      },
      "sourceRef": "Page 5 — EU/EEA/Swiss family member block — \"Travel Doc. or ID Card No.\"",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "euFamilyMemberDateOfBirth",
      "label": "EU/EEA/Swiss family member — Date of birth",
      "type": "date",
      "required": false,
      "classification": "sensitive-pii",
      "requiredWhen": {
        "field": "euEeaFamilyMemberAccompanying",
        "equals": true
      },
      "sourceRef": "Page 5 — EU/EEA/Swiss family member block — \"Date of birth\""
    },
    {
      "name": "euFamilyMemberNationality",
      "label": "EU/EEA/Swiss family member — Nationality",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "euEeaFamilyMemberAccompanying",
        "equals": true
      },
      "sourceRef": "Page 5 — EU/EEA/Swiss family member block — \"Nationality\"",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "euFamilyMemberRelationship",
      "label": "Family Relationship",
      "type": "enum",
      "required": false,
      "requiredWhen": {
        "field": "euEeaFamilyMemberAccompanying",
        "equals": true
      },
      "sourceRef": "Page 5 — \"Family Relationship\" — \"Spouse / Child / Grandchild / Dependent Ascendant / Registered Partnership / Other\"",
      "validation": {
        "enum": [
          "SPOUSE",
          "CHILD",
          "GRANDCHILD",
          "DEPENDENT_ASCENDANT",
          "REGISTERED_PARTNERSHIP",
          "OTHER"
        ]
      }
    }
  ],
  "crossFieldValidation": [
    {
      "id": "validUntilAfterDateOfIssue",
      "compare": {
        "field": "validUntil",
        "operator": "greaterThan",
        "compareTo": "dateOfIssue"
      }
    },
    {
      "id": "tentativeDepartureAfterArrival",
      "compare": {
        "field": "tentativeDateOfDeparture",
        "operator": "greaterThanOrEqual",
        "compareTo": "tentativeDateOfArrival"
      }
    }
  ],
  "documents": [
    {
      "id": "hostDeclarationOfProofForm",
      "label": "Declaration of Proof Form, completed by the host",
      "category": "supporting-evidence",
      "required": false,
      "requiredWhen": {
        "field": "hasHostInMalta",
        "equals": true
      },
      "belongsTo": "other",
      "sourceRef": "Page 3, Section 03 — \"Please see Declaration of Proof Form and if applicable host is required to fill in details and subsequently you are required to submit together with this form.\""
    },
    {
      "id": "section04Signature",
      "label": "Applicant's signature and date, closing the Parental Authority/Legal Guardian and EU/EEA/Swiss family member section",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Page 5 — \"Applicant's Signature\" / \"Date of Signature\", printed immediately after the EU/EEA/Swiss family member block and before the \"05 DECLARATION\" heading"
    },
    {
      "id": "mainDeclarationSignature",
      "label": "Applicant's signed declaration",
      "category": "attestation",
      "required": true,
      "belongsTo": "applicant",
      "statement": "I am aware that the visa fee is not refunded if the visa is refused. Applicable in case a multiple entry visa is applied for: I am aware of and consent to the following: the collection of the data required by this application form and the taking of my photograph and, if applicable, the taking of fingerprints, are mandatory for the examination of the application; and any personal data concerning me which appear on the application form, as well as my fingerprints and my photograph will be supplied to the relevant authorities in Malta and processed for the purposes of a decision on my application. I hereby grant my explicit consent to Identita to complete the necessary background checks and relative verification performed in the course of the visa application process... Such data...will be entered into, and stored in the Visa Management System known as (VMS) or National Visa Management System (NVMS) for a maximum period of five years... Personal data will be processed in accordance with the General Data Protection Regulation EU 2016/679... I declare that to the best of my knowledge all particulars supplied by me are correct and complete. I am aware that any false statements will lead to my application being rejected or to the annulment of a visa already granted and may also render me liable to prosecution under the applicable laws of Malta.",
      "sourceRef": "Page 5, Section 05 — \"DECLARATION\", signed and dated by the applicant"
    },
    {
      "id": "validPassportDocument",
      "label": "Valid Passport",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Page 6, Section 06 — \"SUPPORTING DOCUMENTS\" — \"Valid Passport\""
    },
    {
      "id": "invitationDocument",
      "label": "Invitation",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Page 6, Section 06 — \"SUPPORTING DOCUMENTS\" — \"Invitation\""
    },
    {
      "id": "meansOfTransportDocument",
      "label": "Means of Transport",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Page 6, Section 06 — \"SUPPORTING DOCUMENTS\" — \"Means of Transport\""
    },
    {
      "id": "healthInsuranceDocument",
      "label": "Health Insurance (including repatriation if need be)",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Page 6, Section 06 — \"SUPPORTING DOCUMENTS\" — \"Health Insurance (Including repatriation if need be)\""
    },
    {
      "id": "financialMeansDocument",
      "label": "Financial Means",
      "category": "supporting-evidence",
      "required": true,
      "belongsTo": "applicant",
      "sourceRef": "Page 6, Section 06 — \"SUPPORTING DOCUMENTS\" — \"Financial Means\""
    },
    {
      "id": "otherSupportingDocuments",
      "label": "Others",
      "category": "supporting-evidence",
      "required": false,
      "belongsTo": "applicant",
      "sourceRef": "Page 6, Section 06 — \"SUPPORTING DOCUMENTS\" — \"Others\""
    }
  ],
  "steps": [
    {
      "id": "applicant_identity",
      "title": "Section 01: Applicant's Details — identity",
      "next": "contact_details",
      "fields": [
        "title",
        "surname",
        "givenNames",
        "identityDocumentNumber",
        "nationality",
        "otherNationalities",
        "placeOfBirth",
        "countryOfBirth",
        "dateOfBirth",
        "currentOccupation",
        "gender",
        "maritalStatus"
      ]
    },
    {
      "id": "contact_details",
      "title": "Section 01: Contact Details",
      "next": "passport_details",
      "fields": [
        "fixedTelephoneNumber",
        "mobileNumber",
        "personalEmailAddress"
      ]
    },
    {
      "id": "passport_details",
      "title": "Section 01: Passport Details",
      "next": "travel_information",
      "fields": [
        "travelDocumentType",
        "otherTravelDocumentTypeDetails",
        "travelDocumentNumber",
        "issuingCountry",
        "dateOfIssue",
        "validUntil"
      ]
    },
    {
      "id": "travel_information",
      "title": "Section 02: Travel Information",
      "next": "home_address",
      "fields": [
        "purposeOfTravel",
        "purposeOfTravelOtherDetails",
        "borderOfFirstEntry",
        "tentativeDateOfArrival",
        "tentativeDateOfDeparture",
        "currentCountryOfResidence"
      ]
    },
    {
      "id": "home_address",
      "title": "Section 02: Applicant's Home Address in Full",
      "next": "malta_accommodation",
      "fields": [
        "homeAddress",
        "homeDistrict",
        "homeProvince",
        "homeState",
        "homeCity",
        "homePostcode",
        "homeCountry"
      ]
    },
    {
      "id": "malta_accommodation",
      "title": "Section 02: Applicant's Accommodation Details in Malta",
      "next": "host_details",
      "fields": [
        "maltaAccommodationAddress",
        "maltaAccommodationCity",
        "maltaAccommodationPostcode"
      ]
    },
    {
      "id": "host_details",
      "title": "Section 03: Host Details in Malta",
      "next": "parental_authority",
      "fields": [
        "hasHostInMalta",
        "hostType",
        "hostOrganisationName",
        "hostFullName",
        "hostAddress",
        "hostCity",
        "hostPostcode",
        "hostIdentityDocumentNumber",
        "hostFixedTelephoneNumber",
        "hostMobileNumber",
        "hostEmailAddress",
        "whoIsPaying"
      ]
    },
    {
      "id": "parental_authority",
      "title": "Section 04: Parental Authority (in case of minors under 18 years of age) / Legal Guardian",
      "next": "eu_family_member",
      "fields": [
        "applicantIsMinor",
        "parent1Surname",
        "parent1Name",
        "parent1Nationality",
        "parent1MobileNumber",
        "parent1Email",
        "parent1Address",
        "parent1Postcode",
        "parent1Country",
        "parent2Surname",
        "parent2Name",
        "parent2Nationality",
        "parent2MobileNumber",
        "parent2Email",
        "parent2Address",
        "parent2Postcode",
        "parent2Country"
      ]
    },
    {
      "id": "eu_family_member",
      "title": "EU/EEA/Swiss citizen or EU/UK Withdrawal Agreement beneficiary family member",
      "fields": [
        "euEeaFamilyMemberAccompanying",
        "euFamilyMemberSurname",
        "euFamilyMemberName",
        "euFamilyMemberTravelDocOrIdNumber",
        "euFamilyMemberDateOfBirth",
        "euFamilyMemberNationality",
        "euFamilyMemberRelationship"
      ]
    }
  ]
}
