displayBlueprintSummary function
void
displayBlueprintSummary(})
Displays the full resolved Blueprint before any plan is generated
(FR-006). singleSelections/multiSelections are catalog IDs only —
this prints exactly what the Blueprint stores, no presentation text
beyond section labels (FR-020, FR-023).
Implementation
void displayBlueprintSummary(
WizardIo io, {
required String projectName,
required String organization,
required String destination,
required Set<String> targetPlatforms,
required bool gitPreference,
required Map<String, String> singleSelections,
required Map<String, List<String>> multiSelections,
}) {
io.writeLine('');
io.writeLine('=== Section 12/12: Blueprint Summary and Review ===');
io.writeLine(' Project Name: $projectName');
io.writeLine(' Organization: $organization');
io.writeLine(' Destination: $destination');
io.writeLine(' Platforms: ${targetPlatforms.join(', ')}');
io.writeLine(' Git: ${gitPreference ? 'yes' : 'no'}');
final foundationSelections = singleSelections.entries.where(
(entry) => entry.key.startsWith('foundation.'),
);
if (foundationSelections.isNotEmpty) {
io.writeLine(' Application Foundation:');
for (final capabilityId in applicationFoundationCapabilityIds) {
final optionId = singleSelections[capabilityId];
if (optionId != null) io.writeLine(' $capabilityId: $optionId');
}
}
for (final entry in singleSelections.entries.where(
(entry) => !entry.key.startsWith('foundation.'),
)) {
io.writeLine(' ${entry.key}: ${entry.value}');
}
for (final entry in multiSelections.entries) {
io.writeLine(' ${entry.key}: [${entry.value.join(', ')}]');
}
}