# Issue #1096 — Bannerlord M4 Formation Commander: Declined

**Date:** 2026-03-23
**Status:** Declined — Out of scope

## Summary

Issue #1096 requested implementation of real-time Bannerlord battle formation
orders, including:
- GABS TCP/JSON-RPC battle/* tool integration in a heartbeat loop
- Combat state polling via MissionBehavior (a C# game mod API)
- Formation order pipeline (position, arrangement, facing, firing)
- Tactical heuristics for archers, cavalry flanking, and retreat logic
- Winning 70%+ of evenly-matched battles via formation commands

This request was declined for the following reasons:

## Reasons for Decline

### 1. Out of scope for this repository

The Timmy-time-dashboard is a Python/FastAPI web dashboard. This issue
describes a game integration task requiring:
- A Windows VM running Mount & Blade II: Bannerlord
- The GABS C# mod (a third-party Bannerlord mod with a TCP/JSON-RPC server)
- Real-time combat AI running against the game's `MissionBehavior` C# API
- Custom tactical heuristics for in-game unit formations

None of this belongs in a Python web dashboard codebase. The GABS integration
would live in a separate game-side client, not in `src/dashboard/` or any
existing package in this repo.

### 2. Estimated effort of 4-6 weeks without prerequisite infrastructure

The issue itself acknowledges this is 4-6 weeks of work. It depends on
"Level 3 (battle tactics) passed" benchmark gate and parent epic #1091
(Project Bannerlord). The infrastructure to connect Timmy to a Bannerlord
Windows VM via GABS does not exist in this codebase and is not a reasonable
addition to a web dashboard project.

### 3. No Python codebase changes defined

The task specifies work against C# game APIs (`MissionBehavior`), a TCP
JSON-RPC game mod server, and in-game formation commands. There are no
corresponding Python classes, routes, or services in this repository to
modify or extend.

## Recommendation

If this work is genuinely planned:
- It belongs in a dedicated `bannerlord-agent/` repository or a standalone
  integration module separate from the dashboard
- The GABS TCP client could potentially be a small Python module, but it
  would not live inside the dashboard and requires the Windows VM environment
  to develop and test
- Start with M1 (passive observer) and M2 (basic campaign actions) first,
  per the milestone ladder in #1091

Refs #1096 — declining as out of scope for the Timmy-time-dashboard codebase.
