# Legacy Command Catalog

This file lists the command keys available under `legacy/hwe/sammo/Command/`.
Command keys match class names and file names; they are the values stored in
`general_turn.action` and `nation_turn.action`.

## Command Resolution

- General: `buildGeneralCommandClass($type)` in `legacy/hwe/func_converter.php`
- Nation: `buildNationCommandClass($type)` in `legacy/hwe/func_converter.php`
- `null` or empty `type` defaults to `휴식`
- Post-req turn cooldowns are stored in:
  - `next_execute` KV (per general)
  - `nation_env` KV (per nation)

## Execution Semantics (BaseCommand)

- Conditions are checked via constraint sets (permission/min/full).
- `getPreReqTurn()` is enforced by `LastTurn` term stacking.
- `getPostReqTurn()` is enforced by `next_execute` (cooldown).
- If `run()` returns `false`, `getAlternativeCommand()` may be used.

## Command Prefixes and Scenarios

Command keys are scenario-driven. The prefixes (e.g. `che_`, `cr_`, `event_`)
identify the rule set or scenario extension, and the active scenario chooses
which commands are available via `GameConst` overrides. See
`docs/architecture/legacy-scenarios.md` for details.

## General Commands (`legacy/hwe/sammo/Command/General/`)

| Key | Display name (actionName) |
| --- | --- |
| `che_NPC능동` | `NPC능동` |
| `che_강행` | `강행` |
| `che_거병` | `거병` |
| `che_건국` | `건국` |
| `che_견문` | `견문` |
| `che_군량매매` | `군량매매` |
| `che_귀환` | `귀환` |
| `che_기술연구` | `기술 연구` |
| `che_내정특기초기화` | `내정 특기 초기화` |
| `che_농지개간` | `농지 개간` |
| `che_단련` | `단련` |
| `che_등용` | `등용` |
| `che_등용수락` | `등용 수락` |
| `che_랜덤임관` | `무작위 국가로 임관` |
| `che_모반시도` | `모반시도` |
| `che_모병` | `모병` |
| `che_무작위건국` | `무작위 도시 건국` |
| `che_물자조달` | `물자조달` |
| `che_방랑` | `방랑` |
| `che_사기진작` | `사기진작` |
| `che_상업투자` | `상업 투자` |
| `che_선동` | `선동` |
| `che_선양` | `선양` |
| `che_성벽보수` | `성벽 보수` |
| `che_소집해제` | `소집해제` |
| `che_수비강화` | `수비 강화` |
| `che_숙련전환` | `숙련전환` |
| `che_요양` | `요양` |
| `che_은퇴` | `은퇴` |
| `che_이동` | `이동` |
| `che_인재탐색` | `인재탐색` |
| `che_임관` | `임관` |
| `che_장비매매` | `장비매매` |
| `che_장수대상임관` | `장수를 따라 임관` |
| `che_전투태세` | `전투태세` |
| `che_전투특기초기화` | `전투 특기 초기화` |
| `che_접경귀환` | `접경귀환` |
| `che_정착장려` | `정착 장려` |
| `che_주민선정` | `주민 선정` |
| `che_증여` | `증여` |
| `che_집합` | `집합` |
| `che_징병` | `징병` |
| `che_첩보` | `첩보` |
| `che_출병` | `출병` |
| `che_치안강화` | `치안 강화` |
| `che_탈취` | `탈취` |
| `che_파괴` | `파괴` |
| `che_하야` | `하야` |
| `che_해산` | `해산` |
| `che_헌납` | `헌납` |
| `che_화계` | `화계` |
| `che_훈련` | `훈련` |
| `cr_건국` | `건국` |
| `cr_맹훈련` | `맹훈련` |
| `휴식` | `휴식` |

## Nation Commands (`legacy/hwe/sammo/Command/Nation/`)

| Key | Display name (actionName) |
| --- | --- |
| `che_감축` | `감축` |
| `che_국기변경` | `국기변경` |
| `che_국호변경` | `국호변경` |
| `che_급습` | `급습` |
| `che_몰수` | `몰수` |
| `che_무작위수도이전` | `무작위 수도 이전` |
| `che_물자원조` | `원조` |
| `che_발령` | `발령` |
| `che_백성동원` | `백성동원` |
| `che_부대탈퇴지시` | `부대 탈퇴 지시` |
| `che_불가침수락` | `불가침 수락` |
| `che_불가침제의` | `불가침 제의` |
| `che_불가침파기수락` | `불가침 파기 수락` |
| `che_불가침파기제의` | `불가침 파기 제의` |
| `che_선전포고` | `선전포고` |
| `che_수몰` | `수몰` |
| `che_의병모집` | `의병모집` |
| `che_이호경식` | `이호경식` |
| `che_종전수락` | `종전 수락` |
| `che_종전제의` | `종전 제의` |
| `che_증축` | `증축` |
| `che_천도` | `천도` |
| `che_초토화` | `초토화` |
| `che_포상` | `포상` |
| `che_피장파장` | `피장파장` |
| `che_필사즉생` | `필사즉생` |
| `che_허보` | `허보` |
| `cr_인구이동` | `인구이동` |
| `event_극병연구` | `극병 연구` |
| `event_대검병연구` | `대검병 연구` |
| `event_무희연구` | `무희 연구` |
| `event_산저병연구` | `산저병 연구` |
| `event_상병연구` | `상병 연구` |
| `event_원융노병연구` | `원융노병 연구` |
| `event_음귀병연구` | `음귀병 연구` |
| `event_화륜차연구` | `화륜차 연구` |
| `event_화시병연구` | `화시병 연구` |
| `휴식` | `휴식` |

## Open Questions / Follow-ups

- Prefix semantics (`che_`, `cr_`, `event_`) are not documented here and may be
  scenario- or mode-specific.
