{
    "ok": true,
    "data": {
        "modules": [
            {
                "name": "api",
                "version": "v1",
                "summary": "Application shell, session context, tenant context, module registry, and health endpoints.",
                "routes": [
                    "GET /",
                    "GET /admin",
                    "GET /admin/{path*}",
                    "GET /agent",
                    "GET /agent/{path*}",
                    "GET /api/v1/health",
                    "GET /api/v1/modules",
                    "GET /api/v1/me",
                    "GET /api/v1/tenants/current",
                    "GET /api/v1/themes/current",
                    "GET /api/v1/admin/bootstrap",
                    "GET /api/v1/agent/bootstrap",
                    "GET /api/v1/agent/workspace",
                    "GET /api/v1/ai/providers",
                    "GET /api/v1/ai/voice-providers",
                    "POST /api/v1/ai/transcription-providers",
                    "POST /api/v1/ai/llm-providers",
                    "POST /api/v1/ai/amd-profiles",
                    "POST /api/v1/ai/prompt-safety/preview",
                    "POST /api/v1/ai/ivr/draft",
                    "GET /api/v1/ivr/flows",
                    "GET /api/v1/ivr/actions",
                    "GET /api/v1/ivr/prompts",
                    "GET /api/v1/ivr/voice-assets",
                    "GET /api/v1/ivr/flows/{flow_id}",
                    "GET /api/v1/ivr/voice-assets/{voice_asset_id}",
                    "GET /api/v1/ivr/voice-assets/{voice_asset_id}/stream",
                    "POST /api/v1/ivr/flows",
                    "PATCH /api/v1/ivr/flows/{flow_id}",
                    "POST /api/v1/ivr/flows/{flow_id}/preview",
                    "POST /api/v1/ivr/flows/{flow_id}/publish",
                    "POST /api/v1/ivr/prompts",
                    "GET /api/v1/ivr/prompts/{prompt_key}/voice-assets",
                    "POST /api/v1/ivr/prompts/{prompt_key}/voice-assets",
                    "GET /api/v1/imports/profiles",
                    "GET /api/v1/imports/jobs",
                    "GET /api/v1/imports/provenance",
                    "POST /api/v1/imports/profiles",
                    "POST /api/v1/imports/jobs",
                    "POST /api/v1/ai/voice-providers",
                    "PATCH /api/v1/ai/voice-providers/{provider_id}",
                    "GET /api/v1/ai/voice-providers/{provider_id}/catalog",
                    "POST /api/v1/ai/voice-providers/{provider_id}/test"
                ]
            },
            {
                "name": "auth",
                "version": "v1",
                "summary": "Session-backed demo auth scaffold.",
                "routes": [
                    "POST /api/v1/auth/login",
                    "POST /api/v1/auth/logout"
                ],
                "service": {
                    "name": "session-auth",
                    "version": "v1",
                    "auth_modes": [
                        "demo-password",
                        "demo-username",
                        "session-cookie"
                    ],
                    "demo_auth_allowed": true,
                    "roles": [
                        "super_admin",
                        "admin",
                        "manager",
                        "agent"
                    ]
                }
            },
            {
                "name": "users",
                "version": "v1",
                "summary": "User directory, role seeding, and permission-aware admin provisioning.",
                "routes": [
                    "GET /api/v1/users",
                    "GET /api/v1/roles",
                    "GET /api/v1/users/{user_id}",
                    "POST /api/v1/me/password",
                    "POST /api/v1/users",
                    "POST /api/v1/roles",
                    "POST /api/v1/users/{user_id}",
                    "PATCH /api/v1/roles/{role_id}",
                    "PATCH /api/v1/users/{user_id}",
                    "DELETE /api/v1/roles/{role_id}",
                    "DELETE /api/v1/users/{user_id}"
                ],
                "directory": {
                    "name": "pdo-user-directory",
                    "version": "v1",
                    "roles": [
                        "super_admin",
                        "admin",
                        "manager",
                        "agent"
                    ],
                    "permissions": [
                        "control_recordings",
                        "download_recordings",
                        "listen_own_recordings",
                        "manage_ai",
                        "manage_brand_assets",
                        "manage_brands",
                        "manage_campaigns",
                        "manage_carriers",
                        "manage_extensions",
                        "manage_imports",
                        "manage_inbound",
                        "manage_ivr",
                        "manage_leads",
                        "manage_nodes",
                        "manage_own_phone",
                        "manage_scripts",
                        "manage_users",
                        "manual_dial",
                        "supervise_calls",
                        "view_admin",
                        "view_compliance",
                        "view_dashboard",
                        "view_recordings",
                        "view_reports"
                    ]
                }
            },
            {
                "name": "admin_ops",
                "version": "v1",
                "summary": "Admin data-domain CRUD for groups, lead lists, suppression, calling windows, holidays, and pause codes.",
                "routes": [
                    "GET /api/v1/admin-ops/bootstrap",
                    "GET /api/v1/admin-ops/manifest",
                    "GET /api/v1/user-groups",
                    "GET /api/v1/user-groups/{group_id}",
                    "POST /api/v1/user-groups",
                    "PATCH /api/v1/user-groups/{group_id}",
                    "DELETE /api/v1/user-groups/{group_id}",
                    "GET /api/v1/lead-lists",
                    "GET /api/v1/lead-lists/{lead_list_id}",
                    "POST /api/v1/lead-lists",
                    "PATCH /api/v1/lead-lists/{lead_list_id}",
                    "DELETE /api/v1/lead-lists/{lead_list_id}",
                    "GET /api/v1/suppression-entries",
                    "GET /api/v1/suppression-entries/{entry_id}",
                    "POST /api/v1/suppression-entries",
                    "PATCH /api/v1/suppression-entries/{entry_id}",
                    "DELETE /api/v1/suppression-entries/{entry_id}",
                    "GET /api/v1/consent-records",
                    "GET /api/v1/consent-records/{record_id}",
                    "POST /api/v1/consent-records",
                    "PATCH /api/v1/consent-records/{record_id}",
                    "DELETE /api/v1/consent-records/{record_id}",
                    "GET /api/v1/calling-windows",
                    "GET /api/v1/calling-windows/{window_id}",
                    "POST /api/v1/calling-windows",
                    "PATCH /api/v1/calling-windows/{window_id}",
                    "DELETE /api/v1/calling-windows/{window_id}",
                    "GET /api/v1/holiday-overrides",
                    "GET /api/v1/holiday-overrides/{override_id}",
                    "POST /api/v1/holiday-overrides",
                    "PATCH /api/v1/holiday-overrides/{override_id}",
                    "DELETE /api/v1/holiday-overrides/{override_id}",
                    "GET /api/v1/pause-codes",
                    "GET /api/v1/pause-codes/{pause_code_id}",
                    "POST /api/v1/pause-codes",
                    "PATCH /api/v1/pause-codes/{pause_code_id}",
                    "DELETE /api/v1/pause-codes/{pause_code_id}",
                    "GET /api/v1/campaigns/{campaign_id}/pause-codes",
                    "GET /api/v1/campaigns/{campaign_id}/pause-codes/{mapping_id}",
                    "POST /api/v1/campaigns/{campaign_id}/pause-codes",
                    "PATCH /api/v1/campaigns/{campaign_id}/pause-codes/{mapping_id}",
                    "DELETE /api/v1/campaigns/{campaign_id}/pause-codes/{mapping_id}"
                ]
            },
            {
                "name": "campaigns",
                "version": "v1",
                "summary": "Campaign catalog and campaign-mode interface scaffold.",
                "routes": [
                    "GET /api/v1/campaigns",
                    "GET /api/v1/campaigns/{campaign_id}",
                    "GET /api/v1/campaigns/manifest",
                    "POST /api/v1/campaigns",
                    "POST /api/v1/campaigns/{campaign_id}",
                    "PATCH /api/v1/campaigns/{campaign_id}",
                    "DELETE /api/v1/campaigns/{campaign_id}"
                ],
                "catalog": {
                    "name": "pdo-campaign-catalog",
                    "version": "v1",
                    "modes": [
                        "fronter",
                        "verifier",
                        "self_closer"
                    ]
                }
            },
            {
                "name": "leads",
                "version": "v1",
                "summary": "Lead and list abstraction scaffold with future dedupe and suppression hooks.",
                "routes": [
                    "GET /api/v1/leads",
                    "GET /api/v1/leads/manifest",
                    "POST /api/v1/leads",
                    "POST /api/v1/leads/import",
                    "GET /api/v1/leads/{lead_id}",
                    "GET /api/v1/leads/{lead_id}/history",
                    "POST /api/v1/leads/{lead_id}",
                    "PATCH /api/v1/leads/{lead_id}",
                    "GET /api/v1/dispositions",
                    "POST /api/v1/dispositions",
                    "GET /api/v1/agent/callbacks",
                    "POST /api/v1/agent/callbacks",
                    "POST /api/v1/agent/callbacks/{callback_id}"
                ],
                "store": {
                    "name": "pdo-leads",
                    "version": "v1",
                    "supports": [
                        "dedupe",
                        "lists",
                        "dispositions",
                        "callbacks",
                        "imports",
                        "search",
                        "history",
                        "updates"
                    ]
                }
            },
            {
                "name": "scripts",
                "version": "v1",
                "summary": "Campaign-linked scripts with token rendering and render-job support.",
                "routes": [
                    "GET /api/v1/scripts",
                    "POST /api/v1/scripts",
                    "POST /api/v1/scripts/{script_id}",
                    "PATCH /api/v1/scripts/{script_id}",
                    "DELETE /api/v1/scripts/{script_id}",
                    "GET /api/v1/scripts/render?campaign_id=&lead_id="
                ],
                "repository": {
                    "name": "pdo-scripts",
                    "version": "v1",
                    "supports": [
                        "campaign_links",
                        "render",
                        "render_jobs"
                    ]
                }
            },
            {
                "name": "reports",
                "version": "v1",
                "summary": "Realtime and historical rollup entry points for managers and admins.",
                "routes": [
                    "GET /api/v1/reports/summary",
                    "GET /api/v1/reports/realtime",
                    "GET /api/v1/reports/campaigns/{campaign_id}",
                    "GET /api/v1/reports/agents/{user_id}",
                    "GET /api/v1/reports/compliance"
                ],
                "service": {
                    "name": "pdo-reporting",
                    "version": "v2",
                    "sources": [
                        "call_sessions",
                        "call_events",
                        "transfer_events",
                        "recordings",
                        "compliance_audit",
                        "report_rollups",
                        "agent_activity_rollups"
                    ]
                }
            },
            {
                "name": "inbound",
                "version": "v1",
                "summary": "Inbound DID routing and transfer-target administration.",
                "routes": [
                    "GET /api/v1/inbound/dids",
                    "GET /api/v1/inbound/routes",
                    "GET /api/v1/inbound/transfer-targets",
                    "POST /api/v1/inbound/dids",
                    "POST /api/v1/inbound/routes",
                    "POST /api/v1/inbound/transfer-targets",
                    "PATCH /api/v1/inbound/dids/{did_id}",
                    "PATCH /api/v1/inbound/routes/{route_id}",
                    "PATCH /api/v1/inbound/transfer-targets/{target_id}",
                    "DELETE /api/v1/inbound/dids/{did_id}",
                    "DELETE /api/v1/inbound/routes/{route_id}",
                    "DELETE /api/v1/inbound/transfer-targets/{target_id}"
                ],
                "service": {
                    "name": "pdo-inbound",
                    "version": "v1",
                    "supports": [
                        "dids",
                        "routes",
                        "transfer_targets"
                    ]
                }
            },
            {
                "name": "branding",
                "version": "v1",
                "summary": "Tenant branding, theme tokens, and white-label configuration.",
                "routes": [
                    "GET /api/v1/brands",
                    "GET /api/v1/themes",
                    "GET /api/v1/brands/{brand_id}",
                    "GET /api/v1/themes/{theme_id}",
                    "GET /api/v1/themes/assets/{asset_id}",
                    "POST /api/v1/brands",
                    "POST /api/v1/brands/{brand_id}",
                    "POST /api/v1/themes",
                    "POST /api/v1/themes/{theme_id}",
                    "POST /api/v1/themes/{theme_id}/assets"
                ],
                "service": {
                    "name": "pdo-branding",
                    "version": "v2",
                    "supports": [
                        "brands",
                        "themes",
                        "theme_assets",
                        "resolved_theme",
                        "tenant_settings"
                    ]
                }
            },
            {
                "name": "ai",
                "version": "v1",
                "summary": "AI provider configs, voice provider settings, AMD profiles, transcription provider admin, prompt safety, and IVR flow drafts.",
                "routes": [
                    "GET /api/v1/ai/providers",
                    "GET /api/v1/ai/voice-providers",
                    "POST /api/v1/ai/transcription-providers",
                    "PATCH /api/v1/ai/transcription-providers/{provider_id}",
                    "POST /api/v1/ai/transcription-providers/{provider_id}/test",
                    "POST /api/v1/ai/llm-providers",
                    "POST /api/v1/ai/amd-profiles",
                    "POST /api/v1/ai/voice-providers",
                    "PATCH /api/v1/ai/voice-providers/{provider_id}",
                    "POST /api/v1/ai/voice-providers/{provider_id}/test",
                    "GET /api/v1/ai/voice-providers/{provider_id}/catalog",
                    "POST /api/v1/ai/voice-providers/catalog-preview",
                    "POST /api/v1/ai/prompt-safety/preview",
                    "POST /api/v1/ai/ivr/draft"
                ],
                "service": {
                    "name": "pdo-ai-config",
                    "version": "v1",
                    "supports": [
                        "transcription_providers",
                        "transcription_provider_tests",
                        "llm_providers",
                        "amd_profiles",
                        "prompt_safety"
                    ]
                },
                "prompt_assets": {
                    "name": "script-prompt-assets",
                    "version": "v1",
                    "supports": [
                        "prompt_assets",
                        "fallback_prompts",
                        "script_templates"
                    ]
                },
                "voice_providers": {
                    "name": "pdo-voice-provider-config",
                    "version": "v1",
                    "supports": [
                        "voice_providers",
                        "ready_voice_providers",
                        "provider_tests",
                        "voice_synthesis"
                    ],
                    "catalog": [
                        {
                            "provider_type": "openai",
                            "provider_name": "OpenAI TTS",
                            "default_config": {
                                "api_key": "",
                                "model": "gpt-4o-mini-tts",
                                "voice": "marin",
                                "voice_id": "",
                                "response_format": "mp3",
                                "instructions": "Speak clearly and naturally for a phone IVR."
                            },
                            "required_config_keys": [
                                "api_key",
                                "voice"
                            ]
                        },
                        {
                            "provider_type": "elevenlabs",
                            "provider_name": "ElevenLabs TTS",
                            "default_config": {
                                "api_key": "",
                                "model_id": "eleven_multilingual_v2",
                                "voice_id": "",
                                "output_format": "mp3_44100_128",
                                "voice_settings": {
                                    "stability": 0.5,
                                    "similarity_boost": 0.75
                                }
                            },
                            "required_config_keys": [
                                "api_key",
                                "voice_id"
                            ]
                        }
                    ]
                }
            },
            {
                "name": "ivr",
                "version": "v1",
                "summary": "IVR flow administration, prompt assets, voice assets, action catalog, and execution previews.",
                "routes": [
                    "GET /api/v1/ivr/flows",
                    "GET /api/v1/ivr/actions",
                    "GET /api/v1/ivr/prompts",
                    "GET /api/v1/ivr/voice-assets",
                    "GET /api/v1/ivr/intake-submissions",
                    "GET /api/v1/ivr/flows/{flow_id}",
                    "GET /api/v1/ivr/voice-assets/{voice_asset_id}",
                    "GET /api/v1/ivr/intake-submissions/{submission_id}",
                    "GET /api/v1/ivr/voice-assets/{voice_asset_id}/stream",
                    "POST /api/v1/ivr/flows",
                    "PATCH /api/v1/ivr/flows/{flow_id}",
                    "PATCH /api/v1/ivr/intake-submissions/{submission_id}",
                    "POST /api/v1/ivr/flows/{flow_id}/preview",
                    "POST /api/v1/ivr/flows/{flow_id}/publish",
                    "POST /api/v1/ivr/flows/{flow_id}/voice-assets/regenerate",
                    "POST /api/v1/ivr/prompts",
                    "GET /api/v1/ivr/prompts/{prompt_key}/voice-assets",
                    "POST /api/v1/ivr/prompts/{prompt_key}/voice-assets"
                ],
                "service": {
                    "name": "pdo-ivr",
                    "version": "v2",
                    "supports": [
                        "flows",
                        "nodes",
                        "edges",
                        "route_actions",
                        "preview",
                        "publish",
                        "voice_assets",
                        "intake_submissions"
                    ]
                },
                "prompts": {
                    "name": "script-prompt-assets",
                    "version": "v1",
                    "supports": [
                        "prompt_assets",
                        "fallback_prompts",
                        "script_templates"
                    ]
                },
                "voice_providers": {
                    "name": "pdo-voice-provider-config",
                    "version": "v1",
                    "supports": [
                        "voice_providers",
                        "ready_voice_providers",
                        "provider_tests",
                        "voice_synthesis"
                    ],
                    "catalog": [
                        {
                            "provider_type": "openai",
                            "provider_name": "OpenAI TTS",
                            "default_config": {
                                "api_key": "",
                                "model": "gpt-4o-mini-tts",
                                "voice": "marin",
                                "voice_id": "",
                                "response_format": "mp3",
                                "instructions": "Speak clearly and naturally for a phone IVR."
                            },
                            "required_config_keys": [
                                "api_key",
                                "voice"
                            ]
                        },
                        {
                            "provider_type": "elevenlabs",
                            "provider_name": "ElevenLabs TTS",
                            "default_config": {
                                "api_key": "",
                                "model_id": "eleven_multilingual_v2",
                                "voice_id": "",
                                "output_format": "mp3_44100_128",
                                "voice_settings": {
                                    "stability": 0.5,
                                    "similarity_boost": 0.75
                                }
                            },
                            "required_config_keys": [
                                "api_key",
                                "voice_id"
                            ]
                        }
                    ]
                }
            },
            {
                "name": "imports",
                "version": "v1",
                "summary": "Import profiles, import jobs, and future provenance entry points.",
                "routes": [
                    "GET /api/v1/imports/profiles",
                    "GET /api/v1/imports/jobs",
                    "GET /api/v1/imports/provenance",
                    "POST /api/v1/imports/profiles",
                    "POST /api/v1/imports/jobs"
                ],
                "service": {
                    "name": "pdo-imports",
                    "version": "v2",
                    "supports": [
                        "profiles",
                        "jobs",
                        "provenance",
                        "lead_pipeline",
                        "vicidial_source"
                    ]
                }
            },
            {
                "name": "deploy",
                "version": "v1",
                "summary": "Node bootstrap and deployment workflow scaffold.",
                "routes": [
                    "GET /api/v1/deploy/manifest",
                    "GET /api/v1/deploy/jobs",
                    "GET /api/v1/deploy/bootstrap/profiles",
                    "POST /api/v1/deploy/jobs",
                    "POST /api/v1/deploy/bootstrap"
                ],
                "deployment": {
                    "name": "pdo-deployment-service",
                    "version": "v2",
                    "capabilities": [
                        "bootstrap",
                        "node-registry",
                        "node-capabilities",
                        "health-check",
                        "deployment-jobs",
                        "signed-node-commands",
                        "carrier-config-render"
                    ],
                    "bootstrap_profiles": [
                        {
                            "profile_key": "controller",
                            "label": "Control Plane",
                            "description": "Runs the PHP control plane and operational cron tasks.",
                            "node_role": "controller",
                            "runtime_role": "CONTROL",
                            "default_node_name": "psidialer-controller",
                            "services": [
                                "control",
                                "cron"
                            ],
                            "capabilities": {
                                "outbound": false,
                                "manual_dial": false,
                                "registration": false,
                                "media": false,
                                "blind_transfer": false,
                                "recordings": false,
                                "health_probe": false,
                                "deployment_ack": false
                            }
                        },
                        {
                            "profile_key": "dialer",
                            "label": "Dialer Node",
                            "description": "Runs the Java core runtime for outbound dial and transfer work.",
                            "node_role": "dialer",
                            "runtime_role": "DIALER",
                            "default_node_name": "psidialer-dialer",
                            "services": [
                                "core",
                                "cron"
                            ],
                            "capabilities": {
                                "outbound": true,
                                "manual_dial": true,
                                "registration": false,
                                "media": false,
                                "blind_transfer": true,
                                "recordings": true,
                                "health_probe": true,
                                "deployment_ack": true
                            }
                        },
                        {
                            "profile_key": "registration_media",
                            "label": "Registration / Media Node",
                            "description": "Runs the node runtime with registration and media capabilities enabled.",
                            "node_role": "registration",
                            "runtime_role": "REGISTRATION",
                            "default_node_name": "psidialer-registration",
                            "services": [
                                "core",
                                "cron"
                            ],
                            "capabilities": {
                                "outbound": false,
                                "manual_dial": false,
                                "registration": true,
                                "media": true,
                                "blind_transfer": false,
                                "recordings": true,
                                "health_probe": true,
                                "deployment_ack": true
                            }
                        },
                        {
                            "profile_key": "hybrid",
                            "label": "Hybrid Control + Dialer",
                            "description": "Co-locates the control plane and node runtime for smaller clusters.",
                            "node_role": "hybrid",
                            "runtime_role": "MIXED",
                            "default_node_name": "psidialer-hybrid",
                            "services": [
                                "control",
                                "core",
                                "cron"
                            ],
                            "capabilities": {
                                "outbound": true,
                                "manual_dial": true,
                                "registration": true,
                                "media": true,
                                "blind_transfer": true,
                                "recordings": true,
                                "health_probe": true,
                                "deployment_ack": true
                            }
                        }
                    ],
                    "health_probe": {
                        "name": "signed-node-health-probe",
                        "version": "v1",
                        "timeout_seconds": 15
                    }
                }
            },
            {
                "name": "predictive",
                "version": "v1",
                "summary": "Predictive campaign control, agent state tracking, and hopper status APIs.",
                "routes": [
                    "GET /api/v1/agent-sessions",
                    "POST /api/v1/agent-sessions/{agent_session_id}/state",
                    "GET /api/v1/campaigns/{campaign_id}/predictive/status",
                    "POST /api/v1/campaigns/{campaign_id}/predictive/control",
                    "GET /api/v1/campaigns/{campaign_id}/hopper"
                ],
                "service": {
                    "name": "pdo-predictive",
                    "version": "v1",
                    "supports": [
                        "agent_sessions",
                        "campaign_control",
                        "hopper",
                        "predictive_status"
                    ]
                }
            },
            {
                "name": "telephony",
                "version": "v1",
                "summary": "Carrier, extension, node, event-ingest, and live manual-dial control-plane module.",
                "routes": [
                    "GET /api/v1/carriers",
                    "GET /api/v1/carriers/presets",
                    "POST /api/v1/carriers",
                    "PATCH /api/v1/carriers/{carrier_id}",
                    "DELETE /api/v1/carriers/{carrier_id}",
                    "GET /api/v1/extensions",
                    "POST /api/v1/extensions",
                    "PATCH /api/v1/extensions/{extension_id}",
                    "DELETE /api/v1/extensions/{extension_id}",
                    "GET /api/v1/phone/bootstrap",
                    "POST /api/v1/phone/setup",
                    "POST /api/v1/phone/assignment",
                    "GET /api/v1/calls",
                    "GET /api/v1/calls/{call_uuid}",
                    "GET /api/v1/calls/{call_uuid}/events",
                    "GET /api/v1/recordings",
                    "GET /api/v1/recordings/{recording_id}",
                    "GET /api/v1/recordings/{recording_id}/stream",
                    "GET /api/v1/recordings/{recording_id}/download",
                    "POST /api/v1/calls/manual-dial",
                    "POST /api/v1/calls/{call_uuid}/transfer",
                    "POST /api/v1/calls/{call_uuid}/coach",
                    "POST /api/v1/calls/{call_uuid}/coach/stop",
                    "POST /api/v1/calls/{call_uuid}/recording/control",
                    "GET /api/v1/nodes",
                    "POST /api/v1/nodes/register",
                    "POST /api/v1/nodes/{node_uuid}/heartbeat",
                    "POST /api/v1/nodes/{node_uuid}/events",
                    "POST /api/v1/nodes/{node_uuid}/deployments/{deployment_uuid}/ack"
                ],
                "carriers": {
                    "name": "pdo-telephony-store",
                    "version": "v1",
                    "mode": "mariadb",
                    "capabilities": [
                        "carriers",
                        "extensions",
                        "calls",
                        "nodes",
                        "event_projection",
                        "recordings",
                        "compliance",
                        "transfers"
                    ]
                },
                "extensions": {
                    "name": "pdo-telephony-store",
                    "version": "v1",
                    "mode": "mariadb",
                    "capabilities": [
                        "carriers",
                        "extensions",
                        "calls",
                        "nodes",
                        "event_projection",
                        "recordings",
                        "compliance",
                        "transfers"
                    ]
                },
                "calls": {
                    "name": "pdo-telephony-store",
                    "version": "v1",
                    "mode": "mariadb",
                    "capabilities": [
                        "carriers",
                        "extensions",
                        "calls",
                        "nodes",
                        "event_projection",
                        "recordings",
                        "compliance",
                        "transfers"
                    ]
                },
                "nodes": {
                    "name": "pdo-node-registry",
                    "version": "v1",
                    "mode": "mariadb"
                },
                "bridge": {
                    "name": "core-runtime-bridge",
                    "version": "v3",
                    "mode": "node-http",
                    "timeout_seconds": 15,
                    "supports": [
                        "manual_dial",
                        "blind_transfer",
                        "coaching",
                        "recording_control"
                    ]
                }
            }
        ]
    },
    "meta": {
        "schema_version": "v1"
    }
}