# Módulos

## Camada Web (Assets/Web/)
Camada isolada para CRM e operação comercial do hotel/espaço. **Core:** LeadStatus, OpportunityStage (incl. pipeline NewLead→Won/Lost), ProposalRecordStatus, FollowUpPriority, WebSessionDecisionState, CommercialPriority. **Domain:** WebLead, SalesOpportunity (CommercialPriority, SuggestedNextAction), ProposalRecord, SessionRecord (HasImprovementPlan, LastSessionTimestamp; ponte conceptual Quest), FollowUpTask. **Application:** IMockWebDataService, MockWebDataService; ICRMIndicatorsService, CRMIndicatorsService (indicadores: sessão pronta follow-up, alta intenção, proposta em risco, pronta fechamento). **Presentation:** HotelCRMDashboardController (pipeline, indicadores, oportunidade↔sessão Quest, listas), OpportunityPipelineView, OpportunitySessionRelationView, CRMMetricsStripView, LeadListView, OpportunityBoardView, ProposalRecordView, SessionRecordView, FollowUpTaskView; cenas WebDashboard, HotelCRM. **Ponte Quest → CRM (etapa 66):** QuestSessionSnapshot (DTO), QuestSessionToCRMMapper (snapshot → SessionRecord + estágio + indicadores), ApplyQuestSessionToOpportunity (mock), ApplyQuestResultPanel; Bridge: QuestOutcomeToSnapshotAdapter (Quest → snapshot). SessionRecord com OutcomeSummary/EngagementLabel/QualityLabel/ConfidenceLevel; SalesOpportunity com LastQuest*. **Painel Produtor/Prestador (etapa 67):** Assets/Web/Producer/ (Core, Domain, Application, Presentation, Scenes). Modelos ProducerOrder (handoff), ProducerRequirementItem, ProducerExecutionNote, ProducerStatusUpdate; enums ProducerOrderStatus, ProducerRequirementType. UI mock: Pedidos, Escopo/Origem, Requisitos, Status, Observações. Cena ProducerDashboard. Handoff Hotel → Produtor conceptual; produtor isolado do CRM e da Quest. Documentação em **Docs/Web/** (WEB_OVERVIEW, WEB_ARCHITECTURE, WEB_CRM_PIPELINE, WEB_QUEST_BRIDGE, **WEB_PRODUCER**, WEB_MODULES, WEB_ROADMAP).

## Core
- **AppBootstrap**: Ponto de entrada; em Awake lê AppConfig e registra serviços no ServiceRegistry. Anexado ao GameObject "Bootstrap" na cena Bootstrap.unity.
- **AppConfig**: ScriptableObject de configuração global (UseMockServices, MainSceneName, **OpenQuestPresentationOnStartup**). Asset em `Assets/Core/AppConfig.asset`, referenciado pelo AppBootstrap. OpenQuestPresentationOnStartup = true abre direto a QuestPresentation após bootstrap (teste no headset).
- **ServiceRegistry**: Singleton de registro e resolução de serviços (injeção de dependências simples).
- **SceneRouter**: Carregamento e transição entre cenas (LoadScene, LoadMainScene, **LoadQuestPresentationScene**, **QuestPresentationSceneName**).
- **QuestHotspotStoryStep**: Passo da micro-narrativa de hotspot (Id, HotspotId, Title, Summary, SalesMessage, StepOrder, IsUpsellMoment, RelatedGuidedStepId, RelatedSceneStateId, SuggestedFocusSeconds); etapa 49.
- **QuestHotspotComparisonState**: Estado da comparação entre dois hotspots (LeftHotspotId, RightHotspotId, LeftTitle, RightTitle, LeftSalesMessage, RightSalesMessage, BetterForExperience, BetterForUpsell, BetterForClarity, ComparisonSummary, IsComparisonOpen, OpenedBySource); etapa 50.
- **QuestClosingExperienceState**: Estado do fechamento imersivo (IsClosingOpen, RecommendedProposalId, ClosingHeadline, ClosingSummary, PrimaryCTA, SecondaryCTA, SuggestedNextAction, ConfidenceLabel, BudgetConclusion, ExperienceConclusion, OperationalConclusion, IsReadyToClose); etapa 51.
- **QuestCommercialDecisionState**: Enum do estado comercial da decisão (ExplorationOnly, Interested, NeedsFollowUp, ReadyToAdvance, ReadyToClose); etapa 52.
- **QuestCommercialOutcome**: Resultado comercial da sessão Quest (SessionId, RecommendedProposalId, SelectedProposalId, ClosingCTAChosen, SecondaryCTAChosen, FinalDecisionState, SuggestedNextAction, ConfidenceLevel, OutcomeSummary, FollowUpPriority, Notes, Timestamp); etapa 52.
- **QuestSessionInteractionStats**: Estatísticas de interação (GuidedStepsViewed, HotspotsOpened, ComparisonsOpened, ClosingOpened, CTAConfirmations, TotalInteractionCount, EstimatedSessionDurationSeconds); etapa 53.
- **QuestSessionExportPayload**: Payload exportável (SessionId, ProjectId, RecommendedProposalId, SelectedProposalId, FinalDecisionState, ConfirmedCTA, SuggestedNextAction, FollowUpPriority, OutcomeSummary, ClosingSummary, InteractionStats, Timestamp); etapa 53.
- **QuestSessionLocalSnapshot**: Snapshot persistível (SessionId, ProjectId, ActiveProposalId, RuntimeMode, NavigationMode, CurrentGuidedStepIndex, CurrentHotspotIndex, CurrentSceneStateIndex, IsClosingOpen, LastDecisionState, LastConfirmedCTA, HasCommercialOutcome, HasExportPayload, SavedAt); etapa 54.
- **QuestSessionHandoffReport**: Relatório final/handoff (SessionId, ProjectId, RecommendedProposalId, SelectedProposalId, FinalDecisionState, ConfirmedCTA, SuggestedNextAction, FollowUpPriority, OutcomeSummary, ClosingSummary, KeyHotspotsVisited, KeyComparisonsViewed, FinalConfidenceLabel, HandoffNotes, GeneratedAt); etapa 55.
- **QuestSessionShareableSummary**: Resumo compartilhável (SessionId, Title, ExecutiveSummary, RecommendedProposalLabel, SelectedProposalLabel, FinalDecisionLabel, ConfirmedCTALabel, SuggestedNextActionLabel, FollowUpPriorityLabel, KeyHighlights, KeyRisks, ShareableText, GeneratedAt); etapa 56.
- **QuestSessionQualityAssessment**: Avaliação de qualidade/diagnóstico (SessionId, PresentationQualityScore, CommercialClarityScore, InteractionQualityScore, DecisionReadinessScore, EngagementContributionScore, Strengths, Weaknesses, ImprovementSuggestions, QualityLabel, GeneratedAt); etapa 60.
- **QuestSessionImprovementRecommendation**: Recomendação de melhoria (RecommendationId, Category, Priority, Title, Summary, SuggestedAction, RelatedArea, ExpectedImpact, IsBlockingIssue); etapa 61.
- **QuestSessionImprovementPlan**: Plano de melhorias (SessionId, Recommendations, TopPriorityRecommendation, ImprovementSummary, GeneratedAt); etapa 61.
- **QuestPresentationPresetType**: Tipo de preset (QuickPitch, GuidedSales, PremiumShowcase, ComparisonMode, ExecutiveReview); etapa 62.
- **QuestPresentationPreset**: Preset de apresentação (PresetId, Name, Description, PresetType, RecommendedUseCase, PrioritizedSections, SkipOptionalSections, DefaultNavigationMode, DefaultAimingMode, DefaultConfirmationMode, EmphasizeHotspots, EmphasizeComparison, EmphasizeClosing, EstimatedDurationMinutes); etapa 62.
- **QuestPresentationOnboardingState**: Estado do onboarding (IsOnboardingOpen, SessionTitle, ProposalLabel, PresetLabel, RuntimeModeLabel, PrimaryGoal, InteractionHints, EstimatedDurationMinutes, IsReadyToStart, LastOpenedAt); etapa 63.
- **QuestHotspotContextState**: Estado contextual de hotspot (HotspotId, IsContextOpen, ContextTitle, ContextSummary, SalesMessage, RelatedGuidedStepId, RelatedSceneStateId, IsPremiumUpsell, PriorityLevel, OpenedBySource; **StorySteps**, **CurrentStoryStepIndex**, **IsStoryActive**, **CurrentStoryStep**); exposto na sessão como CurrentHotspotContext (etapas 48–49).
- **QuestPresentationSession**: Estado da sessão de apresentação no Quest (Proposal, MRPlan, GuidedSteps, Hotspots, SceneStates, DecisionSummary, **NavigationMode**, **CurrentGuidedStepIndex**, CurrentHotspotIndex, CurrentSceneStateIndex, **IsPresentationReady**, **RuntimeReadiness**, **FocusedTargetType**, **IsInteractionModeActive**, **RuntimeMode**, **IsXRActive**, **IsFallbackActive**, **XRInitStatus**, **XRInputStatus**, **LastXRRaycastHit**, **XRRaycastActive**, **ConfirmationMode**, **CurrentHoverState**, **LastConfirmationTargetId**, **DetectedTargetId**, **ResolvedTargetId**, **ResolvedTargetSourceMode**, **StickinessAppliedLastFrame**, **AimingMode**, **GazeLikeState**, **CurrentTargetFromGazeLike**; **CurrentHotspotContext**, **HasHotspotContextOpen** (etapas 48–49; contexto com StorySteps, CurrentStoryStepIndex, IsStoryActive); **CurrentHotspotComparison**, **HasHotspotComparisonOpen** (etapa 50); **CurrentClosingState**, **HasClosingOpen**, **LastClosingAction** (etapa 51); **CurrentCommercialOutcome**, **LastConfirmedCTA**, **LastDecisionState** (etapa 52); **CurrentExportPayload**, **LastExportTimestamp**, **SessionStartedAtUtc**, **HotspotContextOpenCount**, **ComparisonOpenCount**, **ClosingOpenCount**, **CTAConfirmationCount** (etapa 53); **CurrentLocalSnapshot**, **LastRestoreTimestamp**, **RestorableSnapshotAvailable** (etapa 54); **CurrentHandoffReport**, **LastHandoffGeneratedAt**, **HasGeneratedHandoffReport** (etapa 55); **CurrentShareableSummary**, **LastShareableSummaryGeneratedAt**, **HasShareableSummary** (etapa 56); **CurrentQualityAssessment**, **LastQualityAssessmentGeneratedAt**, **HasQualityAssessment** (etapa 60); **CurrentImprovementPlan**, **LastImprovementPlanGeneratedAt**, **HasImprovementPlan** (etapa 61); **CurrentPresentationPreset**, **LastAppliedPresentationPresetAt**, **HasPresentationPreset** (etapa 62); **CurrentOnboardingState**, **HasSeenOnboarding**, **IsOnboardingOpen** (etapa 63); **RecommendationSummary**; propriedades CurrentStep, CurrentHotspot, CurrentSceneState, Progress). **QuestPresentationNavigationMode** (Guided, Manual, FocusedHotspot). **QuestPresentationFocusTargetType** (GuidedStepPanel, HotspotPanel, SceneStatePanel, ProgressPanel, ActionPanel). **QuestRuntimeReadinessStatus** (IsBuildReady, HasPresentationData, HasFallbackMode, HasNavigationControls, Notes). **QuestPointableTarget** (TargetId, TargetType, WorldAnchorHint, HoverHint, SelectionHint, IsInteractable, RelatedSelectableTargetId). **QuestPointableTargetType** (Panel, HotspotMarker, ActionTarget, NavigationTarget, InfoTarget). **QuestPointerSourceMode** (FocusDriven, CenterScreenSimulated, ManualCycleAssisted). **QuestSimulatedPointerHit** (TargetId, TargetType, HitScore, IsInteractable, HitHint, SourceMode). **QuestPresentationInputCommand** (CommandType, Source, Timestamp, ContextHint), **QuestPresentationInputCommandType**, **QuestPresentationInputSourceType**, **IQuestPresentationInputDispatcher** (Dispatch, CurrentSource, GetLastCommands, SetCurrentSource). **QuestPresentationRuntimeMode** (EditorFallback, SimulatedXR, RealXR). **QuestXRRuntimeStatus** (RuntimeMode, IsXRActive, IsFallbackActive, XRInitMessage). **QuestXRInputMode** (None, RuntimeFallback, XRControllerPrimary, XRControllerSecondary, FutureHandTracking, FutureGaze). **QuestXRInputStatus** (IsXRInputAvailable, IsXRInputEnabled, ActiveXRInputMode, LastXRAction, IsBridgeInFallbackOnly, Notes). **IQuestXRInputBridge** (GetStatus, SetDispatcher, SubmitXRCommand, ProcessFrame). **QuestXRRaycastHitResult** (HitObjectName, HitTargetId, HitTargetType, HitDistance, IsValidTarget, SourceMode, Notes). **QuestXRRaycastSourceMode** (CameraForward, ControllerPrimary, ControllerSecondary). **QuestTargetHoverState** (TargetId, HoverElapsedSeconds, RequiredDwellSeconds, IsDwellReady, IsHoverStable, HoverSourceMode, Notes). **QuestHoverSourceMode** (SimulatedPointer, XRRaycast, FutureGaze). **QuestTargetConfirmationMode** (ExplicitOnly, DwellOnly, DwellOrExplicit). **QuestTargetCandidate** (TargetId, TargetType, PriorityScore, StabilityScore, VisibilityScore, IsWorldTarget, IsUITarget, SourceMode, Notes). **QuestTargetSourceMode** (FocusFallback, SimulatedPointer, XRRaycast, FutureGaze). **QuestAimingMode** (FallbackOnly, XRRaycastPreferred, GazeLikePreferred, Hybrid). **QuestGazeLikeState** (IsActive, CurrentGazeTargetId, StabilityElapsedSeconds, RequiredStabilitySeconds, IsStableEnough, SourceDescription).

## Domain
- **Models**: **EventMomentPhase** (Id, Name, Description, PhaseType, DisplayOrder, IsCoreMoment), **ProposalMomentPlan** (PhaseId, RelatedShowroomItemIds, RelatedZoneTypes, KeySupplierIds, EstimatedDurationMinutes, HighlightText), **EventMomentTransition** (FromPhaseId, ToPhaseId, TransitionType, EstimatedTransitionMinutes, RequiresSpaceReset, RequiresSupplierCoordination, SmoothnessScore, Notes), **ProposalGuidedTourStep** (Id, Title, Description, RelatedPhaseId, RelatedZoneTypes, RelatedShowroomItemIds, FocusType, SuggestedDurationMinutes, SalesMessage, DisplayOrder, IsKeyMoment), **ProposalVisualHotspot** (Id, Title, Description, RelatedZoneTypes, RelatedShowroomItemIds, RelatedGuidedTourStepId, HotspotType, HighlightPriority, SalesValueScore, SuggestedFocusDurationMinutes, IsPremiumUpsell, Notes), **ProposalSceneState** (Id, RelatedPhaseId, Name, Description, ActiveShowroomItemIds, ActiveZoneTypes, PrimaryHotspotIds, VisualMood, TransitionFromPreviousSummary, DisplayOrder), **ProposalTemporalComparison** (BaseProposalId, ComparedProposalId, PhaseComparisons, OverallExperienceDifferenceSummary, StrongerMoments, WeakerMoments, BetterVisualContinuity, BetterOperationalContinuity, BetterSalesImpact), **ProposalPhaseComparison** (PhaseId, BaseSceneStateSummary, ComparedSceneStateSummary, KeyDifferences, BetterOption, Notes), **ProposalRecommendationSummary** (RecommendedProposalId, RecommendationConfidenceScore, ExecutiveSummary, WhyItWins, Tradeoffs, BudgetPositioning, ExperiencePositioning, OperationalPositioning, SuggestedSalesAngle, SecondaryOptionId, SecondaryOptionReason), **ProposalDecisionSummary** (RecommendedProposalId, ExecutiveHeadline, ExecutiveShortSummary, MainDecisionReasons, KeyRisks, BudgetConclusion, ExperienceConclusion, OperationalConclusion, FinalSalesMessage, SuggestedNextAction, DecisionReadinessLevel), **ProposalMRPresentationPlan** (ProposalId, PresentationTitle, TargetExperienceMode, GuidedSequenceStepIds, HotspotIds, SceneStateIds, PriorityZones, KeySellingMoments, RecommendedSessionDurationMinutes, ExecutivePresentationGoal, ReadyForMRMapping). **EventProjectProposal** inclui **MomentPlans**, **MomentTransitions**, **GuidedTourSteps**, **VisualHotspots**, **SceneStates**, **MRPresentationPlan**. **EventProject** inclui **LastTemporalComparison**, **LastRecommendationSummary**, **LastDecisionSummary**. **ProposalReviewSummary** inclui **JourneySummary**, **MomentPlanCount**, **TransitionSummary**, **TransitionCount**, **AverageSmoothnessScore**, **GuidedTourSummary**, **GuidedTourStepCount**, **ReadyForGuidedPresentation**, **VisualHotspotSummary**, **VisualHotspotCount**, **PrimaryHotspotTitle**, **HasPremiumHotspots**, **SceneStateSummary**, **SceneStateCount**, **HasStructuredVisualEvolution**. Space (**MaxRecommendedGuests**, **MaxGuestsStanding**, **MaxGuestsSeated**), **SpaceCapacityEvaluationResult**, **CapacityOperationalStatus**, Supplier, EventCategory, EventTemplate, EventProject, **ClientEventBrief**, **EventProjectProposal**, **ProposalFitScore**, Proposal, ShowroomItem (**SeatingProvided**, **StandingAreaImpact**, **BlocksCirculation**, **RequiresServiceAccess**, **ServiceAccessPriority**, **FootprintWeight**, **SetupDurationMinutes**, **RequiresEarlySetup**, **SetupDependencyTypes**, **RequiresSupplierOnSite**, **ExecutionPriority**), **SpaceLayoutSlot** (**CapacityContribution**, **IsSeatingArea**, **IsCirculationCritical**, **AccessPriority**, **CongestionRiskWeight**, **AdjacentZoneHints**), **ItemSlotAssignment**, **ShowroomPlacementRule**, **CompositionValidationResult**, **ValidationMessage**, **EventLayoutPreset**, **EventLayoutPresetItem**, **EventVisualTheme**, **ProposalPresentationStep**, **ProposalReviewSummary** (**FlowSummary**, **SetupTimelineSummary**, **SupplierCoverageSummary**, **CommercialReadingSummary**), **ProposalVersionSnapshot**, **EventFlowEvaluationResult**, **FlowStatus**, **EventSetupTimelineEvaluationResult**, **ExecutionReadinessStatus**, **SupplierCoverageEvaluationResult**. **Supplier** inclui **SupportedItemTypes**, **SupportsEarlySetup**, **SupportsOnSiteExecution**, **SupplierPriorityLevel**, **CapacityTier**. **ProposalCommercialPackage** (Id, Name, Tier, Description, IncludedShowroomItemIds, SuggestedThemeIds, TargetBudgetRangeMin/Max, UpsellNotes, DownsellNotes, DisplayOrder, EventTemplateId). **CommercialPackageTier** (Essential, Standard, Premium, Luxury). **EventProjectProposal** inclui **SelectedCommercialPackageId**. **ProposalReviewSummary** inclui **CommercialReadingSummary**.
- **Enums**: **EventMomentPhaseType** (Reception, Ceremony, Dining, Presentation, Party, Networking, Closing), **EventMomentTransitionType** (DirectFlow, Reconfiguration, GuestRelocation, ServiceTurnover, ClosingTransition), **ProposalGuidedTourFocusType** (Welcome, SpaceOverview, ThemeHighlight, MomentHighlight, SupplierHighlight, PremiumUpsell, OperationalConfidence, Closing), **ProposalVisualHotspotType** (EntranceImpact, ThemeHighlight, PremiumDecor, DiningExperience, StageMoment, LoungeExperience, SupplierShowcase, OperationalConfidence, ClosingVisual), **ProposalDecisionReadinessLevel** (NotReady, UnderReview, ReadyToPresent, ReadyToClose), **MRPresentationTargetMode** (GuidedSalesTour, FreeExploration, SideBySideComparison, ExecutiveClosingMode). UserType, EventCategoryType, ProposalStatus, SpaceStatus, SupplierStatus, EventProjectStatus, ShowroomItemType, PlacementZoneType, SpatialAnchorType, **CompositionValidationStatus**, **ProposalPresentationStepType**, **CapacityOperationalStatus**. (**FlowStatus** em EventFlowEvaluationResult; **ExecutionReadinessStatus** em EventSetupTimelineEvaluationResult.)
- **ShowroomItem** inclui metadados para futura visualização espacial/MR: PlacementZone, SpatialAnchorType, DisplayOrder.
- **SpaceLayoutSlot**: slot/área lógica do layout do espaço. **ItemSlotAssignment**: par ShowroomItemId → SlotId. **EventProject** inclui **ItemSlotAssignments** e **LastCompositionValidation** (resultado da validação em memória).
- **ShowroomPlacementRule**: regra de compatibilidade por tipo de item. **CompositionValidationResult**: status (Valid/HasWarnings/Invalid), listas de avisos e inconsistências.
- **EventLayoutPreset**: preset de layout por categoria/template. **EventLayoutPresetItem**: item do preset (ShowroomItemId, PreferredSlotId, IsRequired, DisplayOrder).
- **EventVisualTheme**: tema visual por categoria/template. **EventProject** inclui **SelectedThemeId**.
- **ProposalPresentationStep**: etapa da narrativa. **ProposalPresentationStepType**: Welcome, ThemeOverview, zone highlights, SupplierHighlight, BudgetSummary, Closing. **EventProject** inclui **GeneratedPresentationSteps**.
- **ClientEventBrief**: briefing do cliente (ClientName, EventName, GuestCount, EstimatedBudgetTarget, PreferredMood, PreferredColors, MustHaveElements, AvoidElements, Notes). **EventProject** inclui **ClientBrief**. **AppSession** expõe **SetClientBrief**.  
- **ProposalReviewSummary**: revisão comercial (IsReadyForPresentation, Strengths, Warnings, MissingElements, ValidationStatus, BudgetLevel, ThemeName, PresetName, PresentationStepCount, **BudgetWithinTarget**, **MoodMatchesBrief**). **EventProject** inclui **LastProposalReviewSummary**. O **MockProposalReviewService** preenche BudgetWithinTarget e MoodMatchesBrief quando há ClientBrief (aderência básica ao orçamento alvo e ao mood desejado). **ProposalVersionSnapshot**: snapshot para comparação (Id, Name, CreatedAt, ThemeId, PresetId, TotalEstimatedPrice, SupplierCount, ShowroomItemCount, ValidationStatus, Notes). **AppSession** expõe **SavedSnapshots**. **ProposalFitScore**: score de aderência (OverallScore, BudgetFitScore, MoodFitScore, CapacityFitScore, MustHaveFitScore, RiskScore, Highlights, Gaps, Recommendations). **EventProjectProposal** inclui **FitScore**. **IProposalFitScoringService** / **MockProposalFitScoringService** calculam o score (orçamento, mood, elementos obrigatórios, riscos). AppSession recalcula FitScore em SyncActiveProposalFromProject, SetClientBrief e LoadProposalIntoProject. **EventProjectProposal**: proposta interna (Id, Name, PresetId, ThemeId, ShowroomItemIds, ItemSlotAssignments, ValidationSummary, PresentationSteps, ReviewSummary, TotalEstimatedPrice, SupplierCount, CreatedAt, **FitScore**). **EventProject** inclui **Proposals** (lista de propostas), **ActiveProposalId** e **AppliedPresetId**; **GetActiveProposal()** retorna a proposta ativa. Snapshots usam a proposta ativa como origem e **PresetId** é preenchido a partir de AppliedPresetId.
- Contratos (interfaces) dos serviços ficam em Application; Domain permanece sem dependências externas.

## Application
- **Interfaces**: ISpaceService, ISupplierService, ITemplateService, **ISpaceLayoutService**, **IEventMomentPlanningService** (GetAvailablePhases, GenerateMomentPlan), **IEventMomentTransitionService** (GenerateTransitions), **IProposalGuidedTourService** (GenerateGuidedTour), **IProposalVisualHotspotService** (GenerateHotspots), **IProposalSceneStateService** (GenerateSceneStates), **IProposalTemporalComparisonService** (Compare), **IProposalRecommendationService** (Recommend), **IProposalDecisionSummaryService** (Generate), **IMRPresentationPlanningService** (GeneratePlan), **IQuestRuntimeReadinessService** (EvaluateReadiness), **IQuestXRRuntimeStatusService** (GetStatus), **IPlacementCompatibilityService**, **ILayoutPresetService**, **IVisualThemeService**, **IProposalPresentationService**, **IProposalReviewService**, **IProposalFitScoringService**, **ISpaceCapacityEvaluationService**, **IEventFlowEvaluationService**, **IEventSetupTimelineService**, **ISupplierCoverageEvaluationService**, **ICommercialPackageService**.
- Casos de uso e orquestração a serem implementados nas próximas etapas.

## Infrastructure
- **MockSpaceService**, **MockSupplierService**, **MockTemplateService**, **MockSpaceLayoutService** (slots com CapacityContribution, IsSeatingArea, IsCirculationCritical, AccessPriority, CongestionRiskWeight), **MockPlacementCompatibilityService**, **MockLayoutPresetService**, **MockVisualThemeService**, **MockProposalPresentationService**, **MockProposalReviewService**, **MockProposalFitScoringService**, **MockSpaceCapacityEvaluationService**, **MockEventFlowEvaluationService**, **MockEventSetupTimelineService** (avaliação de cronograma e sequência de montagem: tempo total, passos críticos, dependências, prontidão), **MockSupplierCoverageEvaluationService** (avaliação de cobertura por fornecedores: tipos suportados, montagem antecipada, execução no local, dependência em poucos fornecedores), **MockCommercialPackageService** (pacotes comerciais por template: casamento, aniversário, business; tiers Essential/Standard/Premium/Luxury), **MockEventMomentPlanningService** (gera plano de momentos/fases a partir da narrativa, itens, zonas e fornecedores), **MockEventMomentTransitionService** (gera transições entre fases: sequência, zonas, fornecedores, reconfiguração, fluidez), **MockProposalGuidedTourService** (gera roteiro guiado a partir de narrativa, momentos, transições, tema, pacote e review), **MockProposalVisualHotspotService** (gera hotspots visuais a partir do roteiro guiado, tema, pacote e momentos), **MockProposalSceneStateService** (gera estados visuais da cena por fase a partir de moment plans, transições, hotspots, tema e showroom), **MockProposalTemporalComparisonService** (compara duas propostas ao longo da jornada com base em scene states, transições, hotspots, fit score e review), **MockProposalRecommendationService** (recomenda a melhor proposta com base em fit score, review, comparação temporal, orçamento, mood e prontidão), **MockProposalDecisionSummaryService** (gera resumo executivo de decisão a partir da recomendação, review, fit score e comparações; DecisionReadinessLevel e SuggestedNextAction), **MockMRPresentationPlanningService** (gera plano de apresentação MR a partir de roteiro guiado, hotspots, estados de cena, recomendação, resumo executivo, momentos e transições; TargetExperienceMode, ReadyForMRMapping), **MockQuestRuntimeReadinessService** (avalia prontidão do runtime Quest: IsBuildReady, HasPresentationData, HasFallbackMode, HasNavigationControls), **MockQuestXRRuntimeStatusService** (avalia modo de runtime XR: EditorFallback em editor, SimulatedXR em build sem SDK; GetStatus retorna QuestXRRuntimeStatus): implementações mock para desenvolvimento local.
- Futuro: repositórios, clientes HTTP, adaptadores para backend.

## Presentation
- **Bootstrap.unity**: cena real de inicialização em `Assets/Presentation/Scenes/`, com GameObject Bootstrap (AppBootstrap) e Main Camera.
- **Main**: cena principal com resumo de seleção (inclui evento, cliente, convidados, orçamento alvo, tema, mood, apresentação, narrativa, pronta para apresentação e versões salvas), detalhes do projeto (idem), **briefing do cliente / parâmetros do evento** (ClientBriefView), resumo comercial, showroom/proposta, plano lógico do espaço (layout atual), validação da composição, presets de layout / cenários base, temas visuais / direção estética, apresentação comercial / narrativa da proposta, **revisão comercial / comparação de propostas**, **propostas do projeto / comparação** (lista de propostas, ativa, duplicar, ativar, resumo comparativo com score, melhor orçamento/mood/acomodação/fluxo/mais pronta para execução), **score de aderência / qualidade da proposta** (ProposalFitScoreView), **capacidade do espaço / adequação operacional** (SpaceCapacityView), **fluxo do evento / logística operacional** (EventFlowView), **cronograma / montagem do evento** (EventSetupTimelineView), **cobertura de fornecedores / lacunas operacionais** (SupplierCoverageView), **pacotes comerciais / upgrade de proposta** (CommercialPackageView), **momentos do evento / jornada da experiência** (EventMomentPlanView: fases em ordem, duração, itens e fornecedores por fase, destaque), **transições da jornada / continuidade da experiência** (EventMomentTransitionView: origem → destino, tipo, tempo, reconfig., coord. fornecedor, fluidez), **roteiro guiado / apresentação ao cliente** (ProposalGuidedTourView: ordem, título, descrição, foco, duração, mensagem comercial, momento-chave), **hotspots visuais / pontos de destaque** (ProposalVisualHotspotView: prioridade, título, tipo, zonas/itens, valor comercial, duração de foco, upsell premium), **estados da cena / evolução visual do evento** (ProposalSceneStateView: ordem, fase, nome, descrição, itens ativos, zonas ativas, hotspots principais, resumo da transição), **comparação temporal / evolução das propostas** (ProposalTemporalComparisonView: propostas comparadas, resumo geral, melhores momentos, continuidade visual/operacional, impacto comercial, comparações por fase), **recomendação final / melhor proposta** (ProposalRecommendationView: proposta recomendada, confiança, resumo executivo, por que vence, tradeoffs, posicionamentos, segunda opção), **resumo executivo / fechamento** (ProposalDecisionSummaryView: manchete, resumo curto, razões da decisão, riscos, conclusões orçamento/experiência/operacional, mensagem final, próxima ação, prontidão), **plano Quest / apresentação em realidade mista** (MRPresentationPlanView: modo, título, sequência guiada, hotspots, estados de cena, zonas prioritárias, momentos-chave, duração, objetivo, prontidão MR), **modo Quest / apresentação no headset** (seção com botão "Abrir apresentação Quest" que chama SceneRouter.LoadQuestPresentationScene), listas de categorias, templates, espaços e fornecedores.
- **Cena QuestPresentation** (Assets/Presentation/Scenes/QuestPresentation.unity): base executável e de navegação para Quest, com **primeiro teste visual orientado a headset**. **QuestXRRuntimeBootstrap** (RefreshStatus no Awake ou via controlador; cacheia QuestXRRuntimeStatus). **QuestXRPresentationRig** (preferido) e **QuestPresentationCameraRig** (câmera/orientação; **QuestXRPresentationRig** criado em runtime se ausente; compatível com modo EditorFallback/SimulatedXR/RealXR). **QuestPresentationController** monta sessão, prontidão, **QuestPresentationNavigationController**, **QuestPresentationFocusController**, **QuestHotspotContextController** (etapa 48), **QuestHotspotStoryController** (etapa 49), **QuestHotspotComparisonController** (etapa 50), **QuestClosingExperienceController** (etapa 51: OpenClosing, CloseClosing, ConfirmPrimaryCTA, ConfirmSecondaryCTA; Bind à sessão), **QuestCommercialOutcomeController** (etapa 52: Bind, RecordFromClosing(cta), MarkNeedsFollowUp, MarkReadyToAdvance, ConfirmFinalDecision; resultado comercial da sessão), **QuestSessionExportController** (etapa 53: Bind, SetProjectIdGetter, GeneratePayload, ClearPayload; payload em memória), **QuestSessionLocalPersistenceController** (etapa 54: Bind, SetProjectIdGetter, Save, Restore(onRestoreClosing), Clear, HasRestorableSnapshot; PlayerPrefs), **QuestSessionHandoffReportController** (etapa 55: Bind, SetProjectIdGetter, GenerateReport, ClearReport; relatório final/handoff em memória), **QuestSessionShareableSummaryController** (etapa 56: Bind, GenerateSummary, ClearSummary, CopyToClipboard; resumo compartilhável em memória), **QuestSessionQualityAssessmentController** (etapa 60: Bind, CalculateAssessment, ClearAssessment; score e diagnóstico de qualidade em memória), **QuestSessionImprovementPlanController** (etapa 61: Bind, GeneratePlan, ClearPlan; plano de melhorias e recomendações a partir do diagnóstico, outcome, handoff, export), **QuestPresentationPresetController** (etapa 62: Bind, GetDefaultPresets, ApplyPreset, ApplyPresetById, ClearPreset; presets QuickPitch, GuidedSales, PremiumShowcase, ComparisonMode, ExecutiveReview; aplica NavigationMode, AimingMode, ConfirmationMode), **QuestPresentationOnboardingController** (etapa 63: Bind, OpenOnboarding, CloseOnboarding, StartPresentation, UpdateStateContent; estado com proposta, preset, modo, objetivo, dicas; abre no arranque se !HasSeenOnboarding) (foco entre painéis, ActivateFocus), **QuestSelectionController** (alvos **QuestSelectableTarget** — GuidedStep, Hotspot, SceneState, ActionButton, ModeToggle; Next/PreviousSelectable, ConfirmSelection, CancelSelection; **QuestInteractionCommand** para input abstracto), **QuestPointerPreparationController** (alvos **QuestPointableTarget**; SetPointedFromSimulatedHit; SetPointedFromXRRaycast; IsPointedFromXRRaycast; LastXRRaycastHit; LastSourceMode). **QuestXRRaycastController** (SetRayOrigin; PerformRaycast; Physics.Raycast; **QuestPointableTargetMarker** nos painéis). **QuestHoverDwellController** (UpdateHover; RequiredDwellSeconds; CurrentState; IsDwellReadyToConfirm; ConsumeDwellConfirm; OnDwellReady). **QuestTargetResolverController** (Resolve(rawDetectedTargetId, rawSourceMode, focusTargetType, selectedTargetId, pointableTargets); MinStableFramesToSwitch, MinFramesToLose; ResolvedCandidate, ResolvedTargetId, StickinessAppliedThisFrame). **QuestGazeLikeController** (UpdateGazeLike(currentTargetIdInFront, deltaTime, sourceDescription); RequiredStabilitySeconds; CurrentState; GetStabilityProgressNormalized). **QuestSimulatedPointerController** (raycast/gaze simulado: **QuestSimulatedPointerHit**, **QuestPointerSourceMode**; PerformSimulatedHit por modo FocusDriven/CenterScreenSimulated/ManualCycleAssisted; CyclePointerMode). **QuestWorldCursorController** (retículo e label no mundo; Build no canvas espacial). **QuestPresentationInputDispatcher** (Bind nav/focus/selection/pointerPrep/simulatedPointer; Dispatch roteia para os controladores; últimos 5 comandos; CurrentSource). **QuestPresentationInputAdapter** emite **QuestPresentationInputCommand** para o dispatcher (BindDispatcher); fallback sem dispatcher (chamadas directas). **QuestXRInputBridge** (IQuestXRInputBridge): SetDispatcher; SubmitXRCommand; **ProcessFrame()** (controlador chama em Update)—usa **QuestXRInputReader** (reflexão UnityEngine.XR) para ler trigger/secondary/primary2DAxis e despacha ConfirmSelection, ToggleNavigationMode, NextStep, PreviousStep; GetStatus() reflecte leitura real (IsBridgeInFallbackOnly, Notes). Teclas: Tab, Espaço, Esc, F, G, Enter, Backspace; P = TogglePointerMode; Enter = ConfirmPointedTarget quando há alvo apontado. **QuestPresentationHUD** (overlay): título, status, prontidão, progresso, bloco em destaque, indicador de foco, de seleção, de **alvo apontado** (nome, modo, interagível, ação) e **modo de apontamento** (P = alternar); linha de debug **Input: [origem] | Último: [comando]** quando ShowInputDebugLine e dispatcher disponível; linha de debug **Runtime: [modo] | XR: Sim/Não | Fallback: Sim/Não | Init: [msg]** quando ShowXRDebugLine (modo teste); linha **XR Input: disponível | activo | fallback only | modo | última** quando ShowXRInputDebugLine; linha **Raycast XR: activo | último hit | dist | origem** quando ShowXRRaycastDebugLine; linha **Hover: [id] | dwell | pronto | modo conf. | última conf.** quando ShowHoverDwellDebugLine; linha **Detectado: [id] | Resolvido: [id] | prior. | origem | stick** quando ShowTargetingDebugLine; linha **Aiming: [modo] | alvo gaze | estab. | estável | origem gaze-like** quando ShowGazeLikeDebugLine; linha **Contexto hotspot: …** quando ShowHotspotContextDebugLine (etapas 48–49); linha **Comparação: …** quando ShowComparisonDebugLine (etapa 50); linha **Fechamento: Aberto/Fechado | CTA | proposta | pronto | última** quando ShowClosingDebugLine (etapa 51); linha **Comercial: estado | CTA | proposta | prioridade** quando ShowCommercialOutcomeDebugLine (etapa 52); linha **Export: Sim/Não | timestamp | decisão | CTA | prior.** quando ShowExportDebugLine (etapa 53); linha **Snapshot: Sim/Não | SavedAt | restaurado | sessão | proposta** quando ShowPersistenceDebugLine (etapa 54); linha **Handoff: Sim/Não | timestamp | decisão | prior.** quando ShowHandoffDebugLine (etapa 55); linha **Resumo: Sim/Não | timestamp | decisão | próxima** quando ShowShareableDebugLine (etapa 56); linha **Qualidade: Sim/Não | timestamp | score | label | força | fraqueza** quando ShowQualityDebugLine (etapa 60); linha **Melhorias: Sim/Não | N rec. | prioritária | categoria** quando ShowImprovementDebugLine (etapa 61); linha **Preset: nome | tipo | foco | duração** quando ShowPresetDebugLine (etapa 62); linha **Onboarding: Aberto/Fechado | preset | proposta | pronto** quando ShowOnboardingDebugLine (etapa 63). **QuestWorldUIPanelLayout** **ClosingPanel** (etapa 51: headline, resumo, confiança, próxima ação, conclusões, CTA principal/secundário, Voltar), **OnCloseClosingRequested**, **OnConfirmPrimaryCTARequested**, **OnConfirmSecondaryCTARequested**; **OutcomePanel** (etapa 52: resultado da apresentação, decisão, próxima ação, prioridade follow-up, botões Precisa follow-up, Pronta para avançar, Voltar ao fechamento, Confirmar decisão final), **OnMarkNeedsFollowUpRequested**, **OnMarkReadyToAdvanceRequested**, **OnBackToClosingRequested**, **OnConfirmFinalDecisionRequested**; **ExportPanel** (etapa 53: payload de exportação, ids, decisão, CTA, próxima ação, prioridade, estatísticas; Gerar payload, Regenerar, Limpar, Voltar ao resultado), **OnGenerateExportRequested**, **OnRegenerateExportRequested**, **OnClearExportRequested**, **OnBackToOutcomeRequested**; **PersistencePanel** (etapa 54: Persistência local, status, Salvar sessão, Restaurar, Limpar), **OnSaveSessionRequested**, **OnRestoreSessionRequested**, **OnClearSavedSessionRequested**; **HandoffPanel** (etapa 55: relatório final da sessão, propostas recomendada/escolhida, decisão, CTA, próxima ação, prioridade, hotspots/comparações, confiança, observações; botões Gerar relatório, Regenerar, Limpar, Voltar), **OnGenerateHandoffRequested**, **OnRegenerateHandoffRequested**, **OnClearHandoffRequested**, **OnBackFromHandoffRequested**; **ShareablePanel** (etapa 56: resumo compartilhável, título, resumo executivo, decisão, CTA, próxima ação, prioridade, highlights, riscos, texto; Gerar/Regenerar/Limpar/Copiar texto), **OnGenerateShareableRequested**, **OnRegenerateShareableRequested**, **OnClearShareableRequested**, **OnCopyShareableRequested**; **QualityPanel** (etapa 60: diagnóstico de qualidade, score geral e sub-scores, label, pontos fortes/fracos, sugestões; Calcular diagnóstico, Recalcular, Limpar, Voltar), **OnCalculateQualityRequested**, **OnRecalculateQualityRequested**, **OnClearQualityRequested**, **OnBackFromQualityRequested**; **ImprovementPlanPanel** (etapa 61: plano de melhorias, resumo, recomendação prioritária, categoria, lista de recomendações com prioridade e acção sugerida; Gerar plano, Regenerar, Limpar, Voltar), **OnGenerateImprovementPlanRequested**, **OnRegenerateImprovementPlanRequested**, **OnClearImprovementPlanRequested**, **OnBackFromImprovementPlanRequested**; **PresetPanel** (etapa 62: preset actual, duração estimada, foco; botões Pitch rápido, Vendas guiadas, Showcase premium, Modo comparação, Revisão executiva, Limpar preset), **OnApplyPresetRequested** (id), **OnClearPresetRequested**; **OnboardingPanel** (etapa 63: título, proposta, preset, runtime, objetivo, dicas, duração; Iniciar apresentação, Fechar), **OnStartPresentationRequested**, **OnCloseOnboardingRequested**. **QuestPresentationController** inclui overlay de onboarding em ecrã (HUD) e botão **Contexto** para reabrir. **QuestWorldUIPanelLayout** inclui **HotspotContextPanel** (título, resumo, mensagem, premium, **progresso Passo X/Y**, botões **Iniciar micro-roteiro**, **Ant.**, **Próx.**, **Fechar roteiro**, Fechar), **RefreshHotspotContextPanel(session)** (modo contexto simples vs passo do micro-roteiro), **OnCloseHotspotContextRequested**, **OnStartHotspotStoryRequested**, **OnPreviousStoryStepRequested**, **OnNextStoryStepRequested**, **OnCloseHotspotStoryRequested**; **HotspotComparisonPanel** (etapa 50: colunas esq./dir., melhor exp./upsell/clareza, resumo, Trocar lados, Fechar comparação), **OnOpenComparisonRequested**, **OnSwapComparisonRequested**, **OnCloseComparisonRequested**; botão **Comparar** no contexto. **QuestPresentationInputDispatcher** **BindStory(sessionGetter, storyController)**: quando narrativa activa, NextStep/PreviousStep navegam no micro-roteiro. Sessão inclui **RuntimeMode**, **IsXRActive**, **IsFallbackActive**, **XRInitStatus** (IQuestXRRuntimeStatusService) e **XRInputStatus** (IQuestXRInputBridge). **QuestWorldUIPanelLayout**: UI em World Space com destaque de foco (azul), seleção (verde), alvo apontado (âmbar) e **dwell pronto** (cor/outline); progresso de dwell (X% / "Pronto ✓") no painel apontado; indicadores de foco, seleção, apontado e **Apontamento: [modo] (P = alternar) | Dwell: X%**; **resolvedTargetId** opcional; indicador **Gaze X%** / **Gaze estável**; GetCursorParent() para cursor. Botão **UI: HUD/Espacial** e tecla **U** alternam HUD ↔ painéis espaciais; fallback: se apontamento simulado não encontrar alvo, foco e seleção continuam. **QuestGuidedStepView**, **QuestHotspotView**, **QuestSceneStateView** no modo HUD. Configuração e UI espacial em **Docs/QUEST_PLATFORM.md**.

### Fluxo curto (Etapa 98)

- **QuestShortFlowController** (Assets/Presentation/Quest/QuestShortFlowController.cs): camada organizadora do fluxo curto (5–10 min) para venda assistida, com macro etapas **Intro → MainPresentation → ImpactHotspots → QuickComparison → Closing**.
- **QuestShortFlowState** (Assets/Core/QuestShortFlowState.cs) + enums **QuestPresentationFlowMode** e **QuestCoreFlowStage** (Assets/Domain/Enums/): estado agregado (modo, etapa, tempo restante estimado, pronto p/ closing, hotspots impactantes priorizados).
- **UI/HUD**: `QuestPresentationHUD` mostra linha do fluxo curto (modo, etapa, tempo restante, pronto p/ closing).
- **Ações rápidas (barra de navegação)**: botões **Fluxo curto**, **Etapa -**, **Etapa +**, **Ir p/ closing** (sem remover navegação existente).
- **ShowroomView**: exibe itens da proposta agrupados por tipo e por zona lógica; mostra zona e ancoragem espacial de cada item (base para futura MR).
- **SpaceLayoutView**: exibe o plano lógico do espaço (slots do layout e itens alocados em cada slot); permite realocação automática e mover item para outro slot compatível (preparação para MR).
- **CompositionValidationView**: exibe resultado da validação da composição (status geral, avisos, inconsistências); botão “Validar composição” aciona a validação e atualiza a exibição.
- **LayoutPresetView**: exibe presets de layout disponíveis para a categoria/template atual; descrição e “(padrão)”; botão “Aplicar” aplica o preset ao projeto; botão “Restaurar composição padrão” restaura itens padrão do template e auto-mapeamento.
- **VisualThemeView**: exibe temas visuais disponíveis para o contexto atual; descrição, mood e cores (texto); botão "Aplicar" aplica o tema ao projeto. Resumo e detalhes do projeto exibem tema e mood atuais.
- **ProposalPresentationView**: exibe a narrativa de apresentação comercial (sequência de etapas com título, descrição, destaque e ordem); botão "Gerar narrativa da proposta" / "Regenerar narrativa" aciona a geração. Resumo e detalhes exibem quantidade de etapas e se a narrativa foi gerada.
- **ProposalReviewView**: exibe revisão comercial (prontidão, pontos fortes, alertas, elementos ausentes) e comparação (atual vs versões salvas: orçamento, itens, fornecedores, validação); botões "Revisar proposta" e "Salvar versão atual". Resumo e detalhes exibem se a proposta está pronta para apresentação e quantidade de versões salvas.
- **ProjectProposalComparisonView**: exibe lista de propostas internas do projeto, indica qual está ativa, botão "Duplicar proposta ativa", botão "Ativar" por proposta não ativa, e resumo comparativo (tema, preset, valor, itens, fornecedores, validação, prontidão, **score**, **capacidade estimada**, **fluxo** risco/acesso, **montagem** tempo/status, **cobertura** score (lacunas), **pacote** (tier); quando há briefing: orçamento vs alvo, tema vs mood; **melhor orçamento**, **melhor mood**, **melhor acomodação**, **melhor fluxo**, **mais pronta para execução**, **melhor cobertura**, **melhor encaixe comercial**, **jornada mais completa**, **jornada mais fluida**, **menos reconfigurações críticas**, **menor atrito operacional**; cada linha exibe **Jornada: X fases (Y c/ conteúdo)** e **Trans.: Z (fluidez W)**). **ProposalReviewSummary** inclui **JourneySummary**, **MomentPlanCount**, **TransitionSummary**, **TransitionCount**, **AverageSmoothnessScore**, **GuidedTourSummary**, **GuidedTourStepCount**, **ReadyForGuidedPresentation**; **ProposalReviewView** exibe "Jornada: …", "Transições: …" e "Roteiro guiado: …". **SelectionSummaryView** exibe **Transições**, **Fluidez média**, **Roteiro guiado** (passos), **Pronta p/ apresentação guiada**, **Hotspots visuais** (quantidade e principal) e **Principal** (hotspot principal) quando há projeto. A comparação inclui **Apresentação mais forte**, **Roteiro mais claro**, **Maior impacto visual** e **Melhor upsell visual**; cada linha exibe **Roteiro: X passos** e **Hotspots: Y (Z premium)** quando aplicável. **ProposalReviewSummary** inclui **VisualHotspotSummary**, **VisualHotspotCount**, **PrimaryHotspotTitle**, **HasPremiumHotspots**; **ProposalReviewView** exibe "Hotspots visuais: …". **Estados visuais da cena:** **ProposalSceneState**, **EventProjectProposal.SceneStates**, **IProposalSceneStateService**, **MockProposalSceneStateService**; **ProposalSceneStateView** (área "Estados da Cena / Evolução Visual do Evento"); **ProposalReviewSummary** inclui **SceneStateSummary**, **SceneStateCount**, **HasStructuredVisualEvolution**; **ProposalReviewView** exibe "Estados da cena: …"; comparação inclui **Evolução visual mais rica** e **Estados mais coerentes / melhor continuidade visual**; cada linha exibe **Estados cena: X**; **SelectionSummaryView** exibe **Estados da cena**, **Evolução visual: Sim/Não**, **Comparação temporal: Sim/Não** e **Fases na comparação: X**. **Comparação temporal:** **ProposalTemporalComparison**, **ProposalPhaseComparison**, **EventProject.LastTemporalComparison**, **IProposalTemporalComparisonService**, **MockProposalTemporalComparisonService**; **ProposalTemporalComparisonView**; comparação geral inclui **Melhor evolução da experiência**, **Melhor jornada visual**, **Melhor continuidade operacional**, **Melhor impacto comercial** quando LastTemporalComparison está preenchido. **Recomendação executiva:** **ProposalRecommendationSummary**, **EventProject.LastRecommendationSummary**, **IProposalRecommendationService**, **MockProposalRecommendationService**; **ProposalRecommendationView**; **SelectionSummaryView** exibe **Recomendação final: Sim/Não**, **Proposta recomendada: X**, **Confiança: Y/100**, **Resumo executivo: Sim/Não**, **Prontidão p/ fechamento: X**, **Próxima ação: Y**, **Plano Quest/MR: Sim/Não**, **Modo apresentação: X**, **Pronto p/ mapeamento MR: Sim/Não**. **Resumo executivo de decisão:** **ProposalDecisionSummary**, **ProposalDecisionReadinessLevel**, **EventProject.LastDecisionSummary**, **IProposalDecisionSummaryService**, **MockProposalDecisionSummaryService**; **ProposalDecisionSummaryView**. **Plano de apresentação Quest 3 / MR:** **ProposalMRPresentationPlan**, **MRPresentationTargetMode**, **EventProjectProposal.MRPresentationPlan**, **IMRPresentationPlanningService**, **MockMRPresentationPlanningService**; **MRPresentationPlanView**. **ProposalReviewSummary** inclui **ReadyForMRMapping** e **MRPresentationModeSuggested**. A comparação entre propostas inclui **Mais pronta p/ Quest**, **Melhor potencial de tour guiado**, **Melhor fechamento imersivo** e por proposta **Plano Quest: Sim/Não**, **Pronto MR: Sim/Não**. Ao ativar outra proposta, showroom, layout, orçamento, validação, narrativa e revisão passam a refletir essa proposta. Core: **AppSession** oferece **EnsureInitialProposal**, **DuplicateActiveProposal**, **ActivateProposal**, **RenameProposal**, **SyncActiveProposalFromProject**, **LoadProposalIntoProject**; estado atual permanece sincronizado com a proposta ativa.
- **SpaceCapacityView**: exibe capacidade do espaço e adequação operacional (convidados do briefing, capacidade estimada da proposta, faixa recomendada, status confortável/no limite/acima, riscos/avisos). Revisão comercial (**ProposalReviewView**) exibe **CapacitySummary**, **FlowSummary**, **SetupTimelineSummary** e **SupplierCoverageSummary** quando preenchidos. **ProposalReviewSummary** inclui **CapacitySummary**, **FlowSummary**, **SetupTimelineSummary** e **SupplierCoverageSummary** e **CommercialReadingSummary** (preenchidos por **MockProposalReviewService** via **ISpaceCapacityEvaluationService**, **IEventFlowEvaluationService**, **IEventSetupTimelineService**, **ISupplierCoverageEvaluationService** e leitura do pacote comercial).
- **EventFlowView**: exibe avaliação de fluxo e logística operacional (status geral Adequado/Atenção/Crítico, risco de gargalo 0–100, acesso de serviço 0–100, avisos de circulação, riscos por zona, recomendações). O **IEventFlowEvaluationService** (MockEventFlowEvaluationService) avalia a partir do layout (slots com IsCirculationCritical, AccessPriority, CongestionRiskWeight) e dos itens (BlocksCirculation, RequiresServiceAccess, FootprintWeight). O **fit score** incorpora fluxo (RiskScore, Gaps, Recommendations, Highlights).
- **EventSetupTimelineView**: exibe avaliação de cronograma e sequência de montagem (tempo total estimado, prontidão para execução Pronta/Atenção/Não pronta, passos críticos, problemas de dependência, avisos e recomendações). O **IEventSetupTimelineService** (MockEventSetupTimelineService) avalia a partir dos itens da proposta (SetupDurationMinutes, RequiresEarlySetup, SetupDependencyTypes, RequiresSupplierOnSite, ExecutionPriority). O **fit score** e o **review** incorporam cronograma (RiskScore, Gaps, Recommendations, Highlights; **SetupTimelineSummary**).
- **SupplierCoverageView**: exibe avaliação de cobertura operacional por fornecedores (score 0–100, lacunas/capacidades ausentes, áreas fracas, zonas cobertas, avisos e recomendações). O **ISupplierCoverageEvaluationService** (MockSupplierCoverageEvaluationService) avalia a partir dos itens da proposta e dos fornecedores (SupportedItemTypes, SupportsEarlySetup, SupportsOnSiteExecution). O **fit score** e o **review** incorporam cobertura (RiskScore, Gaps, Recommendations, Highlights; **SupplierCoverageSummary**).
- **CommercialPackageView**: exibe pacotes comerciais disponíveis para o template do projeto (tier, faixa orçamento-alvo, upsell/downsell) e pacote atual; botão "Aplicar" chama **AppSession.ApplyCommercialPackage**. **ICommercialPackageService** (MockCommercialPackageService) expõe pacotes por template. Ao aplicar, a proposta ativa recebe **SelectedCommercialPackageId**, itens (**IncludedShowroomItemIds**) e tema sugerido; estado é carregado no projeto. **ProposalReviewSummary.CommercialReadingSummary** reflete enquadramento no tier e possibilidade de upsell/downsell.
- **ProposalFitScoreView**: exibe score de aderência da proposta ativa (score geral, sub-scores orçamento/mood/capacidade/obrigatórios/risco, destaques, lacunas, recomendações). Resumo da seleção (**SelectionSummaryView**) exibe **aderência** (score e status: Alta aderência / Aderência média / Baixa aderência).
- **ClientBriefView**: exibe e edita o briefing do cliente (nome cliente, nome evento, convidados, orçamento alvo, mood, cores preferidas, elementos obrigatórios/evitar, observações); botão "Aplicar briefing" chama **SetClientBrief**. Resumo da seleção (**SelectionSummaryView**) exibe evento, cliente, convidados e orçamento alvo a partir do **ClientBrief** quando há projeto.

## Docs
- Documentação do produto, arquitetura, módulos, roadmap e padrões de código.
