{
  "form": "IMM5562",
  "root": "IMM_5562",
  "revision": "2024-07",
  "sha256": "aeb0b9ae7322c847b03429fcf8c05efb595d59f5992bd54b1d67fd0b2bd3d52e",
  "form_namespace": "http://www.xfa.org/schema/xfa-form/2.8/",
  "groups": {
    "applicant": {
      "container": "IMM_5562.Page1.Item2A",
      "row": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}]",
      "fields": {
        "from_date": {
          "path": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}].fromDate",
          "value_type": "date",
          "max_chars": 10,
          "label": "From date (YYYY-MM or YYYY-MM-DD)",
          "label_fr": "Date de début (AAAA-MM ou AAAA-MM-JJ)"
        },
        "to_date": {
          "path": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}].toDate",
          "value_type": "date",
          "max_chars": 10,
          "label": "To date (YYYY-MM or YYYY-MM-DD)",
          "label_fr": "Date de fin (AAAA-MM ou AAAA-MM-JJ)"
        },
        "duration": {
          "path": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}].Duration",
          "value_type": "text",
          "max_chars": 20,
          "label": "Confirmed length of trip (for example 10 days)",
          "label_fr": "Durée confirmée du voyage (par exemple 10 jours)"
        },
        "destination": {
          "path": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}].Destination",
          "value_type": "text",
          "max_chars": 300,
          "label": "Destination city and country",
          "label_fr": "Ville et pays de destination"
        },
        "purpose": {
          "path": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}].PurposeofTravel",
          "value_type": "text",
          "max_chars": 2,
          "label": "Purpose of travel",
          "label_fr": "But du voyage"
        },
        "details": {
          "path": "IMM_5562.Page1.Item2A.PaddedList2A.List2A.s1[{row}].Details",
          "value_type": "text",
          "max_chars": 2000,
          "label": "Details, required for Other",
          "label_fr": "Précisions obligatoires pour Autre"
        }
      },
      "selector": "IMM_5562.Page1.Item2A.Header.CheckBox1",
      "name": null,
      "initial_rows": 3,
      "max_rows": -1
    },
    "spouse": {
      "container": "IMM_5562.Page1.Item2B",
      "row": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}]",
      "fields": {
        "from_date": {
          "path": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}].fromDate",
          "value_type": "date",
          "max_chars": 10,
          "label": "From date (YYYY-MM or YYYY-MM-DD)",
          "label_fr": "Date de début (AAAA-MM ou AAAA-MM-JJ)"
        },
        "to_date": {
          "path": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}].toDate",
          "value_type": "date",
          "max_chars": 10,
          "label": "To date (YYYY-MM or YYYY-MM-DD)",
          "label_fr": "Date de fin (AAAA-MM ou AAAA-MM-JJ)"
        },
        "duration": {
          "path": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}].Duration",
          "value_type": "text",
          "max_chars": 20,
          "label": "Confirmed length of trip (for example 10 days)",
          "label_fr": "Durée confirmée du voyage (par exemple 10 jours)"
        },
        "destination": {
          "path": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}].Destination",
          "value_type": "text",
          "max_chars": 300,
          "label": "Destination city and country",
          "label_fr": "Ville et pays de destination"
        },
        "purpose": {
          "path": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}].PurposeofTravel",
          "value_type": "text",
          "max_chars": 2,
          "label": "Purpose of travel",
          "label_fr": "But du voyage"
        },
        "details": {
          "path": "IMM_5562.Page1.Item2B.PaddedList2B.List2B.s1[{row}].Details",
          "value_type": "text",
          "max_chars": 2000,
          "label": "Details, required for Other",
          "label_fr": "Précisions obligatoires pour Autre"
        }
      },
      "selector": "IMM_5562.Page1.Item2B.Header.CheckBox1",
      "name": "IMM_5562.Page1.Item2B.Header.TextField2",
      "initial_rows": 3,
      "max_rows": -1
    },
    "dependents": {
      "container": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}]",
      "row": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}]",
      "fields": {
        "from_date": {
          "path": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}].fromDate",
          "value_type": "date",
          "max_chars": 10,
          "label": "From date (YYYY-MM or YYYY-MM-DD)",
          "label_fr": "Date de début (AAAA-MM ou AAAA-MM-JJ)"
        },
        "to_date": {
          "path": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}].toDate",
          "value_type": "date",
          "max_chars": 10,
          "label": "To date (YYYY-MM or YYYY-MM-DD)",
          "label_fr": "Date de fin (AAAA-MM ou AAAA-MM-JJ)"
        },
        "duration": {
          "path": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}].Duration",
          "value_type": "text",
          "max_chars": 20,
          "label": "Confirmed length of trip (for example 10 days)",
          "label_fr": "Durée confirmée du voyage (par exemple 10 jours)"
        },
        "destination": {
          "path": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}].Destination",
          "value_type": "text",
          "max_chars": 300,
          "label": "Destination city and country",
          "label_fr": "Ville et pays de destination"
        },
        "purpose": {
          "path": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}].PurposeofTravel",
          "value_type": "text",
          "max_chars": 2,
          "label": "Purpose of travel",
          "label_fr": "But du voyage"
        },
        "details": {
          "path": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].PaddedList2X.List2X.s1[{row}].Details",
          "value_type": "text",
          "max_chars": 2000,
          "label": "Details, required for Other",
          "label_fr": "Précisions obligatoires pour Autre"
        }
      },
      "selector": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].Header.CheckBox1",
      "name": "IMM_5562.Page1.Item2C-Z.Item2X[{dependent}].Header.TextField2",
      "initial_rows": 3,
      "max_rows": -1
    }
  },
  "purposes": {
    "business": "11",
    "tourism": "2",
    "training": "3",
    "studies": "4",
    "visiting_family": "5",
    "visiting_friends": "6",
    "official_diplomatic": "7",
    "medical": "8",
    "transit": "12",
    "cultural_sports": "9",
    "other": "10"
  },
  "purpose_labels": {
    "11": "Business",
    "2": "Tourism",
    "3": "Training",
    "4": "Studies",
    "5": "Visiting family",
    "6": "Visiting friend(s)",
    "7": "Official/Diplomatic visit",
    "8": "Medical reasons",
    "12": "Transit",
    "9": "Cultural/Sports",
    "10": "Other"
  },
  "identity": {
    "family_name": "IMM_5562.Page1.Name.Item1.FamilyName",
    "given_names": "IMM_5562.Page1.Name.Item1.GivenNames"
  },
  "manual": [
    "IMM_5562.Page2.Item3.Signature",
    "IMM_5562.Page2.Item3.SignedDate"
  ],
  "rules": {
    "dates": "Calendar-valid YYYY-MM or YYYY-MM-DD, year >=1900, no future completed travel, chronological range. Keep precision; never invent days. Review trips outside max(reporting date minus10years, eighteenth birthday); never clip.",
    "duration": "Explicit client answer; never derive length from month-only dates.",
    "length": "Template has no maxChars. max_chars are application display/safety limits; never truncate.",
    "rows": "s1 initial3/max=-1; dependent Item2X max=-1. Preserve input order and invalid middle slots.",
    "checkbox": "Did not travel:1; traveled:0. Unknown never writes a declaration.",
    "purpose": "Business11, Transit12, Other10 with details; reviewed separately EN/FR.",
    "preservation": "Incremental fill of datasets/form only. Original signed template, scripts, namespaces and PIs unchanged."
  }
}
