# Service Manifest

# Registry of independent deployable services for TorbatYar.
# Keep aligned with docs/module-registry.md and runtime compose ports when wired.

schema_version: 1
updated: "2026-07-25"

services:
  - id: core-platform
    name: Core Platform
    owner: Platform
    path: backend/core-service
    database: core_platform_db
    api_prefix: /api/v1
    permission_prefix: core.*
    dependencies:
      - postgres
      - redis
      - celery
      - shared-lib
    events:
      - tenant.*
      - domain.*
      - subscription.*
      - feature_access.*
    health_endpoint: /health
    documentation:
      - docs/architecture/
      - docs/reference/
    current_version: 0.4.x
    current_phase: onboarding-4
    status: active

  - id: identity-access
    name: Identity & Access
    owner: Platform
    path: backend/services/identity-access
    database: identity_access_db
    api_prefix: /api/v1
    permission_prefix: identity.*
    dependencies:
      - keycloak
      - core-platform
      - shared-lib
    events:
      - user.registered
      - tenant_member.added
      - tenant_member.removed
    health_endpoint: /health
    documentation:
      - docs/architecture/identity-architecture.md
    current_version: 0.2.x
    current_phase: identity-2
    status: active
    api_port: 8001

  - id: accounting
    name: Accounting
    owner: Platform
    path: backend/services/accounting
    database: accounting_db
    api_prefix: /api/v1
    permission_prefix: accounting.*
    dependencies:
      - core-platform
      - shared-lib
    events:
      - voucher.posted
      - ledger.updated
      - cash.received
      - settlement.completed
      - sales_invoice.posted
    health_endpoint: /health
    documentation:
      - docs/phases/Accounting/README.md
    current_version: 0.5.11.0
    current_phase: accounting-5.11
    status: active
    api_port: 8002

  - id: crm
    name: CRM
    owner: Platform
    path: backend/services/crm
    database: crm_db
    api_prefix: /api/v1
    permission_prefix: crm.*
    dependencies:
      - core-platform
      - shared-lib
    events:
      - crm.lead.*
      - crm.contact.*
      - crm.organization.*
      - crm.opportunity.*
      - crm.pipeline.*
      - crm.task.*
      - crm.meeting.*
      - crm.call.*
      - crm.timeline.*
      - crm.comment.*
      - crm.mention.*
    health_endpoint: /health
    documentation:
      - docs/crm-phase-6-3.md
      - docs/phases/CRM/README.md
    current_version: 0.6.3.0
    current_phase: crm-6.3
    status: active
    api_port: 8003

  - id: loyalty
    name: Enterprise Loyalty Platform
    owner: Platform
    path: backend/services/loyalty
    database: loyalty_db
    api_prefix: /api/v1
    permission_prefix: loyalty.*
    dependencies:
      - core-platform
      - shared-lib
    events:
      - loyalty.program.*
      - loyalty.tier.*
      - loyalty.member.*
      - loyalty.point_account.*
      - loyalty.points.*
      - loyalty.reward.*
      - loyalty.campaign.*
      - loyalty.referral.*
      - loyalty.wallet.*
    health_endpoint: /health
    documentation:
      - docs/loyalty-phase-7-0.md
      - docs/loyalty-phase-7-1.md
      - docs/loyalty-phase-7-2.md
      - docs/loyalty-phase-7-3.md
      - docs/loyalty-phase-7-4.md
      - docs/loyalty-phase-7-5.md
      - docs/loyalty-phase-7-6.md
      - docs/phase-handover/phase-7-6.md
      - docs/service-snapshots/loyalty.yaml
      - docs/phases/Loyalty/README.md
      - docs/architecture/adr/ADR-011.md
    current_version: 0.7.6.0
    current_phase: loyalty-7.6
    status: active
    api_port: 8004

  - id: communication
    name: Enterprise Communication Platform
    description: Independent shared messaging platform (Torbat Communication). Production Ready for SMS MVP; future channels documented in communication-roadmap.md only.
    owner: Platform
    path: backend/services/communication
    database: communication_db
    api_prefix: /api/v1
    permission_prefix: communication.*
    dependencies:
      - core-platform
      - shared-lib
    events:
      - communication.message.*
      - communication.provider.failover
      - communication.otp.*
      - communication.queue.dead_letter
      - communication.webhook.received
    health_endpoint: /health
    documentation:
      - docs/communication-phase-8.md
      - docs/communication-phase-8-audit.md
      - docs/communication-roadmap.md
      - docs/phase-handover/phase-8.md
      - docs/service-snapshots/communication.yaml
      - docs/architecture/adr/ADR-012.md
    current_version: 0.8.10.1
    current_phase: communication-8
    status: active
    api_port: 8005

  - id: sports_center
    name: Sports Center Platform
    description: Independent multi-tenant sports club / gym / facility operations platform (members, memberships, coaches, attendance, booking, programs, competitions, integrations).
    owner: Platform
    path: backend/services/sports_center
    database: sports_center_db
    api_prefix: /api/v1
    permission_prefix: sports_center.*
    health_endpoint: /health
    configuration:
      - SPORTS_CENTER_DATABASE_URL
      - AUTH_REQUIRED
      - tenant resolution via X-Tenant-ID / shared middleware
      - entitlement feature keys sports_center.*
    dependencies:
      - core-platform
      - shared-lib
    optional_dependencies:
      - accounting
      - crm
      - loyalty
      - communication
    events:
      - sports_center.member.*
      - sports_center.membership.*
      - sports_center.membership_type.*
      - sports_center.membership_package.*
      - sports_center.membership_plan.*
      - sports_center.pricing_model.*
      - sports_center.age_group.*
      - sports_center.sport_category.*
      - sports_center.membership_rule.*
      - sports_center.renewal_policy.*
      - sports_center.freezing_rule.*
      - sports_center.expiration_policy.*
      - sports_center.coach.*
      - sports_center.attendance.*
      - sports_center.booking.*
      - sports_center.session.*
      - sports_center.program.*
      - sports_center.workout.*
      - sports_center.competition.*
      - sports_center.event.*
    public_apis:
      - /health
      - /capabilities
      - /api/v1/sports-centers
      - /api/v1/membership-types
      - /api/v1/membership-packages
      - /api/v1/membership-plans
      - /api/v1/pricing-models
      - /api/v1/age-groups
      - /api/v1/sport-categories
      - /api/v1/membership-rules
      - /api/v1/renewal-policies
      - /api/v1/freezing-rules
      - /api/v1/expiration-policies
      - /api/v1/members
      - /api/v1/family-members
      - /api/v1/emergency-contacts
      - /api/v1/medical-information
      - /api/v1/membership-cards
      - /api/v1/digital-memberships
      - /api/v1/waivers
      - /api/v1/member-documents
      - /api/v1/memberships
      - /api/v1/coaches
      - /api/v1/facilities
    internal_apis:
      - service-to-service refs for Accounting / CRM / Loyalty / Communication (token-gated; not public)
    tenant_aware: true
    audit_enabled: true
    documentation:
      - docs/sports-center-roadmap.md
      - docs/sports-center-phase-9-0.md
      - docs/sports-center-phase-9-1.md
      - docs/sports-center-phase-9-2.md
      - docs/sports-center-phase-9-3.md
      - docs/sports-center-phase-9-4.md
      - docs/sports-center-phase-9-5.md
      - docs/sports-center-phase-9-6.md
      - docs/sports-center-phase-9-7.md
      - docs/phase-handover/phase-9-7.md
      - docs/phases/SportsCenter/README.md
      - docs/architecture/adr/ADR-014.md
      - docs/module-registry.md
    current_version: 0.9.7.0
    current_phase: sports-center-9.7
    current_status: active
    status: active
    future_modules:
      - members
      - membership
      - membership_types
      - coaches
      - attendance
      - booking
      - facilities
      - equipment
      - programs
      - workouts
      - competitions
      - events
      - medical
      - nutrition
      - locker
      - mobile
      - reports
      - analytics
      - integrations


  - id: delivery
    name: Delivery & Fleet Platform
    description: Independent multi-tenant logistics platform (Torbat Driver) — drivers, fleet, dispatch, routing, tracking, POD, settlement intents, merchant connectors. Consumed by Restaurant, Marketplace, Pharmacy, Clinic, Sports Center, and future verticals via API/Events only.
    owner: Platform
    path: backend/services/delivery
    database: delivery_db
    api_prefix: /api/v1
    permission_prefix: delivery.*
    health_endpoint: /health
    configuration:
      - DELIVERY_DATABASE_URL
      - AUTH_REQUIRED
      - tenant resolution via X-Tenant-ID / shared middleware
      - entitlement feature keys delivery.*
    dependencies:
      - core-platform
      - shared-lib
    optional_dependencies:
      - accounting
      - crm
      - loyalty
      - communication
    events:
      - delivery.organization.*
      - delivery.hub.*
      - delivery.external_provider.*
      - delivery.routing_engine.*
      - delivery.configuration.*
      - delivery.setting.*
      - delivery.driver.*
      - delivery.fleet.*
      - delivery.vehicle.*
      - delivery.dispatch.*
      - delivery.route.*
      - delivery.tracking.*
      - delivery.pod.*
      - delivery.settlement.*
      - delivery.shift.*
      - delivery.zone.*
    public_apis:
      - /health
      - /capabilities
      - /metrics
      - /api/v1/organizations
      - /api/v1/hubs
      - /api/v1/external-providers
      - /api/v1/routing-engines
      - /api/v1/configurations
      - /api/v1/settings
      - /api/v1/audit
      - /api/v1/drivers
      - /api/v1/permissions/catalog
    internal_apis:
      - service-to-service merchant connector and settlement refs (token-gated; not public)
    tenant_aware: true
    audit_enabled: true
    documentation:
      - docs/delivery-roadmap.md
      - docs/delivery-phase-10-0.md
      - docs/delivery-phase-10-1.md
      - docs/phases/Delivery/README.md
      - docs/phase-handover/phase-dp-reg.md
      - docs/phase-handover/phase-10-0.md
      - docs/phase-handover/phase-10-1.md
      - docs/architecture/adr/ADR-015.md
      - docs/module-registry.md
    current_version: 0.10.1.0
    current_phase: delivery-10.1
    current_status: active
    status: active
    api_port: 8007
    commercial_product: Torbat Driver
    future_modules:
      - fleet
      - vehicle_types
      - vehicles
      - availability
      - shifts
      - working_zones
      - pricing
      - capabilities
      - bundles
      - dispatch
      - routing
      - optimization
      - tracking
      - proof_of_delivery
      - settlement
      - merchant_connector
      - notifications
      - driver_app_apis
      - dispatcher_panel_apis
      - customer_tracking
      - fleet_analytics
      - ai_hooks
      - external_providers

  - id: experience
    name: Enterprise Experience Platform
    description: Independent multi-tenant experience platform (Torbat Pages) — sites, pages-as-resources, versioned components, themes, layouts, templates, localization, forms, SEO/PWA, bundles, widgets. Consumed by Hospitality, Marketplace, Sports Center, CRM, and future verticals via API/Events only.
    owner: Platform
    path: backend/services/experience
    database: experience_db
    api_prefix: /api/v1
    permission_prefix: experience.*
    health_endpoint: /health
    configuration:
      - EXPERIENCE_DATABASE_URL
      - AUTH_REQUIRED
      - tenant resolution via X-Tenant-ID / shared middleware
      - entitlement feature keys experience.*
    dependencies:
      - core-platform
      - shared-lib
    optional_dependencies:
      - file_storage
      - crm
      - loyalty
      - communication
      - accounting
      - sports_center
      - delivery
      - ai_assistant
      - automation
    events:
      - experience.workspace.*
      - experience.locale_profile.*
      - experience.external_provider.*
      - experience.render_engine.*
      - experience.configuration.*
      - experience.setting.*
      - experience.site.*
      - experience.page.*
      - experience.site_domain.*
      - experience.component.*
      - experience.component_version.*
      - experience.page_component.*
      - experience.theme.*
      - experience.layout.*
      - experience.template.*
      - experience.form.*
      - experience.publish.*
      - experience.domain.*
      - experience.bundle.*
      - experience.widget.*
    public_apis:
      - /health
      - /capabilities
      - /metrics
      - /api/v1/workspaces
      - /api/v1/locale-profiles
      - /api/v1/external-providers
      - /api/v1/render-engines
      - /api/v1/configurations
      - /api/v1/settings
      - /api/v1/audit
      - /api/v1/sites
      - /api/v1/pages
      - /api/v1/site-domains
      - /api/v1/components
      - /api/v1/component-versions
      - /api/v1/page-component-placements
      - /api/v1/themes
      - /api/v1/layouts
      - /api/v1/site-theme-assignments
      - /api/v1/page-layout-assignments
    internal_apis:
      - service-to-service consumer connector refs (token-gated; not public)
    tenant_aware: true
    audit_enabled: true
    documentation:
      - docs/experience-roadmap.md
      - docs/experience-phase-xp-reg.md
      - docs/experience-phase-11-0.md
      - docs/experience-phase-11-1.md
      - docs/experience-phase-11-2.md
      - docs/experience-phase-11-3.md
      - docs/phases/Experience/README.md
      - docs/phase-handover/phase-xp-reg.md
      - docs/phase-handover/phase-11-0.md
      - docs/phase-handover/phase-11-1.md
      - docs/phase-handover/phase-11-2.md
      - docs/phase-handover/phase-11-3.md
      - docs/architecture/adr/ADR-016.md
      - docs/module-registry.md
    current_version: 0.11.3.0
    current_phase: experience-11.3
    current_status: active
    status: active
    api_port: 8008
    commercial_product: Torbat Pages
    future_modules:
      - sites
      - pages
      - page_types
      - components
      - component_versions
      - themes
      - layouts
      - templates
      - locales
      - media_refs
      - forms
      - surveys
      - appointments
      - publishing
      - domains
      - seo
      - pwa
      - bundles
      - feature_toggles
      - widgets
      - consumer_connectors
      - analytics
      - ai_hooks
      - audit
      - configuration

  - id: hospitality
    name: Hospitality Platform
    description: Independent multi-tenant F&B / hospitality operations platform (Torbat Food) — venues, digital menu catalog, tables, bundle licensing, feature toggles; future QR ordering/POS/kitchen/reservation/connectors. Integrates Accounting, CRM, Loyalty, Communication, Delivery, Website Builder, AI via API/Events only.
    owner: Platform
    path: backend/services/hospitality
    database: hospitality_db
    api_prefix: /api/v1
    permission_prefix: hospitality.*
    health_endpoint: /health
    configuration:
      - HOSPITALITY_DATABASE_URL
      - AUTH_REQUIRED
      - tenant resolution via X-Tenant-ID / shared middleware
      - entitlement / bundle feature keys hospitality.*
    dependencies:
      - core-platform
      - shared-lib
    optional_dependencies:
      - accounting
      - crm
      - loyalty
      - communication
      - delivery
      - website_builder
    events:
      - hospitality.venue.*
      - hospitality.branch.*
      - hospitality.menu.*
      - hospitality.menu_category.*
      - hospitality.menu_item.*
      - hospitality.allergen.*
      - hospitality.modifier_group.*
      - hospitality.modifier_option.*
      - hospitality.menu_item_modifier.*
      - hospitality.menu_item_allergen.*
      - hospitality.availability_window.*
      - hospitality.menu_media_ref.*
      - hospitality.menu_localization.*
      - hospitality.dining_area.*
      - hospitality.table.*
      - hospitality.bundle_definition.*
      - hospitality.tenant_bundle.*
      - hospitality.feature_toggle.*
      - hospitality.configuration.*
      - hospitality.setting.*
      - hospitality.qr_code.*
      - hospitality.qr_menu_session.*
      - hospitality.qr_ordering_session.*
      - hospitality.cart.*
      - hospitality.cart_line.*
      - hospitality.reservation.*
      - hospitality.table_assignment.*
      - hospitality.service_request.*
      - hospitality.waitlist_entry.*
      - hospitality.pos_register.*
      - hospitality.pos_shift.*
      - hospitality.pos_ticket.*
      - hospitality.pos_ticket_line.*
      - hospitality.pos_payment.*
      - hospitality.pos_discount.*
      - hospitality.pos_tax_line.*
      - hospitality.pos_floor_plan.*
      - hospitality.pos_station.*
      - hospitality.kitchen_station.*
      - hospitality.kitchen_ticket.*
      - hospitality.kitchen_ticket_item.*
      - hospitality.connector_registration.*
      - hospitality.connector_dispatch.*
      - hospitality.analytics_report_definition.*
      - hospitality.analytics_snapshot.*
    public_apis:
      - /health
      - /capabilities
      - /api/v1/venues
      - /api/v1/branches
      - /api/v1/dining-areas
      - /api/v1/tables
      - /api/v1/menus
      - /api/v1/menu-categories
      - /api/v1/menu-items
      - /api/v1/allergens
      - /api/v1/modifier-groups
      - /api/v1/modifier-options
      - /api/v1/menu-item-modifiers
      - /api/v1/menu-item-allergens
      - /api/v1/availability-windows
      - /api/v1/menu-media-refs
      - /api/v1/menu-localizations
      - /api/v1/qr-codes
      - /api/v1/qr-menu-sessions
      - /api/v1/qr-ordering-sessions
      - /api/v1/carts
      - /api/v1/cart-lines
      - /api/v1/reservations
      - /api/v1/table-assignments
      - /api/v1/service-requests
      - /api/v1/waitlist
      - /api/v1/bundle-definitions
      - /api/v1/tenant-bundles
      - /api/v1/feature-toggles
      - /api/v1/roles
      - /api/v1/permissions
      - /api/v1/configurations
      - /api/v1/events
      - /api/v1/settings
    internal_apis:
      - service-to-service refs for Accounting / CRM / Loyalty / Communication / Delivery / Website (token-gated; not public)
    tenant_aware: true
    audit_enabled: true
    documentation:
      - docs/hospitality-roadmap.md
      - docs/hospitality-phase-12-0.md
      - docs/hospitality-phase-12-1.md
      - docs/hospitality-phase-12-2.md
      - docs/hospitality-phase-12-3.md
      - docs/hospitality-phase-12-4.md
      - docs/hospitality-phase-12-5.md
      - docs/hospitality-phase-12-6.md
      - docs/hospitality-phase-12-7.md
      - docs/hospitality-phase-12-8.md
      - docs/phase-handover/phase-12-0.md
      - docs/phase-handover/phase-12-1.md
      - docs/phase-handover/phase-12-2.md
      - docs/phase-handover/phase-12-3.md
      - docs/phase-handover/phase-12-4.md
      - docs/phase-handover/phase-12-5.md
      - docs/phase-handover/phase-12-6.md
      - docs/phase-handover/phase-12-7.md
      - docs/phase-handover/phase-12-8.md
      - docs/phases/Hospitality/README.md
      - docs/architecture/adr/ADR-017.md
      - docs/module-registry.md
    current_version: 0.12.8.0
    current_phase: hospitality-12.8
    current_status: active
    status: active
    api_port: 8009
    commercial_product: Torbat Food
    future_modules:
      - pos_lite
      - pos_pro
      - kitchen
      - delivery_connector
      - accounting_connector
      - crm_connector
      - loyalty_connector
      - communication_connector
      - website_connector
      - analytics
      - ai_assistant

  - id: restaurant
    name: Restaurant / Cafe (historical scaffold)
    owner: Platform
    path: backend/services/restaurant
    database: hospitality_db
    api_prefix: /api/v1
    permission_prefix: hospitality.*
    dependencies:
      - hospitality
    events:
      - hospitality.*
    health_endpoint: /health
    documentation:
      - docs/phases/Restaurant/README.md
      - docs/hospitality-phase-12-0.md
      - docs/hospitality-phase-12-1.md
      - docs/hospitality-phase-12-2.md
      - docs/hospitality-phase-12-3.md
    current_version: 0.12.3.0
    current_phase: hospitality-12.3
    status: superseded
    notes: Pointer only — runtime is hospitality service (ADR-017).

  - id: ecommerce
    name: Ecommerce
    owner: TBD
    path: backend/services/ecommerce
    database: ecommerce_db
    api_prefix: /api/v1
    permission_prefix: ecommerce.*
    dependencies:
      - core-platform
    events:
      - order.*
      - product.*
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
    current_version: 0.0.0
    current_phase: ecommerce-foundation
    status: scaffolded

  - id: marketplace
    name: Marketplace
    owner: TBD
    path: null
    database: TBD
    api_prefix: TBD
    permission_prefix: marketplace.*
    dependencies:
      - ecommerce
      - identity-access
      - accounting
    events: []
    health_endpoint: TBD
    documentation:
      - docs/phases/Marketplace/README.md
    current_version: 0.0.0
    current_phase: marketplace-foundation
    status: planned

  - id: automation
    name: Automation
    owner: TBD
    path: null
    database: TBD
    api_prefix: TBD
    permission_prefix: automation.*
    dependencies: []
    events: []
    health_endpoint: TBD
    documentation:
      - docs/phases/Automation/README.md
    current_version: 0.0.0
    current_phase: automation-foundation
    status: planned

  - id: academy
    name: Academy
    owner: TBD
    path: null
    database: academy_db
    api_prefix: /api/v1
    permission_prefix: academy.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/phases/Future/README.md
    current_version: 0.0.0
    current_phase: academy-foundation
    status: planned

  - id: clinic
    name: Clinic
    owner: TBD
    path: null
    database: clinic_db
    api_prefix: /api/v1
    permission_prefix: clinic.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/phases/Future/README.md
    current_version: 0.0.0
    current_phase: clinic-foundation
    status: planned

  - id: hotel
    name: Hotel
    owner: TBD
    path: null
    database: hotel_db
    api_prefix: /api/v1
    permission_prefix: hotel.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/phases/Future/README.md
    current_version: 0.0.0
    current_phase: hotel-foundation
    status: planned

  - id: tourism
    name: Tourism
    owner: TBD
    path: null
    database: tourism_db
    api_prefix: /api/v1
    permission_prefix: tourism.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/phases/Future/README.md
    current_version: 0.0.0
    current_phase: tourism-foundation
    status: planned

  - id: ai_assistant
    name: AI Assistant
    owner: TBD
    path: backend/services/ai_assistant
    database: ai_assistant_db
    api_prefix: /api/v1
    permission_prefix: ai_assistant.*
    dependencies:
      - core-platform
    events:
      - assistant.*
    health_endpoint: /health
    documentation:
      - docs/architecture/ai-architecture.md
      - docs/phases/AI/README.md
    current_version: 0.0.0
    current_phase: ai-assistant-foundation
    status: scaffolded

  - id: website_builder
    name: Website Builder
    owner: TBD
    path: backend/services/website_builder
    database: website_builder_db
    api_prefix: /api/v1
    permission_prefix: website_builder.*
    dependencies:
      - file_storage
    events: []
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
      - docs/architecture/adr/ADR-016.md
    current_version: 0.0.0
    current_phase: future-services
    status: scaffolded
    notes: Prefer experience service (ADR-016 / Torbat Pages) for new page/site work. Historical scaffold only.

  - id: live_chat
    name: Live Chat
    owner: TBD
    path: backend/services/live_chat
    database: live_chat_db
    api_prefix: /api/v1
    permission_prefix: live_chat.*
    dependencies:
      - core-platform
    events:
      - conversation.*
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
    current_version: 0.0.0
    current_phase: future-services
    status: scaffolded

  - id: smart_messenger
    name: Smart Messenger
    owner: TBD
    path: backend/services/smart_messenger
    database: smart_messenger_db
    api_prefix: /api/v1
    permission_prefix: smart_messenger.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
    current_version: 0.0.0
    current_phase: future-services
    status: scaffolded

  - id: sms_panel
    name: SMS Panel
    owner: TBD
    path: backend/services/sms_panel
    database: sms_panel_db
    api_prefix: /api/v1
    permission_prefix: sms_panel.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
      - docs/architecture/adr/ADR-012.md
    current_version: 0.0.0
    current_phase: sms-panel-future
    status: scaffolded
    notes: Prefer communication service for new messaging work (ADR-012).

  - id: notification
    name: Notification
    owner: TBD
    path: backend/services/notification
    database: notification_db
    api_prefix: /api/v1
    permission_prefix: notification.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
    current_version: 0.0.0
    current_phase: future-services
    status: scaffolded

  - id: file_storage
    name: File Storage
    owner: TBD
    path: backend/services/file_storage
    database: file_storage_db
    api_prefix: /api/v1
    permission_prefix: file_storage.*
    dependencies: []
    events: []
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
    current_version: 0.0.0
    current_phase: future-services
    status: scaffolded

  - id: link_shortener
    name: Link Shortener
    owner: TBD
    path: backend/services/link_shortener
    database: link_shortener_db
    api_prefix: /api/v1
    permission_prefix: link_shortener.*
    dependencies:
      - core-platform
    events: []
    health_endpoint: /health
    documentation:
      - docs/module-registry.md
    current_version: 0.0.0
    current_phase: future-services
    status: scaffolded

  - id: frontend
    name: Frontend
    owner: Platform
    path: frontend
    database: null
    api_prefix: consumes /api/v1
    permission_prefix: UI gated by /me roles
    dependencies:
      - core-platform
      - identity-access
      - keycloak
    events: []
    health_endpoint: null
    documentation:
      - docs/frontend/README.md
    current_version: Next-15.5.x
    current_phase: onboarding-4
    status: active
