Table of Contents

Namespace StarterKit.Commands

Classes

AddGoldCommand

StarterKit command: Add or remove gold from player treasury. Demonstrates SimpleCommand pattern with fluent validation.

ColonizeCommand

StarterKit command: Colonize an unowned province. Deducts gold and sets province ownership. Used by player UI and AI.

ConstructBuildingCommand

StarterKit command: Construct a building in a province. Used by both player (via console) and AI (programmatically). Uses type-safe ProvinceId wrapper for compile-time safety.

CreateUnitCommand

StarterKit command: Create a unit at a province. Handles gold cost and creates the unit. Uses type-safe ProvinceId wrapper for compile-time safety.

DisbandUnitCommand

StarterKit command: Disband a unit. Demonstrates fluent validation with UnitExists validator. Uses type-safe ProvinceId wrapper for compile-time safety.

MoveUnitCommand

StarterKit command: Move a unit to a new province. Demonstrates fluent validation pattern with GAME-layer extensions. Uses type-safe ProvinceId wrapper for compile-time safety.

QueueUnitMovementCommand

StarterKit command: Queue unit movement along a path. Uses time-based EU4-style movement (units take X days per province). For multiplayer sync - all clients queue the same movement orders. Note: Uses BaseCommand instead of SimpleCommand for custom List serialization.