// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file
{
    capabilities: [
        // Required for inspect.
        // Copied from inspect/client.shard.cml because out-of-tree doesn't
        // have support for CML includes from the SDK.
        {
            directory: "diagnostics",
            rights: [ "connect" ],
            path: "/diagnostics",
        },
    ],
    use: [
        {
            directory: "config-data",
            rights: [ "r*" ],
            path: "/config/data",
        },
        {
            directory: "root-ssl-certificates",
            rights: [ "r*" ],
            path: "/config/ssl",
        },
        {
            protocol: [
                "fuchsia.accessibility.semantics.SemanticsManager",
                "fuchsia.device.NameProvider",
                "fuchsia.feedback.CrashReporter",
                "fuchsia.fonts.Provider",
                "fuchsia.intl.PropertyProvider",
                "fuchsia.logger.LogSink", // Copied from syslog/client.shard.cml.
                "fuchsia.memorypressure.Provider",
                "fuchsia.net.name.Lookup",
                "fuchsia.posix.socket.Provider",
                "fuchsia.sysmem.Allocator",
                "fuchsia.timezone.Timezone", // Copied from vulkan/client.shard.cml.
                "fuchsia.tracing.provider.Registry", // Copied from vulkan/client.shard.cml.
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.input.ImeService",
                "fuchsia.ui.input3.Keyboard",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.vulkan.loader.Loader", // Copied from vulkan/client.shard.cml.
            ],
        },
    ],
    expose: [
        // Required for inspect.
        // Copied from inspect/client.shard.cml because out-of-tree doesn't
        // have support for CML includes from the SDK.
        {
            directory: "diagnostics",
            from: "self",
            to: "framework",
        },
    ],
}
