services:
    tactician.middleware.locking:
        class: League\Tactician\Plugins\LockingMiddleware

    # The standard Handler method name inflectors
    tactician.handler.method_name_inflector.handle:
        class: League\Tactician\Handler\MethodNameInflector\HandleInflector

    tactician.handler.method_name_inflector.class_name:
        class: League\Tactician\Handler\MethodNameInflector\ClassNameInflector

    tactician.handler.method_name_inflector.handle_class_name:
        class: League\Tactician\Handler\MethodNameInflector\HandleClassNameInflector

    tactician.handler.method_name_inflector.handle_class_name_without_suffix:
        class: League\Tactician\Handler\MethodNameInflector\HandleClassNameWithoutSuffixInflector

    tactician.handler.method_name_inflector.invoke:
        class: League\Tactician\Handler\MethodNameInflector\InvokeInflector

    # The CommandNameExtractors in Tactician core
    tactician.handler.command_name_extractor.class_name:
        class: League\Tactician\Handler\CommandNameExtractor\ClassNameExtractor

    tactician.plugins.named_command.extractor:
        class: League\Tactician\Plugins\NamedCommand\NamedCommandExtractor

    tactician.command.debug:
        class: League\Tactician\Bundle\Command\DebugCommand
        tags:
            - { name: console.command }
