// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
    include: [ "syslog/client.shard.cml" ],
    children: [
        {
            name: "a11y_manager",
            url: "fuchsia-pkg://fuchsia.com/a11y-manager#meta/a11y-manager.cm",
            startup: "eager",
        },
        {
            name: "scene_manager",
            url: "fuchsia-pkg://fuchsia.com/scene_manager#meta/scene_manager.cm",
            startup: "eager",
        },
        {
            name: "scenic",
            url: "fuchsia-pkg://fuchsia.com/scenic#meta/scenic.cm",
        },
        {
            // Centralized management of keyboard shortcuts.
            name: "shortcut_manager",
            url: "fuchsia-pkg://fuchsia.com/shortcut#meta/shortcut_manager.cm",
            startup: "eager",
        },
    ],
    offer: [
        {
            protocol: [
                "fuchsia.logger.LogSink",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "parent",
            to: [
                "#a11y_manager",
                "#scene_manager",
                "#scenic",
                "#shortcut_manager",
            ],
        },
        {
            directory: "config-data",
            from: "parent",
            to: "#scenic",
            subdir: "scenic",
        },
        {
            directory: "dev-display-controller",
            from: "parent",
            to: "#scenic",
        },
        {
            directory: "dev-input-report",
            from: "parent",
            to: [ "#scene_manager" ],
        },
        {
            storage: "tmp",
            from: "parent",
            to: "#scenic",
        },
        {
            protocol: [
                "fuchsia.settings.Keyboard",
                "fuchsia.sysmem.Allocator",
                "fuchsia.ui.input.ImeService",
                "fuchsia.ui.input3.Keyboard",
                "fuchsia.ui.input3.KeyEventInjector",

                // Used by the input pipeline library to distribute focus.
                "fuchsia.ui.keyboard.focus.Controller",
                "fuchsia.vulkan.loader.Loader",
            ],
            from: "parent",
            to: [ "#scene_manager" ],
        },
        {
            protocol: [
                // Used by the input pipeline library to distribute focus.
                "fuchsia.ui.shortcut.Manager",
            ],
            from: "#shortcut_manager",
            to: [ "#scene_manager" ],
        },
        {
            protocol: [
                "fuchsia.feedback.LastRebootInfoProvider",
                "fuchsia.intl.PropertyProvider",
                "fuchsia.settings.Accessibility",
            ],
            from: "parent",
            to: [ "#a11y_manager" ],
        },
        {
            protocol: [
                "fuchsia.ui.annotation.Registry",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.input.accessibility.PointerEventRegistry",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
            ],
            from: "#scenic",
            to: [ "#a11y_manager" ],
        },
        {
            protocol: [ "fuchsia.ui.accessibility.view.Registry" ],
            from: "#scene_manager",
            to: [ "#a11y_manager" ],
        },
        {
            protocol: [
                // TODO(fxbug.dev/100268) Magnifier is only used by gfx, not
                // flatland. Maybe we should split this manifest into
                // gfx/flatland versions.
                "fuchsia.accessibility.Magnifier",
                "fuchsia.accessibility.scene.Provider",
            ],
            from: "#a11y_manager",
            to: [ "#scene_manager" ],
            dependency: "weak",
        },
        {
            protocol: [
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.scheduler.ProfileProvider",
                "fuchsia.stash.Store",
                "fuchsia.sysmem.Allocator",
                "fuchsia.vulkan.loader.Loader",
            ],
            from: "parent",
            to: [ "#scenic" ],
        },
        {
            protocol: [
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.composition.FlatlandDisplay",

                // Used by the input pipeline library to distribute focus.
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.ui.views.ViewRefInstalled",
            ],
            from: "#scenic",
            to: [ "#scene_manager" ],
        },
        {
            protocol: [
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
            ],
            from: "#scenic",
            to: [ "#shortcut_manager" ],
        },
    ],
    expose: [
        {
            protocol: [
                "fuchsia.input.injection.InputDeviceRegistry",
                "fuchsia.session.scene.Manager",
            ],
            from: "#scene_manager",
        },
        {
            protocol: [
                "fuchsia.accessibility.semantics.SemanticsManager",
                "fuchsia.accessibility.tts.EngineRegistry",
                "fuchsia.accessibility.tts.TtsManager",
            ],
            from: "#a11y_manager",
        },
        {
            protocol: [
                "fuchsia.ui.shortcut.Manager",
                "fuchsia.ui.shortcut.Registry",
            ],
            from: "#shortcut_manager",
        },
        {
            protocol: [
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.composition.ScreenCapture",
                "fuchsia.ui.display.internal.DisplayPower",
                "fuchsia.ui.display.singleton.Info",
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.input.PointerCaptureListenerRegistry",
                "fuchsia.ui.lifecycle.LifecycleController",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.ui.views.ViewRefInstalled",
            ],
            from: "#scenic",
        },
    ],
}
