# Laning, synergy and counters: M2 development specification

The current [temporal-weighting query version](../models/relationships/m2_recency_v1/README.md) selects a 365-day half-life for four default lane branches and 90 days for Full Fearless co-selection. Other branches retain the validation-selected no-decay fallback. Weights are anchored to fitting time; raw counts, weighted mass and effective sample size are separate. Held-out gains are mixed and fully reported; `m2_final` remains the frozen baseline.

[简体中文](champion_relationships.zh_cn.md) · **English** · [Roadmap](development_roadmap.en.md) · [Data requirements](data_requirements.en.md)

Specification fixed 2026-10-10; research progress updated 2026-10-13. This defines development targets and data units. Experimental progress is not complete acceptance or production deployment.

## Current research delivery

The [unified M2 module](../models/relationships/m2_final/README.md) delivers whole-archive lane/outcome research, format-isolated co-selection, candidate-role and prefix queries, plus the [measured acceptance/all-ablation report](../models/relationships/m2_final/artifacts/report.zh_cn.md). Every one of 16,437 games is audited; 15,669 are admitted. All 39 archived DCGI games share one conservative held-test event block rather than guessed individual series IDs. Unverified complete connections, reserved evaluation games and duplicate aliases are explicitly excluded.

Unknown rule contexts remain unknown, never inferred Classic. Qualified Classic/Full Fearless opportunity fits are separate; incomplete or rule-contradicting series are quarantined. Client rosters never claim official legality. Caller-supplied pools retain source/time/completeness declarations and independent-verification limitations. Queries retain feasible uncertain roles, target-wise missingness, support and shrinkage. Relationships are adjusted associations; rejected global interactions are disabled and counter-coefficient confidence is not fabricated.

The [ranked-transfer validation](../models/relationships/m2_validation/README.md) is reproducible, with uncertain gold improvements and current ranked weight zero. 2026 diagnosis is retrospective, not a new blind test. Existing M1/M3 forecasts and player–hero win/KDA features are untouched. M4 integration, team preference for lane advantage and future unseen-window evaluation are subsequent work.

Earlier [Full Fearless v2](../models/relationships/m2_v2/README.md) and [LEC 2024 Classic](../models/relationships/m2_classic_v1/README.md) remain frozen research records; use the unified entry point now. Historical official rules/disable lists still have disclosed missing evidence; delivery does not claim every historical document was recovered.

## 1. Component boundaries

M2 has two branches: **laning performance relationships** and **cross-role synergy/counter relationships**. Lane advantage and whole-game pairing performance are separate outputs, retaining their measures, orientation, patch, effective support and uncertainty.

```mermaid
flowchart TD
    PRO["Professional lineups and verified metrics"] --> LANE["M2-L Solo matchups and bot duo versus duo"]
    PRO --> GLOBAL["M2-G Teammate synergy and cross-role opposition"]
    RANKED["Small comparable ranked sample"] --> TRANSFER["Separate domains and temporal validation"]
    TRANSFER --> LANE
    TRANSFER --> GLOBAL
    LANE --> TEAM["M3 Team preference for lane advantage"]
    LANE --> POLICY["M4 Next action in the current state"]
    GLOBAL --> POLICY
    TEAM --> POLICY
    META["M1 Patch meta"] --> POLICY
    COMFORT["M3 Champion pools and team preferences"] --> POLICY
    STRUCT["Later composition completeness: frontline and damage mix"] --> POLICY
```

Frontline, AD/AP balance, engage and protection belong to M4's composition state, evaluated as picks and open roles develop. They do not substitute for measured M2 relationships; consideration need not wait until the draft is finished.

## 2. M2-L: laning performance

|Unit|Matchup key|Primary observations|
|---|---|---|
|Top/mid|Our champion-role versus opposing champion in that role|CS, gold and XP differences at 10/15 minutes, modeled separately|
|Bot duo|Our bot + support versus opposing bot + support, preserving all four roles|Bot CS difference; combined duo gold/XP differences; separate bot/support gold for diagnosis|
|Jungle|Both junglers and full-lineup context|Cross-role context; future clearing/resource modeling rather than a solo-lane definition|

**Kalista(bot)+Renata(sup) versus Ashe(bot)+Seraphine(sup)** is one four-champion matchup. Use actual played roles: Seraphine bot in another game is a different entry. With an ADC already selected, evaluate the complete duo formed by each candidate support.

Do not add independent ADC and support matchup scores. Support CS is not weighted equally with ADC CS. Sum XP values rather than levels. Keep 10- and 15-minute labels separate because rotations may already affect the latter.

Estimate baseline performance from pre-game team/player general strength, patch, side, region, event and format, then learn remaining champion/matchup associations. Reliable jungle, lane-swap, roam and resource-allocation observations provide additional context or strata. Missing context stays unknown; do not claim those effects were removed. General player-strength controls must not use player-on-champion win rate/KDA.

Sparse four-champion matchups require sharing/shrinkage: champion-role main effects, own/enemy duo relationships and a residual for the full matchup. Sparse cases fall back to broader levels with greater uncertainty. Temporal validation selects the final estimator. Initially retain a multidimensional performance output without untrained fixed composite weights.

