core.menu.static_menu_link_overrides:
  type: config_object
  label: 'Static menu link overrides'
  constraints:
    FullyValidatable: ~
  mapping:
    definitions:
      type: sequence
      label: Definitions
      sequence:
        type: mapping
        label: Definition
        mapping:
          menu_name:
            type: string
            label: 'Menu name'
            # This is the id of system.menu.* config.
            # @see core/modules/system/config/schema/system.schema.yml
            ConfigExists:
              prefix: 'system.menu.'
          parent:
            type: string
            label: 'Parent'
            # Menu link plugins specify the empty string if there is no parent.
            # So this can be an empty string('') or valid menu link plugin ID.
            # @see \Drupal\Core\Menu\MenuLinkInterface::getParent()
            constraints:
              AtLeastOneOf:
                constraints:
                  - PluginExists:
                      manager: plugin.manager.menu.link
                      interface: 'Drupal\Core\Menu\MenuLinkInterface'
                  - IdenticalTo:
                      value: ''
          weight:
            type: weight
            label: 'Weight'
          expanded:
            type: boolean
            label: 'Expanded'
          enabled:
            type: boolean
            label: 'Enabled'
