{
  "schema_version": "1.0",
  "batch": "MGT-LINK-01",
  "generated_at": "2026-04-22",
  "purpose": "Resolve 12 pending V1 screen service mappings from MGT-IMPORT-01 · introduce minimal bridge services · establish Design ↔ Management ↔ Marketing traceability",
  "source_of_truth_order": [
    "V1 live prototype + screen inventory + screenshot manifest",
    "Management Runtime current state",
    "Marketing Doc #4 · MICE 84-Service Master Catalog",
    "Marketing Doc #5 · Together Mode Architecture",
    "Marketing Doc #7 · DB Structure & Core Data Model Blueprint"
  ],
  "before": {
    "v1_screens_total": 24,
    "v1_with_service_linkage": 12,
    "v1_pending_service_mapping": 12
  },
  "after": {
    "v1_screens_total": 24,
    "v1_with_service_linkage": 24,
    "v1_pending_service_mapping": 0,
    "bridge_services_introduced": 6
  },
  "bridge_services": [
    {
      "service_code": "OPS-WORKSPACE",
      "service_name": "Operator Workspace",
      "category": "Operations",
      "mode_fit": ["services"],
      "tier": { "basic": "△", "premium": "✓", "enterprise": "✓" },
      "readiness": "Build-required",
      "linked_screen_codes": ["V1-OP", "V1-STAKE"],
      "linked_db_group_codes": ["SUPPORT_SERVICES", "IDENTITY_GOVERNANCE"],
      "linked_tracking_events": ["screen_viewed", "operator_action"],
      "source_note": "Bridge · MGT-LINK-01 · B2B operator landing + stakeholder governance",
      "introduced_by": "MGT-LINK-01",
      "why": "No existing service in the 13-item starter catalog covered operator-side landing. The V1 prototype shows a clear partner-workspace entry (TGScreenOperatorIndex) that gates into upload/intake/assets/case/stake/queue sub-screens.",
      "v2_next_action": "Promote to formal service after V2 scope review · evaluate overlap with SVC-HELPDESK"
    },
    {
      "service_code": "OPS-CONTENT-INTAKE",
      "service_name": "Content Intake Pipeline",
      "category": "Operations",
      "mode_fit": ["services"],
      "tier": { "basic": "-", "premium": "△", "enterprise": "✓" },
      "readiness": "Build-required",
      "linked_screen_codes": ["V1-UPLOAD", "V1-INTAKE", "V1-ASSETS"],
      "linked_db_group_codes": ["SUPPORT_SERVICES", "CONTENT_MEDIA"],
      "linked_tracking_events": ["content_uploaded", "intake_submitted", "asset_reviewed"],
      "source_note": "Bridge · MGT-LINK-01 · partner-side content ingestion",
      "introduced_by": "MGT-LINK-01",
      "why": "Three V1 screens (Upload, Intake, Assets) form one operational vertical — file ingestion → form-based metadata → library review. Modelling as one service with three surface steps keeps the registry lean.",
      "v2_next_action": "Wire real upload pipeline (S3/GCS) + approval workflow · define intake form schema"
    },
    {
      "service_code": "OPS-QUEUE",
      "service_name": "Operator Work Queue",
      "category": "Operations",
      "mode_fit": ["services"],
      "tier": { "basic": "-", "premium": "△", "enterprise": "✓" },
      "readiness": "Build-required",
      "linked_screen_codes": ["V1-QUEUE"],
      "linked_db_group_codes": ["SUPPORT_SERVICES"],
      "linked_tracking_events": ["queue_viewed", "task_claimed", "task_completed"],
      "source_note": "Bridge · MGT-LINK-01 · priority queue and task triage for partner staff",
      "introduced_by": "MGT-LINK-01",
      "why": "TGScreenQueue is a distinct work-queue surface separate from case management. SVC-HELPDESK covers case-by-case support, but queue triage (priority, SLA, assignment) deserves its own service.",
      "v2_next_action": "Define queue schema · priority rules · integrate with case management"
    },
    {
      "service_code": "CONTENT-RENDER",
      "service_name": "Content Render Layer",
      "category": "Content",
      "mode_fit": ["trip", "mice"],
      "tier": { "basic": "✓", "premium": "✓", "enterprise": "✓" },
      "readiness": "Config-ready",
      "linked_screen_codes": ["V1-MEDIA", "V1-EMBED", "V1-IMMERSIVE"],
      "linked_db_group_codes": ["CONTENT_MEDIA"],
      "linked_tracking_events": ["media_played", "embed_loaded", "immersive_entered"],
      "source_note": "Bridge · MGT-LINK-01 · unified render service for video/audio/iframe/360",
      "introduced_by": "MGT-LINK-01",
      "why": "Media, Embed, and Immersive are three render surfaces that all consume the same `content_item` schema from CONTENT_MEDIA DB group. One service with three render formats beats three services with near-identical shape.",
      "v2_next_action": "Standardise content_item schema · define allowlist for embed providers · pick WebXR/3D SDK for immersive"
    },
    {
      "service_code": "IDENTITY-PROFILE",
      "service_name": "User Profile & Preferences",
      "category": "Identity",
      "mode_fit": ["all"],
      "tier": { "basic": "✓", "premium": "✓", "enterprise": "✓" },
      "readiness": "Config-ready",
      "linked_screen_codes": ["V1-PROFILE"],
      "linked_db_group_codes": ["IDENTITY_GOVERNANCE"],
      "linked_tracking_events": ["profile_viewed", "preference_changed", "activity_viewed"],
      "source_note": "Bridge · MGT-LINK-01 · identity surface, preferences, activity",
      "introduced_by": "MGT-LINK-01",
      "why": "TGScreenProfile is a first-class identity surface with 3 tabs (Profile / Preferences / Activity). The starter catalog had no profile service because it focused on consumer-facing offerings. Profile deserves explicit service so JWT/RBAC/PDPA can be attached cleanly.",
      "v2_next_action": "Wire JWT + RBAC · hash PII per PDPA · persist preferences + activity trail"
    },
    {
      "service_code": "NEWS-PLATFORM-FEED",
      "service_name": "Platform News Feed",
      "category": "Content",
      "mode_fit": ["all"],
      "tier": { "basic": "✓", "premium": "✓", "enterprise": "✓" },
      "readiness": "Config-ready",
      "linked_screen_codes": ["V1-NEWS", "V1-HOME"],
      "linked_db_group_codes": ["CONTENT_MEDIA"],
      "linked_tracking_events": ["news_viewed", "join_cta_clicked", "video_played"],
      "source_note": "Bridge · MGT-LINK-01 · editorial platform announcements, project-overview video, Join the Platform CTA",
      "introduced_by": "MGT-LINK-01",
      "why": "TGScreenNews is editorial in nature (concept comparison, persona panel, project-overview video, Join the Platform CTA) — distinct from notifications. Home also features a 'Platform news' card that links here, so this service is the canonical entry for platform-wide editorial content.",
      "v2_next_action": "Define news_item schema · CMS ingestion pipeline · editorial workflow"
    }
  ],
  "screen_mappings": [
    {
      "screen_code": "V1-HOME",
      "screen_name": "Home",
      "primary_mode": "all",
      "mapping_type": "composite",
      "linked_service_codes": ["TRIP-NEARBY", "MICE-AGENDA", "STAY-HOTELS", "STAY-OFFERS", "RWD-POINTS", "NEWS-PLATFORM-FEED"],
      "mapping_note": "Home is an aggregator · each card maps to its mode primary service · Trip (Nearby) + MICE agenda shortcut + Stay (Book hotel + member offers) + Rewards (wallet card) + Platform news banner",
      "justification": {
        "service_family": "Cross-mode aggregation — no single family",
        "marketing_trace": {
          "MKT#5 · Mode Architecture": "Home is the first entry point that exposes 6 modes via dock + 8 featured cards",
          "MKT#7 · DB Structure": "All card shortcuts query downstream DB groups (TRIP_STAY_SHOPPING, MICE, REWARDS, CONTENT_MEDIA)"
        }
      },
      "tracking_events": ["screen_viewed", "card_clicked", "mode_switched"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-OP",
      "screen_name": "OperatorIndex",
      "primary_mode": "services",
      "mapping_type": "bridge",
      "linked_service_codes": ["OPS-WORKSPACE"],
      "mapping_note": "No existing service covers operator landing · OPS-WORKSPACE bridge consolidates partner-workspace entry + sub-portal navigation",
      "justification": {
        "service_family": "Operations · B2B partner landing",
        "marketing_trace": {
          "MKT#4 · 84-Service Catalog": "Operator/B2B category not detailed in starter catalog · MGT-LINK-01 introduces bridge",
          "MKT#7 · DB Structure": "IDENTITY_GOVERNANCE (users/roles) + SUPPORT_SERVICES tables drive this surface"
        }
      },
      "tracking_events": ["screen_viewed", "operator_action"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-UPLOAD",
      "screen_name": "Upload",
      "primary_mode": "services",
      "mapping_type": "bridge",
      "linked_service_codes": ["OPS-CONTENT-INTAKE"],
      "mapping_note": "Upload is the file-ingestion step of the partner content pipeline · bridge service covers upload + intake + assets as one vertical",
      "justification": {
        "service_family": "Operations · content ingestion",
        "marketing_trace": {
          "MKT#7 · DB Structure": "CONTENT_MEDIA DB group (content_items + media_assets) is the write target"
        }
      },
      "tracking_events": ["content_uploaded"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-INTAKE",
      "screen_name": "Intake",
      "primary_mode": "services",
      "mapping_type": "bridge",
      "linked_service_codes": ["OPS-CONTENT-INTAKE"],
      "mapping_note": "Form-based intake step · shares pipeline with upload and assets",
      "justification": {
        "service_family": "Operations · content ingestion",
        "marketing_trace": { "MKT#7 · DB Structure": "SUPPORT_SERVICES + CONTENT_MEDIA DB groups" }
      },
      "tracking_events": ["intake_submitted"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-ASSETS",
      "screen_name": "Assets",
      "primary_mode": "services",
      "mapping_type": "bridge",
      "linked_service_codes": ["OPS-CONTENT-INTAKE"],
      "mapping_note": "Post-upload asset library view · part of the content intake pipeline · shares tracking surface with upload + intake",
      "justification": {
        "service_family": "Operations · content ingestion",
        "marketing_trace": { "MKT#7 · DB Structure": "CONTENT_MEDIA (media_assets table)" }
      },
      "tracking_events": ["asset_reviewed"],
      "certainty": "medium",
      "what_remains_uncertain": "If Assets grows into asset-rights-management or a DAM, it may split out of OPS-CONTENT-INTAKE into its own service."
    },
    {
      "screen_code": "V1-STAKE",
      "screen_name": "Stake",
      "primary_mode": "services",
      "mapping_type": "bridge",
      "linked_service_codes": ["OPS-WORKSPACE"],
      "mapping_note": "Stakeholder governance surface · co-located with operator workspace · shares IDENTITY_GOVERNANCE DB group",
      "justification": {
        "service_family": "Operations · governance",
        "marketing_trace": { "MKT#7 · DB Structure": "IDENTITY_GOVERNANCE (roles + tenants)" }
      },
      "tracking_events": ["stakeholder_viewed"],
      "certainty": "medium",
      "what_remains_uncertain": "Stakeholder view may warrant its own service (e.g. OPS-STAKEHOLDER) if it grows governance-heavy features — decide in V2."
    },
    {
      "screen_code": "V1-QUEUE",
      "screen_name": "Queue",
      "primary_mode": "services",
      "mapping_type": "bridge",
      "linked_service_codes": ["OPS-QUEUE"],
      "mapping_note": "Work queue triage · distinct from case management (which is handled by SVC-HELPDESK)",
      "justification": {
        "service_family": "Operations · work triage",
        "marketing_trace": { "MKT#7 · DB Structure": "SUPPORT_SERVICES" }
      },
      "tracking_events": ["queue_viewed", "task_claimed"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-MEDIA",
      "screen_name": "MediaPlayer",
      "primary_mode": "trip",
      "mapping_type": "bridge",
      "linked_service_codes": ["CONTENT-RENDER"],
      "mapping_note": "Video/audio player · part of unified content render layer (shared with embed + immersive)",
      "justification": {
        "service_family": "Content · render layer",
        "marketing_trace": { "MKT#7 · DB Structure": "CONTENT_MEDIA (media_assets)" }
      },
      "tracking_events": ["media_played"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-EMBED",
      "screen_name": "EmbedHost",
      "primary_mode": "trip",
      "mapping_type": "bridge",
      "linked_service_codes": ["CONTENT-RENDER"],
      "mapping_note": "Iframe host for 3rd-party content · same render layer as media + immersive",
      "justification": {
        "service_family": "Content · render layer",
        "marketing_trace": { "MKT#7 · DB Structure": "CONTENT_MEDIA (content_items with embed_url)" }
      },
      "tracking_events": ["embed_loaded"],
      "certainty": "medium",
      "what_remains_uncertain": "Embed may need its own service if security/allowlist policies expand beyond generic content rendering."
    },
    {
      "screen_code": "V1-IMMERSIVE",
      "screen_name": "Immersive",
      "primary_mode": "trip",
      "mapping_type": "bridge",
      "linked_service_codes": ["CONTENT-RENDER"],
      "mapping_note": "360°/3D full-screen experiential view · same render layer as media + embed",
      "justification": {
        "service_family": "Content · render layer",
        "marketing_trace": { "MKT#7 · DB Structure": "CONTENT_MEDIA (media_assets with immersive format)" }
      },
      "tracking_events": ["immersive_entered"],
      "certainty": "medium",
      "what_remains_uncertain": "If immersive grows into WebXR or native 3D SDK integration, it may split into CONTENT-IMMERSIVE-3D as a separate service."
    },
    {
      "screen_code": "V1-PROFILE",
      "screen_name": "Profile",
      "primary_mode": "all",
      "mapping_type": "bridge",
      "linked_service_codes": ["IDENTITY-PROFILE"],
      "mapping_note": "User profile with Profile/Preferences/Activity tabs · base identity surface",
      "justification": {
        "service_family": "Identity · self-service",
        "marketing_trace": {
          "MKT#7 · DB Structure": "IDENTITY_GOVERNANCE (users, user_roles, tenant_settings)"
        }
      },
      "tracking_events": ["profile_viewed", "preference_changed"],
      "certainty": "high"
    },
    {
      "screen_code": "V1-NEWS",
      "screen_name": "News",
      "primary_mode": "all",
      "mapping_type": "bridge",
      "linked_service_codes": ["NEWS-PLATFORM-FEED"],
      "mapping_note": "TGScreenNews Platform update · concept comparison + Alex persona + project-overview video + Join the Platform",
      "justification": {
        "service_family": "Content · editorial",
        "marketing_trace": {
          "MKT#7 · DB Structure": "CONTENT_MEDIA (content_items category=news)"
        }
      },
      "tracking_events": ["news_viewed", "video_played", "join_cta_clicked"],
      "certainty": "high"
    }
  ],
  "traceability_summary": {
    "design_to_management": "Each V1 screen in the runtime Screen Registry now carries linked_service_codes_json + service_mapping_note, queryable via GET /mgt-api/screens.",
    "management_to_marketing": "Every bridge service carries source_note pointing to its justification + introduced_by=MGT-LINK-01 + marketing_trace in this JSON linking back to MKT #4/#5/#7.",
    "design_to_marketing": "This mapping matrix file is surfaced under the Design Hub V1 section and cross-linked from management-runtime/services.html."
  },
  "honest_notes": [
    "6 bridge services mark the scope of work that the starter 13-service catalog missed. They are not new product decisions — they are placeholders for existing V1 surfaces that need formal service definitions in V2.",
    "Tracking events listed are prescriptive (what SHOULD be emitted), not currently wired — per existing tracking_status=not-started on every V1 screen.",
    "5 mappings marked certainty=medium (ASSETS, STAKE, EMBED, IMMERSIVE, plus HOME via composite) — reasoning documented per screen under what_remains_uncertain.",
    "No screen was left pending after MGT-LINK-01. All 24 V1 screens have ≥1 service."
  ]
}