These are adjusted historical performance associations. Final role alone does not establish physical lane presence or causal lane counters. Completed historical labels never enter that same game's draft inputs; its final roles are also unavailable during early drafting.

## 3. M2-G: cross-role synergy and counters

Use [BPGG Synergy](https://bpgg.app/en/synergy) as a reference for conditional co-picking and pair results, and [BPGG Counters](https://bpgg.app/en/counter) for opposing performance relative to individual-champion baselines. Its public explanations distinguish association from proven synergy and whole-game opposing pairs from lane matchups. These are conceptual references; we have not reviewed or reproduced its internal implementation.

Keep three outputs separate:

1. **Co-selection tendency:** conditional partner selection, accounting for patch popularity, team habit, occupied roles, bans/Fearless availability and selection opportunities. A→B and B→A conditional frequencies may differ.
2. **Teammate performance interaction:** extra whole-game association after individual champion, team strength and patch controls. Team outcomes may be one label; verified damage/vision/resource measures provide diagnostics. This does not re-enable player-specific champion win-rate/KDA bonuses.
3. **Opposing performance interaction:** baseline-adjusted association for champions on opposite teams, including cross-role relations. Preserve direction, both roles and remaining lineup context. Frequent opposition alone is not counter evidence.

A candidate baseline uses regularized/hierarchical interactions. First model whole-game outcomes with pre-game team differences, side, patch and ten champion main effects, then add teammate and opposing interactions. Report changes relative to baseline rather than ranking raw win rates. Fit co-selection separately. Mirrors and the many pairs generated from one game are not independent games; group validation and uncertainty by games/complete series.

Missing CC or event telemetry cannot produce invented control-chain scores. An MVP may expose supported associations/candidate relationships while performance models await temporal validation. Planned methods are not fitted results.

## 4. Professional and ranked integration

Keep the established official-match scope involving the designated major-league teams and exclude blind drafts. Event importance, pre-game strength and time/patch distance are context or validated weights. Treat format-dependent availability separately.

Professional evidence dominates. Fit professional/ranked domains separately, selecting and bounding a small transfer contribution using held-out historical professional windows. A source that fails validation may receive zero weight; no arbitrary percentage is described as trained.

Existing high-rank KR aggregate pick/ban rates have **neither four-champion matchups nor timestamp laning metrics** and cannot train lane counters. Ranked match-level inputs need both lineups, played roles, patch, region/rank, date and timestamp measures; whole-game relationships additionally need results and comparable context. Deduplicate matches shared with player practice by match ID.

## 5. Conditional draft decisions and team preferences

If an enemy duo and our ADC are visible, M4 queries full bot-matchup predictions for each legal support and cross-role relations with our existing mid/jungle. It integrates those with M1 meta and M3 pools/preferences and recomputes the next-action distribution.

If the enemy reveals only one champion, retain possible roles and legal future partner distributions, evaluating expected advantage and risk without reading the actual final lineup. Drafting bot as a package is a tendency rather than mandatory simultaneous locking. Update each actual prefix even when the two picks are separated.

M3 learns how strongly each team prioritizes expected lane advantage, reserves counterpicks or protects duos. **T1 prioritizing winning lanes is an example to test, not a hardcoded fact.** Learn deviations from shared tendencies using relationship forecasts available at that historical decision and actual choices, controlling comfort/meta. Do not use the game's final lane result to explain its own draft.

## 6. Prepared data and remaining inputs

- [Observation schema](../research/data_catalog/lane_observations_schema.json) and [coverage/checks](../research/data_catalog/lane_observations_validation.json). `lane_observations.jsonl.gz` stores top, mid and bot-duo observations once per game from blue's perspective. Reverse queries negate differences without increasing support.
- Recompute from existing raw timestamp metrics. Any missing component gives a `null` label. Explicit blind drafts are excluded; unknown formats stay unverified.
- Prioritize physical lane/swap evidence, jungle intervention, support roaming, resources, series/format and selection opportunities; subsequently add a small comparable ranked matchup sample and reliable CC/events.
- Unknown context stays unknown. No fitted counter scores, team tendencies, ranked-transfer weights or new accuracy results exist in this preparation.

Measured local preparation: **16,415 games and 49,245 unit observations** (top, mid and bot duo once per game). Each unit has complete primary labels for **12,552** games at 10 minutes and **12,553** at 15 minutes. These overlapping timestamps are not additional independent games. Pooling every patch gives 9,628 oriented bot-matchup signatures, only 112 with at least ten games. This is raw support, not target-patch support or accuracy.

Reproduce with `research/scripts/prepare_development_data_inventory.py`, then `python -X utf8 research/scripts/prepare_lane_observations.py`. Both read existing local sources; no additional external match collection is performed.

## 7. Validation and delivery

Validate chronologically by complete series: baseline, lane matchups, full duos, global relations, then team lane preferences. Publish each ablation. Report CS/gold/XP MAE, RMSE, interval coverage and sparse-case results by timestamp, without discarding unfavorable pairs. M4 measures next-action log loss, Top-K and calibration after adding each component.

Present solo matchup tables, bot-duo matchup matrices and cross-role tables with actual roles, patch windows, direction, support, raw versus adjusted estimates and unknown/fallback states. Show frontline/damage mix separately in M4's composition area.
