{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "us/uscis/petition-alien-relative-i130",
  "version": "1.0.0",
  "title": "United States Petition for Alien Relative (Form I-130)",
  "description": "A U.S. citizen, lawful permanent resident, or non-citizen U.S. national (the petitioner) establishes a qualifying family relationship with an alien relative (the beneficiary) who wishes to immigrate to the United States, using Form I-130 (Petition for Alien Relative). Approval does not itself confer immigration status; the beneficiary separately applies for a Green Card via Form I-485 (adjustment of status, us/uscis/adjustment-of-status-i485, when available in the registry) or through consular processing with the U.S. Department of State. Distinct from us/uscis/permanent-resident-card-replacement-i90 (Green Card renewal for an existing permanent resident, not a new relationship petition). It does not submit the petition; the live U.S. Citizenship and Immigration Services (USCIS) source is always authoritative (see VERIFICATION.md).",
  "status": "draft",
  "jurisdiction": {
    "country": "US",
    "level": "national"
  },
  "authority": {
    "name": "U.S. Citizenship and Immigration Services",
    "abbreviation": "USCIS",
    "url": "https://www.uscis.gov/i-130"
  },
  "process": {
    "type": "application",
    "language": "en-US"
  },
  "source": {
    "url": "https://www.uscis.gov/i-130",
    "retrievedAt": "2026-07-02",
    "documentRef": "Form I-130 (Edition 04/01/24)"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-02",
    "verifiedBy": "GovSchema Engineering",
    "nextReviewBy": "2027-01-02"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "relationshipToBeneficiary",
      "label": "I am filing this petition for my",
      "type": "enum",
      "required": true,
      "description": "Select only one box. Determines the visa classification this petition establishes eligibility for.",
      "sourceRef": "Form I-130 Part 1, item 1",
      "validation": {
        "enum": [
          "spouse",
          "parent",
          "sibling",
          "child"
        ]
      }
    },
    {
      "name": "childOrParentRelationshipType",
      "label": "Relationship description (if filing for a child or parent)",
      "type": "enum",
      "required": false,
      "description": "Select the box that describes the relationship. Required when relationshipToBeneficiary is parent or child.",
      "sourceRef": "Form I-130 Part 1, item 2",
      "validation": {
        "enum": [
          "born_in_wedlock",
          "born_out_of_wedlock",
          "adopted_child",
          "stepchild_or_stepparent"
        ]
      },
      "requiredWhen": {
        "field": "relationshipToBeneficiary",
        "in": [
          "parent",
          "child"
        ]
      }
    },
    {
      "name": "petitionerGainedStatusThroughAdoption",
      "label": "Did you gain lawful permanent resident status or citizenship through adoption?",
      "type": "boolean",
      "required": true,
      "description": "Relevant to the \"who may not file\" restriction on natural parents who themselves gained status through adoption.",
      "sourceRef": "Form I-130 Part 1, item 3"
    },
    {
      "name": "beneficiarySiblingRelatedByAdoption",
      "label": "If the beneficiary is your brother/sister, are you related by adoption?",
      "type": "boolean",
      "required": false,
      "description": "Required when relationshipToBeneficiary is sibling.",
      "sourceRef": "Form I-130 Part 1, item 4",
      "requiredWhen": {
        "field": "relationshipToBeneficiary",
        "equals": "sibling"
      }
    },
    {
      "name": "petitionerAlienRegistrationNumber",
      "label": "Petitioner's Alien Registration Number (A-Number), if any",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "Personal identifier; handle as sensitive data. Digits only (the form prefixes a printed \"A-\").",
      "sourceRef": "Form I-130 Part 2, item 1",
      "validation": {
        "pattern": "^[0-9]{7,9}$"
      }
    },
    {
      "name": "petitionerUscisOnlineAccountNumber",
      "label": "Petitioner's USCIS Online Account Number, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 2, item 2",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "petitionerSsn",
      "label": "Petitioner's U.S. Social Security Number, if any",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 2, item 3",
      "validation": {
        "pattern": "^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$"
      }
    },
    {
      "name": "petitionerFamilyName",
      "label": "Petitioner's full name — family name (last name)",
      "type": "string",
      "required": true,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 2, item 4.a",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "petitionerGivenName",
      "label": "Petitioner's full name — given name (first name)",
      "type": "string",
      "required": true,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 2, item 4.b",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "petitionerMiddleName",
      "label": "Petitioner's full name — middle name",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 2, item 4.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerOtherNamesFamilyName",
      "label": "Petitioner's other names used — family name",
      "type": "string",
      "required": false,
      "description": "Include aliases, maiden name, and nicknames, if any.",
      "sourceRef": "Form I-130 Part 2, item 5.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerOtherNamesGivenName",
      "label": "Petitioner's other names used — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 5.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerOtherNamesMiddleName",
      "label": "Petitioner's other names used — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 5.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerCityOfBirth",
      "label": "Petitioner's city/town/village of birth",
      "type": "string",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 6",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "petitionerCountryOfBirth",
      "label": "Petitioner's country of birth",
      "type": "string",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 7",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "petitionerDateOfBirth",
      "label": "Petitioner's date of birth",
      "type": "date",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 8"
    },
    {
      "name": "petitionerSex",
      "label": "Petitioner's sex",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 9",
      "validation": {
        "enum": [
          "male",
          "female"
        ]
      }
    },
    {
      "name": "petitionerMailingAddressInCareOfName",
      "label": "Petitioner's mailing address — in care of name",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerMailingAddressLine1",
      "label": "Petitioner's mailing address — street number and name",
      "type": "string",
      "required": true,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      }
    },
    {
      "name": "petitionerMailingAddressApt",
      "label": "Petitioner's mailing address — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "petitionerMailingAddressCity",
      "label": "Petitioner's mailing address — city or town",
      "type": "string",
      "required": true,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "minLength": 1,
        "maxLength": 80
      }
    },
    {
      "name": "petitionerMailingAddressState",
      "label": "Petitioner's mailing address — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerMailingAddressZipCode",
      "label": "Petitioner's mailing address — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "petitionerMailingAddressProvince",
      "label": "Petitioner's mailing address — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerMailingAddressPostalCode",
      "label": "Petitioner's mailing address — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "petitionerMailingAddressCountry",
      "label": "Petitioner's mailing address — country",
      "type": "string",
      "required": true,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 2, item 10",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "petitionerMailingSameAsPhysical",
      "label": "Is the petitioner's current mailing address the same as their physical address?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 11"
    },
    {
      "name": "petitionerPhysicalAddressLine1",
      "label": "Petitioner's physical address — street number and name",
      "type": "string",
      "required": false,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressApt",
      "label": "Petitioner's physical address — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 20
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressCity",
      "label": "Petitioner's physical address — city or town",
      "type": "string",
      "required": false,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 80
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressState",
      "label": "Petitioner's physical address — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 60
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressZipCode",
      "label": "Petitioner's physical address — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 15
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressProvince",
      "label": "Petitioner's physical address — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 60
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressPostalCode",
      "label": "Petitioner's physical address — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 15
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerPhysicalAddressCountry",
      "label": "Petitioner's physical address — country",
      "type": "string",
      "required": false,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 2, item 12",
      "validation": {
        "maxLength": 60
      },
      "requiredWhen": {
        "field": "petitionerMailingSameAsPhysical",
        "equals": false
      }
    },
    {
      "name": "petitionerNumberOfMarriages",
      "label": "How many times has the petitioner been married?",
      "type": "integer",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 16",
      "validation": {
        "minimum": 0,
        "maximum": 20
      }
    },
    {
      "name": "petitionerCurrentMaritalStatus",
      "label": "Petitioner's current marital status",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 17",
      "validation": {
        "enum": [
          "single_never_married",
          "married",
          "divorced",
          "widowed",
          "separated",
          "annulled"
        ]
      }
    },
    {
      "name": "petitionerDateOfCurrentMarriage",
      "label": "Date of petitioner's current marriage (if currently married)",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 18",
      "requiredWhen": {
        "field": "petitionerCurrentMaritalStatus",
        "equals": "married"
      }
    },
    {
      "name": "petitionerCurrentMarriagePlaceCity",
      "label": "Place of petitioner's current marriage — city or town",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 19.a",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "petitionerCurrentMarriagePlaceState",
      "label": "Place of petitioner's current marriage — state",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 19.b",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerCurrentMarriagePlaceProvince",
      "label": "Place of petitioner's current marriage — province",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 19.c",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerCurrentMarriagePlaceCountry",
      "label": "Place of petitioner's current marriage — country",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 19.d",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerSpouse1FamilyName",
      "label": "Petitioner's spouse (current or most recent) — family name",
      "type": "string",
      "required": false,
      "description": "Simplification: this schema models the petitioner's current/most recent spouse only. USCIS Form I-130 provides two prior-spouse slots (\"Spouse 1\"/\"Spouse 2\"); see VERIFICATION.md.",
      "sourceRef": "Form I-130 Part 2, item 20.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerSpouse1GivenName",
      "label": "Petitioner's spouse (current or most recent) — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 20.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerSpouse1MiddleName",
      "label": "Petitioner's spouse (current or most recent) — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 20.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerSpouse1MarriageEndedDate",
      "label": "Date that marriage to this spouse ended (if applicable)",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 21"
    },
    {
      "name": "petitionerParent1FamilyName",
      "label": "Petitioner's Parent 1 — family name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 24.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerParent1GivenName",
      "label": "Petitioner's Parent 1 — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 24.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerParent1MiddleName",
      "label": "Petitioner's Parent 1 — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 24.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerParent1DateOfBirth",
      "label": "Petitioner's Parent 1 — date of birth",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 25"
    },
    {
      "name": "petitionerParent1CountryOfBirth",
      "label": "Petitioner's Parent 1 — country of birth",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 27",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerParent2FamilyName",
      "label": "Petitioner's Parent 2 — family name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 30.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerParent2GivenName",
      "label": "Petitioner's Parent 2 — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 30.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerParent2MiddleName",
      "label": "Petitioner's Parent 2 — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 30.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerParent2DateOfBirth",
      "label": "Petitioner's Parent 2 — date of birth",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 31"
    },
    {
      "name": "petitionerParent2CountryOfBirth",
      "label": "Petitioner's Parent 2 — country of birth",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 33",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerCitizenshipBasis",
      "label": "Petitioner is a",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 2, item 36",
      "validation": {
        "enum": [
          "us_citizen",
          "lawful_permanent_resident"
        ]
      }
    },
    {
      "name": "petitionerCitizenshipAcquiredThrough",
      "label": "Petitioner's citizenship was acquired through",
      "type": "enum",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 37",
      "validation": {
        "enum": [
          "birth_in_us",
          "naturalization",
          "parents"
        ]
      },
      "requiredWhen": {
        "field": "petitionerCitizenshipBasis",
        "equals": "us_citizen"
      }
    },
    {
      "name": "petitionerHasCertificateOfNaturalizationOrCitizenship",
      "label": "Has the petitioner obtained a Certificate of Naturalization or a Certificate of Citizenship?",
      "type": "boolean",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 38",
      "requiredWhen": {
        "field": "petitionerCitizenshipBasis",
        "equals": "us_citizen"
      }
    },
    {
      "name": "petitionerCertificateNumber",
      "label": "Certificate number",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 39.a",
      "validation": {
        "maxLength": 30
      },
      "requiredWhen": {
        "field": "petitionerHasCertificateOfNaturalizationOrCitizenship",
        "equals": true
      }
    },
    {
      "name": "petitionerCertificatePlaceOfIssuance",
      "label": "Certificate — place of issuance",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 39.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "petitionerCertificateDateOfIssuance",
      "label": "Certificate — date of issuance",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 39.c"
    },
    {
      "name": "petitionerClassOfAdmission",
      "label": "Petitioner's class of admission (if a lawful permanent resident)",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 40.a",
      "validation": {
        "maxLength": 20
      },
      "requiredWhen": {
        "field": "petitionerCitizenshipBasis",
        "equals": "lawful_permanent_resident"
      }
    },
    {
      "name": "petitionerDateOfAdmission",
      "label": "Petitioner's date of admission as a lawful permanent resident",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 40.b"
    },
    {
      "name": "petitionerPlaceOfAdmissionCity",
      "label": "Petitioner's place of admission — city or town",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 40.c",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "petitionerPlaceOfAdmissionState",
      "label": "Petitioner's place of admission — state",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 40.d",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerGainedLprThroughMarriage",
      "label": "Did the petitioner gain lawful permanent resident status through marriage to a U.S. citizen or lawful permanent resident?",
      "type": "boolean",
      "required": false,
      "sourceRef": "Form I-130 Part 2, item 41",
      "requiredWhen": {
        "field": "petitionerCitizenshipBasis",
        "equals": "lawful_permanent_resident"
      }
    },
    {
      "name": "petitionerEthnicity",
      "label": "Petitioner's ethnicity",
      "type": "enum",
      "required": true,
      "description": "Select only one box.",
      "sourceRef": "Form I-130 Part 3, item 1",
      "validation": {
        "enum": [
          "hispanic_or_latino",
          "not_hispanic_or_latino"
        ]
      }
    },
    {
      "name": "petitionerRace",
      "label": "Petitioner's race",
      "type": "string",
      "required": true,
      "description": "Select all applicable boxes. Modeled as a comma-separated list of: american_indian_or_alaska_native, asian, black_or_african_american, native_hawaiian_or_other_pacific_islander, white.",
      "sourceRef": "Form I-130 Part 3, item 2",
      "validation": {
        "minLength": 1,
        "maxLength": 200
      }
    },
    {
      "name": "petitionerHeightFeet",
      "label": "Petitioner's height — feet",
      "type": "integer",
      "required": true,
      "sourceRef": "Form I-130 Part 3, item 3",
      "validation": {
        "minimum": 0,
        "maximum": 8
      }
    },
    {
      "name": "petitionerHeightInches",
      "label": "Petitioner's height — inches",
      "type": "integer",
      "required": true,
      "sourceRef": "Form I-130 Part 3, item 3",
      "validation": {
        "minimum": 0,
        "maximum": 11
      }
    },
    {
      "name": "petitionerWeightPounds",
      "label": "Petitioner's weight — pounds",
      "type": "integer",
      "required": true,
      "sourceRef": "Form I-130 Part 3, item 4",
      "validation": {
        "minimum": 1,
        "maximum": 999
      }
    },
    {
      "name": "petitionerEyeColor",
      "label": "Petitioner's eye color",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 3, item 5",
      "validation": {
        "enum": [
          "black",
          "blue",
          "brown",
          "gray",
          "green",
          "hazel",
          "maroon",
          "pink",
          "unknown_other"
        ]
      }
    },
    {
      "name": "petitionerHairColor",
      "label": "Petitioner's hair color",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 3, item 6",
      "validation": {
        "enum": [
          "bald_no_hair",
          "black",
          "blond",
          "brown",
          "gray",
          "red",
          "sandy",
          "white",
          "unknown_other"
        ]
      }
    },
    {
      "name": "beneficiaryAlienRegistrationNumber",
      "label": "Beneficiary's Alien Registration Number (A-Number), if any",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 4, item 1",
      "validation": {
        "pattern": "^[0-9]{7,9}$"
      }
    },
    {
      "name": "beneficiaryUscisOnlineAccountNumber",
      "label": "Beneficiary's USCIS Online Account Number, if any",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 2",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "beneficiarySsn",
      "label": "Beneficiary's U.S. Social Security Number, if any",
      "type": "string",
      "required": false,
      "classification": "sensitive-pii",
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 4, item 3",
      "validation": {
        "pattern": "^[0-9]{3}-?[0-9]{2}-?[0-9]{4}$"
      }
    },
    {
      "name": "beneficiaryFamilyName",
      "label": "Beneficiary's full name — family name (last name)",
      "type": "string",
      "required": true,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 4, item 4.a",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryGivenName",
      "label": "Beneficiary's full name — given name (first name)",
      "type": "string",
      "required": true,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 4, item 4.b",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryMiddleName",
      "label": "Beneficiary's full name — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 4.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryOtherNamesFamilyName",
      "label": "Beneficiary's other names used — family name",
      "type": "string",
      "required": false,
      "description": "Include aliases, maiden name, and nicknames, if any.",
      "sourceRef": "Form I-130 Part 4, item 5.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryOtherNamesGivenName",
      "label": "Beneficiary's other names used — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 5.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryOtherNamesMiddleName",
      "label": "Beneficiary's other names used — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 5.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryCityOfBirth",
      "label": "Beneficiary's city/town/village of birth",
      "type": "string",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 6",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryCountryOfBirth",
      "label": "Beneficiary's country of birth",
      "type": "string",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 7",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryDateOfBirth",
      "label": "Beneficiary's date of birth",
      "type": "date",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 8"
    },
    {
      "name": "beneficiarySex",
      "label": "Beneficiary's sex",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 9",
      "validation": {
        "enum": [
          "male",
          "female"
        ]
      }
    },
    {
      "name": "beneficiaryEverFiledForByOthers",
      "label": "Has anyone else ever filed a petition for the beneficiary?",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 10",
      "description": "Select \"unknown\" only if neither the petitioner nor the beneficiary knows.",
      "validation": {
        "enum": [
          "yes",
          "no",
          "unknown"
        ]
      }
    },
    {
      "name": "beneficiaryPhysicalAddressLine1",
      "label": "Beneficiary's physical address — street number and name",
      "type": "string",
      "required": true,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      }
    },
    {
      "name": "beneficiaryPhysicalAddressApt",
      "label": "Beneficiary's physical address — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "beneficiaryPhysicalAddressCity",
      "label": "Beneficiary's physical address — city or town",
      "type": "string",
      "required": true,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "minLength": 1,
        "maxLength": 80
      }
    },
    {
      "name": "beneficiaryPhysicalAddressState",
      "label": "Beneficiary's physical address — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryPhysicalAddressZipCode",
      "label": "Beneficiary's physical address — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "beneficiaryPhysicalAddressProvince",
      "label": "Beneficiary's physical address — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryPhysicalAddressPostalCode",
      "label": "Beneficiary's physical address — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "beneficiaryPhysicalAddressCountry",
      "label": "Beneficiary's physical address — country",
      "type": "string",
      "required": true,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 4, item 11",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryDaytimePhoneNumber",
      "label": "Beneficiary's daytime telephone number, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format.",
      "sourceRef": "Form I-130 Part 4, item 14",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "beneficiaryMobilePhoneNumber",
      "label": "Beneficiary's mobile telephone number, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format.",
      "sourceRef": "Form I-130 Part 4, item 15",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "beneficiaryEmail",
      "label": "Beneficiary's email address, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 4, item 16",
      "validation": {
        "maxLength": 160
      }
    },
    {
      "name": "beneficiaryNumberOfMarriages",
      "label": "How many times has the beneficiary been married?",
      "type": "integer",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 17",
      "validation": {
        "minimum": 0,
        "maximum": 20
      }
    },
    {
      "name": "beneficiaryCurrentMaritalStatus",
      "label": "Beneficiary's current marital status",
      "type": "enum",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 18",
      "validation": {
        "enum": [
          "single_never_married",
          "married",
          "divorced",
          "widowed",
          "separated",
          "annulled"
        ]
      }
    },
    {
      "name": "beneficiaryDateOfCurrentMarriage",
      "label": "Date of beneficiary's current marriage (if currently married)",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 19",
      "requiredWhen": {
        "field": "beneficiaryCurrentMaritalStatus",
        "equals": "married"
      }
    },
    {
      "name": "beneficiaryCurrentMarriagePlaceCity",
      "label": "Place of beneficiary's current marriage — city or town",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 20.a",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "beneficiaryCurrentMarriagePlaceCountry",
      "label": "Place of beneficiary's current marriage — country",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 20.d",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiarySpouse1FamilyName",
      "label": "Beneficiary's spouse (current or most recent) — family name",
      "type": "string",
      "required": false,
      "description": "Simplification: this schema models the beneficiary's current/most recent spouse only. USCIS Form I-130 provides two prior-spouse slots; see VERIFICATION.md.",
      "sourceRef": "Form I-130 Part 4, item 21.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiarySpouse1GivenName",
      "label": "Beneficiary's spouse (current or most recent) — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 21.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiarySpouse1MiddleName",
      "label": "Beneficiary's spouse (current or most recent) — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 21.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiarySpouse1MarriageEndedDate",
      "label": "Date that marriage to this spouse ended (if applicable)",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 22"
    },
    {
      "name": "beneficiaryFamilyPerson1FamilyName",
      "label": "Beneficiary's family — Person 1 — family name",
      "type": "string",
      "required": false,
      "description": "Simplification: this schema models the first of the form's five \"Information About Beneficiary's Family\" person slots (typically the beneficiary's spouse or eldest accompanying child); see VERIFICATION.md.",
      "sourceRef": "Form I-130 Part 4, item 25.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryFamilyPerson1GivenName",
      "label": "Beneficiary's family — Person 1 — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 25.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryFamilyPerson1MiddleName",
      "label": "Beneficiary's family — Person 1 — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 25.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryFamilyPerson1Relationship",
      "label": "Beneficiary's family — Person 1 — relationship to beneficiary",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 26",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryFamilyPerson1DateOfBirth",
      "label": "Beneficiary's family — Person 1 — date of birth",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 27"
    },
    {
      "name": "beneficiaryFamilyPerson1CountryOfBirth",
      "label": "Beneficiary's family — Person 1 — country of birth",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 28",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryEverInUs",
      "label": "Was the beneficiary EVER in the United States?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 45"
    },
    {
      "name": "beneficiaryClassOfAdmission",
      "label": "Beneficiary's class of admission on last arrival",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 46.a",
      "validation": {
        "maxLength": 20
      },
      "requiredWhen": {
        "field": "beneficiaryEverInUs",
        "equals": true
      }
    },
    {
      "name": "beneficiaryI94Number",
      "label": "Beneficiary's Form I-94 Arrival-Departure Record number",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 46.b",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "beneficiaryDateOfArrival",
      "label": "Beneficiary's date of last arrival",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 46.c"
    },
    {
      "name": "beneficiaryAuthorizedStayExpirationDate",
      "label": "Date authorized stay expired/expires, per Form I-94 or I-95",
      "type": "string",
      "required": false,
      "description": "mm/dd/yyyy, or literally \"D/S\" for Duration of Status.",
      "sourceRef": "Form I-130 Part 4, item 46.d",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "name": "beneficiaryPassportNumber",
      "label": "Beneficiary's passport number",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 47",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "beneficiaryTravelDocumentNumber",
      "label": "Beneficiary's travel document number",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 48",
      "validation": {
        "maxLength": 30
      }
    },
    {
      "name": "beneficiaryPassportCountryOfIssuance",
      "label": "Country of issuance for beneficiary's passport or travel document",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 49",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryPassportExpirationDate",
      "label": "Expiration date for beneficiary's passport or travel document",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 50"
    },
    {
      "name": "beneficiaryEverInImmigrationProceedings",
      "label": "Was the beneficiary EVER in immigration proceedings?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Form I-130 Part 4, item 53"
    },
    {
      "name": "beneficiaryImmigrationProceedingsType",
      "label": "Type of immigration proceedings",
      "type": "enum",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 54",
      "validation": {
        "enum": [
          "removal",
          "exclusion_or_deportation",
          "rescission",
          "other_judicial_proceedings"
        ]
      },
      "requiredWhen": {
        "field": "beneficiaryEverInImmigrationProceedings",
        "equals": true
      }
    },
    {
      "name": "beneficiaryImmigrationProceedingsCity",
      "label": "Immigration proceedings — city or town",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 55.a",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "beneficiaryImmigrationProceedingsState",
      "label": "Immigration proceedings — state",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 55.b",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryImmigrationProceedingsDate",
      "label": "Immigration proceedings — date",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 56"
    },
    {
      "name": "beneficiaryNativeLanguageFamilyName",
      "label": "Beneficiary's name in native written language (if it does not use Roman letters) — family name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 57.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryNativeLanguageGivenName",
      "label": "Beneficiary's name in native written language — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 57.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryNativeLanguageMiddleName",
      "label": "Beneficiary's name in native written language — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 57.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressLine1",
      "label": "Beneficiary's foreign address in native written language — street number and name",
      "type": "string",
      "required": false,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressApt",
      "label": "Beneficiary's foreign address in native written language — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressCity",
      "label": "Beneficiary's foreign address in native written language — city or town",
      "type": "string",
      "required": false,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressState",
      "label": "Beneficiary's foreign address in native written language — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressZipCode",
      "label": "Beneficiary's foreign address in native written language — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressProvince",
      "label": "Beneficiary's foreign address in native written language — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressPostalCode",
      "label": "Beneficiary's foreign address in native written language — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "beneficiaryNativeLanguageAddressCountry",
      "label": "Beneficiary's foreign address in native written language — country",
      "type": "string",
      "required": false,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 4, item 58",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherLine1",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — street number and name",
      "type": "string",
      "required": false,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherApt",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherCity",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — city or town",
      "type": "string",
      "required": false,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherState",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherZipCode",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherProvince",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherPostalCode",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherCountry",
      "label": "Last address at which petitioner and beneficiary physically lived together (if filing for a spouse) — country",
      "type": "string",
      "required": false,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 4, item 59",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherDateFrom",
      "label": "Lived together — date from",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 60.a",
      "requiredWhen": {
        "field": "relationshipToBeneficiary",
        "equals": "spouse"
      }
    },
    {
      "name": "beneficiaryLastAddressTogetherDateTo",
      "label": "Lived together — date to",
      "type": "string",
      "required": false,
      "description": "mm/dd/yyyy, or \"PRESENT\" if still living together.",
      "sourceRef": "Form I-130 Part 4, item 60.b",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "name": "beneficiaryApplicationType",
      "label": "Will the beneficiary apply for adjustment of status in the United States, or an immigrant visa abroad?",
      "type": "enum",
      "required": true,
      "description": "Select only one option — the form instructs petitioners not to complete both item 61 and item 62.",
      "sourceRef": "Form I-130 Part 4, items 61-62",
      "validation": {
        "enum": [
          "adjustment_of_status",
          "consular_processing"
        ]
      }
    },
    {
      "name": "beneficiaryAdjustmentOfStatusUscisOfficeCity",
      "label": "USCIS office where the beneficiary will apply for adjustment of status — city or town",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 61.a",
      "validation": {
        "maxLength": 80
      },
      "requiredWhen": {
        "field": "beneficiaryApplicationType",
        "equals": "adjustment_of_status"
      }
    },
    {
      "name": "beneficiaryAdjustmentOfStatusUscisOfficeState",
      "label": "USCIS office where the beneficiary will apply for adjustment of status — state",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 61.b",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryConsularPostCity",
      "label": "U.S. Embassy or Consulate where the beneficiary will apply for an immigrant visa — city or town",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 62.a",
      "validation": {
        "maxLength": 80
      },
      "requiredWhen": {
        "field": "beneficiaryApplicationType",
        "equals": "consular_processing"
      }
    },
    {
      "name": "beneficiaryConsularPostCountry",
      "label": "U.S. Embassy or Consulate where the beneficiary will apply for an immigrant visa — country",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 62.b",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "beneficiaryConsularPostProvince",
      "label": "U.S. Embassy or Consulate where the beneficiary will apply for an immigrant visa — province",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 4, item 62.c",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerEverFiledPetitionForBeneficiaryOrOtherAlien",
      "label": "Have you EVER previously filed a petition for this beneficiary or any other alien?",
      "type": "boolean",
      "required": true,
      "sourceRef": "Form I-130 Part 5, item 1"
    },
    {
      "name": "priorPetitionBeneficiaryFamilyName",
      "label": "Prior petition — beneficiary family name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 2.a",
      "validation": {
        "maxLength": 100
      },
      "requiredWhen": {
        "field": "petitionerEverFiledPetitionForBeneficiaryOrOtherAlien",
        "equals": true
      }
    },
    {
      "name": "priorPetitionBeneficiaryGivenName",
      "label": "Prior petition — beneficiary given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 2.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "priorPetitionBeneficiaryMiddleName",
      "label": "Prior petition — beneficiary middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 2.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "priorPetitionDateFiled",
      "label": "Prior petition — date filed",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 4"
    },
    {
      "name": "priorPetitionResult",
      "label": "Prior petition — result (for example, approved, denied, withdrawn)",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 5",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "relative1FamilyName",
      "label": "Other relative for whom you are also submitting a separate petition — family name",
      "type": "string",
      "required": false,
      "description": "Simplification: this schema models one additional relative slot; the form provides a second (\"Relative 2\"); see VERIFICATION.md.",
      "sourceRef": "Form I-130 Part 5, item 6.a",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "relative1GivenName",
      "label": "Other relative — given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 6.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "relative1MiddleName",
      "label": "Other relative — middle name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 6.c",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "relative1Relationship",
      "label": "Other relative — relationship to petitioner",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 5, item 7",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "petitionerCanReadEnglish",
      "label": "I can read and understand English, and have read and understand every question, instruction, and answer on this petition",
      "type": "boolean",
      "required": true,
      "description": "Select the box for either this item or petitionerUsedInterpreter, per the form's Part 6 instructions.",
      "sourceRef": "Form I-130 Part 6, item 1.a"
    },
    {
      "name": "petitionerUsedInterpreter",
      "label": "An interpreter read this petition to me in a language in which I am fluent",
      "type": "boolean",
      "required": true,
      "sourceRef": "Form I-130 Part 6, item 1.b"
    },
    {
      "name": "petitionerInterpreterLanguage",
      "label": "Language in which the interpreter read this petition to the petitioner",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 6, item 1.b",
      "validation": {
        "maxLength": 60
      },
      "requiredWhen": {
        "field": "petitionerUsedInterpreter",
        "equals": true
      }
    },
    {
      "name": "petitionerUsedPreparer",
      "label": "A preparer, at my request, prepared this petition based on information I provided or authorized",
      "type": "boolean",
      "required": true,
      "sourceRef": "Form I-130 Part 6, item 2"
    },
    {
      "name": "petitionerDaytimePhoneNumber",
      "label": "Petitioner's daytime telephone number",
      "type": "string",
      "required": true,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format.",
      "sourceRef": "Form I-130 Part 6, item 3",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "petitionerMobilePhoneNumber",
      "label": "Petitioner's mobile telephone number, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format.",
      "sourceRef": "Form I-130 Part 6, item 4",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "petitionerEmail",
      "label": "Petitioner's email address, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 6, item 5",
      "validation": {
        "maxLength": 160
      }
    },
    {
      "name": "petitionerSignatureDate",
      "label": "Date of petitioner's signature",
      "type": "date",
      "required": true,
      "sourceRef": "Form I-130 Part 6, item 6.b"
    },
    {
      "name": "interpreterFamilyName",
      "label": "Interpreter's family name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 7, item 1.a",
      "validation": {
        "maxLength": 100
      },
      "requiredWhen": {
        "field": "petitionerUsedInterpreter",
        "equals": true
      }
    },
    {
      "name": "interpreterGivenName",
      "label": "Interpreter's given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 7, item 1.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "interpreterBusinessOrOrganizationName",
      "label": "Interpreter's business or organization name, if any",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 7, item 2",
      "validation": {
        "maxLength": 150
      }
    },
    {
      "name": "interpreterAddressLine1",
      "label": "Interpreter's mailing address — street number and name",
      "type": "string",
      "required": false,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      }
    },
    {
      "name": "interpreterAddressApt",
      "label": "Interpreter's mailing address — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "interpreterAddressCity",
      "label": "Interpreter's mailing address — city or town",
      "type": "string",
      "required": false,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "interpreterAddressState",
      "label": "Interpreter's mailing address — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "interpreterAddressZipCode",
      "label": "Interpreter's mailing address — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "interpreterAddressProvince",
      "label": "Interpreter's mailing address — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "interpreterAddressPostalCode",
      "label": "Interpreter's mailing address — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "interpreterAddressCountry",
      "label": "Interpreter's mailing address — country",
      "type": "string",
      "required": false,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 7, item 3",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "interpreterDaytimePhoneNumber",
      "label": "Interpreter's daytime telephone number",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format. Required when petitionerUsedInterpreter is true.",
      "sourceRef": "Form I-130 Part 7, item 4",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "interpreterMobilePhoneNumber",
      "label": "Interpreter's mobile telephone number, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format.",
      "sourceRef": "Form I-130 Part 7, item 5",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "interpreterEmail",
      "label": "Interpreter's email address, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 7, item 6",
      "validation": {
        "maxLength": 160
      }
    },
    {
      "name": "interpreterSignatureDate",
      "label": "Date of interpreter's signature",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 7, item 7.b",
      "requiredWhen": {
        "field": "petitionerUsedInterpreter",
        "equals": true
      }
    },
    {
      "name": "preparerFamilyName",
      "label": "Preparer's family name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 8, item 1.a",
      "validation": {
        "maxLength": 100
      },
      "requiredWhen": {
        "field": "petitionerUsedPreparer",
        "equals": true
      }
    },
    {
      "name": "preparerGivenName",
      "label": "Preparer's given name",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 8, item 1.b",
      "validation": {
        "maxLength": 100
      }
    },
    {
      "name": "preparerBusinessOrOrganizationName",
      "label": "Preparer's business or organization name, if any",
      "type": "string",
      "required": false,
      "sourceRef": "Form I-130 Part 8, item 2",
      "validation": {
        "maxLength": 150
      }
    },
    {
      "name": "preparerAddressLine1",
      "label": "Preparer's mailing address — street number and name",
      "type": "string",
      "required": false,
      "description": "Street number and name.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "minLength": 1,
        "maxLength": 120
      }
    },
    {
      "name": "preparerAddressApt",
      "label": "Preparer's mailing address — apartment/suite/floor",
      "type": "string",
      "required": false,
      "description": "If applicable.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 20
      }
    },
    {
      "name": "preparerAddressCity",
      "label": "Preparer's mailing address — city or town",
      "type": "string",
      "required": false,
      "description": "City or town component of the address.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 80
      }
    },
    {
      "name": "preparerAddressState",
      "label": "Preparer's mailing address — state",
      "type": "string",
      "required": false,
      "description": "US state/territory postal abbreviation for a U.S. address; leave blank for a foreign address (use the matching Province field).",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "preparerAddressZipCode",
      "label": "Preparer's mailing address — ZIP code",
      "type": "string",
      "required": false,
      "description": "Required for a U.S. address.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "preparerAddressProvince",
      "label": "Preparer's mailing address — province",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "preparerAddressPostalCode",
      "label": "Preparer's mailing address — postal code",
      "type": "string",
      "required": false,
      "description": "For a foreign address.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 15
      }
    },
    {
      "name": "preparerAddressCountry",
      "label": "Preparer's mailing address — country",
      "type": "string",
      "required": false,
      "description": "Country component of the address.",
      "sourceRef": "Form I-130 Part 8, item 3",
      "validation": {
        "maxLength": 60
      }
    },
    {
      "name": "preparerDaytimePhoneNumber",
      "label": "Preparer's daytime telephone number",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format. Required when petitionerUsedPreparer is true.",
      "sourceRef": "Form I-130 Part 8, item 4",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "preparerMobilePhoneNumber",
      "label": "Preparer's mobile telephone number, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data. In international E.164 format.",
      "sourceRef": "Form I-130 Part 8, item 5",
      "validation": {
        "pattern": "^\\+[1-9][0-9]{1,14}$"
      }
    },
    {
      "name": "preparerEmail",
      "label": "Preparer's email address, if any",
      "type": "string",
      "required": false,
      "description": "Personal identifier; handle as sensitive data.",
      "sourceRef": "Form I-130 Part 8, item 6",
      "validation": {
        "maxLength": 160
      }
    },
    {
      "name": "preparerIsAttorneyOrAccreditedRepresentative",
      "label": "Is the preparer an attorney or accredited representative?",
      "type": "boolean",
      "required": false,
      "sourceRef": "Form I-130 Part 8, item 7.a",
      "requiredWhen": {
        "field": "petitionerUsedPreparer",
        "equals": true
      }
    },
    {
      "name": "preparerRepresentationExtendsBeyondPreparation",
      "label": "Does the preparer's representation of the petitioner extend beyond preparation of this petition?",
      "type": "boolean",
      "required": false,
      "description": "If true, the preparer may need to submit Form G-28, Notice of Entry of Appearance as Attorney or Accredited Representative, with this petition.",
      "sourceRef": "Form I-130 Part 8, item 7.b",
      "requiredWhen": {
        "field": "preparerIsAttorneyOrAccreditedRepresentative",
        "equals": true
      }
    },
    {
      "name": "preparerSignatureDate",
      "label": "Date of preparer's signature",
      "type": "date",
      "required": false,
      "sourceRef": "Form I-130 Part 8, item 8.b",
      "requiredWhen": {
        "field": "petitionerUsedPreparer",
        "equals": true
      }
    }
  ],
  "steps": [
    {
      "id": "relationship",
      "title": "Relationship to the beneficiary",
      "fields": [
        "relationshipToBeneficiary",
        "childOrParentRelationshipType",
        "petitionerGainedStatusThroughAdoption",
        "beneficiarySiblingRelatedByAdoption"
      ],
      "next": "petitioner_identity"
    },
    {
      "id": "petitioner_identity",
      "title": "Information about the petitioner",
      "fields": [
        "petitionerGainedStatusThroughAdoption",
        "petitionerAlienRegistrationNumber",
        "petitionerUscisOnlineAccountNumber",
        "petitionerSsn",
        "petitionerFamilyName",
        "petitionerGivenName",
        "petitionerMiddleName",
        "petitionerOtherNamesFamilyName",
        "petitionerOtherNamesGivenName",
        "petitionerOtherNamesMiddleName",
        "petitionerCityOfBirth",
        "petitionerCountryOfBirth",
        "petitionerDateOfBirth",
        "petitionerSex",
        "petitionerMailingAddressInCareOfName",
        "petitionerMailingAddressLine1",
        "petitionerMailingAddressApt",
        "petitionerMailingAddressCity",
        "petitionerMailingAddressState",
        "petitionerMailingAddressZipCode",
        "petitionerMailingAddressProvince",
        "petitionerMailingAddressPostalCode",
        "petitionerMailingAddressCountry",
        "petitionerMailingSameAsPhysical",
        "petitionerPhysicalAddressLine1",
        "petitionerPhysicalAddressApt",
        "petitionerPhysicalAddressCity",
        "petitionerPhysicalAddressState",
        "petitionerPhysicalAddressZipCode",
        "petitionerPhysicalAddressProvince",
        "petitionerPhysicalAddressPostalCode",
        "petitionerPhysicalAddressCountry",
        "petitionerNumberOfMarriages",
        "petitionerCurrentMaritalStatus",
        "petitionerDateOfCurrentMarriage",
        "petitionerCurrentMarriagePlaceCity",
        "petitionerCurrentMarriagePlaceState",
        "petitionerCurrentMarriagePlaceProvince",
        "petitionerCurrentMarriagePlaceCountry",
        "petitionerSpouse1FamilyName",
        "petitionerSpouse1GivenName",
        "petitionerSpouse1MiddleName",
        "petitionerSpouse1MarriageEndedDate",
        "petitionerParent1FamilyName",
        "petitionerParent1GivenName",
        "petitionerParent1MiddleName",
        "petitionerParent1DateOfBirth",
        "petitionerParent1CountryOfBirth",
        "petitionerParent2FamilyName",
        "petitionerParent2GivenName",
        "petitionerParent2MiddleName",
        "petitionerParent2DateOfBirth",
        "petitionerParent2CountryOfBirth",
        "petitionerCitizenshipBasis",
        "petitionerCitizenshipAcquiredThrough",
        "petitionerHasCertificateOfNaturalizationOrCitizenship",
        "petitionerCertificateNumber",
        "petitionerCertificatePlaceOfIssuance",
        "petitionerCertificateDateOfIssuance",
        "petitionerClassOfAdmission",
        "petitionerDateOfAdmission",
        "petitionerPlaceOfAdmissionCity",
        "petitionerPlaceOfAdmissionState",
        "petitionerGainedLprThroughMarriage",
        "petitionerEthnicity",
        "petitionerRace",
        "petitionerHeightFeet",
        "petitionerHeightInches",
        "petitionerWeightPounds",
        "petitionerEyeColor",
        "petitionerHairColor"
      ],
      "next": "petitioner_biographic"
    },
    {
      "id": "petitioner_biographic",
      "title": "Petitioner's biographic information",
      "fields": [
        "petitionerEthnicity",
        "petitionerRace",
        "petitionerHeightFeet",
        "petitionerHeightInches",
        "petitionerWeightPounds",
        "petitionerEyeColor",
        "petitionerHairColor"
      ],
      "next": "beneficiary_information"
    },
    {
      "id": "beneficiary_information",
      "title": "Information about the beneficiary",
      "fields": [
        "beneficiarySiblingRelatedByAdoption",
        "beneficiaryAlienRegistrationNumber",
        "beneficiaryUscisOnlineAccountNumber",
        "beneficiarySsn",
        "beneficiaryFamilyName",
        "beneficiaryGivenName",
        "beneficiaryMiddleName",
        "beneficiaryOtherNamesFamilyName",
        "beneficiaryOtherNamesGivenName",
        "beneficiaryOtherNamesMiddleName",
        "beneficiaryCityOfBirth",
        "beneficiaryCountryOfBirth",
        "beneficiaryDateOfBirth",
        "beneficiarySex",
        "beneficiaryEverFiledForByOthers",
        "beneficiaryPhysicalAddressLine1",
        "beneficiaryPhysicalAddressApt",
        "beneficiaryPhysicalAddressCity",
        "beneficiaryPhysicalAddressState",
        "beneficiaryPhysicalAddressZipCode",
        "beneficiaryPhysicalAddressProvince",
        "beneficiaryPhysicalAddressPostalCode",
        "beneficiaryPhysicalAddressCountry",
        "beneficiaryDaytimePhoneNumber",
        "beneficiaryMobilePhoneNumber",
        "beneficiaryEmail",
        "beneficiaryNumberOfMarriages",
        "beneficiaryCurrentMaritalStatus",
        "beneficiaryDateOfCurrentMarriage",
        "beneficiaryCurrentMarriagePlaceCity",
        "beneficiaryCurrentMarriagePlaceCountry",
        "beneficiarySpouse1FamilyName",
        "beneficiarySpouse1GivenName",
        "beneficiarySpouse1MiddleName",
        "beneficiarySpouse1MarriageEndedDate",
        "beneficiaryFamilyPerson1FamilyName",
        "beneficiaryFamilyPerson1GivenName",
        "beneficiaryFamilyPerson1MiddleName",
        "beneficiaryFamilyPerson1Relationship",
        "beneficiaryFamilyPerson1DateOfBirth",
        "beneficiaryFamilyPerson1CountryOfBirth",
        "beneficiaryEverInUs",
        "beneficiaryClassOfAdmission",
        "beneficiaryI94Number",
        "beneficiaryDateOfArrival",
        "beneficiaryAuthorizedStayExpirationDate",
        "beneficiaryPassportNumber",
        "beneficiaryTravelDocumentNumber",
        "beneficiaryPassportCountryOfIssuance",
        "beneficiaryPassportExpirationDate",
        "beneficiaryEverInImmigrationProceedings",
        "beneficiaryImmigrationProceedingsType",
        "beneficiaryImmigrationProceedingsCity",
        "beneficiaryImmigrationProceedingsState",
        "beneficiaryImmigrationProceedingsDate",
        "beneficiaryNativeLanguageFamilyName",
        "beneficiaryNativeLanguageGivenName",
        "beneficiaryNativeLanguageMiddleName",
        "beneficiaryNativeLanguageAddressLine1",
        "beneficiaryNativeLanguageAddressApt",
        "beneficiaryNativeLanguageAddressCity",
        "beneficiaryNativeLanguageAddressState",
        "beneficiaryNativeLanguageAddressZipCode",
        "beneficiaryNativeLanguageAddressProvince",
        "beneficiaryNativeLanguageAddressPostalCode",
        "beneficiaryNativeLanguageAddressCountry",
        "beneficiaryLastAddressTogetherLine1",
        "beneficiaryLastAddressTogetherApt",
        "beneficiaryLastAddressTogetherCity",
        "beneficiaryLastAddressTogetherState",
        "beneficiaryLastAddressTogetherZipCode",
        "beneficiaryLastAddressTogetherProvince",
        "beneficiaryLastAddressTogetherPostalCode",
        "beneficiaryLastAddressTogetherCountry",
        "beneficiaryLastAddressTogetherDateFrom",
        "beneficiaryLastAddressTogetherDateTo",
        "beneficiaryApplicationType",
        "beneficiaryAdjustmentOfStatusUscisOfficeCity",
        "beneficiaryAdjustmentOfStatusUscisOfficeState",
        "beneficiaryConsularPostCity",
        "beneficiaryConsularPostCountry",
        "beneficiaryConsularPostProvince"
      ],
      "next": "other_information"
    },
    {
      "id": "other_information",
      "title": "Other information",
      "fields": [
        "petitionerEverFiledPetitionForBeneficiaryOrOtherAlien",
        "priorPetitionBeneficiaryFamilyName",
        "priorPetitionBeneficiaryGivenName",
        "priorPetitionBeneficiaryMiddleName",
        "priorPetitionDateFiled",
        "priorPetitionResult",
        "relative1FamilyName",
        "relative1GivenName",
        "relative1MiddleName",
        "relative1Relationship"
      ],
      "next": "petitioner_statement"
    },
    {
      "id": "petitioner_statement",
      "title": "Petitioner's statement, contact information, and signature",
      "fields": [
        "petitionerCanReadEnglish",
        "petitionerUsedInterpreter",
        "petitionerInterpreterLanguage",
        "petitionerUsedPreparer",
        "petitionerDaytimePhoneNumber",
        "petitionerMobilePhoneNumber",
        "petitionerEmail",
        "petitionerSignatureDate"
      ],
      "next": "interpreter_and_preparer"
    },
    {
      "id": "interpreter_and_preparer",
      "title": "Interpreter and preparer (if used)",
      "fields": [
        "interpreterFamilyName",
        "interpreterGivenName",
        "interpreterBusinessOrOrganizationName",
        "interpreterAddressLine1",
        "interpreterAddressApt",
        "interpreterAddressCity",
        "interpreterAddressState",
        "interpreterAddressZipCode",
        "interpreterAddressProvince",
        "interpreterAddressPostalCode",
        "interpreterAddressCountry",
        "interpreterDaytimePhoneNumber",
        "interpreterMobilePhoneNumber",
        "interpreterEmail",
        "interpreterSignatureDate",
        "preparerFamilyName",
        "preparerGivenName",
        "preparerBusinessOrOrganizationName",
        "preparerAddressLine1",
        "preparerAddressApt",
        "preparerAddressCity",
        "preparerAddressState",
        "preparerAddressZipCode",
        "preparerAddressProvince",
        "preparerAddressPostalCode",
        "preparerAddressCountry",
        "preparerDaytimePhoneNumber",
        "preparerMobilePhoneNumber",
        "preparerEmail",
        "preparerIsAttorneyOrAccreditedRepresentative",
        "preparerRepresentationExtendsBeyondPreparation",
        "preparerSignatureDate"
      ]
    }
  ]
}
