# Mod Dependency Resolution

This document covers `TODOS.phase-72.72.14.1.7`: dependency conflict detection,
version-range validation, and the operational resolution UI model for `.mayamod`
packages.

## Runtime Surface

- module: `V2Modding`
- policy: `FV2ModDependencyResolutionPolicy`
- conflict: `FV2ModDependencyConflict`
- action: `FV2ModDependencyResolutionAction`
- UI row: `FV2ModDependencyResolutionUiRow`
- UI model: `FV2ModDependencyResolutionViewModel`
- native screen: `UV2ModDependencyResolutionScreen`
- result: `FV2ModDependencyResolutionResult`
- helper functions: `BuildDefaultModDependencyResolutionPolicy`,
  `EvaluateModDependencyResolution`, `BuildModDependencyResolutionViewModel`,
  and `ApplyModDependencyResolution`
- automation: `V2/ue/Source/V2Tests/Private/Modding/ModLoadingSystem.spec.cpp`
- contract: `V2/ue/Content/V2/Modding/ModDependencyResolution_V2_Contract.json`

## Resolver

`EvaluateModDependencyResolution` builds on the dependency-ordered load plan and
adds missing dependency, optional dependency, duplicate id, cycle, and semantic
version-range checks. Version ranges support the manifest forms used by
`.mayamod` packages, including `>=2.0.0 <3.0.0`.

Blocking conflicts prevent applying the load plan. Warning conflicts remain
visible in the resolver but do not block a clean required dependency graph.

## Resolution UI

The default UI model targets the native
`/Script/V2UI.V2ModDependencyResolutionScreen` screen and uses a cardless
operational layout. The view model exposes conflict rows, severity labels,
primary actions, blocking and warning counts, a conflicts-only filter, and
keyboard/gamepad navigation support. Actions include install, upgrade, disable
dependent mod, remove duplicate package, review cycle, and apply resolved load
plan.

## Verification

```bash
python3 V2/ue/Tools/check-v2-mod-dependency-resolution.py
python3 V2/ue/Tools/check-v2-mod-loading-system.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m py_compile V2/ue/Tools/check-v2-mod-dependency-resolution.py V2/ue/Tools/check-v2-mod-loading-system.py V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Modding/ModDependencyResolution_V2_Contract.json
```
