siegempc.lol
A large-scale battle command game that exposes its live battlefield to an external AI Marshal through WebMCP.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 2 · Act 4 · Transact 0 · Score: Not yet scored
Tool inspector
design_operation
Write a battle of your own: pick a battlefield, place both armies on named ground, say which regiment each king rides with, and give the enemy commander a timetable. The design is validated, drawn on the War Council table and selected — but nothing is fought until launch_operation. Designing again replaces the operation on the table.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | yes | — |
mapId |
string | yes | A battlefield. Call describe_battlefield for its ground before designing on it. |
summary |
string | no | — |
briefingLine |
string | no | — |
twist |
string | no | — |
objective |
string | no | — |
playerArmyName |
string | no | — |
enemyArmyName |
string | no | — |
playerKingName |
string | no | — |
enemyKingName |
string | no | — |
playerRegiments |
array | yes | — |
enemyRegiments |
array | yes | — |
enemyPlan |
array | no | The enemy commander, written as a timetable. Each entry fires once, at its second, on the difficulty’s own clock. A reactive layer answers what the player does; this is what gives the battle its shape. |
Raw JSON schema
{
"type": "object",
"description": "A whole battle: a battlefield, two armies placed on named ground, and a timetable for the enemy commander. Nothing is fought until launch_operation is called.",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"mapId": {
"type": "string",
"enum": [
"river_vale",
"ashfall_pass",
"goldmere",
"sunken_causeway"
],
"description": "A battlefield. Call describe_battlefield for its ground before designing on it."
},
"summary": {
"type": "string",
"maxLength": 400
},
"briefingLine": {
"type": "string",
"maxLength": 400
},
"twist": {
"type": "string",
"maxLength": 400
},
"objective": {
"type": "string",
"maxLength": 400
},
"playerArmyName": {
"type": "string",
"maxLength": 48
},
"enemyArmyName": {
"type": "string",
"maxLength": 48
},
"playerKingName": {
"type": "string",
"maxLength": 48
},
"enemyKingName": {
"type": "string",
"maxLength": 48
},
"playerRegiments": {
"type": "array",
"minItems": 3,
"maxItems": 12,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,30}$",
"description": "Lowercase slug, unique on its side. This becomes the group id in play."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"zone": {
"type": "string",
"enum": [
"player_base",
"west_forest",
"west_crossing",
"central_field",
"central_bridge",
"central_hill",
"village",
"east_field",
"east_crossing",
"east_forest",
"northern_ridge",
"enemy_outer_defense",
"enemy_base",
"crown_camp",
"south_orchard",
"smoke_road",
"slag_flats",
"broken_scree",
"east_scarp",
"cinder_gap",
"ashfall_gate",
"upper_terrace",
"obsidian_wood",
"emberhold",
"smelters_hill",
"ash_citadel",
"harvest_camp",
"millbrook",
"south_downs",
"hollow_wood",
"west_pasture",
"goldmere_town",
"east_pasture",
"long_barrow",
"crowsfoot_wood",
"beacon_hill",
"hartfell",
"stone_row",
"ashen_camp",
"tidewatch",
"drowned_wood",
"causeway_approach",
"oyster_town",
"gull_hill",
"reed_flats",
"long_causeway",
"salt_ford",
"north_strand",
"black_pines",
"beacon_tower",
"herring_quay",
"ashen_anchorage"
],
"description": "Named ground. It must be on the operation’s own map — describe_battlefield lists it."
},
"troops": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"description": "What the regiment is made of. infantry hold a line, spearman beat cavalry, archer shoot at range and fold in melee, cavalry break formations from the flank, heavy_infantry are slow and very hard, siege outranges everything and is helpless up close, scout sees far.",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"infantry",
"spearman",
"archer",
"handgunner",
"cavalry",
"heavy_infantry",
"siege",
"cannon",
"scout",
"surgeon"
]
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 1200
}
},
"required": [
"category",
"count"
],
"additionalProperties": false
}
},
"formation": {
"type": "string",
"enum": [
"line",
"column",
"block",
"wedge",
"double_line",
"loose",
"square"
]
},
"stance": {
"type": "string",
"enum": [
"aggressive",
"defensive",
"hold_ground"
]
},
"carriesKing": {
"type": "boolean",
"description": "Exactly one regiment per side must carry its king. Taking a king wins the battle, so this regiment is the objective standing on the field."
}
},
"required": [
"id",
"name",
"zone",
"troops"
],
"additionalProperties": false
}
},
"enemyRegiments": {
"type": "array",
"minItems": 3,
"maxItems": 12,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,30}$",
"description": "Lowercase slug, unique on its side. This becomes the group id in play."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"zone": {
"type": "string",
"enum": [
"player_base",
"west_forest",
"west_crossing",
"central_field",
"central_bridge",
"central_hill",
"village",
"east_field",
"east_crossing",
"east_forest",
"northern_ridge",
"enemy_outer_defense",
"enemy_base",
"crown_camp",
"south_orchard",
"smoke_road",
"slag_flats",
"broken_scree",
"east_scarp",
"cinder_gap",
"ashfall_gate",
"upper_terrace",
"obsidian_wood",
"emberhold",
"smelters_hill",
"ash_citadel",
"harvest_camp",
"millbrook",
"south_downs",
"hollow_wood",
"west_pasture",
"goldmere_town",
"east_pasture",
"long_barrow",
"crowsfoot_wood",
"beacon_hill",
"hartfell",
"stone_row",
"ashen_camp",
"tidewatch",
"drowned_wood",
"causeway_approach",
"oyster_town",
"gull_hill",
"reed_flats",
"long_causeway",
"salt_ford",
"north_strand",
"black_pines",
"beacon_tower",
"herring_quay",
"ashen_anchorage"
],
"description": "Named ground. It must be on the operation’s own map — describe_battlefield lists it."
},
"troops": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"description": "What the regiment is made of. infantry hold a line, spearman beat cavalry, archer shoot at range and fold in melee, cavalry break formations from the flank, heavy_infantry are slow and very hard, siege outranges everything and is helpless up close, scout sees far.",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"infantry",
"spearman",
"archer",
"handgunner",
"cavalry",
"heavy_infantry",
"siege",
"cannon",
"scout",
"surgeon"
]
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 1200
}
},
"required": [
"category",
"count"
],
"additionalProperties": false
}
},
"formation": {
"type": "string",
"enum": [
"line",
"column",
"block",
"wedge",
"double_line",
"loose",
"square"
]
},
"stance": {
"type": "string",
"enum": [
"aggressive",
"defensive",
"hold_ground"
]
},
"carriesKing": {
"type": "boolean",
"description": "Exactly one regiment per side must carry its king. Taking a king wins the battle, so this regiment is the objective standing on the field."
}
},
"required": [
"id",
"name",
"zone",
"troops"
],
"additionalProperties": false
}
},
"enemyPlan": {
"type": "array",
"maxItems": 28,
"description": "The enemy commander, written as a timetable. Each entry fires once, at its second, on the difficulty’s own clock. A reactive layer answers what the player does; this is what gives the battle its shape.",
"items": {
"type": "object",
"properties": {
"atSeconds": {
"type": "integer",
"minimum": 0,
"maximum": 900
},
"groupId": {
"type": "string",
"description": "An id from enemyRegiments."
},
"order": {
"type": "string",
"enum": [
"move",
"attack_zone",
"defend_zone",
"hold",
"retreat",
"scout"
]
},
"targetZone": {
"type": "string",
"enum": [
"player_base",
"west_forest",
"west_crossing",
"central_field",
"central_bridge",
"central_hill",
"village",
"east_field",
"east_crossing",
"east_forest",
"northern_ridge",
"enemy_outer_defense",
"enemy_base",
"crown_camp",
"south_orchard",
"smoke_road",
"slag_flats",
"broken_scree",
"east_scarp",
"cinder_gap",
"ashfall_gate",
"upper_terrace",
"obsidian_wood",
"emberhold",
"smelters_hill",
"ash_citadel",
"harvest_camp",
"millbrook",
"south_downs",
"hollow_wood",
"west_pasture",
"goldmere_town",
"east_pasture",
"long_barrow",
"crowsfoot_wood",
"beacon_hill",
"hartfell",
"stone_row",
"ashen_camp",
"tidewatch",
"drowned_wood",
"causeway_approach",
"oyster_town",
"gull_hill",
"reed_flats",
"long_causeway",
"salt_ford",
"north_strand",
"black_pines",
"beacon_tower",
"herring_quay",
"ashen_anchorage"
],
"description": "Named ground. It must be on the operation’s own map — describe_battlefield lists it."
},
"formation": {
"type": "string",
"enum": [
"line",
"column",
"block",
"wedge",
"double_line",
"loose",
"square"
]
},
"stance": {
"type": "string",
"enum": [
"aggressive",
"defensive",
"hold_ground"
]
}
},
"required": [
"atSeconds",
"groupId",
"order"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"mapId",
"playerRegiments",
"enemyRegiments"
],
"additionalProperties": false
}
Similar websites
wfsim.app
A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…
commonplace-webmcp.vercel.app
Commonplace is an editable social reading space built for people and their browser agents.
pixelforge-studio.appcaster.chatgpt.site
A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.
pixelite.taskcraft.site
Pixelite