Skip to main content
Glama

land_lineup_estimate

Read-onlyIdempotent

Run offline what-if estimates for Splinterlands land lineups. Compare up to 10 worker setups to evaluate production, power, and regional demand for Grain, Wood, Stone, or Iron.

Instructions

Optionally supply up to ten uniquely labelled comparisons, each with a complete lineup snapshot, to evaluate alternatives alongside the baseline in one offline call. Each result retains its own validity; any invalid result sets isError while valid alternatives remain available. Alternatives are independent, not sequential moves. Offline deterministic Land what-if for Grain/Wood/Stone/Iron worksites. Supply an ordered worker snapshot (UID, detail ID, level, base PP, element and bloodline), plot terrain and efficiency, Power Core, optional Runi and item boost fractions. Bare UIDs cannot be resolved offline. Known edition-19 abilities use the dated resource; other workers require explicit ability tuples or an empty array. Returns raw/capped Base, Boostable and Total PP, gross resource/hour, food/hour, cap losses, ability activation and validity checks. Five ordinary slots with Core/Energized; Runi alone powers four plus itself. No HTTP, signing, ownership or live staking validation. Supply exactly one of plot.efficiency or regional_power (staked_dec, current_required_dec including this plot, current_plot_required_dec). Regional mode also needs each worker’s raw land_dec_stake_needed before cap/discount; it replaces old plot demand with the estimated new demand and holds all other plots unchanged. Output reports per-worker/plot demand, regional efficiency and shortfall. Runi needs no plot DEC and runs at full efficiency. Neutral workers have zero terrain modifier; dual-element workers use the better modifier. Terrain eligibility is checked for all four resources. Castles/Keeps, SPS and Research are outside this current estimator. Public-client formula evidence is dated; use an agreeing land_lineup_snapshot baseline for live comparisons.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plotYes
runiNo
workersYes
power_coreYes
comparisonsNo
title_boostNo
totem_boostNo
regional_powerNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed67 schema fields changedv1.0.2
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / plot / $ref
      Removed value: -"#/properties/plot"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / additionalProperties
      Added value: +false
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / properties
      Added value: +{
      +  "base_cap": {
      +    "default": 100000,
      +    "maximum": 100000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "efficiency": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "rarity_boost": {
      +    "default": 0,
      +    "maximum": 10,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "resource": {
      +    "enum": [
      +      "GRAIN",
      +      "WOOD",
      +      "STONE",
      +      "IRON"
      +    ],
      +    "type": "string"
      +  },
      +  "status_boost": {
      +    "default": 0,
      +    "maximum": 10,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "terrain": {
      +    "enum": [
      +      "badlands",
      +      "bog",
      +      "caldera",
      +      "canyon",
      +      "desert",
      +      "forest",
      +      "hills",
      +      "jungle",
      +      "lake",
      +      "mountain",
      +      "plains",
      +      "river",
      +      "swamp",
      +      "tundra"
      +    ],
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / required
      Added value: +[
      +  "terrain",
      +  "resource"
      +]
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / plot / type
      Added value: +"object"
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / power_core / $ref
      Removed value: -"#/properties/power_core"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / power_core / type
      Added value: +"boolean"
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / $ref
      Removed value: -"#/properties/regional_power"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / additionalProperties
      Added value: +false
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / properties
      Added value: +{
      +  "current_plot_required_dec": {
      +    "maximum": 1000000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "current_required_dec": {
      +    "maximum": 1000000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "staked_dec": {
      +    "maximum": 1000000000,
      +    "minimum": 0,
      +    "type": "number"
      +  }
      +}
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / required
      Added value: +[
      +  "staked_dec",
      +  "current_required_dec",
      +  "current_plot_required_dec"
      +]
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / regional_power / type
      Added value: +"object"
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / runi / $ref
      Removed value: -"#/properties/runi"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / additionalProperties
      Added value: +false
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / properties
      Added value: +{
      +  "base_pp": {
      +    "maximum": 1000000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "bloodline": {
      +    "maxLength": 100,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "terrain_modifier": {
      +    "maximum": 0.1,
      +    "minimum": -0.5,
      +    "type": "number"
      +  },
      +  "uid": {
      +    "maxLength": 100,
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / required
      Added value: +[
      +  "uid",
      +  "base_pp",
      +  "terrain_modifier",
      +  "bloodline"
      +]
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / runi / type
      Added value: +"object"
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / $ref
      Removed value: -"#/properties/title_boost"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / default
      Added value: +0
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / maximum
      Added value: +10
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / minimum
      Added value: +0
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / title_boost / type
      Added value: +"number"
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / $ref
      Removed value: -"#/properties/totem_boost"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / default
      Added value: +0
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / maximum
      Added value: +10
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / minimum
      Added value: +0
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / totem_boost / type
      Added value: +"number"
    • removedInput schema / properties / comparisons / items / properties / lineup / properties / workers / $ref
      Removed value: -"#/properties/workers"
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / workers / items
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "abilities": {
      +      "items": {
      +        "description": "Ability tuple: [ENERGIZED|LL], [DD|RATIONING|RATIONING_LITE, negative fraction], [GRAIN|WOOD|STONE|IRON|AURA, positive fraction], or [BLOODLINE, positive fraction, bloodline].",
      +        "items": {
      +          "anyOf": [
      +            {
      +              "maxLength": 100,
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            {
      +              "maximum": 10,
      +              "minimum": -1,
      +              "type": "number"
      +            }
      +          ]
      +        },
      +        "maxItems": 3,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "maxItems": 20,
      +      "type": "array"
      +    },
      +    "base_pp": {
      +      "maximum": 1000000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "bloodline": {
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "card_detail_id": {
      +      "exclusiveMinimum": 0,
      +      "maximum": 9007199254740991,
      +      "type": "integer"
      +    },
      +    "element": {
      +      "enum": [
      +        "fire",
      +        "water",
      +        "life",
      +        "death",
      +        "earth",
      +        "dragon",
      +        "neutral"
      +      ],
      +      "type": "string"
      +    },
      +    "land_dec_stake_needed": {
      +      "maximum": 1000000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "level": {
      +      "maximum": 100,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "secondary_element": {
      +      "enum": [
      +        "fire",
      +        "water",
      +        "life",
      +        "death",
      +        "earth",
      +        "dragon",
      +        "neutral"
      +      ],
      +      "type": "string"
      +    },
      +    "uid": {
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "uid",
      +    "card_detail_id",
      +    "level",
      +    "base_pp",
      +    "element",
      +    "bloodline"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / workers / maxItems
      Added value: +5
    • addedInput schema / properties / comparisons / items / properties / lineup / properties / workers / type
      Added value: +"array"
    • removedInput schema / properties / plot / properties / status_boost / $ref
      Removed value: -"#/properties/plot/properties/rarity_boost"
    • addedInput schema / properties / plot / properties / status_boost / maximum
      Added value: +10
    • addedInput schema / properties / plot / properties / status_boost / minimum
      Added value: +0
    • addedInput schema / properties / plot / properties / status_boost / type
      Added value: +"number"
    • removedInput schema / properties / regional_power / properties / current_plot_required_dec / $ref
      Removed value: -"#/properties/workers/items/properties/base_pp"
    • addedInput schema / properties / regional_power / properties / current_plot_required_dec / maximum
      Added value: +1000000000
    • addedInput schema / properties / regional_power / properties / current_plot_required_dec / minimum
      Added value: +0
    • addedInput schema / properties / regional_power / properties / current_plot_required_dec / type
      Added value: +"number"
    • removedInput schema / properties / regional_power / properties / current_required_dec / $ref
      Removed value: -"#/properties/workers/items/properties/base_pp"
    • addedInput schema / properties / regional_power / properties / current_required_dec / maximum
      Added value: +1000000000
    • addedInput schema / properties / regional_power / properties / current_required_dec / minimum
      Added value: +0
    • addedInput schema / properties / regional_power / properties / current_required_dec / type
      Added value: +"number"
    • removedInput schema / properties / regional_power / properties / staked_dec / $ref
      Removed value: -"#/properties/workers/items/properties/base_pp"
    • addedInput schema / properties / regional_power / properties / staked_dec / maximum
      Added value: +1000000000
    • addedInput schema / properties / regional_power / properties / staked_dec / minimum
      Added value: +0
    • addedInput schema / properties / regional_power / properties / staked_dec / type
      Added value: +"number"
    • removedInput schema / properties / runi / properties / base_pp / $ref
      Removed value: -"#/properties/workers/items/properties/base_pp"
    • addedInput schema / properties / runi / properties / base_pp / maximum
      Added value: +1000000000
    • addedInput schema / properties / runi / properties / base_pp / minimum
      Added value: +0
    • addedInput schema / properties / runi / properties / base_pp / type
      Added value: +"number"
    • removedInput schema / properties / title_boost / $ref
      Removed value: -"#/properties/plot/properties/rarity_boost"
    • addedInput schema / properties / title_boost / maximum
      Added value: +10
    • addedInput schema / properties / title_boost / minimum
      Added value: +0
    • addedInput schema / properties / title_boost / type
      Added value: +"number"
    • removedInput schema / properties / totem_boost / $ref
      Removed value: -"#/properties/plot/properties/rarity_boost"
    • addedInput schema / properties / totem_boost / maximum
      Added value: +10
    • addedInput schema / properties / totem_boost / minimum
      Added value: +0
    • addedInput schema / properties / totem_boost / type
      Added value: +"number"
    • addedInput schema / properties / workers / items / properties / card_detail_id / maximum
      Added value: +9007199254740991
    • removedInput schema / properties / workers / items / properties / land_dec_stake_needed / $ref
      Removed value: -"#/properties/workers/items/properties/base_pp"
    • addedInput schema / properties / workers / items / properties / land_dec_stake_needed / maximum
      Added value: +1000000000
    • addedInput schema / properties / workers / items / properties / land_dec_stake_needed / minimum
      Added value: +0
    • addedInput schema / properties / workers / items / properties / land_dec_stake_needed / type
      Added value: +"number"
    • removedInput schema / properties / workers / items / properties / secondary_element / $ref
      Removed value: -"#/properties/workers/items/properties/element"
    • addedInput schema / properties / workers / items / properties / secondary_element / enum
      Added value: +[
      +  "fire",
      +  "water",
      +  "life",
      +  "death",
      +  "earth",
      +  "dragon",
      +  "neutral"
      +]
    • addedInput schema / properties / workers / items / properties / secondary_element / type
      Added value: +"string"
  2. First observedv0.0.0

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true, and the description adds substantial behavior beyond that: per-result error isolation ('any invalid result sets isError while valid alternatives remain available'), independence of alternatives ('not sequential moves'), deterministic offline execution, regional-mode replacement semantics ('replaces old plot demand... holds all other plots unchanged'), and the dated-formula caveat. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries real information with no fluff, but the entire description is one ~350-word wall of text with no breaks or sections. The optional comparisons feature is described before the core purpose, forcing an agent to parse several sentences before learning what the tool fundamentally does. Information density is high, but scannability and front-loading are poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a highly complex tool with 8 parameters, nested objects, no output schema, and 0% schema param coverage, the description is remarkably complete: it specifies input construction requirements, regional-mode preconditions, output metrics (raw/capped Base, Boostable, Total PP, resource/hour, food/hour, cap losses, validity checks), behavioral constraints, and exclusions. An agent has enough to construct a valid call and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for the most complex parameters: comparisons (up to ten, complete lineup snapshots), the mutual exclusivity of plot.efficiency vs regional_power, land_dec_stake_needed requirements in regional mode, Runi's slot semantics, and power_core slot counts. Gaps remain: title_boost, totem_boost, rarity_boost, and status_boost are collapsed into 'item boost fractions' without individual meaning, and base_cap is unmentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource+scope: 'Offline deterministic Land what-if for Grain/Wood/Stone/Iron worksites' with explicit output metrics. It distinguishes from siblings by positioning itself as offline vs. 'land_lineup_snapshot baseline for live comparisons.' However, the core purpose statement is buried mid-paragraph after two sentences about the optional comparisons feature, so the primary function is not front-loaded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: offline, no HTTP/signing/ownership/live staking validation, and 'Bare UIDs cannot be resolved offline' which tells the agent when input is insufficient. It names the alternative tool (land_lineup_snapshot) for live comparisons and states scope exclusions (Castles/Keeps, SPS, Research). Missing an explicit 'use X instead when Y' routing statement, but the guidance is strong and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools