{
  "evidence": {
    "verifiedOn": "2026-10-28",
    "generatorCommit": "324e209eec81516e949435134864f2851696596c",
    "sourceSha256": "0e386e1d93dda1b56c729b00e0c7508c4761518de7f6a3d948c19f270878803c",
    "packageSha256": "d90d95b7f2034f2b7df6d85e28c208c22decd36175aa9e4a5030ce8d6dfbdcae",
    "sourceFileCount": 4,
    "sourceViews": 1,
    "mappedFields": [
      "Title",
      "NeededBy",
      "RequiresApproval"
    ],
    "generatedFileCount": 19,
    "cancelFormula": "ResetForm(RequestForm); Exit()",
    "verified": [
      "Source archive ingestion",
      "Source hash matches downloaded ZIP",
      "Three generated field cards",
      "Cancel formula contains ResetForm and Exit",
      "Generated package ZIP CRC and JSON structure"
    ],
    "notVerified": [
      "Power Apps Studio import",
      "SharePoint connection or save behavior",
      "Tenant permissions",
      "Business acceptance testing"
    ]
  },
  "analysis": {
    "source": {
      "filename": "form-migrator-synthetic-request.zip",
      "sizeBytes": 1685,
      "sourceHash": "0e386e1d93dda1b56c729b00e0c7508c4761518de7f6a3d948c19f270878803c",
      "kind": "zip",
      "extractedArchive": true
    },
    "manifest": {
      "attrs": {
        "name": "Synthetic Request",
        "solutionVersion": "1.0.0.0",
        "requireFullTrust": false
      },
      "defaultView": "Request",
      "files": [
        {
          "name": "schema.xsd",
          "kind": "xsd",
          "existsInArchive": true,
          "properties": {}
        },
        {
          "name": "view.xsl",
          "kind": "xsl",
          "existsInArchive": true,
          "properties": {}
        },
        {
          "name": "template.xml",
          "kind": "xml",
          "existsInArchive": true,
          "properties": {}
        }
      ],
      "views": [
        {
          "name": "Request",
          "transform": "view.xsl",
          "isDefault": true,
          "xmlToEditCount": 0,
          "hasEditing": false,
          "controls": [
            {
              "id": "static-1-synthetic-request",
              "viewName": "Request",
              "sourceFile": "view.xsl",
              "controlType": "StaticText",
              "label": "Synthetic Request",
              "text": "Synthetic Request",
              "order": 265,
              "staticTextStyle": "title",
              "repeating": false
            },
            {
              "id": "TITLE",
              "viewName": "Request",
              "sourceFile": "view.xsl",
              "binding": "my:myFields/my:Title",
              "controlType": "PlainText",
              "sourceControlType": "PlainText",
              "label": "Title",
              "order": 317,
              "choices": [],
              "conditionalSections": [],
              "sectionBinding": "/",
              "sectionName": "/",
              "repeating": false
            },
            {
              "id": "NEEDED_BY",
              "viewName": "Request",
              "sourceFile": "view.xsl",
              "binding": "my:myFields/my:NeededBy",
              "controlType": "DTPicker",
              "sourceControlType": "DTPicker",
              "label": "Needed By",
              "order": 452,
              "choices": [],
              "conditionalSections": [],
              "sectionBinding": "/",
              "sectionName": "/",
              "repeating": false
            },
            {
              "id": "REQUIRES_APPROVAL",
              "viewName": "Request",
              "sourceFile": "view.xsl",
              "binding": "my:myFields/my:RequiresApproval",
              "controlType": "CheckBox",
              "sourceControlType": "CheckBox",
              "label": "Requires Approval",
              "order": 597,
              "choices": [],
              "conditionalSections": [],
              "sectionBinding": "/",
              "sectionName": "/",
              "repeating": false
            },
            {
              "id": "CANCEL",
              "viewName": "Request",
              "sourceFile": "view.xsl",
              "controlType": "Button",
              "sourceControlType": "Button",
              "label": "Cancel",
              "text": "Cancel",
              "order": 757,
              "choices": [],
              "conditionalSections": [],
              "sectionBinding": "/",
              "sourceRuleContext": "/",
              "sectionName": "/",
              "repeating": false,
              "sourceButtonBinding": {
                "version": 1,
                "sourceViewName": "Request",
                "sourceControlId": "CANCEL",
                "ruleSets": [
                  "cancel"
                ],
                "rules": [
                  {
                    "ruleSet": "cancel",
                    "position": 0,
                    "attributes": {
                      "isEnabled": "yes"
                    },
                    "enabled": true,
                    "condition": "",
                    "actions": [
                      {
                        "name": "closeDocumentAction",
                        "attributes": {
                          "promptToSaveChanges": "no"
                        },
                        "text": "",
                        "children": []
                      }
                    ]
                  }
                ],
                "issues": []
              }
            }
          ],
          "visibleBindingCount": 3,
          "repeatingControlCount": 0
        }
      ],
      "documentSchemas": [
        "schema.xsd"
      ],
      "primaryDocumentSchema": "schema.xsd",
      "adapters": [],
      "calculations": [],
      "flags": {
        "codeEvidence": {
          "managedCode": [],
          "script": [],
          "designerMetadataOnly": false
        },
        "isListForm": false,
        "hasManagedCode": false,
        "hasScript": false,
        "hasSampleData": false,
        "browserCompatible": false,
        "requireFullTrust": false
      },
      "sourceEvents": []
    },
    "schemas": [
      {
        "fileName": "schema.xsd",
        "archivePath": "schema.xsd",
        "reachableSchemaPaths": [
          "schema.xsd"
        ],
        "targetNamespace": "urn:form-migrator:synthetic-request",
        "rootElement": "myFields",
        "elementNames": [
          "myFields",
          "Title",
          "NeededBy",
          "RequiresApproval"
        ],
        "repeatingElementNames": [],
        "fieldCount": 3,
        "groupCount": 1,
        "attributeCount": 0,
        "maxDepth": 2,
        "tree": [
          {
            "path": "myFields",
            "name": "myFields",
            "closedChildren": [
              "Title",
              "NeededBy",
              "RequiresApproval"
            ],
            "kind": "group",
            "source": "element",
            "required": true,
            "repeating": false,
            "minOccurs": "1",
            "maxOccurs": "1",
            "enumValues": [],
            "children": [
              {
                "path": "myFields/Title",
                "name": "Title",
                "kind": "field",
                "source": "element",
                "typeName": "string",
                "typeNamespace": "http://www.w3.org/2001/XMLSchema",
                "builtInType": "string",
                "scalarFacets": [],
                "required": true,
                "repeating": false,
                "minOccurs": "1",
                "maxOccurs": "1",
                "enumValues": [],
                "children": []
              },
              {
                "path": "myFields/NeededBy",
                "name": "NeededBy",
                "kind": "field",
                "source": "element",
                "typeName": "date",
                "typeNamespace": "http://www.w3.org/2001/XMLSchema",
                "builtInType": "date",
                "scalarFacets": [],
                "required": false,
                "repeating": false,
                "minOccurs": "0",
                "maxOccurs": "1",
                "enumValues": [],
                "children": []
              },
              {
                "path": "myFields/RequiresApproval",
                "name": "RequiresApproval",
                "kind": "field",
                "source": "element",
                "typeName": "boolean",
                "typeNamespace": "http://www.w3.org/2001/XMLSchema",
                "builtInType": "boolean",
                "scalarFacets": [],
                "required": false,
                "repeating": false,
                "minOccurs": "0",
                "maxOccurs": "1",
                "enumValues": [],
                "children": []
              }
            ]
          }
        ],
        "isPrimary": true
      }
    ],
    "rules": [
      {
        "id": "rule-1",
        "source": "infopath",
        "sourceFile": "manifest.xsf",
        "ruleSetName": "cancel",
        "ruleSetNames": [
          "cancel"
        ],
        "occurrenceCount": 1,
        "caption": "close-document rule",
        "kind": "close-document",
        "support": "partial",
        "actionKinds": [
          "close-document"
        ],
        "actionDetails": [
          "Close form; prompt to save changes: no"
        ],
        "triggerBindings": [
          "Button/control: CANCEL"
        ],
        "assignments": [],
        "notes": [
          "Declarative InfoPath behavior; use the action details below when scaffolding Power Apps formulas.",
          "Found in the InfoPath manifest."
        ]
      }
    ],
    "mediaFiles": [],
    "warnings": [],
    "limitations": []
  },
  "settings": {
    "targetType": "canvas-app",
    "targetSiteUrl": "https://example.invalid/sites/pilot",
    "targetListName": "Requests",
    "targetListUrl": "https://example.invalid/sites/pilot/Lists/Requests",
    "targetListId": "",
    "targetAppName": "Synthetic Request",
    "dataverseTableName": "FormMigratorSyntheticRequest",
    "attachmentMode": "skip",
    "repeatingSectionMode": "json-column",
    "peopleFieldMode": "text-email",
    "namingMode": "safe-api-names",
    "includeFormButtons": true,
    "includeFormImages": true,
    "sharePointIntegrationMode": "replace-existing-form",
    "sharePointFormName": "SharePointForm1",
    "screenLayoutColumns": 2,
    "sharePointResourceTargets": [
      {
        "role": "primary-list",
        "kind": "list",
        "name": "Synthetic Request Records",
        "siteUrl": "",
        "listName": "Synthetic Request Records",
        "listUrl": "",
        "listId": "",
        "source": "detected",
        "required": true,
        "fields": [
          {
            "internalName": "Title",
            "displayName": "Title",
            "required": true,
            "type": "Text"
          },
          {
            "internalName": "NeededBy",
            "displayName": "Needed By",
            "required": false,
            "type": "DateTime"
          },
          {
            "internalName": "RequiresApproval",
            "displayName": "Requires Approval",
            "required": false,
            "type": "Boolean"
          }
        ],
        "sourceAdapterNames": [],
        "notes": [
          "Primary SharePoint list used by the generated Power Apps form data source."
        ],
        "id": "primary-list::syntheticrequestrecords"
      }
    ],
    "sharePointColumnMappings": [
      {
        "sourcePath": "myFields/Title",
        "sourceLabel": "Title",
        "sourceViewLabel": "Title",
        "sourceType": "Text",
        "targetColumnName": "Title",
        "targetInternalName": "Title",
        "targetColumnType": "Single line of text",
        "required": true,
        "repeating": false,
        "choices": [],
        "includeInForm": true,
        "status": "mapped",
        "notes": [],
        "mappingConfidence": 0.95,
        "mappingMethod": "Assumed existing SharePoint column with same field name",
        "mappingSource": "default",
        "targetControlTypeOverride": "",
        "targetFieldNameOverride": "",
        "requiredHandling": "inherit",
        "repeatingStrategy": "inherit",
        "builderNotes": [],
        "sourceUsage": "visible-control",
        "choiceSourceName": "",
        "choiceDisplayField": "",
        "choiceValueField": "",
        "choiceFilterField": "",
        "choiceFilterValue": ""
      },
      {
        "sourcePath": "myFields/NeededBy",
        "sourceLabel": "Needed By",
        "sourceViewLabel": "Needed By",
        "sourceType": "DateTime",
        "targetColumnName": "Needed By",
        "targetInternalName": "NeededBy",
        "targetColumnType": "Date and Time",
        "required": false,
        "repeating": false,
        "choices": [],
        "includeInForm": true,
        "status": "mapped",
        "notes": [
          "The original source view used a date picker control; generate a Power Apps date picker instead of a text input even when schema metadata is text-like."
        ],
        "mappingConfidence": 0.95,
        "mappingMethod": "Assumed existing SharePoint column with same field name",
        "mappingSource": "default",
        "targetControlTypeOverride": "Date picker",
        "targetFieldNameOverride": "",
        "requiredHandling": "inherit",
        "repeatingStrategy": "inherit",
        "builderNotes": [],
        "sourceUsage": "visible-control",
        "choiceSourceName": "",
        "choiceDisplayField": "",
        "choiceValueField": "",
        "choiceFilterField": "",
        "choiceFilterValue": ""
      },
      {
        "sourcePath": "myFields/RequiresApproval",
        "sourceLabel": "Requires Approval",
        "sourceViewLabel": "Requires Approval",
        "sourceType": "Boolean",
        "targetColumnName": "Requires Approval",
        "targetInternalName": "RequiresApproval",
        "targetColumnType": "Yes/No",
        "required": false,
        "repeating": false,
        "choices": [],
        "includeInForm": true,
        "status": "mapped",
        "notes": [
          "The original source view used a checkbox control; generate a selectable Power Apps checkbox instead of a text input even when schema metadata is text-like."
        ],
        "mappingConfidence": 0.95,
        "mappingMethod": "Assumed existing SharePoint column with same field name",
        "mappingSource": "default",
        "targetControlTypeOverride": "Checkbox",
        "targetFieldNameOverride": "",
        "requiredHandling": "inherit",
        "repeatingStrategy": "inherit",
        "builderNotes": [],
        "sourceUsage": "visible-control",
        "choiceSourceName": "",
        "choiceDisplayField": "",
        "choiceValueField": "",
        "choiceFilterField": "",
        "choiceFilterValue": ""
      }
    ],
    "sharePointImportedColumns": []
  },
  "options": {
    "includeBlueprintJson": true,
    "includeSharePointSchemaCsv": true,
    "includeSharePointSchemaJson": true,
    "includeCompatibilityJson": true,
    "includeManualReviewCsv": true,
    "includeRawFileInventory": false,
    "includeSchemaAppendix": false
  },
  "blueprint": {
    "version": 4,
    "schemaVersion": 2,
    "schemaState": "current",
    "schemaUpgradeNotes": [],
    "generatedAt": "2026-10-28T13:26:37.899Z",
    "product": "Form Migrator",
    "source": {
      "fileName": "form-migrator-synthetic-request.zip",
      "packageKind": "zip",
      "extractedArchive": true,
      "formName": "Synthetic Request",
      "defaultView": "Request",
      "isListForm": false,
      "browserCompatible": false,
      "requireFullTrust": false
    },
    "target": {
      "targetType": "canvas-app",
      "targetSiteUrl": "https://example.invalid/sites/pilot",
      "targetListName": "Requests",
      "targetListUrl": "https://example.invalid/sites/pilot/Lists/Requests",
      "targetListId": "",
      "targetAppName": "Synthetic Request",
      "dataverseTableName": "FormMigratorSyntheticRequest",
      "attachmentMode": "skip",
      "repeatingSectionMode": "json-column",
      "peopleFieldMode": "text-email",
      "namingMode": "safe-api-names",
      "includeFormButtons": true,
      "includeFormImages": true,
      "sharePointIntegrationMode": "replace-existing-form",
      "sharePointFormName": "SharePointForm1",
      "screenLayoutColumns": 2,
      "sharePointResourceTargets": [
        {
          "role": "primary-list",
          "kind": "list",
          "name": "Synthetic Request Records",
          "siteUrl": "",
          "listName": "Synthetic Request Records",
          "listUrl": "",
          "listId": "",
          "source": "detected",
          "required": true,
          "fields": [
            {
              "internalName": "Title",
              "displayName": "Title",
              "required": true,
              "type": "Text"
            },
            {
              "internalName": "NeededBy",
              "displayName": "Needed By",
              "required": false,
              "type": "DateTime"
            },
            {
              "internalName": "RequiresApproval",
              "displayName": "Requires Approval",
              "required": false,
              "type": "Boolean"
            }
          ],
          "sourceAdapterNames": [],
          "notes": [
            "Primary SharePoint list used by the generated Power Apps form data source."
          ],
          "id": "primary-list::syntheticrequestrecords"
        }
      ],
      "sharePointColumnMappings": [
        {
          "sourcePath": "myFields/Title",
          "sourceLabel": "Title",
          "sourceViewLabel": "Title",
          "sourceType": "Text",
          "targetColumnName": "Title",
          "targetInternalName": "Title",
          "targetColumnType": "Single line of text",
          "required": true,
          "repeating": false,
          "choices": [],
          "includeInForm": true,
          "status": "mapped",
          "notes": [],
          "mappingConfidence": 0.95,
          "mappingMethod": "Assumed existing SharePoint column with same field name",
          "mappingSource": "default",
          "targetControlTypeOverride": "",
          "targetFieldNameOverride": "",
          "requiredHandling": "inherit",
          "repeatingStrategy": "inherit",
          "builderNotes": [],
          "sourceUsage": "visible-control",
          "choiceSourceName": "",
          "choiceDisplayField": "",
          "choiceValueField": "",
          "choiceFilterField": "",
          "choiceFilterValue": ""
        },
        {
          "sourcePath": "myFields/NeededBy",
          "sourceLabel": "Needed By",
          "sourceViewLabel": "Needed By",
          "sourceType": "DateTime",
          "targetColumnName": "Needed By",
          "targetInternalName": "NeededBy",
          "targetColumnType": "Date and Time",
          "required": false,
          "repeating": false,
          "choices": [],
          "includeInForm": true,
          "status": "mapped",
          "notes": [
            "The original source view used a date picker control; generate a Power Apps date picker instead of a text input even when schema metadata is text-like."
          ],
          "mappingConfidence": 0.95,
          "mappingMethod": "Assumed existing SharePoint column with same field name",
          "mappingSource": "default",
          "targetControlTypeOverride": "Date picker",
          "targetFieldNameOverride": "",
          "requiredHandling": "inherit",
          "repeatingStrategy": "inherit",
          "builderNotes": [],
          "sourceUsage": "visible-control",
          "choiceSourceName": "",
          "choiceDisplayField": "",
          "choiceValueField": "",
          "choiceFilterField": "",
          "choiceFilterValue": ""
        },
        {
          "sourcePath": "myFields/RequiresApproval",
          "sourceLabel": "Requires Approval",
          "sourceViewLabel": "Requires Approval",
          "sourceType": "Boolean",
          "targetColumnName": "Requires Approval",
          "targetInternalName": "RequiresApproval",
          "targetColumnType": "Yes/No",
          "required": false,
          "repeating": false,
          "choices": [],
          "includeInForm": true,
          "status": "mapped",
          "notes": [
            "The original source view used a checkbox control; generate a selectable Power Apps checkbox instead of a text input even when schema metadata is text-like."
          ],
          "mappingConfidence": 0.95,
          "mappingMethod": "Assumed existing SharePoint column with same field name",
          "mappingSource": "default",
          "targetControlTypeOverride": "Checkbox",
          "targetFieldNameOverride": "",
          "requiredHandling": "inherit",
          "repeatingStrategy": "inherit",
          "builderNotes": [],
          "sourceUsage": "visible-control",
          "choiceSourceName": "",
          "choiceDisplayField": "",
          "choiceValueField": "",
          "choiceFilterField": "",
          "choiceFilterValue": ""
        }
      ],
      "sharePointImportedColumns": []
    },
    "summary": {
      "schemaFiles": 1,
      "views": 1,
      "controls": 5,
      "rules": 1,
      "totalFields": 3,
      "totalGroups": 1,
      "totalAttributes": 0,
      "compatibility": {
        "overall": "Moderate",
        "score": 72,
        "migrationConfidence": "Medium",
        "recommendedTarget": "canvas-app",
        "blockers": [],
        "manualReviewItems": [],
        "notes": [],
        "supportedCount": 4,
        "partialCount": 2,
        "manualCount": 0,
        "blockerCount": 0,
        "manualReviewCount": 0
      },
      "screens": 1,
      "sections": 2,
      "mappedControls": 4,
      "manualReviewControls": 1,
      "formulaScaffolds": 2,
      "repeatingSections": 0,
      "mappedColumns": 3,
      "unmappedColumns": 0,
      "excludedColumns": 0,
      "replacementReadinessScore": 72,
      "readinessBand": "standard",
      "builderEffort": "medium"
    },
    "screens": [
      {
        "name": "Request",
        "sourceViewName": "Request",
        "sourceViewNames": [
          "Request"
        ],
        "primaryViewIntent": "edit",
        "layout": "single-form",
        "purpose": "Primary data-entry and review screen.",
        "warnings": [],
        "conversionNotes": [],
        "navigationHints": [],
        "sections": [
          {
            "name": "Primary data",
            "summary": "1 mapped control",
            "sourceViewName": "Request",
            "sourceViewNames": [
              "Request"
            ],
            "role": "primary",
            "notes": [],
            "controls": [
              {
                "id": "static-1-synthetic-request",
                "viewName": "Request",
                "sourceViewName": "Request",
                "kind": "plain-text",
                "support": "supported",
                "label": "Synthetic Request",
                "text": "Synthetic Request",
                "order": 265,
                "staticTextStyle": "title",
                "choices": [],
                "targetControlType": "Label",
                "targetControlTypeOrigin": "auto",
                "targetControlName": "lblSyntheticRequest",
                "sectionName": "Primary data",
                "formulaNotes": [],
                "notes": [],
                "formulas": [],
                "manualReview": false
              }
            ]
          },
          {
            "name": "/",
            "summary": "4 mapped controls",
            "sourceViewName": "Request",
            "sourceViewNames": [
              "Request"
            ],
            "role": "primary",
            "notes": [],
            "controls": [
              {
                "id": "TITLE",
                "viewName": "Request",
                "sourceViewName": "Request",
                "binding": "my:myFields/my:Title",
                "kind": "text",
                "support": "supported",
                "label": "Title",
                "order": 317,
                "sourceControlType": "PlainText",
                "sectionBinding": "/",
                "conditionalSections": [],
                "choices": [],
                "targetControlType": "Text input",
                "targetControlTypeOrigin": "auto",
                "targetControlName": "txtTitle",
                "targetFieldName": "Title",
                "targetColumnName": "Title",
                "targetColumnInternalName": "Title",
                "sectionName": "/",
                "mappingStatus": "mapped",
                "mappingSource": "default",
                "mappingMethod": "Assumed existing SharePoint column with same field name",
                "requiredHandling": "inherit",
                "repeatingStrategy": "inherit",
                "builderNotes": [],
                "formulaNotes": [],
                "notes": [],
                "formulas": [
                  {
                    "id": "TITLE:default",
                    "category": "default",
                    "property": "Default",
                    "trigger": "Evaluated automatically",
                    "formula": "varRecord.Title",
                    "confidence": "high",
                    "rationale": "Seed the generated control with the current record value so edit scenarios behave correctly.",
                    "notes": [
                      "Use the current record value as the default for edit scenarios."
                    ],
                    "sourceRuleIds": [],
                    "manualReview": false
                  },
                  {
                    "id": "required:myFields/Title",
                    "category": "required",
                    "property": "Required",
                    "trigger": "Evaluated automatically",
                    "formula": "true",
                    "confidence": "high",
                    "rationale": "The schema marks this field as required, so the generated app should enforce that requirement before save or submit.",
                    "notes": [
                      "Replace the constant with a conditional rule only if the source form made the requirement conditional.",
                      "Source path: myFields/Title",
                      "Use this with the Title input or validation gate in your save logic."
                    ],
                    "sourceRuleIds": [
                      "required:myFields/Title"
                    ],
                    "manualReview": false
                  },
                  {
                    "id": "TITLE:validation",
                    "category": "validation",
                    "property": "ValidationLabel.Text",
                    "trigger": "Evaluated automatically",
                    "formula": "If(IsBlank(txtTitle.Text), \"Title is required.\", Blank())",
                    "confidence": "medium",
                    "rationale": "Create an inline validation message that mirrors the required-field behavior before submit.",
                    "notes": [
                      "Use a nearby label or error container if the final Power Apps control does not expose a direct validation property."
                    ],
                    "sourceRuleIds": [],
                    "manualReview": false
                  }
                ],
                "manualReview": false
              },
              {
                "id": "NEEDED_BY",
                "viewName": "Request",
                "sourceViewName": "Request",
                "binding": "my:myFields/my:NeededBy",
                "kind": "date-picker",
                "support": "supported",
                "label": "Needed By",
                "order": 452,
                "sourceControlType": "DTPicker",
                "sectionBinding": "/",
                "conditionalSections": [],
                "choices": [],
                "targetControlType": "Date picker",
                "targetControlTypeOrigin": "manual-override",
                "targetControlName": "dteNeededBy",
                "targetFieldName": "NeededBy",
                "targetColumnName": "Needed By",
                "targetColumnInternalName": "NeededBy",
                "sectionName": "/",
                "mappingStatus": "mapped",
                "mappingSource": "default",
                "mappingMethod": "Assumed existing SharePoint column with same field name",
                "requiredHandling": "inherit",
                "repeatingStrategy": "inherit",
                "builderNotes": [],
                "formulaNotes": [
                  "Target control type was manually overridden in Required Settings."
                ],
                "notes": [
                  "Builder override: use Date picker for this binding."
                ],
                "formulas": [
                  {
                    "id": "NEEDED_BY:default",
                    "category": "default",
                    "property": "DefaultDate",
                    "trigger": "Evaluated automatically",
                    "formula": "varRecord.NeededBy",
                    "confidence": "high",
                    "rationale": "Seed the generated control with the current record value so edit scenarios behave correctly.",
                    "notes": [
                      "Use the current record value as the default for edit scenarios."
                    ],
                    "sourceRuleIds": [],
                    "manualReview": false
                  }
                ],
                "manualReview": false
              },
              {
                "id": "REQUIRES_APPROVAL",
                "viewName": "Request",
                "sourceViewName": "Request",
                "binding": "my:myFields/my:RequiresApproval",
                "kind": "checkbox",
                "support": "supported",
                "label": "Requires Approval",
                "order": 597,
                "sourceControlType": "CheckBox",
                "sectionBinding": "/",
                "conditionalSections": [],
                "choices": [],
                "targetControlType": "Checkbox",
                "targetControlTypeOrigin": "manual-override",
                "targetControlName": "chkRequiresApproval",
                "targetFieldName": "RequiresApproval",
                "targetColumnName": "Requires Approval",
                "targetColumnInternalName": "RequiresApproval",
                "sectionName": "/",
                "mappingStatus": "mapped",
                "mappingSource": "default",
                "mappingMethod": "Assumed existing SharePoint column with same field name",
                "requiredHandling": "inherit",
                "repeatingStrategy": "inherit",
                "builderNotes": [],
                "formulaNotes": [
                  "Target control type was manually overridden in Required Settings."
                ],
                "notes": [
                  "Builder override: use Checkbox for this binding."
                ],
                "formulas": [
                  {
                    "id": "REQUIRES_APPROVAL:default",
                    "category": "default",
                    "property": "Default",
                    "trigger": "Evaluated automatically",
                    "formula": "Coalesce(varRecord.RequiresApproval, false)",
                    "confidence": "high",
                    "rationale": "Seed the generated control with the current record value so edit scenarios behave correctly.",
                    "notes": [
                      "Bind the checkbox to the current record boolean value."
                    ],
                    "sourceRuleIds": [],
                    "manualReview": false
                  }
                ],
                "manualReview": false
              },
              {
                "id": "CANCEL",
                "viewName": "Request",
                "sourceViewName": "Request",
                "kind": "button",
                "support": "partial",
                "label": "Cancel",
                "text": "Cancel",
                "order": 757,
                "sourceControlType": "Button",
                "sourceButtonBinding": {
                  "version": 1,
                  "sourceViewName": "Request",
                  "sourceControlId": "CANCEL",
                  "ruleSets": [
                    "cancel"
                  ],
                  "rules": [
                    {
                      "ruleSet": "cancel",
                      "position": 0,
                      "attributes": {
                        "isEnabled": "yes"
                      },
                      "enabled": true,
                      "condition": "",
                      "actions": [
                        {
                          "name": "closeDocumentAction",
                          "attributes": {
                            "promptToSaveChanges": "no"
                          },
                          "text": "",
                          "children": []
                        }
                      ]
                    }
                  ],
                  "issues": []
                },
                "buttonBehavior": {
                  "version": 1,
                  "source": {
                    "version": 1,
                    "sourceViewName": "Request",
                    "sourceControlId": "CANCEL",
                    "ruleSets": [
                      "cancel"
                    ],
                    "rules": [
                      {
                        "ruleSet": "cancel",
                        "position": 0,
                        "attributes": {
                          "isEnabled": "yes"
                        },
                        "enabled": true,
                        "condition": "",
                        "actions": [
                          {
                            "name": "closeDocumentAction",
                            "attributes": {
                              "promptToSaveChanges": "no"
                            },
                            "text": "",
                            "children": []
                          }
                        ]
                      }
                    ],
                    "issues": []
                  },
                  "status": "mapped",
                  "operation": "discard-close",
                  "reason": "Exact source closeDocumentAction with promptToSaveChanges=no; discard edits without submission.",
                  "targetType": "canvas-app"
                },
                "sectionBinding": "/",
                "sourceRuleContext": "/",
                "conditionalSections": [],
                "choices": [],
                "targetControlType": "Button",
                "targetControlTypeOrigin": "auto",
                "targetControlName": "btnCancel",
                "sectionName": "/",
                "formulaNotes": [],
                "notes": [
                  "Review the button action and map it to a Power Fx formula or Navigate() behavior."
                ],
                "formulas": [
                  {
                    "id": "CANCEL:source-button",
                    "category": "expression",
                    "property": "OnSelect",
                    "trigger": "Button OnSelect",
                    "formula": "ResetForm(frmMain); Exit()",
                    "confidence": "high",
                    "rationale": "Exact source closeDocumentAction with promptToSaveChanges=no; discard edits without submission.",
                    "notes": [
                      "Exact view/control binding; source action order and enabled flags retained in buttonBehavior.source."
                    ],
                    "sourceRuleIds": [
                      "cancel:0"
                    ],
                    "manualReview": false
                  }
                ],
                "manualReview": true
              }
            ]
          }
        ]
      }
    ],
    "viewConversionPlan": [
      {
        "sourceViewName": "Request",
        "isDefault": true,
        "intent": "edit",
        "targetKind": "screen",
        "targetScreenName": "Request",
        "clusterName": "Request",
        "overlapWithPrimary": 1,
        "totalControls": 5,
        "uniqueControls": 5,
        "notes": []
      }
    ],
    "dataModel": {
      "sharePointColumns": [
        {
          "sourcePath": "myFields/Title",
          "displayName": "Title",
          "internalName": "Title",
          "sourceType": "Text",
          "columnType": "Single line of text",
          "required": true,
          "repeating": false,
          "choices": [],
          "notes": []
        },
        {
          "sourcePath": "myFields/NeededBy",
          "displayName": "Needed By",
          "internalName": "NeededBy",
          "sourceType": "DateTime",
          "columnType": "Date and Time",
          "required": false,
          "repeating": false,
          "choices": [],
          "notes": [
            "The original source view used a date picker control; generate a Power Apps date picker instead of a text input even when schema metadata is text-like."
          ]
        },
        {
          "sourcePath": "myFields/RequiresApproval",
          "displayName": "Requires Approval",
          "internalName": "RequiresApproval",
          "sourceType": "Boolean",
          "columnType": "Yes/No",
          "required": false,
          "repeating": false,
          "choices": [],
          "notes": [
            "The original source view used a checkbox control; generate a selectable Power Apps checkbox instead of a text input even when schema metadata is text-like."
          ]
        }
      ],
      "columnMappings": [
        {
          "sourcePath": "myFields/Title",
          "sourceLabel": "Title",
          "sourceViewLabel": "Title",
          "sourceType": "Text",
          "targetColumnName": "Title",
          "targetInternalName": "Title",
          "targetColumnType": "Single line of text",
          "required": true,
          "repeating": false,
          "choices": [],
          "includeInForm": true,
          "status": "mapped",
          "notes": [],
          "mappingConfidence": 0.95,
          "mappingMethod": "Assumed existing SharePoint column with same field name",
          "mappingSource": "default",
          "targetControlTypeOverride": "",
          "targetFieldNameOverride": "",
          "requiredHandling": "inherit",
          "repeatingStrategy": "inherit",
          "builderNotes": [],
          "sourceUsage": "visible-control",
          "choiceSourceName": "",
          "choiceDisplayField": "",
          "choiceValueField": "",
          "choiceFilterField": "",
          "choiceFilterValue": ""
        },
        {
          "sourcePath": "myFields/NeededBy",
          "sourceLabel": "Needed By",
          "sourceViewLabel": "Needed By",
          "sourceType": "DateTime",
          "targetColumnName": "Needed By",
          "targetInternalName": "NeededBy",
          "targetColumnType": "Date and Time",
          "required": false,
          "repeating": false,
          "choices": [],
          "includeInForm": true,
          "status": "mapped",
          "notes": [
            "The original source view used a date picker control; generate a Power Apps date picker instead of a text input even when schema metadata is text-like."
          ],
          "mappingConfidence": 0.95,
          "mappingMethod": "Assumed existing SharePoint column with same field name",
          "mappingSource": "default",
          "targetControlTypeOverride": "Date picker",
          "targetFieldNameOverride": "",
          "requiredHandling": "inherit",
          "repeatingStrategy": "inherit",
          "builderNotes": [],
          "sourceUsage": "visible-control",
          "choiceSourceName": "",
          "choiceDisplayField": "",
          "choiceValueField": "",
          "choiceFilterField": "",
          "choiceFilterValue": ""
        },
        {
          "sourcePath": "myFields/RequiresApproval",
          "sourceLabel": "Requires Approval",
          "sourceViewLabel": "Requires Approval",
          "sourceType": "Boolean",
          "targetColumnName": "Requires Approval",
          "targetInternalName": "RequiresApproval",
          "targetColumnType": "Yes/No",
          "required": false,
          "repeating": false,
          "choices": [],
          "includeInForm": true,
          "status": "mapped",
          "notes": [
            "The original source view used a checkbox control; generate a selectable Power Apps checkbox instead of a text input even when schema metadata is text-like."
          ],
          "mappingConfidence": 0.95,
          "mappingMethod": "Assumed existing SharePoint column with same field name",
          "mappingSource": "default",
          "targetControlTypeOverride": "Checkbox",
          "targetFieldNameOverride": "",
          "requiredHandling": "inherit",
          "repeatingStrategy": "inherit",
          "builderNotes": [],
          "sourceUsage": "visible-control",
          "choiceSourceName": "",
          "choiceDisplayField": "",
          "choiceValueField": "",
          "choiceFilterField": "",
          "choiceFilterValue": ""
        }
      ],
      "calculations": [],
      "schemaFiles": [
        {
          "fileName": "schema.xsd",
          "rootElement": "myFields",
          "fieldCount": 3,
          "groupCount": 1,
          "attributeCount": 0,
          "maxDepth": 2
        }
      ]
    },
    "connections": [],
    "rules": [
      {
        "id": "rule-1",
        "source": "infopath",
        "sourceFile": "manifest.xsf",
        "kind": "close-document",
        "support": "partial",
        "caption": "close-document rule",
        "actionDetails": [
          "Close form; prompt to save changes: no"
        ],
        "actionSummaries": [
          "Close form; prompt to save changes: no"
        ],
        "triggerBindings": [
          "Button/control: CANCEL"
        ],
        "assignments": []
      }
    ],
    "formulaScaffolds": [
      {
        "id": "rule-1-CANCEL",
        "sourceRuleId": "rule-1",
        "sourceRuleKind": "close-document",
        "sourceSupport": "partial",
        "sourceFile": "manifest.xsf",
        "sourceCategory": "navigation",
        "viewName": "Request",
        "screenName": "Request",
        "sectionName": "/",
        "targetControlId": "CANCEL",
        "targetControlLabel": "Cancel",
        "selectedTargetType": "canvas-app",
        "targetProperty": "OnSelect / Navigate",
        "trigger": "Button OnSelect",
        "formula": "Navigate(Request, ScreenTransition.None)",
        "confidence": "medium",
        "rationale": "Simple switch-view logic usually becomes Navigate(...) between generated screens.",
        "notes": [
          "Source caption: close-document rule",
          "InfoPath actions: close-document",
          "Source file: manifest.xsf",
          "Generated the Power Apps screen object name Request from the source view Request. Rename the screen if your builder uses a different naming pattern.",
          "Switch-view behavior normally becomes Navigate() between screens or local tab state changes."
        ],
        "variants": [
          {
            "targetType": "canvas-app",
            "targetLabel": "Standalone canvas app",
            "targetProperty": "OnSelect / Navigate",
            "trigger": "Button OnSelect",
            "formula": "Navigate(Request, ScreenTransition.None)",
            "notes": [
              "Generated the Power Apps screen object name Request from the source view Request. Rename the screen if your builder uses a different naming pattern.",
              "Switch-view behavior normally becomes Navigate() between screens or local tab state changes."
            ],
            "translated": true,
            "manualReview": false
          },
          {
            "targetType": "canvas-app-dataverse",
            "targetLabel": "Dataverse-backed canvas app",
            "targetProperty": "OnSelect / Navigate",
            "trigger": "Button OnSelect",
            "formula": "Navigate(Request, ScreenTransition.None)",
            "notes": [
              "Generated the Power Apps screen object name Request from the source view Request. Rename the screen if your builder uses a different naming pattern.",
              "Switch-view behavior normally becomes Navigate() between screens or local tab state changes."
            ],
            "translated": true,
            "manualReview": false
          }
        ],
        "manualReview": true
      },
      {
        "id": "required:myFields/Title",
        "sourceRuleId": "required:myFields/Title",
        "sourceRuleKind": "required-field",
        "sourceSupport": "supported",
        "sourceFile": "schema",
        "sourceCategory": "required",
        "viewName": "Request",
        "screenName": "Request",
        "sectionName": "/",
        "targetControlId": "TITLE",
        "targetControlLabel": "Title",
        "targetBinding": "my:myFields/my:Title",
        "targetFieldName": "Title",
        "selectedTargetType": "canvas-app",
        "targetProperty": "Required",
        "trigger": "Evaluated automatically",
        "formula": "true",
        "confidence": "high",
        "rationale": "The schema marks this field as required, so the generated app should enforce that requirement before save or submit.",
        "notes": [
          "Source path: myFields/Title",
          "Use this with the Title input or validation gate in your save logic."
        ],
        "variants": [
          {
            "targetType": "canvas-app",
            "targetLabel": "Standalone canvas app",
            "targetProperty": "Required",
            "trigger": "Evaluated automatically",
            "formula": "true",
            "notes": [
              "Use this with the Title input or validation gate in your save logic."
            ],
            "translated": true,
            "manualReview": false
          },
          {
            "targetType": "canvas-app-dataverse",
            "targetLabel": "Dataverse-backed canvas app",
            "targetProperty": "DataCard.Required",
            "trigger": "Evaluated automatically",
            "formula": "true",
            "notes": [
              "Set the card for Title as required so the form surfaces validation before submit."
            ],
            "translated": true,
            "manualReview": false
          }
        ],
        "manualReview": false
      }
    ],
    "repeatingSections": [],
    "portfolioTriage": {
      "replacementReadinessScore": 72,
      "readinessBand": "standard",
      "builderEffort": "medium",
      "summary": "Standard candidate: 72/100 readiness with medium estimated builder effort. 100% of included fields are mapped to target SharePoint columns.",
      "mappedColumnRatio": 1,
      "automationCoverageRatio": 0.5,
      "manualReviewCount": 2,
      "blockerCount": 0,
      "metrics": {
        "fields": 3,
        "requiredFields": 1,
        "mappedColumns": 3,
        "unmappedColumns": 0,
        "excludedColumns": 0,
        "controls": 5,
        "manualReviewControls": 1,
        "rules": 1,
        "formulaScaffolds": 2,
        "manualFormulaScaffolds": 1,
        "views": 1,
        "collapsedViews": 0,
        "repeatingSections": 0,
        "manualRepeatingSections": 0,
        "connections": 0,
        "builderOverrides": 2,
        "specialFieldColumns": 0,
        "attachmentControls": 0
      },
      "strengths": [
        "100% of included fields are mapped to target SharePoint columns.",
        "No hard compatibility blockers were reported by the analyzer.",
        "Small form footprint: low field/view/rule counts make this a better candidate for a fast builder pass.",
        "No repeating sections were detected, which keeps the replacement closer to a standard SharePoint EditForm.",
        "2 builder overrides have already been captured, so consultant intent is preserved in the blueprint."
      ],
      "blockers": [],
      "riskFactors": [
        {
          "id": "manual-rule-scaffolds",
          "label": "Rules still requiring manual formula review",
          "severity": "medium",
          "count": 1,
          "scoreImpact": -10,
          "notes": [
            "1 formula scaffold still require manual review."
          ]
        },
        {
          "id": "desktop-only-risk",
          "label": "Browser compatibility not confirmed",
          "severity": "medium",
          "scoreImpact": -8,
          "notes": [
            "Desktop-only or non-browser-confirmed features often increase manual validation effort."
          ]
        },
        {
          "id": "manual-review-controls",
          "label": "Controls requiring manual review",
          "severity": "medium",
          "count": 1,
          "scoreImpact": -6,
          "notes": [
            "1 control are flagged for manual review in the generated blueprint."
          ]
        },
        {
          "id": "strong-column-mapping",
          "label": "Strong column mapping coverage",
          "severity": "info",
          "scoreImpact": 8,
          "notes": [
            "Most included fields already have target columns, reducing builder binding effort."
          ]
        },
        {
          "id": "small-form-footprint",
          "label": "Small form footprint",
          "severity": "info",
          "scoreImpact": 5,
          "notes": [
            "Field, view, and rule counts are all in the low-complexity range."
          ]
        },
        {
          "id": "no-repeating-sections",
          "label": "No repeating sections",
          "severity": "info",
          "scoreImpact": 5,
          "notes": [
            "The data model does not need child-list or JSON-row handling for repeating rows."
          ]
        },
        {
          "id": "no-hard-blockers",
          "label": "No hard blockers detected",
          "severity": "info",
          "scoreImpact": 4,
          "notes": [
            "The compatibility pass did not identify hard blockers."
          ]
        },
        {
          "id": "builder-overrides",
          "label": "Builder overrides captured",
          "severity": "info",
          "count": 2,
          "scoreImpact": 2,
          "notes": [
            "Manual mapping/control/required/repeating decisions are already represented in the export pack."
          ]
        }
      ],
      "recommendedNextActions": [
        "Open the formula scaffold export and validate every manual-review formula before handoff.",
        "Review the override-delta export with the builder so manual intent is preserved during implementation.",
        "Use the score, risk factors, and manual-review checklist to classify this form in the portfolio backlog."
      ],
      "scoreBreakdown": {
        "baseScore": 72,
        "positiveAdjustment": 24,
        "negativeAdjustment": -24,
        "finalScore": 72
      }
    },
    "warnings": [],
    "limitations": [],
    "manualReviewItems": [
      "Cancel: Simple switch-view logic usually becomes Navigate(...) between generated screens.",
      "Request / /: Cancel"
    ],
    "notes": [
      "Recommended target: canvas-app.",
      "Default view: Request.",
      "Browser compatibility not confirmed; review desktop-only features.",
      "No full-trust requirement detected in the current analysis.",
      "This blueprint assumes the SharePoint site, list, and data already exist and generates a standalone canvas app connected to that list.",
      "3 mapped columns, 0 unmapped, 0 excluded from the generated form.",
      "2 fields have explicit builder overrides in the current replacement plan.",
      "Each extracted source view currently maps to its own generated Power Apps screen.",
      "No repeating sections were detected in the current blueprint.",
      "Generated 2 rule-to-formula scaffolds for builder review.",
      "Formula categories: navigation 1, required 1."
    ]
  }
}