tibiawiki-mcp
Server Details
TibiaWiki knowledge base: attribute queries over creatures, items, NPCs, quests and spells
- Status
- Healthy
- Uptime
- 100.0% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- tibia-sh/tibiawiki-mcp
- GitHub Stars
- 0
- Server Listing
- tibiawiki-mcp
TDQS
Scored across 12 tools
Each tool targets a distinct entity or task: find_* tools cover separate Tibia domains, while get, search, how_to_obtain, where_to_sell, and parse_loot have clearly differentiated roles. The only potential overlap is between how_to_obtain and where_to_sell, but descriptions make the buy-vs-sell direction clear.
All names use the tibia_ prefix and snake_case, with a dominant find_* pattern for discovery tools. Minor deviations appear in use-case names like how_to_obtain and where_to_sell, which are descriptive rather than verb_noun, but remain predictable.
Twelve tools is well-scoped for a Tibia wiki covering creatures, items, quests, spells, houses, travel, updates, and utility lookups. Each tool earns its place without excessive fragmentation.
The surface covers discovery, exact-page detail, item sources, selling locations, and loot parsing across most major Tibia domains. Minor gaps exist for filtered NPC-only searches or attribute-based mount/outfit queries, but generic search/get can work around them.
Available Tools
12 toolstibia_find_creaturesARead-onlyInspect
Find Tibia creatures matching stat filters. Damage modifiers are percentages where 100 is neutral: "weak_to" means the creature takes MORE than 100% damage from that element, "resistant_to" means less. Use this for questions like "which creatures are weak to fire and give over 500 experience". Behaviour filters skip creatures whose value is unrecorded.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | experience, hitpoints and gold_per_kill: highest first. | experience |
| limit | No | ||
| cursor | No | ||
| is_boss | No | ||
| weak_to | No | Elements the creature takes extra damage from. | |
| pushable | No | ||
| summonable | No | true: summon cost above 0. false: 0. | |
| paralysable | No | ||
| convinceable | No | true: convince cost above 0. false: 0. | |
| resistant_to | No | ||
| hitpoints_max | No | Creatures whose hitpoints are unrecorded are excluded from this filter. | |
| hitpoints_min | No | Creatures whose hitpoints are unrecorded are excluded from this filter. | |
| bestiary_class | No | e.g. "Dragon", "Human". | |
| bestiary_level | No | Creatures with no recorded bestiary level are excluded from this filter. | |
| experience_max | No | ||
| experience_min | No | ||
| sees_invisible | No | ||
| include_inactive | No | ||
| location_contains | No | Substring of the location text. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds valuable behavior beyond that: damage modifiers are percentages where 100 is neutral, weak_to/resistant_to are defined precisely, and behavior filters skip creatures with unrecorded values. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose is front-loaded, followed by essential damage-modifier semantics, an example, and an edge-case behavior note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter filter tool with an output schema and read-only annotation, the description covers core filter semantics and unrecorded-value behavior. It omits pagination/cursor and sort/limit details, but those are either in the schema or secondary for a first call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 47%, so the description must compensate. It explains the non-obvious weak_to/resistant_to semantics and the unrecorded-value behavior for filters. However, many parameters (cursor, limit, booleans, experience ranges) remain undocumented in both schema and description, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find') and resource ('Tibia creatures') with 'matching stat filters', clearly distinguishing it from sibling find_items/spells/quests tools. The example query reinforces the exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit example use case ('which creatures are weak to fire and give over 500 experience'), giving clear context for when to use this tool. It does not name sibling alternatives or exclusions, but the resource-specific naming makes selection straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_find_housesARead-onlyInspect
Find Tibia houses and guildhalls by city, rent, beds and size. Use this for questions like "cheapest house in Thais with two beds". Call tibia_get with a title for its location and position.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Exact city name, e.g. "Thais", any case. | |
| sort | No | rent ascends, size descends, title is alphabetical. | rent |
| limit | No | ||
| cursor | No | ||
| beds_min | No | ||
| rent_max | No | Highest monthly rent in gold. | |
| size_min | No | Fewest tiles. | |
| is_guildhall | No | ||
| include_inactive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and the description adds useful behavioral context by explaining that results are titles to be passed to tibia_get for location/position. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose, provide a concrete example, and give a cross-tool pointer. Every word earns its place with no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and self-explanatory parameter names, the description is largely complete. It could mention default sort order or the include_inactive default, but the example disambiguates the primary use case and the follow-up to tibia_get is important context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is just 44%, so the description carries some burden. It names the key filter dimensions (city, rent, beds, size) and gives an example, but it does not clarify the semantics of beds_min, size_min, is_guildhall, include_inactive, limit, or cursor beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'find', the specific resources 'Tibia houses and guildhalls', and the filtering dimensions 'by city, rent, beds and size'. This clearly distinguishes it from sibling find_* tools like tibia_find_creatures or tibia_find_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete example of when to use the tool ('cheapest house in Thais with two beds') and a follow-up instruction to call tibia_get with a title. It does not explicitly list exclusions versus alternatives, but the resource-specific focus makes the context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_find_itemsARead-onlyInspect
Find Tibia items matching class, type and stat filters such as attack, defense, armor and required level, resistances, skill bonuses, imbuement slots, weight and hands. Use this for questions like "which two-handed swords need level 100 or less" or "which sorcerer items resist fire". Vocation and weapon type match by membership, so "knight" matches "knights". Call tibia_get on a title for the full item.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | weight ascends, armor, attack and defense descend, title is alphabetical. value descends by NPC gold price, and prices in other currencies come last. | title |
| hands | No | ||
| leech | No | Leeches everything listed. | |
| limit | No | ||
| cursor | No | ||
| vocation | No | Matches required_vocation, e.g. "knight". | |
| armor_min | No | ||
| item_type | No | e.g. "Sword Weapons". | |
| attack_max | No | ||
| attack_min | No | ||
| client_ids | No | The item's client ID, any listed. Item variants can share one. | |
| item_class | No | e.g. "Weapons", "Armors". | |
| weight_max | No | In oz. Items without a weight never match. | |
| damage_type | No | Weapon element. | |
| defense_min | No | ||
| skill_bonus | No | Raises every listed skill. | |
| weapon_type | No | e.g. "Sword", "Axe", "Club". | |
| is_stackable | No | ||
| resistant_to | No | Resists everything listed (resistance above 0). | |
| is_pickupable | No | ||
| include_inactive | No | ||
| required_level_max | No | ||
| imbuement_slots_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read profile (readOnlyHint=true, openWorldHint=false), so the description is free to add semantics it alone can supply: membership-style matching for vocation/weapon type ('knight' matches 'knights') and the fact that results are summaries requiring tibia_get for full data. It omits pagination/limit behavior on a 23-parameter search, which is the notable remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the capability, then two illustrative queries, then the matching quirk and the follow-up call. Every sentence carries distinct information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers the dominant filter use cases plus the tibia_get follow-up. For a 23-parameter tool with 0 required params, the missing notes on pagination and sort defaults are a modest but real incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 48%, so the description must compensate, and it largely does: it names the filter families an agent is likely to reach for and adds non-obvious matching semantics for vocation and weapon_type that the schema does not state. Sort, limit/cursor, client_ids, include_inactive, is_stackable and is_pickupable remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find Tibia items') and enumerates the filter dimensions covered (class, type, attack, defense, armor, level, resistances, skill bonuses, imbuement slots, weight, hands). The resource noun cleanly separates it from tibia_find_creatures, tibia_find_spells, tibia_find_houses and the other find_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete triggering questions ('which two-handed swords need level 100 or less', 'which sorcerer items resist fire') and routes the agent onward to tibia_get for full item detail. It never states when *not* to use it or what the alternative would be for a different query shape, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_find_questsARead-onlyInspect
Find Tibia quests by level, premium, Rookgaard and location, with their rewards. Use this for questions like "which quests can a level 20 character do". Call tibia_get with a title for the legend and dangers.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Levels ascend, title is alphabetical. Unknown levels come last. | level_recommended |
| limit | No | ||
| cursor | No | ||
| level_max | No | Highest level the character has. Quests with no level requirement always match. | |
| is_premium | No | ||
| is_rookgaard | No | ||
| include_inactive | No | ||
| location_contains | No | Literal substring of the location, case-insensitive. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given the readOnlyHint annotation, the description adds behavioral context beyond it by noting that results include rewards and that legend/dangers require a separate tibia_get call. This tells agents what the tool returns and what it does not, though it does not mention pagination or defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, purposeful sentences: purpose, example, and follow-up instruction. It is front-loaded with the core function, uses no filler, and each sentence earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and an output schema, the description covers the primary use case and highlights the relationship to tibia_get. It does not elaborate on every parameter, but the schema provides those details; the description is sufficient for typical queries, though a mention of include_inactive or pagination would strengthen it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description must compensate. It maps the main filters (level, premium, Rookgaard, location) to likely parameters, but does not clarify others like include_inactive, limit, cursor, or the exact behavior of is_premium. Thus it adds partial value but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Find), the resource (Tibia quests), and the key filters (level, premium, Rookgaard, location) along with output (rewards). This distinguishes it from sibling find_* tools by focusing specifically on quests, and the example query makes the intended use unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete use case ('which quests can a level 20 character do') and explicitly directs users to call tibia_get for additional details, implying when to use this tool versus the follow-up. However, it does not explicitly state when not to use this tool or name alternatives among the find_* siblings, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_find_spellsARead-onlyInspect
Find Tibia spells by vocation, level, group, element and type. Use this for questions like "which healing spells can a level 30 druid cast". Call tibia_get with a title for cooldowns, effect and area.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | level and mana ascend, title is alphabetical. Spells with a variable cost (party spells) store mana 0, so they come first by mana. | level |
| group | No | Runes are all filed under support, so find attack runes by spell_type and element. | |
| limit | No | ||
| cursor | No | ||
| element | No | Damage element. For healing spells, use group. | |
| vocation | No | ||
| level_max | No | Highest level the caster has. | |
| is_premium | No | ||
| spell_type | No | ||
| include_inactive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safe read-only nature of the tool. The description adds one useful behavioral signal by implying that detailed spell properties are not included here and must be fetched via tibia_get, but it does not mention pagination, default limits, or inactive-spell filtering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The main purpose is front-loaded, followed by a concrete example and a pointer to the sibling tool, all in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 filter parameters and an output schema present, the description gives enough for basic use but omits guidance on pagination and several boolean/optional filters. It is adequate for a simple search query but not fully complete for advanced filtering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, and the description does not compensate for the gap. It lists filter dimensions like 'vocation, level, group, element and type' without mapping them to actual parameter names, and it omits meaning for cursor, limit, is_premium, include_inactive, and spell_type, which are otherwise undocumented except for their enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, 'Find Tibia spells by vocation, level, group, element and type', making the tool's function immediately clear. It also distinguishes itself from sibling find_* tools by naming the exact resource and gives a concrete example query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this for questions like...' explicitly states the intended use case. It also names the relevant alternative, tibia_get, and defines the boundary: use tibia_get for cooldowns, effect, and area. This is clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_find_travelARead-onlyInspect
Find boat, carpet and other travel routes to or from a place, with fares. Each row is one leg with its start (origin) and the NPC's recorded city, location and position. Rows are single legs: this does not plan journeys.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Exact destination, e.g. "Svargrond", any case. | |
| from | No | Exact start place of the leg, e.g. "Meriana", any case. | |
| sort | No | price ascends with 0 fares last, npc is alphabetical. | price |
| limit | No | ||
| cursor | No | ||
| include_inactive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds valuable behavioral context beyond the annotations: rows represent single legs, each row includes the start/origin and the NPC's recorded city, location, and position, and fares are included. This helps the agent interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the core action and resource, then adds the key row-level detail and the important limitation. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential semantics for a read-only lookup tool, and the output schema handles return-value details. It clearly states the single-leg limitation and row composition. It could be slightly more complete by mentioning pagination or the inactive-route filter, but these are secondary given the schema defaults and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with limit, cursor, and include_inactive left undocumented in the schema. The description does not compensate for these gaps; it only restates the general to/from concept already covered by the schema. It adds no meaning for the pagination, limit, or inactive-route parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and resource ('boat, carpet and other travel routes') and clearly distinguishes this tool from the sibling find_* tools by focusing on travel. It also clarifies the output granularity ('Each row is one leg') and what the tool does not do ('does not plan journeys'), leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool: to look up individual travel legs with fares. It explicitly states a when-not ('does not plan journeys'), which prevents misuse for multi-leg trip planning, though it does not name a specific alternative tool for journey planning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_find_updatesARead-onlyInspect
Find Tibia game updates by text and release date, for questions like "what changed for knights in 2026" or "which update added X". Matches the text, case-insensitive for ASCII letters, in an update's title, name, summary and change list, newest first, and returns the matching change lines. For the full changes, call tibia_get with type "update" and the returned title.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Literal substring, e.g. "knight". | |
| limit | No | ||
| cursor | No | ||
| released_after | No | YYYY-MM-DD, inclusive. | |
| released_before | No | YYYY-MM-DD, inclusive. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important search behavior beyond the readOnlyHint annotation: case-insensitive ASCII matching, the fields searched (title, name, summary, change list), newest-first ordering, and that it returns matching change lines. This is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences cover purpose, examples, matching behavior, ordering, return content, and the follow-up call to tibia_get. Information is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and parameter documentation, the description is complete enough for an agent to correctly select and invoke the tool. It covers what is matched, how results are ordered, what is returned, and how to retrieve full changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds useful meaning for the text parameter by explaining where and how matching occurs, and it summarizes release-date filtering. The schema already documents text, released_after, and released_before, so the description does not need to repeat those details; limit and cursor are left as standard pagination parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Find Tibia game updates by text and release date.' The examples like 'what changed for knights in 2026' make the intended use unmistakable, and the resource name clearly distinguishes it from sibling tools like tibia_find_creatures, tibia_find_items, and tibia_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases and a clear handoff: 'For the full changes, call tibia_get with type "update" and the returned title.' This tells an agent when this tool is appropriate and when to switch to an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_getARead-onlyInspect
Full detail for one Tibia page of any kind, with a creature's loot, abilities and max damage, the NPCs that buy an item and what an NPC buys and sells. Takes an exact page name. Use tibia_search first for an uncertain or in-game name, or tibia_find_updates for an update. Pass type for a shared name. Creature abilities may carry an area: Grid of map tiles, row-major, as the caster faces. '.' unaffected tile, '#' effect tile, '@' the caster, '*' the target tile, digits 4-8 a second effect the scene draws on extra sprite layers, '?' an unrecognised value. effectTiles counts effect tiles only. effectOnCaster, from the wiki rather than the grid, says whether the caster is caught in its own effect.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Page name, e.g. "Dragon Lord". Case-insensitive. | |
| type | No | Restrict the lookup to one kind of page. | |
| verbosity | No | "detailed" adds extra descriptive columns. | concise |
| include_inactive | No | Include deprecated, event-only and unavailable pages. Applies to the requested page and to the NPCs or items in its trade lists. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint=false, so safety is covered. The description adds genuine non-obvious behavior: it requires an exact page name, and it explains the `area` grid encoding (row-major, caster-relative, tile symbols) plus the wiki-vs-grid distinction for effectOnCaster, which the agent cannot infer elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and routing are front-loaded in the first two sentences. The trailing grid legend is dense and long, but it earns its place because it is required to interpret the returned `area` field; structure is otherwise efficient with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not restate return structure, yet it supplements the one field (the `area` grid) that would otherwise be cryptic. It omits any note on verbosity/inactive behavior, but those are fully documented in the schema, so the definition is effectively complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description goes beyond the schema by explaining the disambiguating purpose of `type` ("Pass `type` for a shared name") and the exactness requirement on `name`, adding selection value the enum alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: "Full detail for one Tibia page of any kind". It further enumerates the payload (loot, abilities, max damage, NPC trade lists), so the agent knows exactly what it retrieves, and it names sibling tools for adjacent needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: use tibia_search first for an uncertain or in-game name, tibia_find_updates for an update, and pass `type` for a shared name. The when-to-use-this vs when-to-use-alternatives condition is fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_how_to_obtainARead-onlyInspect
Every in-game source for one item in a single call: which creatures drop it and how likely, which NPCs sell it and for how much (the price the player pays), and which quests reward it. Prefer this over three separate lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| item_name | Yes | Item page name or the name the game prints, e.g. "Dragon Shield". | |
| include_inactive | No | Include deprecated or event-only creatures, NPCs and quests as sources. |
Output Schema
| Name | Required | Description |
|---|---|---|
| item | Yes | |
| note | Yes | |
| source | Yes | |
| status | Yes | |
| droppedBy | Yes | |
| soldByNpcs | Yes | |
| questRewards | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful behavioral context: it returns all sources in one call, includes drop likelihood, and clarifies that NPC prices are what the player pays. This goes beyond the schema and annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core scope is front-loaded, and the usage preference is stated in a single closing sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the read-only annotation is present, and both parameters are fully documented in the schema, the description covers the essential behavior and scope. Nothing critical is missing for an agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents item_name and include_inactive. The description reinforces that the tool is item-centric but adds no parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it retrieves every in-game source for one item in a single call, enumerating creature drops, NPC prices, and quest rewards. This clearly distinguishes it from narrower sibling tools like tibia_find_creatures or tibia_where_to_sell.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to prefer this tool over three separate lookups, giving clear usage direction. It does not name the exact sibling alternatives or state when not to use it, but the guidance is sufficient for an agent to select it for consolidated item-source queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_parse_lootARead-onlyInspect
Parses loot messages as the game prints them, one per line, such as "12:34 Loot of a dragon: 2 small diamonds, a steel shield (active prey bonus)." It reads in-game names, not wiki titles. Gives totals by item with count and value, and entries it cannot resolve. Prices are NPC prices in gold, coins at face value. Other lines come back unparsed. Both lists stop at 100, their counts in totals do not.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Loot messages, one per line. | |
| include_lines | No | Also give each line with its items, client IDs and prices. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | No | Each loot line, with include_lines. |
| totals | Yes | |
| unparsed | Yes | Lines that are no loot message, the first 100. |
| indexGeneratedAt | Yes | |
| unresolvedEntries | Yes | Entries with no single item, the first 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already flag this as read-only, the description adds substantial behavioral detail beyond that: prices are NPC prices with coins at face value, unresolved entries are returned, non-loot lines come back unparsed, and both result lists cap at 100 while totals still include everything. This gives the agent accurate expectations about output limits and edge cases with no contradiction to the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and an example, then packs important caveats into compact sentences. Every sentence provides useful operational detail—input format, naming convention, price interpretation, unresolved entries, unparsed lines, and list limits—with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to enumerate return types; it still covers the key behavioral details an agent needs to invoke the tool correctly, such as input constraints, output limits, and price semantics. The description is complete for a read-only parser with these parameters and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already explains the 'text' and 'include_lines' parameters clearly. The description adds some context about output semantics (totals, unresolved entries, price type) but does not materially expand parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Parses loot messages'), includes a concrete example of the exact input format, and states key scoping rules ('in-game names, not wiki titles'). This clearly differentiates it from the sibling search/find tools, which look up entities rather than parse raw game text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it obvious this tool is for parsing raw loot messages as printed by the game, and the example plus the 'in-game names, not wiki titles' warning clarify the expected input source. It does not explicitly name alternatives or state when not to use it, but the context is clear enough for an agent to route loot-message parsing here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_searchARead-onlyInspect
Find Tibia pages of any kind whose name contains a substring. Items also match by the name and plural the game prints. Turns an approximate or in-game name into the exact page name tibia_get expects. With a query, shortest name first, so the closest match leads. With types and no query, lists every page of those types by title, as in "list every mount".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Substring to match against page names, case-insensitive. Omit it to list every page of types. | |
| types | No | Restrict to these kinds of page. Defaults to all. Required without a query. | |
| cursor | No | Opaque cursor from a previous call. | |
| include_inactive | No | Include deprecated, event-only and unavailable pages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| nextCursor | No | |
| totalMatches | Yes | |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful behavior: substring matching, plural matching for items, shortest-name-first ordering, and list-all behavior when types are given without a query. This goes beyond a simple read-only declaration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with no filler. Each sentence earns its place: core behavior, item plural matching, tibia_get relationship, ordering rule, and list-mode example all contribute directly to correct tool use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, annotations, and 80% schema coverage, the description covers the main decision space well. It leaves minor gaps such as pagination/cursor guidance and explicit routing away from specialized finder siblings, but these are partially covered by the schema and sibling names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3, but the description adds real semantic value: omitting query triggers type listing, and items match by game-printed plural as well as name. Limit, cursor, and include_inactive remain dependent on the schema, but the core query/types behavior is enriched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find Tibia pages of any kind whose name contains a substring.' It clearly distinguishes itself from type-specific siblings by emphasizing 'any kind' and by positioning itself as the resolver of approximate names before tibia_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage modes: query-based search for approximate names, and type-based listing when no query is provided. It does not explicitly name the specialized finder siblings as alternatives, but the phrase 'of any kind' and the tibia_get handoff make the intended context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tibia_where_to_sellARead-onlyInspect
Answers "where do I sell all this": for each item, the active NPC paying the most, grouped by city and NPC. Prices are NPC prices in gold. Call tibia_get on an NPC for more.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Item names, any case, as the wiki titles them or the game prints them, e.g. "Dragon Shield" or "vial of lifefluid". |
Output Schema
| Name | Required | Description |
|---|---|---|
| cities | Yes | |
| noGoldBuyer | Yes | Items no active NPC buys for gold. |
| unknownItems | Yes | Names that match no item. |
| ambiguousItems | Yes | Names more than one item goes by, with those items. |
| indexGeneratedAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, so the description does not need to restate safety. It adds meaningful behavior: results are the active NPC paying the most, grouped by city and NPC, and prices are NPC prices in gold. This fills in the semantics of 'where to sell' beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core behavior, output grouping, price units, and a follow-up routing hint without any filler. The user-facing question is front-loaded, making the tool's purpose immediately recognizable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with an output schema present, the description is complete: it states what input is processed, how results are grouped, what the prices mean, and where to go for further detail. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the items parameter including case-insensitivity and format examples. The description adds only the minor context that each item is processed individually, which does not substantially extend the schema's guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair: it answers where to sell items by finding the active NPC paying the most per item. It clearly distinguishes itself from siblings like tibia_how_to_obtain by focusing on selling rather than obtaining, and from tibia_get by positioning itself as the aggregation tool with tibia_get as the follow-up.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening phrase "Answers 'where do I sell all this'" gives clear context for when the tool is appropriate. It does not explicitly list exclusions or compare with alternatives, but it does point to tibia_get for more detail on an NPC, which guides the agent to the natural next step rather than leaving it to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
tibia_find_items3 fields changed- changed
Input schema / properties / sort / descriptionPrevious value: -"weight ascends, value, armor, attack and defense descend, title is alphabetical."New value: +"weight ascends, armor, attack and defense descend, title is alphabetical. value descends by NPC gold price, and prices in other currencies come last." - added
Output schema / properties / results / items / properties / valueBuyCurrencyAdded value: +{ + "description": "Currency of the price beside it, as the wiki names it, e.g. Gold Coin, Tibia Coins or Event Points. null when there is no price.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "title", - "actualName", - "itemClass", - "itemType", - "weight", - "valueBuy", - "clientId", - "isStackable", - "isPickupable", - "attributes" -]New value: +[ + "title", + "actualName", + "itemClass", + "itemType", + "weight", + "valueBuy", + "valueBuyCurrency", + "clientId", + "isStackable", + "isPickupable", + "attributes" +]
- Changed
tibia_get1 field changed- changed
Output schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "abilities": { - "items": { - "additionalProperties": false, - "properties": { - "area": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "effectOnCaster": { - "type": "boolean" - }, - "effectTiles": { - "type": "number" - }, - "height": { - "type": "number" - }, - "key": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "key", - "width", - "height", - "cells", - "ascii", - "effectTiles", - "effectOnCaster" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "effect", - "element", - "area" - ], - "type": "object" - }, - "type": "array" - }, - "armor": { - "type": [ - "number", - "null" - ] - }, - "article": { - "description": "Article the game prints before the name. Null: none, as for bosses.", - "type": [ - "string", - "null" - ] - }, - "bestiaryClass": { - "type": [ - "string", - "null" - ] - }, - "bestiaryLevel": { - "type": [ - "string", - "null" - ] - }, - "convinceCost": { - "description": "Mana. 0: cannot be convinced.", - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "experience": { - "type": [ - "number", - "null" - ] - }, - "goldPerKill": { - "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", - "type": [ - "number", - "null" - ] - }, - "hitpoints": { - "type": [ - "number", - "null" - ] - }, - "illusionable": { - "type": [ - "boolean", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBoss": { - "type": "boolean" - }, - "loot": { - "items": { - "additionalProperties": false, - "properties": { - "chance": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - }, - "max": { - "type": [ - "number", - "null" - ] - }, - "min": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "item", - "chance", - "min", - "max" - ], - "type": "object" - }, - "type": "array" - }, - "maxDamage": { - "anyOf": [ - { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "modifiers": { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "name": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "paralysable": { - "type": [ - "boolean", - "null" - ] - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "pushObjects": { - "type": [ - "boolean", - "null" - ] - }, - "pushable": { - "type": [ - "boolean", - "null" - ] - }, - "raceId": { - "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.", - "type": [ - "number", - "null" - ] - }, - "runsAt": { - "description": "Hit points at which it flees. 0: never flees.", - "type": [ - "number", - "null" - ] - }, - "seesInvisible": { - "type": [ - "boolean", - "null" - ] - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "summonCost": { - "description": "Mana. 0: cannot be summoned.", - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "creature", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "name", - "plural", - "article", - "hitpoints", - "experience", - "armor", - "speed", - "bestiaryClass", - "bestiaryLevel", - "isBoss", - "status", - "runsAt", - "seesInvisible", - "paralysable", - "pushable", - "pushObjects", - "illusionable", - "summonCost", - "convinceCost", - "goldPerKill", - "raceId", - "modifiers", - "loot", - "abilities", - "maxDamage", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "actualName": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "attributes": { - "additionalProperties": { - "type": [ - "string", - "number" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "boughtBy": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "type": [ - "string", - "null" - ] - }, - "currency": { - "type": "string" - }, - "npc": { - "type": "string" - }, - "position": { - "additionalProperties": false, - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "price": { - "type": "number" - } - }, - "required": [ - "npc", - "price", - "currency", - "city", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isImmobile": { - "type": [ - "boolean", - "null" - ] - }, - "isMarketable": { - "type": [ - "boolean", - "null" - ] - }, - "isPickupable": { - "type": [ - "boolean", - "null" - ] - }, - "isStackable": { - "type": [ - "boolean", - "null" - ] - }, - "itemClass": { - "type": [ - "string", - "null" - ] - }, - "itemType": { - "type": [ - "string", - "null" - ] - }, - "keys": { - "items": { - "additionalProperties": false, - "properties": { - "location": { - "type": [ - "string", - "null" - ] - }, - "material": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "number": { - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - } - }, - "required": [ - "title", - "number", - "name", - "material", - "location", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "proficiencyPerks": { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": [ - "string", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "skill": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "level", - "effect", - "skill" - ], - "type": "object" - }, - "type": "array" - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "storeOffers": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "currency": { - "type": [ - "string", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "price", - "amount", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "const": "item", - "type": "string" - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - }, - "valueBuy": { - "type": [ - "number", - "null" - ] - }, - "valueSell": { - "type": [ - "number", - "null" - ] - }, - "weight": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "image", - "title", - "actualName", - "plural", - "itemClass", - "itemType", - "typeSecondary", - "weight", - "valueBuy", - "valueSell", - "isMarketable", - "isStackable", - "isPickupable", - "isImmobile", - "clientId", - "status", - "attributes", - "keys", - "storeOffers", - "proficiencyPerks", - "boughtBy", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "buys": { - "description": "Items the player can sell to this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "destinations": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "origin": { - "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", - "type": [ - "string", - "null" - ] - }, - "price": { - "description": "Route price in gold. 0: free or not recorded, see notes.", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "name", - "price", - "origin", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "gender": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "jobs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "positions": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "geolabel": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "subarea": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "city", - "subarea", - "geolabel", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "races": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rashidSchedule": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "day": { - "type": "string" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - } - }, - "required": [ - "day", - "city", - "location", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "sells": { - "description": "Items the player can buy from this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "subarea": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "npc", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "gender", - "city", - "subarea", - "location", - "position", - "status", - "jobs", - "races", - "destinations", - "positions", - "buys", - "sells", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dangers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "legend": { - "type": [ - "string", - "null" - ] - }, - "levelRecommended": { - "type": [ - "number", - "null" - ] - }, - "levelRequired": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "questLog": { - "type": [ - "boolean", - "null" - ] - }, - "rewards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "quest", - "type": "string" - } - }, - "required": [ - "type", - "title", - "location", - "levelRequired", - "levelRecommended", - "isPremium", - "questLog", - "legend", - "status", - "dangers", - "rewards", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "areaShape": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "affectedTiles": { - "type": "number" - }, - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "corroborated": { - "type": "boolean" - }, - "derivedFrom": { - "const": "animation", - "type": "string" - }, - "height": { - "type": "number" - }, - "sourceImage": { - "type": "string" - }, - "sourceUrl": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "width", - "height", - "cells", - "ascii", - "affectedTiles", - "derivedFrom", - "sourceImage", - "sourceUrl", - "corroborated" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Tiles a spell covers, read from its wiki animation." - }, - "basePower": { - "type": [ - "number", - "null" - ] - }, - "cooldown": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "group": { - "type": [ - "string", - "null" - ] - }, - "groupCooldown": { - "description": "Seconds before another spell of the same group can be cast.", - "type": [ - "number", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isPassive": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isPromotion": { - "type": [ - "boolean", - "null" - ] - }, - "isWheelSpell": { - "type": [ - "boolean", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "mana": { - "type": [ - "number", - "null" - ] - }, - "runeGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroupCooldown": { - "description": "Seconds before another spell of its secondary group can be cast.", - "type": [ - "number", - "null" - ] - }, - "soul": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spellType": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "spell", - "type": "string" - }, - "vocations": { - "items": { - "enum": [ - "knight", - "sorcerer", - "druid", - "paladin", - "monk" - ], - "type": "string" - }, - "type": "array" - }, - "words": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "areaShape", - "image", - "title", - "words", - "spellType", - "element", - "mana", - "level", - "soul", - "isPremium", - "cooldown", - "effect", - "vocations", - "isPromotion", - "isWheelSpell", - "isPassive", - "basePower", - "group", - "secondaryGroup", - "runeGroup", - "groupCooldown", - "secondaryGroupCooldown", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievementId": { - "type": [ - "number", - "null" - ] - }, - "description": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "grade": { - "type": [ - "number", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isSecret": { - "type": [ - "boolean", - "null" - ] - }, - "points": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spoiler": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "achievement", - "type": "string" - } - }, - "required": [ - "type", - "title", - "grade", - "points", - "description", - "spoiler", - "isSecret", - "isPremium", - "achievementId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "beds": { - "type": [ - "number", - "null" - ] - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "floors": { - "type": [ - "number", - "null" - ] - }, - "houseId": { - "type": [ - "number", - "null" - ] - }, - "isGuildhall": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "rooms": { - "type": [ - "number", - "null" - ] - }, - "size": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "street": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "house", - "type": "string" - } - }, - "required": [ - "type", - "title", - "houseId", - "city", - "street", - "location", - "beds", - "rent", - "size", - "rooms", - "floors", - "position", - "isGuildhall", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "imbuementType": { - "type": [ - "string", - "null" - ] - }, - "materials": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - } - }, - "required": [ - "item", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "slots": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tier": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "imbuement", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "tier", - "category", - "imbuementType", - "effect", - "slots", - "status", - "materials", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "charmType": { - "type": [ - "string", - "null" - ] - }, - "costs": { - "items": { - "type": [ - "number", - "null" - ] - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "charm", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "charmType", - "effect", - "costs", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBuyable": { - "type": [ - "boolean", - "null" - ] - }, - "lightColor": { - "type": [ - "number", - "null" - ] - }, - "lightRadius": { - "type": [ - "number", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - }, - "priceCurrency": { - "description": "Currency of price as the wiki names it, e.g. Tibia Coins or Event Points. null when there is no price.", - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tamingMethod": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "mount", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "speed", - "tamingMethod", - "isBuyable", - "price", - "priceCurrency", - "achievement", - "lightColor", - "lightRadius", - "clientId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "femaleClientId": { - "type": [ - "number", - "null" - ] - }, - "fullPrice": { - "type": [ - "number", - "null" - ] - }, - "isBought": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isTournament": { - "type": [ - "boolean", - "null" - ] - }, - "maleClientId": { - "type": [ - "number", - "null" - ] - }, - "outfitType": { - "type": [ - "string", - "null" - ] - }, - "quests": { - "items": { - "additionalProperties": false, - "properties": { - "quest": { - "type": "string" - }, - "unlockType": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "quest", - "unlockType" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "outfit", - "type": "string" - } - }, - "required": [ - "type", - "title", - "outfitType", - "isPremium", - "isBought", - "isTournament", - "fullPrice", - "achievement", - "maleClientId", - "femaleClientId", - "status", - "quests", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "author": { - "type": [ - "string", - "null" - ] - }, - "blurb": { - "type": [ - "string", - "null" - ] - }, - "bookType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "itemId": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "nextBook": { - "type": [ - "string", - "null" - ] - }, - "prevBook": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "text": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "book", - "type": "string" - } - }, - "required": [ - "type", - "title", - "bookType", - "itemId", - "location", - "blurb", - "author", - "prevBook", - "nextBook", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "battleye": { - "type": [ - "boolean", - "null" - ] - }, - "battleyeType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isExperimental": { - "type": [ - "boolean", - "null" - ] - }, - "isPreview": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "mergedInto": { - "type": [ - "string", - "null" - ] - }, - "offlineSince": { - "type": [ - "string", - "null" - ] - }, - "onlineSince": { - "type": [ - "string", - "null" - ] - }, - "protectedSince": { - "type": [ - "string", - "null" - ] - }, - "pvpType": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "title": { - "type": "string" - }, - "tradeBoard": { - "type": [ - "number", - "null" - ] - }, - "type": { - "const": "world", - "type": "string" - }, - "worldBoard": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "title", - "location", - "pvpType", - "isPreview", - "isExperimental", - "onlineSince", - "offlineSince", - "mergedInto", - "battleye", - "battleyeType", - "protectedSince", - "worldBoard", - "tradeBoard", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "changes": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "newsId": { - "type": [ - "number", - "null" - ] - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "previous": { - "type": [ - "string", - "null" - ] - }, - "releaseDate": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "summary": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "update", - "type": "string" - }, - "typePrimary": { - "type": [ - "string", - "null" - ] - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "title", - "releaseDate", - "newsId", - "typePrimary", - "typeSecondary", - "previous", - "next", - "summary", - "changes", - "source" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "abilities": { + "items": { + "additionalProperties": false, + "properties": { + "area": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "effectOnCaster": { + "type": "boolean" + }, + "effectTiles": { + "type": "number" + }, + "height": { + "type": "number" + }, + "key": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "key", + "width", + "height", + "cells", + "ascii", + "effectTiles", + "effectOnCaster" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "effect", + "element", + "area" + ], + "type": "object" + }, + "type": "array" + }, + "armor": { + "type": [ + "number", + "null" + ] + }, + "article": { + "description": "Article the game prints before the name. Null: none, as for bosses.", + "type": [ + "string", + "null" + ] + }, + "bestiaryClass": { + "type": [ + "string", + "null" + ] + }, + "bestiaryLevel": { + "type": [ + "string", + "null" + ] + }, + "convinceCost": { + "description": "Mana. 0: cannot be convinced.", + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "experience": { + "type": [ + "number", + "null" + ] + }, + "goldPerKill": { + "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", + "type": [ + "number", + "null" + ] + }, + "hitpoints": { + "type": [ + "number", + "null" + ] + }, + "illusionable": { + "type": [ + "boolean", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBoss": { + "type": "boolean" + }, + "loot": { + "items": { + "additionalProperties": false, + "properties": { + "chance": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + }, + "max": { + "type": [ + "number", + "null" + ] + }, + "min": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "item", + "chance", + "min", + "max" + ], + "type": "object" + }, + "type": "array" + }, + "maxDamage": { + "anyOf": [ + { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "modifiers": { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "name": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "paralysable": { + "type": [ + "boolean", + "null" + ] + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "pushObjects": { + "type": [ + "boolean", + "null" + ] + }, + "pushable": { + "type": [ + "boolean", + "null" + ] + }, + "raceId": { + "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.", + "type": [ + "number", + "null" + ] + }, + "runsAt": { + "description": "Hit points at which it flees. 0: never flees.", + "type": [ + "number", + "null" + ] + }, + "seesInvisible": { + "type": [ + "boolean", + "null" + ] + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "summonCost": { + "description": "Mana. 0: cannot be summoned.", + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "creature", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "name", + "plural", + "article", + "hitpoints", + "experience", + "armor", + "speed", + "bestiaryClass", + "bestiaryLevel", + "isBoss", + "status", + "runsAt", + "seesInvisible", + "paralysable", + "pushable", + "pushObjects", + "illusionable", + "summonCost", + "convinceCost", + "goldPerKill", + "raceId", + "modifiers", + "loot", + "abilities", + "maxDamage", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actualName": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "attributes": { + "additionalProperties": { + "type": [ + "string", + "number" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "boughtBy": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "type": [ + "string", + "null" + ] + }, + "currency": { + "type": "string" + }, + "npc": { + "type": "string" + }, + "position": { + "additionalProperties": false, + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "price": { + "type": "number" + } + }, + "required": [ + "npc", + "price", + "currency", + "city", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isImmobile": { + "type": [ + "boolean", + "null" + ] + }, + "isMarketable": { + "type": [ + "boolean", + "null" + ] + }, + "isPickupable": { + "type": [ + "boolean", + "null" + ] + }, + "isStackable": { + "type": [ + "boolean", + "null" + ] + }, + "itemClass": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "type": [ + "string", + "null" + ] + }, + "keys": { + "items": { + "additionalProperties": false, + "properties": { + "location": { + "type": [ + "string", + "null" + ] + }, + "material": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "number": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "number", + "name", + "material", + "location", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "proficiencyPerks": { + "items": { + "additionalProperties": false, + "properties": { + "effect": { + "type": [ + "string", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "skill": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "level", + "effect", + "skill" + ], + "type": "object" + }, + "type": "array" + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "storeOffers": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "currency": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "price", + "amount", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "const": "item", + "type": "string" + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + }, + "valueBuy": { + "type": [ + "number", + "null" + ] + }, + "valueBuyCurrency": { + "description": "Currency of the price beside it, as the wiki names it, e.g. Gold Coin, Tibia Coins or Event Points. null when there is no price.", + "type": [ + "string", + "null" + ] + }, + "valueSell": { + "type": [ + "number", + "null" + ] + }, + "weight": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "image", + "title", + "actualName", + "plural", + "itemClass", + "itemType", + "typeSecondary", + "weight", + "valueBuy", + "valueBuyCurrency", + "valueSell", + "isMarketable", + "isStackable", + "isPickupable", + "isImmobile", + "clientId", + "status", + "attributes", + "keys", + "storeOffers", + "proficiencyPerks", + "boughtBy", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "buys": { + "description": "Items the player can sell to this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "destinations": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "origin": { + "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Route price in gold. 0: free or not recorded, see notes.", + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "name", + "price", + "origin", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "gender": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "jobs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "positions": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "geolabel": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "subarea": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "city", + "subarea", + "geolabel", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "races": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rashidSchedule": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "day": { + "type": "string" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + } + }, + "required": [ + "day", + "city", + "location", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "sells": { + "description": "Items the player can buy from this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "subarea": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "npc", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "gender", + "city", + "subarea", + "location", + "position", + "status", + "jobs", + "races", + "destinations", + "positions", + "buys", + "sells", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "dangers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "legend": { + "type": [ + "string", + "null" + ] + }, + "levelRecommended": { + "type": [ + "number", + "null" + ] + }, + "levelRequired": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "questLog": { + "type": [ + "boolean", + "null" + ] + }, + "rewards": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "quest", + "type": "string" + } + }, + "required": [ + "type", + "title", + "location", + "levelRequired", + "levelRecommended", + "isPremium", + "questLog", + "legend", + "status", + "dangers", + "rewards", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "areaShape": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "affectedTiles": { + "type": "number" + }, + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "corroborated": { + "type": "boolean" + }, + "derivedFrom": { + "const": "animation", + "type": "string" + }, + "height": { + "type": "number" + }, + "sourceImage": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "width", + "height", + "cells", + "ascii", + "affectedTiles", + "derivedFrom", + "sourceImage", + "sourceUrl", + "corroborated" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Tiles a spell covers, read from its wiki animation." + }, + "basePower": { + "type": [ + "number", + "null" + ] + }, + "cooldown": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "group": { + "type": [ + "string", + "null" + ] + }, + "groupCooldown": { + "description": "Seconds before another spell of the same group can be cast.", + "type": [ + "number", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isPassive": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isPromotion": { + "type": [ + "boolean", + "null" + ] + }, + "isWheelSpell": { + "type": [ + "boolean", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "mana": { + "type": [ + "number", + "null" + ] + }, + "runeGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroupCooldown": { + "description": "Seconds before another spell of its secondary group can be cast.", + "type": [ + "number", + "null" + ] + }, + "soul": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spellType": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "spell", + "type": "string" + }, + "vocations": { + "items": { + "enum": [ + "knight", + "sorcerer", + "druid", + "paladin", + "monk" + ], + "type": "string" + }, + "type": "array" + }, + "words": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "areaShape", + "image", + "title", + "words", + "spellType", + "element", + "mana", + "level", + "soul", + "isPremium", + "cooldown", + "effect", + "vocations", + "isPromotion", + "isWheelSpell", + "isPassive", + "basePower", + "group", + "secondaryGroup", + "runeGroup", + "groupCooldown", + "secondaryGroupCooldown", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievementId": { + "type": [ + "number", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "grade": { + "type": [ + "number", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isSecret": { + "type": [ + "boolean", + "null" + ] + }, + "points": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spoiler": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "achievement", + "type": "string" + } + }, + "required": [ + "type", + "title", + "grade", + "points", + "description", + "spoiler", + "isSecret", + "isPremium", + "achievementId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "beds": { + "type": [ + "number", + "null" + ] + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "floors": { + "type": [ + "number", + "null" + ] + }, + "houseId": { + "type": [ + "number", + "null" + ] + }, + "isGuildhall": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "rooms": { + "type": [ + "number", + "null" + ] + }, + "size": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "street": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "house", + "type": "string" + } + }, + "required": [ + "type", + "title", + "houseId", + "city", + "street", + "location", + "beds", + "rent", + "size", + "rooms", + "floors", + "position", + "isGuildhall", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "imbuementType": { + "type": [ + "string", + "null" + ] + }, + "materials": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + } + }, + "required": [ + "item", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "slots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tier": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "imbuement", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "tier", + "category", + "imbuementType", + "effect", + "slots", + "status", + "materials", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "charmType": { + "type": [ + "string", + "null" + ] + }, + "costs": { + "items": { + "type": [ + "number", + "null" + ] + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "charm", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "charmType", + "effect", + "costs", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBuyable": { + "type": [ + "boolean", + "null" + ] + }, + "lightColor": { + "type": [ + "number", + "null" + ] + }, + "lightRadius": { + "type": [ + "number", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "priceCurrency": { + "description": "Currency of the price beside it, as the wiki names it, e.g. Gold Coin, Tibia Coins or Event Points. null when there is no price.", + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tamingMethod": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "mount", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "speed", + "tamingMethod", + "isBuyable", + "price", + "priceCurrency", + "achievement", + "lightColor", + "lightRadius", + "clientId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "femaleClientId": { + "type": [ + "number", + "null" + ] + }, + "fullPrice": { + "type": [ + "number", + "null" + ] + }, + "isBought": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isTournament": { + "type": [ + "boolean", + "null" + ] + }, + "maleClientId": { + "type": [ + "number", + "null" + ] + }, + "outfitType": { + "type": [ + "string", + "null" + ] + }, + "quests": { + "items": { + "additionalProperties": false, + "properties": { + "quest": { + "type": "string" + }, + "unlockType": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "quest", + "unlockType" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "outfit", + "type": "string" + } + }, + "required": [ + "type", + "title", + "outfitType", + "isPremium", + "isBought", + "isTournament", + "fullPrice", + "achievement", + "maleClientId", + "femaleClientId", + "status", + "quests", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "author": { + "type": [ + "string", + "null" + ] + }, + "blurb": { + "type": [ + "string", + "null" + ] + }, + "bookType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "itemId": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "nextBook": { + "type": [ + "string", + "null" + ] + }, + "prevBook": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "text": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "book", + "type": "string" + } + }, + "required": [ + "type", + "title", + "bookType", + "itemId", + "location", + "blurb", + "author", + "prevBook", + "nextBook", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "battleye": { + "type": [ + "boolean", + "null" + ] + }, + "battleyeType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isExperimental": { + "type": [ + "boolean", + "null" + ] + }, + "isPreview": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "mergedInto": { + "type": [ + "string", + "null" + ] + }, + "offlineSince": { + "type": [ + "string", + "null" + ] + }, + "onlineSince": { + "type": [ + "string", + "null" + ] + }, + "protectedSince": { + "type": [ + "string", + "null" + ] + }, + "pvpType": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "title": { + "type": "string" + }, + "tradeBoard": { + "type": [ + "number", + "null" + ] + }, + "type": { + "const": "world", + "type": "string" + }, + "worldBoard": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "title", + "location", + "pvpType", + "isPreview", + "isExperimental", + "onlineSince", + "offlineSince", + "mergedInto", + "battleye", + "battleyeType", + "protectedSince", + "worldBoard", + "tradeBoard", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "changes": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "newsId": { + "type": [ + "number", + "null" + ] + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "previous": { + "type": [ + "string", + "null" + ] + }, + "releaseDate": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "update", + "type": "string" + }, + "typePrimary": { + "type": [ + "string", + "null" + ] + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "title", + "releaseDate", + "newsId", + "typePrimary", + "typeSecondary", + "previous", + "next", + "summary", + "changes", + "source" + ], + "type": "object" + } +]
1 tool update
- Changed
tibia_get1 field changed- changed
Output schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "abilities": { - "items": { - "additionalProperties": false, - "properties": { - "area": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "effectOnCaster": { - "type": "boolean" - }, - "effectTiles": { - "type": "number" - }, - "height": { - "type": "number" - }, - "key": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "key", - "width", - "height", - "cells", - "ascii", - "effectTiles", - "effectOnCaster" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "effect", - "element", - "area" - ], - "type": "object" - }, - "type": "array" - }, - "armor": { - "type": [ - "number", - "null" - ] - }, - "article": { - "description": "Article the game prints before the name. Null: none, as for bosses.", - "type": [ - "string", - "null" - ] - }, - "bestiaryClass": { - "type": [ - "string", - "null" - ] - }, - "bestiaryLevel": { - "type": [ - "string", - "null" - ] - }, - "convinceCost": { - "description": "Mana. 0: cannot be convinced.", - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "experience": { - "type": [ - "number", - "null" - ] - }, - "goldPerKill": { - "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", - "type": [ - "number", - "null" - ] - }, - "hitpoints": { - "type": [ - "number", - "null" - ] - }, - "illusionable": { - "type": [ - "boolean", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBoss": { - "type": "boolean" - }, - "loot": { - "items": { - "additionalProperties": false, - "properties": { - "chance": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - }, - "max": { - "type": [ - "number", - "null" - ] - }, - "min": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "item", - "chance", - "min", - "max" - ], - "type": "object" - }, - "type": "array" - }, - "maxDamage": { - "anyOf": [ - { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "modifiers": { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "name": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "paralysable": { - "type": [ - "boolean", - "null" - ] - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "pushObjects": { - "type": [ - "boolean", - "null" - ] - }, - "pushable": { - "type": [ - "boolean", - "null" - ] - }, - "raceId": { - "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.", - "type": [ - "number", - "null" - ] - }, - "runsAt": { - "description": "Hit points at which it flees. 0: never flees.", - "type": [ - "number", - "null" - ] - }, - "seesInvisible": { - "type": [ - "boolean", - "null" - ] - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "summonCost": { - "description": "Mana. 0: cannot be summoned.", - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "creature", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "name", - "plural", - "article", - "hitpoints", - "experience", - "armor", - "speed", - "bestiaryClass", - "bestiaryLevel", - "isBoss", - "status", - "runsAt", - "seesInvisible", - "paralysable", - "pushable", - "pushObjects", - "illusionable", - "summonCost", - "convinceCost", - "goldPerKill", - "raceId", - "modifiers", - "loot", - "abilities", - "maxDamage", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "actualName": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "attributes": { - "additionalProperties": { - "type": [ - "string", - "number" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "boughtBy": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "type": [ - "string", - "null" - ] - }, - "currency": { - "type": "string" - }, - "npc": { - "type": "string" - }, - "position": { - "additionalProperties": false, - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "price": { - "type": "number" - } - }, - "required": [ - "npc", - "price", - "currency", - "city", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isImmobile": { - "type": [ - "boolean", - "null" - ] - }, - "isMarketable": { - "type": [ - "boolean", - "null" - ] - }, - "isPickupable": { - "type": [ - "boolean", - "null" - ] - }, - "isStackable": { - "type": [ - "boolean", - "null" - ] - }, - "itemClass": { - "type": [ - "string", - "null" - ] - }, - "itemType": { - "type": [ - "string", - "null" - ] - }, - "keys": { - "items": { - "additionalProperties": false, - "properties": { - "location": { - "type": [ - "string", - "null" - ] - }, - "material": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "number": { - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - } - }, - "required": [ - "title", - "number", - "name", - "material", - "location", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "proficiencyPerks": { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": [ - "string", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "skill": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "level", - "effect", - "skill" - ], - "type": "object" - }, - "type": "array" - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "storeOffers": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "currency": { - "type": [ - "string", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "price", - "amount", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "const": "item", - "type": "string" - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - }, - "valueBuy": { - "type": [ - "number", - "null" - ] - }, - "valueSell": { - "type": [ - "number", - "null" - ] - }, - "weight": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "image", - "title", - "actualName", - "plural", - "itemClass", - "itemType", - "typeSecondary", - "weight", - "valueBuy", - "valueSell", - "isMarketable", - "isStackable", - "isPickupable", - "isImmobile", - "clientId", - "status", - "attributes", - "keys", - "storeOffers", - "proficiencyPerks", - "boughtBy", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "buys": { - "description": "Items the player can sell to this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "destinations": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "origin": { - "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", - "type": [ - "string", - "null" - ] - }, - "price": { - "description": "Route price in gold. 0: free or not recorded, see notes.", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "name", - "price", - "origin", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "gender": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "jobs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "positions": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "geolabel": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "subarea": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "city", - "subarea", - "geolabel", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "races": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rashidSchedule": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "day": { - "type": "string" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - } - }, - "required": [ - "day", - "city", - "location", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "sells": { - "description": "Items the player can buy from this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "subarea": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "npc", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "gender", - "city", - "subarea", - "location", - "position", - "status", - "jobs", - "races", - "destinations", - "positions", - "buys", - "sells", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dangers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "legend": { - "type": [ - "string", - "null" - ] - }, - "levelRecommended": { - "type": [ - "number", - "null" - ] - }, - "levelRequired": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "questLog": { - "type": [ - "boolean", - "null" - ] - }, - "rewards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "quest", - "type": "string" - } - }, - "required": [ - "type", - "title", - "location", - "levelRequired", - "levelRecommended", - "isPremium", - "questLog", - "legend", - "status", - "dangers", - "rewards", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "areaShape": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "affectedTiles": { - "type": "number" - }, - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "corroborated": { - "type": "boolean" - }, - "derivedFrom": { - "const": "animation", - "type": "string" - }, - "height": { - "type": "number" - }, - "sourceImage": { - "type": "string" - }, - "sourceUrl": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "width", - "height", - "cells", - "ascii", - "affectedTiles", - "derivedFrom", - "sourceImage", - "sourceUrl", - "corroborated" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Tiles a spell covers, read from its wiki animation." - }, - "basePower": { - "type": [ - "number", - "null" - ] - }, - "cooldown": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "group": { - "type": [ - "string", - "null" - ] - }, - "groupCooldown": { - "description": "Seconds before another spell of the same group can be cast.", - "type": [ - "number", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isPassive": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isPromotion": { - "type": [ - "boolean", - "null" - ] - }, - "isWheelSpell": { - "type": [ - "boolean", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "mana": { - "type": [ - "number", - "null" - ] - }, - "runeGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroupCooldown": { - "description": "Seconds before another spell of its secondary group can be cast.", - "type": [ - "number", - "null" - ] - }, - "soul": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spellType": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "spell", - "type": "string" - }, - "vocations": { - "items": { - "enum": [ - "knight", - "sorcerer", - "druid", - "paladin", - "monk" - ], - "type": "string" - }, - "type": "array" - }, - "words": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "areaShape", - "image", - "title", - "words", - "spellType", - "element", - "mana", - "level", - "soul", - "isPremium", - "cooldown", - "effect", - "vocations", - "isPromotion", - "isWheelSpell", - "isPassive", - "basePower", - "group", - "secondaryGroup", - "runeGroup", - "groupCooldown", - "secondaryGroupCooldown", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievementId": { - "type": [ - "number", - "null" - ] - }, - "description": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "grade": { - "type": [ - "number", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isSecret": { - "type": [ - "boolean", - "null" - ] - }, - "points": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spoiler": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "achievement", - "type": "string" - } - }, - "required": [ - "type", - "title", - "grade", - "points", - "description", - "spoiler", - "isSecret", - "isPremium", - "achievementId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "beds": { - "type": [ - "number", - "null" - ] - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "floors": { - "type": [ - "number", - "null" - ] - }, - "houseId": { - "type": [ - "number", - "null" - ] - }, - "isGuildhall": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "rooms": { - "type": [ - "number", - "null" - ] - }, - "size": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "street": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "house", - "type": "string" - } - }, - "required": [ - "type", - "title", - "houseId", - "city", - "street", - "location", - "beds", - "rent", - "size", - "rooms", - "floors", - "position", - "isGuildhall", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "imbuementType": { - "type": [ - "string", - "null" - ] - }, - "materials": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - } - }, - "required": [ - "item", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "slots": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tier": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "imbuement", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "tier", - "category", - "imbuementType", - "effect", - "slots", - "status", - "materials", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "charmType": { - "type": [ - "string", - "null" - ] - }, - "costs": { - "items": { - "type": [ - "number", - "null" - ] - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "charm", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "charmType", - "effect", - "costs", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBuyable": { - "type": [ - "boolean", - "null" - ] - }, - "lightColor": { - "type": [ - "number", - "null" - ] - }, - "lightRadius": { - "type": [ - "number", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tamingMethod": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "mount", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "speed", - "tamingMethod", - "isBuyable", - "price", - "achievement", - "lightColor", - "lightRadius", - "clientId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "femaleClientId": { - "type": [ - "number", - "null" - ] - }, - "fullPrice": { - "type": [ - "number", - "null" - ] - }, - "isBought": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isTournament": { - "type": [ - "boolean", - "null" - ] - }, - "maleClientId": { - "type": [ - "number", - "null" - ] - }, - "outfitType": { - "type": [ - "string", - "null" - ] - }, - "quests": { - "items": { - "additionalProperties": false, - "properties": { - "quest": { - "type": "string" - }, - "unlockType": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "quest", - "unlockType" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "outfit", - "type": "string" - } - }, - "required": [ - "type", - "title", - "outfitType", - "isPremium", - "isBought", - "isTournament", - "fullPrice", - "achievement", - "maleClientId", - "femaleClientId", - "status", - "quests", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "author": { - "type": [ - "string", - "null" - ] - }, - "blurb": { - "type": [ - "string", - "null" - ] - }, - "bookType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "itemId": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "nextBook": { - "type": [ - "string", - "null" - ] - }, - "prevBook": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "text": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "book", - "type": "string" - } - }, - "required": [ - "type", - "title", - "bookType", - "itemId", - "location", - "blurb", - "author", - "prevBook", - "nextBook", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "battleye": { - "type": [ - "boolean", - "null" - ] - }, - "battleyeType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isExperimental": { - "type": [ - "boolean", - "null" - ] - }, - "isPreview": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "mergedInto": { - "type": [ - "string", - "null" - ] - }, - "offlineSince": { - "type": [ - "string", - "null" - ] - }, - "onlineSince": { - "type": [ - "string", - "null" - ] - }, - "protectedSince": { - "type": [ - "string", - "null" - ] - }, - "pvpType": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "title": { - "type": "string" - }, - "tradeBoard": { - "type": [ - "number", - "null" - ] - }, - "type": { - "const": "world", - "type": "string" - }, - "worldBoard": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "title", - "location", - "pvpType", - "isPreview", - "isExperimental", - "onlineSince", - "offlineSince", - "mergedInto", - "battleye", - "battleyeType", - "protectedSince", - "worldBoard", - "tradeBoard", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "changes": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "newsId": { - "type": [ - "number", - "null" - ] - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "previous": { - "type": [ - "string", - "null" - ] - }, - "releaseDate": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "summary": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "update", - "type": "string" - }, - "typePrimary": { - "type": [ - "string", - "null" - ] - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "title", - "releaseDate", - "newsId", - "typePrimary", - "typeSecondary", - "previous", - "next", - "summary", - "changes", - "source" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "abilities": { + "items": { + "additionalProperties": false, + "properties": { + "area": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "effectOnCaster": { + "type": "boolean" + }, + "effectTiles": { + "type": "number" + }, + "height": { + "type": "number" + }, + "key": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "key", + "width", + "height", + "cells", + "ascii", + "effectTiles", + "effectOnCaster" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "effect", + "element", + "area" + ], + "type": "object" + }, + "type": "array" + }, + "armor": { + "type": [ + "number", + "null" + ] + }, + "article": { + "description": "Article the game prints before the name. Null: none, as for bosses.", + "type": [ + "string", + "null" + ] + }, + "bestiaryClass": { + "type": [ + "string", + "null" + ] + }, + "bestiaryLevel": { + "type": [ + "string", + "null" + ] + }, + "convinceCost": { + "description": "Mana. 0: cannot be convinced.", + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "experience": { + "type": [ + "number", + "null" + ] + }, + "goldPerKill": { + "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", + "type": [ + "number", + "null" + ] + }, + "hitpoints": { + "type": [ + "number", + "null" + ] + }, + "illusionable": { + "type": [ + "boolean", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBoss": { + "type": "boolean" + }, + "loot": { + "items": { + "additionalProperties": false, + "properties": { + "chance": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + }, + "max": { + "type": [ + "number", + "null" + ] + }, + "min": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "item", + "chance", + "min", + "max" + ], + "type": "object" + }, + "type": "array" + }, + "maxDamage": { + "anyOf": [ + { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "modifiers": { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "name": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "paralysable": { + "type": [ + "boolean", + "null" + ] + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "pushObjects": { + "type": [ + "boolean", + "null" + ] + }, + "pushable": { + "type": [ + "boolean", + "null" + ] + }, + "raceId": { + "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.", + "type": [ + "number", + "null" + ] + }, + "runsAt": { + "description": "Hit points at which it flees. 0: never flees.", + "type": [ + "number", + "null" + ] + }, + "seesInvisible": { + "type": [ + "boolean", + "null" + ] + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "summonCost": { + "description": "Mana. 0: cannot be summoned.", + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "creature", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "name", + "plural", + "article", + "hitpoints", + "experience", + "armor", + "speed", + "bestiaryClass", + "bestiaryLevel", + "isBoss", + "status", + "runsAt", + "seesInvisible", + "paralysable", + "pushable", + "pushObjects", + "illusionable", + "summonCost", + "convinceCost", + "goldPerKill", + "raceId", + "modifiers", + "loot", + "abilities", + "maxDamage", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actualName": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "attributes": { + "additionalProperties": { + "type": [ + "string", + "number" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "boughtBy": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "type": [ + "string", + "null" + ] + }, + "currency": { + "type": "string" + }, + "npc": { + "type": "string" + }, + "position": { + "additionalProperties": false, + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "price": { + "type": "number" + } + }, + "required": [ + "npc", + "price", + "currency", + "city", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isImmobile": { + "type": [ + "boolean", + "null" + ] + }, + "isMarketable": { + "type": [ + "boolean", + "null" + ] + }, + "isPickupable": { + "type": [ + "boolean", + "null" + ] + }, + "isStackable": { + "type": [ + "boolean", + "null" + ] + }, + "itemClass": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "type": [ + "string", + "null" + ] + }, + "keys": { + "items": { + "additionalProperties": false, + "properties": { + "location": { + "type": [ + "string", + "null" + ] + }, + "material": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "number": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "number", + "name", + "material", + "location", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "proficiencyPerks": { + "items": { + "additionalProperties": false, + "properties": { + "effect": { + "type": [ + "string", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "skill": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "level", + "effect", + "skill" + ], + "type": "object" + }, + "type": "array" + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "storeOffers": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "currency": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "price", + "amount", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "const": "item", + "type": "string" + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + }, + "valueBuy": { + "type": [ + "number", + "null" + ] + }, + "valueSell": { + "type": [ + "number", + "null" + ] + }, + "weight": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "image", + "title", + "actualName", + "plural", + "itemClass", + "itemType", + "typeSecondary", + "weight", + "valueBuy", + "valueSell", + "isMarketable", + "isStackable", + "isPickupable", + "isImmobile", + "clientId", + "status", + "attributes", + "keys", + "storeOffers", + "proficiencyPerks", + "boughtBy", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "buys": { + "description": "Items the player can sell to this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "destinations": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "origin": { + "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Route price in gold. 0: free or not recorded, see notes.", + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "name", + "price", + "origin", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "gender": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "jobs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "positions": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "geolabel": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "subarea": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "city", + "subarea", + "geolabel", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "races": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rashidSchedule": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "day": { + "type": "string" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + } + }, + "required": [ + "day", + "city", + "location", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "sells": { + "description": "Items the player can buy from this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "subarea": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "npc", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "gender", + "city", + "subarea", + "location", + "position", + "status", + "jobs", + "races", + "destinations", + "positions", + "buys", + "sells", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "dangers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "legend": { + "type": [ + "string", + "null" + ] + }, + "levelRecommended": { + "type": [ + "number", + "null" + ] + }, + "levelRequired": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "questLog": { + "type": [ + "boolean", + "null" + ] + }, + "rewards": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "quest", + "type": "string" + } + }, + "required": [ + "type", + "title", + "location", + "levelRequired", + "levelRecommended", + "isPremium", + "questLog", + "legend", + "status", + "dangers", + "rewards", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "areaShape": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "affectedTiles": { + "type": "number" + }, + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "corroborated": { + "type": "boolean" + }, + "derivedFrom": { + "const": "animation", + "type": "string" + }, + "height": { + "type": "number" + }, + "sourceImage": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "width", + "height", + "cells", + "ascii", + "affectedTiles", + "derivedFrom", + "sourceImage", + "sourceUrl", + "corroborated" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Tiles a spell covers, read from its wiki animation." + }, + "basePower": { + "type": [ + "number", + "null" + ] + }, + "cooldown": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "group": { + "type": [ + "string", + "null" + ] + }, + "groupCooldown": { + "description": "Seconds before another spell of the same group can be cast.", + "type": [ + "number", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isPassive": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isPromotion": { + "type": [ + "boolean", + "null" + ] + }, + "isWheelSpell": { + "type": [ + "boolean", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "mana": { + "type": [ + "number", + "null" + ] + }, + "runeGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroupCooldown": { + "description": "Seconds before another spell of its secondary group can be cast.", + "type": [ + "number", + "null" + ] + }, + "soul": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spellType": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "spell", + "type": "string" + }, + "vocations": { + "items": { + "enum": [ + "knight", + "sorcerer", + "druid", + "paladin", + "monk" + ], + "type": "string" + }, + "type": "array" + }, + "words": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "areaShape", + "image", + "title", + "words", + "spellType", + "element", + "mana", + "level", + "soul", + "isPremium", + "cooldown", + "effect", + "vocations", + "isPromotion", + "isWheelSpell", + "isPassive", + "basePower", + "group", + "secondaryGroup", + "runeGroup", + "groupCooldown", + "secondaryGroupCooldown", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievementId": { + "type": [ + "number", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "grade": { + "type": [ + "number", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isSecret": { + "type": [ + "boolean", + "null" + ] + }, + "points": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spoiler": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "achievement", + "type": "string" + } + }, + "required": [ + "type", + "title", + "grade", + "points", + "description", + "spoiler", + "isSecret", + "isPremium", + "achievementId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "beds": { + "type": [ + "number", + "null" + ] + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "floors": { + "type": [ + "number", + "null" + ] + }, + "houseId": { + "type": [ + "number", + "null" + ] + }, + "isGuildhall": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "rooms": { + "type": [ + "number", + "null" + ] + }, + "size": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "street": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "house", + "type": "string" + } + }, + "required": [ + "type", + "title", + "houseId", + "city", + "street", + "location", + "beds", + "rent", + "size", + "rooms", + "floors", + "position", + "isGuildhall", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "imbuementType": { + "type": [ + "string", + "null" + ] + }, + "materials": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + } + }, + "required": [ + "item", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "slots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tier": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "imbuement", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "tier", + "category", + "imbuementType", + "effect", + "slots", + "status", + "materials", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "charmType": { + "type": [ + "string", + "null" + ] + }, + "costs": { + "items": { + "type": [ + "number", + "null" + ] + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "charm", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "charmType", + "effect", + "costs", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBuyable": { + "type": [ + "boolean", + "null" + ] + }, + "lightColor": { + "type": [ + "number", + "null" + ] + }, + "lightRadius": { + "type": [ + "number", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "priceCurrency": { + "description": "Currency of price as the wiki names it, e.g. Tibia Coins or Event Points. null when there is no price.", + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tamingMethod": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "mount", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "speed", + "tamingMethod", + "isBuyable", + "price", + "priceCurrency", + "achievement", + "lightColor", + "lightRadius", + "clientId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "femaleClientId": { + "type": [ + "number", + "null" + ] + }, + "fullPrice": { + "type": [ + "number", + "null" + ] + }, + "isBought": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isTournament": { + "type": [ + "boolean", + "null" + ] + }, + "maleClientId": { + "type": [ + "number", + "null" + ] + }, + "outfitType": { + "type": [ + "string", + "null" + ] + }, + "quests": { + "items": { + "additionalProperties": false, + "properties": { + "quest": { + "type": "string" + }, + "unlockType": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "quest", + "unlockType" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "outfit", + "type": "string" + } + }, + "required": [ + "type", + "title", + "outfitType", + "isPremium", + "isBought", + "isTournament", + "fullPrice", + "achievement", + "maleClientId", + "femaleClientId", + "status", + "quests", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "author": { + "type": [ + "string", + "null" + ] + }, + "blurb": { + "type": [ + "string", + "null" + ] + }, + "bookType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "itemId": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "nextBook": { + "type": [ + "string", + "null" + ] + }, + "prevBook": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "text": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "book", + "type": "string" + } + }, + "required": [ + "type", + "title", + "bookType", + "itemId", + "location", + "blurb", + "author", + "prevBook", + "nextBook", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "battleye": { + "type": [ + "boolean", + "null" + ] + }, + "battleyeType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isExperimental": { + "type": [ + "boolean", + "null" + ] + }, + "isPreview": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "mergedInto": { + "type": [ + "string", + "null" + ] + }, + "offlineSince": { + "type": [ + "string", + "null" + ] + }, + "onlineSince": { + "type": [ + "string", + "null" + ] + }, + "protectedSince": { + "type": [ + "string", + "null" + ] + }, + "pvpType": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "title": { + "type": "string" + }, + "tradeBoard": { + "type": [ + "number", + "null" + ] + }, + "type": { + "const": "world", + "type": "string" + }, + "worldBoard": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "title", + "location", + "pvpType", + "isPreview", + "isExperimental", + "onlineSince", + "offlineSince", + "mergedInto", + "battleye", + "battleyeType", + "protectedSince", + "worldBoard", + "tradeBoard", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "changes": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "newsId": { + "type": [ + "number", + "null" + ] + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "previous": { + "type": [ + "string", + "null" + ] + }, + "releaseDate": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "update", + "type": "string" + }, + "typePrimary": { + "type": [ + "string", + "null" + ] + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "title", + "releaseDate", + "newsId", + "typePrimary", + "typeSecondary", + "previous", + "next", + "summary", + "changes", + "source" + ], + "type": "object" + } +]
2 tool updates
- Changed
tibia_find_creatures2 fields changed- added
Output schema / properties / results / items / properties / raceIdAdded value: +{ + "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "title", - "name", - "hitpoints", - "experience", - "bestiaryClass", - "isBoss", - "modifiers", - "runsAt", - "seesInvisible", - "paralysable", - "pushable", - "summonCost", - "convinceCost", - "goldPerKill" -]New value: +[ + "title", + "name", + "hitpoints", + "experience", + "bestiaryClass", + "isBoss", + "modifiers", + "runsAt", + "seesInvisible", + "paralysable", + "pushable", + "summonCost", + "convinceCost", + "goldPerKill", + "raceId" +]
- Changed
tibia_get1 field changed- changed
Output schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "abilities": { - "items": { - "additionalProperties": false, - "properties": { - "area": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "effectOnCaster": { - "type": "boolean" - }, - "effectTiles": { - "type": "number" - }, - "height": { - "type": "number" - }, - "key": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "key", - "width", - "height", - "cells", - "ascii", - "effectTiles", - "effectOnCaster" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "effect", - "element", - "area" - ], - "type": "object" - }, - "type": "array" - }, - "armor": { - "type": [ - "number", - "null" - ] - }, - "article": { - "description": "Article the game prints before the name. Null: none, as for bosses.", - "type": [ - "string", - "null" - ] - }, - "bestiaryClass": { - "type": [ - "string", - "null" - ] - }, - "bestiaryLevel": { - "type": [ - "string", - "null" - ] - }, - "convinceCost": { - "description": "Mana. 0: cannot be convinced.", - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "experience": { - "type": [ - "number", - "null" - ] - }, - "goldPerKill": { - "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", - "type": [ - "number", - "null" - ] - }, - "hitpoints": { - "type": [ - "number", - "null" - ] - }, - "illusionable": { - "type": [ - "boolean", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBoss": { - "type": "boolean" - }, - "loot": { - "items": { - "additionalProperties": false, - "properties": { - "chance": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - }, - "max": { - "type": [ - "number", - "null" - ] - }, - "min": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "item", - "chance", - "min", - "max" - ], - "type": "object" - }, - "type": "array" - }, - "maxDamage": { - "anyOf": [ - { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "modifiers": { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "name": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "paralysable": { - "type": [ - "boolean", - "null" - ] - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "pushObjects": { - "type": [ - "boolean", - "null" - ] - }, - "pushable": { - "type": [ - "boolean", - "null" - ] - }, - "runsAt": { - "description": "Hit points at which it flees. 0: never flees.", - "type": [ - "number", - "null" - ] - }, - "seesInvisible": { - "type": [ - "boolean", - "null" - ] - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "summonCost": { - "description": "Mana. 0: cannot be summoned.", - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "creature", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "name", - "plural", - "article", - "hitpoints", - "experience", - "armor", - "speed", - "bestiaryClass", - "bestiaryLevel", - "isBoss", - "status", - "runsAt", - "seesInvisible", - "paralysable", - "pushable", - "pushObjects", - "illusionable", - "summonCost", - "convinceCost", - "goldPerKill", - "modifiers", - "loot", - "abilities", - "maxDamage", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "actualName": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "attributes": { - "additionalProperties": { - "type": [ - "string", - "number" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "boughtBy": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "type": [ - "string", - "null" - ] - }, - "currency": { - "type": "string" - }, - "npc": { - "type": "string" - }, - "position": { - "additionalProperties": false, - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "price": { - "type": "number" - } - }, - "required": [ - "npc", - "price", - "currency", - "city", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isImmobile": { - "type": [ - "boolean", - "null" - ] - }, - "isMarketable": { - "type": [ - "boolean", - "null" - ] - }, - "isPickupable": { - "type": [ - "boolean", - "null" - ] - }, - "isStackable": { - "type": [ - "boolean", - "null" - ] - }, - "itemClass": { - "type": [ - "string", - "null" - ] - }, - "itemType": { - "type": [ - "string", - "null" - ] - }, - "keys": { - "items": { - "additionalProperties": false, - "properties": { - "location": { - "type": [ - "string", - "null" - ] - }, - "material": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "number": { - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - } - }, - "required": [ - "title", - "number", - "name", - "material", - "location", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "proficiencyPerks": { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": [ - "string", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "skill": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "level", - "effect", - "skill" - ], - "type": "object" - }, - "type": "array" - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "storeOffers": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "currency": { - "type": [ - "string", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "price", - "amount", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "const": "item", - "type": "string" - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - }, - "valueBuy": { - "type": [ - "number", - "null" - ] - }, - "valueSell": { - "type": [ - "number", - "null" - ] - }, - "weight": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "image", - "title", - "actualName", - "plural", - "itemClass", - "itemType", - "typeSecondary", - "weight", - "valueBuy", - "valueSell", - "isMarketable", - "isStackable", - "isPickupable", - "isImmobile", - "clientId", - "status", - "attributes", - "keys", - "storeOffers", - "proficiencyPerks", - "boughtBy", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "buys": { - "description": "Items the player can sell to this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "destinations": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "origin": { - "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", - "type": [ - "string", - "null" - ] - }, - "price": { - "description": "Route price in gold. 0: free or not recorded, see notes.", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "name", - "price", - "origin", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "gender": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "jobs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "positions": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "geolabel": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "subarea": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "city", - "subarea", - "geolabel", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "races": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rashidSchedule": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "day": { - "type": "string" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - } - }, - "required": [ - "day", - "city", - "location", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "sells": { - "description": "Items the player can buy from this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "subarea": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "npc", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "gender", - "city", - "subarea", - "location", - "position", - "status", - "jobs", - "races", - "destinations", - "positions", - "buys", - "sells", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dangers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "legend": { - "type": [ - "string", - "null" - ] - }, - "levelRecommended": { - "type": [ - "number", - "null" - ] - }, - "levelRequired": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "questLog": { - "type": [ - "boolean", - "null" - ] - }, - "rewards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "quest", - "type": "string" - } - }, - "required": [ - "type", - "title", - "location", - "levelRequired", - "levelRecommended", - "isPremium", - "questLog", - "legend", - "status", - "dangers", - "rewards", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "areaShape": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "affectedTiles": { - "type": "number" - }, - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "corroborated": { - "type": "boolean" - }, - "derivedFrom": { - "const": "animation", - "type": "string" - }, - "height": { - "type": "number" - }, - "sourceImage": { - "type": "string" - }, - "sourceUrl": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "width", - "height", - "cells", - "ascii", - "affectedTiles", - "derivedFrom", - "sourceImage", - "sourceUrl", - "corroborated" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Tiles a spell covers, read from its wiki animation." - }, - "basePower": { - "type": [ - "number", - "null" - ] - }, - "cooldown": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "group": { - "type": [ - "string", - "null" - ] - }, - "groupCooldown": { - "description": "Seconds before another spell of the same group can be cast.", - "type": [ - "number", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isPassive": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isPromotion": { - "type": [ - "boolean", - "null" - ] - }, - "isWheelSpell": { - "type": [ - "boolean", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "mana": { - "type": [ - "number", - "null" - ] - }, - "runeGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroupCooldown": { - "description": "Seconds before another spell of its secondary group can be cast.", - "type": [ - "number", - "null" - ] - }, - "soul": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spellType": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "spell", - "type": "string" - }, - "vocations": { - "items": { - "enum": [ - "knight", - "sorcerer", - "druid", - "paladin", - "monk" - ], - "type": "string" - }, - "type": "array" - }, - "words": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "areaShape", - "image", - "title", - "words", - "spellType", - "element", - "mana", - "level", - "soul", - "isPremium", - "cooldown", - "effect", - "vocations", - "isPromotion", - "isWheelSpell", - "isPassive", - "basePower", - "group", - "secondaryGroup", - "runeGroup", - "groupCooldown", - "secondaryGroupCooldown", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievementId": { - "type": [ - "number", - "null" - ] - }, - "description": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "grade": { - "type": [ - "number", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isSecret": { - "type": [ - "boolean", - "null" - ] - }, - "points": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spoiler": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "achievement", - "type": "string" - } - }, - "required": [ - "type", - "title", - "grade", - "points", - "description", - "spoiler", - "isSecret", - "isPremium", - "achievementId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "beds": { - "type": [ - "number", - "null" - ] - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "floors": { - "type": [ - "number", - "null" - ] - }, - "houseId": { - "type": [ - "number", - "null" - ] - }, - "isGuildhall": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "rooms": { - "type": [ - "number", - "null" - ] - }, - "size": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "street": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "house", - "type": "string" - } - }, - "required": [ - "type", - "title", - "houseId", - "city", - "street", - "location", - "beds", - "rent", - "size", - "rooms", - "floors", - "position", - "isGuildhall", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "imbuementType": { - "type": [ - "string", - "null" - ] - }, - "materials": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - } - }, - "required": [ - "item", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "slots": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tier": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "imbuement", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "tier", - "category", - "imbuementType", - "effect", - "slots", - "status", - "materials", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "charmType": { - "type": [ - "string", - "null" - ] - }, - "costs": { - "items": { - "type": [ - "number", - "null" - ] - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "charm", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "charmType", - "effect", - "costs", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBuyable": { - "type": [ - "boolean", - "null" - ] - }, - "lightColor": { - "type": [ - "number", - "null" - ] - }, - "lightRadius": { - "type": [ - "number", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tamingMethod": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "mount", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "speed", - "tamingMethod", - "isBuyable", - "price", - "achievement", - "lightColor", - "lightRadius", - "clientId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "femaleClientId": { - "type": [ - "number", - "null" - ] - }, - "fullPrice": { - "type": [ - "number", - "null" - ] - }, - "isBought": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isTournament": { - "type": [ - "boolean", - "null" - ] - }, - "maleClientId": { - "type": [ - "number", - "null" - ] - }, - "outfitType": { - "type": [ - "string", - "null" - ] - }, - "quests": { - "items": { - "additionalProperties": false, - "properties": { - "quest": { - "type": "string" - }, - "unlockType": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "quest", - "unlockType" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "outfit", - "type": "string" - } - }, - "required": [ - "type", - "title", - "outfitType", - "isPremium", - "isBought", - "isTournament", - "fullPrice", - "achievement", - "maleClientId", - "femaleClientId", - "status", - "quests", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "author": { - "type": [ - "string", - "null" - ] - }, - "blurb": { - "type": [ - "string", - "null" - ] - }, - "bookType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "itemId": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "nextBook": { - "type": [ - "string", - "null" - ] - }, - "prevBook": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "text": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "book", - "type": "string" - } - }, - "required": [ - "type", - "title", - "bookType", - "itemId", - "location", - "blurb", - "author", - "prevBook", - "nextBook", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "battleye": { - "type": [ - "boolean", - "null" - ] - }, - "battleyeType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isExperimental": { - "type": [ - "boolean", - "null" - ] - }, - "isPreview": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "mergedInto": { - "type": [ - "string", - "null" - ] - }, - "offlineSince": { - "type": [ - "string", - "null" - ] - }, - "onlineSince": { - "type": [ - "string", - "null" - ] - }, - "protectedSince": { - "type": [ - "string", - "null" - ] - }, - "pvpType": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "title": { - "type": "string" - }, - "tradeBoard": { - "type": [ - "number", - "null" - ] - }, - "type": { - "const": "world", - "type": "string" - }, - "worldBoard": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "title", - "location", - "pvpType", - "isPreview", - "isExperimental", - "onlineSince", - "offlineSince", - "mergedInto", - "battleye", - "battleyeType", - "protectedSince", - "worldBoard", - "tradeBoard", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "changes": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "newsId": { - "type": [ - "number", - "null" - ] - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "previous": { - "type": [ - "string", - "null" - ] - }, - "releaseDate": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "summary": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "update", - "type": "string" - }, - "typePrimary": { - "type": [ - "string", - "null" - ] - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "title", - "releaseDate", - "newsId", - "typePrimary", - "typeSecondary", - "previous", - "next", - "summary", - "changes", - "source" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "abilities": { + "items": { + "additionalProperties": false, + "properties": { + "area": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "effectOnCaster": { + "type": "boolean" + }, + "effectTiles": { + "type": "number" + }, + "height": { + "type": "number" + }, + "key": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "key", + "width", + "height", + "cells", + "ascii", + "effectTiles", + "effectOnCaster" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "effect", + "element", + "area" + ], + "type": "object" + }, + "type": "array" + }, + "armor": { + "type": [ + "number", + "null" + ] + }, + "article": { + "description": "Article the game prints before the name. Null: none, as for bosses.", + "type": [ + "string", + "null" + ] + }, + "bestiaryClass": { + "type": [ + "string", + "null" + ] + }, + "bestiaryLevel": { + "type": [ + "string", + "null" + ] + }, + "convinceCost": { + "description": "Mana. 0: cannot be convinced.", + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "experience": { + "type": [ + "number", + "null" + ] + }, + "goldPerKill": { + "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", + "type": [ + "number", + "null" + ] + }, + "hitpoints": { + "type": [ + "number", + "null" + ] + }, + "illusionable": { + "type": [ + "boolean", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBoss": { + "type": "boolean" + }, + "loot": { + "items": { + "additionalProperties": false, + "properties": { + "chance": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + }, + "max": { + "type": [ + "number", + "null" + ] + }, + "min": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "item", + "chance", + "min", + "max" + ], + "type": "object" + }, + "type": "array" + }, + "maxDamage": { + "anyOf": [ + { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "modifiers": { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "name": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "paralysable": { + "type": [ + "boolean", + "null" + ] + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "pushObjects": { + "type": [ + "boolean", + "null" + ] + }, + "pushable": { + "type": [ + "boolean", + "null" + ] + }, + "raceId": { + "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.", + "type": [ + "number", + "null" + ] + }, + "runsAt": { + "description": "Hit points at which it flees. 0: never flees.", + "type": [ + "number", + "null" + ] + }, + "seesInvisible": { + "type": [ + "boolean", + "null" + ] + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "summonCost": { + "description": "Mana. 0: cannot be summoned.", + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "creature", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "name", + "plural", + "article", + "hitpoints", + "experience", + "armor", + "speed", + "bestiaryClass", + "bestiaryLevel", + "isBoss", + "status", + "runsAt", + "seesInvisible", + "paralysable", + "pushable", + "pushObjects", + "illusionable", + "summonCost", + "convinceCost", + "goldPerKill", + "raceId", + "modifiers", + "loot", + "abilities", + "maxDamage", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actualName": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "attributes": { + "additionalProperties": { + "type": [ + "string", + "number" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "boughtBy": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "type": [ + "string", + "null" + ] + }, + "currency": { + "type": "string" + }, + "npc": { + "type": "string" + }, + "position": { + "additionalProperties": false, + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "price": { + "type": "number" + } + }, + "required": [ + "npc", + "price", + "currency", + "city", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isImmobile": { + "type": [ + "boolean", + "null" + ] + }, + "isMarketable": { + "type": [ + "boolean", + "null" + ] + }, + "isPickupable": { + "type": [ + "boolean", + "null" + ] + }, + "isStackable": { + "type": [ + "boolean", + "null" + ] + }, + "itemClass": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "type": [ + "string", + "null" + ] + }, + "keys": { + "items": { + "additionalProperties": false, + "properties": { + "location": { + "type": [ + "string", + "null" + ] + }, + "material": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "number": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "number", + "name", + "material", + "location", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "proficiencyPerks": { + "items": { + "additionalProperties": false, + "properties": { + "effect": { + "type": [ + "string", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "skill": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "level", + "effect", + "skill" + ], + "type": "object" + }, + "type": "array" + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "storeOffers": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "currency": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "price", + "amount", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "const": "item", + "type": "string" + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + }, + "valueBuy": { + "type": [ + "number", + "null" + ] + }, + "valueSell": { + "type": [ + "number", + "null" + ] + }, + "weight": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "image", + "title", + "actualName", + "plural", + "itemClass", + "itemType", + "typeSecondary", + "weight", + "valueBuy", + "valueSell", + "isMarketable", + "isStackable", + "isPickupable", + "isImmobile", + "clientId", + "status", + "attributes", + "keys", + "storeOffers", + "proficiencyPerks", + "boughtBy", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "buys": { + "description": "Items the player can sell to this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "destinations": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "origin": { + "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Route price in gold. 0: free or not recorded, see notes.", + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "name", + "price", + "origin", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "gender": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "jobs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "positions": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "geolabel": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "subarea": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "city", + "subarea", + "geolabel", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "races": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rashidSchedule": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "day": { + "type": "string" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + } + }, + "required": [ + "day", + "city", + "location", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "sells": { + "description": "Items the player can buy from this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "subarea": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "npc", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "gender", + "city", + "subarea", + "location", + "position", + "status", + "jobs", + "races", + "destinations", + "positions", + "buys", + "sells", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "dangers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "legend": { + "type": [ + "string", + "null" + ] + }, + "levelRecommended": { + "type": [ + "number", + "null" + ] + }, + "levelRequired": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "questLog": { + "type": [ + "boolean", + "null" + ] + }, + "rewards": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "quest", + "type": "string" + } + }, + "required": [ + "type", + "title", + "location", + "levelRequired", + "levelRecommended", + "isPremium", + "questLog", + "legend", + "status", + "dangers", + "rewards", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "areaShape": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "affectedTiles": { + "type": "number" + }, + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "corroborated": { + "type": "boolean" + }, + "derivedFrom": { + "const": "animation", + "type": "string" + }, + "height": { + "type": "number" + }, + "sourceImage": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "width", + "height", + "cells", + "ascii", + "affectedTiles", + "derivedFrom", + "sourceImage", + "sourceUrl", + "corroborated" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Tiles a spell covers, read from its wiki animation." + }, + "basePower": { + "type": [ + "number", + "null" + ] + }, + "cooldown": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "group": { + "type": [ + "string", + "null" + ] + }, + "groupCooldown": { + "description": "Seconds before another spell of the same group can be cast.", + "type": [ + "number", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isPassive": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isPromotion": { + "type": [ + "boolean", + "null" + ] + }, + "isWheelSpell": { + "type": [ + "boolean", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "mana": { + "type": [ + "number", + "null" + ] + }, + "runeGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroupCooldown": { + "description": "Seconds before another spell of its secondary group can be cast.", + "type": [ + "number", + "null" + ] + }, + "soul": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spellType": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "spell", + "type": "string" + }, + "vocations": { + "items": { + "enum": [ + "knight", + "sorcerer", + "druid", + "paladin", + "monk" + ], + "type": "string" + }, + "type": "array" + }, + "words": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "areaShape", + "image", + "title", + "words", + "spellType", + "element", + "mana", + "level", + "soul", + "isPremium", + "cooldown", + "effect", + "vocations", + "isPromotion", + "isWheelSpell", + "isPassive", + "basePower", + "group", + "secondaryGroup", + "runeGroup", + "groupCooldown", + "secondaryGroupCooldown", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievementId": { + "type": [ + "number", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "grade": { + "type": [ + "number", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isSecret": { + "type": [ + "boolean", + "null" + ] + }, + "points": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spoiler": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "achievement", + "type": "string" + } + }, + "required": [ + "type", + "title", + "grade", + "points", + "description", + "spoiler", + "isSecret", + "isPremium", + "achievementId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "beds": { + "type": [ + "number", + "null" + ] + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "floors": { + "type": [ + "number", + "null" + ] + }, + "houseId": { + "type": [ + "number", + "null" + ] + }, + "isGuildhall": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "rooms": { + "type": [ + "number", + "null" + ] + }, + "size": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "street": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "house", + "type": "string" + } + }, + "required": [ + "type", + "title", + "houseId", + "city", + "street", + "location", + "beds", + "rent", + "size", + "rooms", + "floors", + "position", + "isGuildhall", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "imbuementType": { + "type": [ + "string", + "null" + ] + }, + "materials": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + } + }, + "required": [ + "item", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "slots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tier": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "imbuement", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "tier", + "category", + "imbuementType", + "effect", + "slots", + "status", + "materials", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "charmType": { + "type": [ + "string", + "null" + ] + }, + "costs": { + "items": { + "type": [ + "number", + "null" + ] + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "charm", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "charmType", + "effect", + "costs", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBuyable": { + "type": [ + "boolean", + "null" + ] + }, + "lightColor": { + "type": [ + "number", + "null" + ] + }, + "lightRadius": { + "type": [ + "number", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tamingMethod": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "mount", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "speed", + "tamingMethod", + "isBuyable", + "price", + "achievement", + "lightColor", + "lightRadius", + "clientId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "femaleClientId": { + "type": [ + "number", + "null" + ] + }, + "fullPrice": { + "type": [ + "number", + "null" + ] + }, + "isBought": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isTournament": { + "type": [ + "boolean", + "null" + ] + }, + "maleClientId": { + "type": [ + "number", + "null" + ] + }, + "outfitType": { + "type": [ + "string", + "null" + ] + }, + "quests": { + "items": { + "additionalProperties": false, + "properties": { + "quest": { + "type": "string" + }, + "unlockType": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "quest", + "unlockType" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "outfit", + "type": "string" + } + }, + "required": [ + "type", + "title", + "outfitType", + "isPremium", + "isBought", + "isTournament", + "fullPrice", + "achievement", + "maleClientId", + "femaleClientId", + "status", + "quests", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "author": { + "type": [ + "string", + "null" + ] + }, + "blurb": { + "type": [ + "string", + "null" + ] + }, + "bookType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "itemId": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "nextBook": { + "type": [ + "string", + "null" + ] + }, + "prevBook": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "text": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "book", + "type": "string" + } + }, + "required": [ + "type", + "title", + "bookType", + "itemId", + "location", + "blurb", + "author", + "prevBook", + "nextBook", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "battleye": { + "type": [ + "boolean", + "null" + ] + }, + "battleyeType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isExperimental": { + "type": [ + "boolean", + "null" + ] + }, + "isPreview": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "mergedInto": { + "type": [ + "string", + "null" + ] + }, + "offlineSince": { + "type": [ + "string", + "null" + ] + }, + "onlineSince": { + "type": [ + "string", + "null" + ] + }, + "protectedSince": { + "type": [ + "string", + "null" + ] + }, + "pvpType": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "title": { + "type": "string" + }, + "tradeBoard": { + "type": [ + "number", + "null" + ] + }, + "type": { + "const": "world", + "type": "string" + }, + "worldBoard": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "title", + "location", + "pvpType", + "isPreview", + "isExperimental", + "onlineSince", + "offlineSince", + "mergedInto", + "battleye", + "battleyeType", + "protectedSince", + "worldBoard", + "tradeBoard", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "changes": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "newsId": { + "type": [ + "number", + "null" + ] + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "previous": { + "type": [ + "string", + "null" + ] + }, + "releaseDate": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "update", + "type": "string" + }, + "typePrimary": { + "type": [ + "string", + "null" + ] + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "title", + "releaseDate", + "newsId", + "typePrimary", + "typeSecondary", + "previous", + "next", + "summary", + "changes", + "source" + ], + "type": "object" + } +]
2 tool updates
- Changed
tibia_find_travel5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / fromAdded value: +{ + "description": "Exact start place of the leg, e.g. \"Meriana\", any case.", + "minLength": 1, + "type": "string" +} - removed
Input schema / properties / from_cityRemoved value: -{ - "description": "Exact city of the NPC, any case.", - "minLength": 1, - "type": "string" -} - added
Output schema / properties / results / items / properties / originAdded value: +{ + "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "npc", - "city", - "subarea", - "location", - "position", - "to", - "price", - "notes" -]New value: +[ + "npc", + "city", + "subarea", + "location", + "position", + "to", + "origin", + "price", + "notes" +]
- Changed
tibia_get1 field changed- changed
Output schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "abilities": { - "items": { - "additionalProperties": false, - "properties": { - "area": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "effectOnCaster": { - "type": "boolean" - }, - "effectTiles": { - "type": "number" - }, - "height": { - "type": "number" - }, - "key": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "key", - "width", - "height", - "cells", - "ascii", - "effectTiles", - "effectOnCaster" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "effect", - "element", - "area" - ], - "type": "object" - }, - "type": "array" - }, - "armor": { - "type": [ - "number", - "null" - ] - }, - "article": { - "description": "Article the game prints before the name. Null: none, as for bosses.", - "type": [ - "string", - "null" - ] - }, - "bestiaryClass": { - "type": [ - "string", - "null" - ] - }, - "bestiaryLevel": { - "type": [ - "string", - "null" - ] - }, - "convinceCost": { - "description": "Mana. 0: cannot be convinced.", - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "experience": { - "type": [ - "number", - "null" - ] - }, - "goldPerKill": { - "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", - "type": [ - "number", - "null" - ] - }, - "hitpoints": { - "type": [ - "number", - "null" - ] - }, - "illusionable": { - "type": [ - "boolean", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBoss": { - "type": "boolean" - }, - "loot": { - "items": { - "additionalProperties": false, - "properties": { - "chance": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - }, - "max": { - "type": [ - "number", - "null" - ] - }, - "min": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "item", - "chance", - "min", - "max" - ], - "type": "object" - }, - "type": "array" - }, - "maxDamage": { - "anyOf": [ - { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "modifiers": { - "additionalProperties": { - "type": [ - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "name": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "paralysable": { - "type": [ - "boolean", - "null" - ] - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "pushObjects": { - "type": [ - "boolean", - "null" - ] - }, - "pushable": { - "type": [ - "boolean", - "null" - ] - }, - "runsAt": { - "description": "Hit points at which it flees. 0: never flees.", - "type": [ - "number", - "null" - ] - }, - "seesInvisible": { - "type": [ - "boolean", - "null" - ] - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "summonCost": { - "description": "Mana. 0: cannot be summoned.", - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "creature", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "name", - "plural", - "article", - "hitpoints", - "experience", - "armor", - "speed", - "bestiaryClass", - "bestiaryLevel", - "isBoss", - "status", - "runsAt", - "seesInvisible", - "paralysable", - "pushable", - "pushObjects", - "illusionable", - "summonCost", - "convinceCost", - "goldPerKill", - "modifiers", - "loot", - "abilities", - "maxDamage", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "actualName": { - "description": "Name as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "attributes": { - "additionalProperties": { - "type": [ - "string", - "number" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "boughtBy": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "type": [ - "string", - "null" - ] - }, - "currency": { - "type": "string" - }, - "npc": { - "type": "string" - }, - "position": { - "additionalProperties": false, - "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "price": { - "type": "number" - } - }, - "required": [ - "npc", - "price", - "currency", - "city", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "clientId": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isImmobile": { - "type": [ - "boolean", - "null" - ] - }, - "isMarketable": { - "type": [ - "boolean", - "null" - ] - }, - "isPickupable": { - "type": [ - "boolean", - "null" - ] - }, - "isStackable": { - "type": [ - "boolean", - "null" - ] - }, - "itemClass": { - "type": [ - "string", - "null" - ] - }, - "itemType": { - "type": [ - "string", - "null" - ] - }, - "keys": { - "items": { - "additionalProperties": false, - "properties": { - "location": { - "type": [ - "string", - "null" - ] - }, - "material": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "number": { - "type": [ - "number", - "null" - ] - }, - "title": { - "type": "string" - } - }, - "required": [ - "title", - "number", - "name", - "material", - "location", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "plural": { - "description": "Plural as the game prints it.", - "type": [ - "string", - "null" - ] - }, - "proficiencyPerks": { - "items": { - "additionalProperties": false, - "properties": { - "effect": { - "type": [ - "string", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "skill": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "level", - "effect", - "skill" - ], - "type": "object" - }, - "type": "array" - }, - "sounds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "storeOffers": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "currency": { - "type": [ - "string", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "price", - "amount", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "type": { - "const": "item", - "type": "string" - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - }, - "valueBuy": { - "type": [ - "number", - "null" - ] - }, - "valueSell": { - "type": [ - "number", - "null" - ] - }, - "weight": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "image", - "title", - "actualName", - "plural", - "itemClass", - "itemType", - "typeSecondary", - "weight", - "valueBuy", - "valueSell", - "isMarketable", - "isStackable", - "isPickupable", - "isImmobile", - "clientId", - "status", - "attributes", - "keys", - "storeOffers", - "proficiencyPerks", - "boughtBy", - "sounds", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "buys": { - "description": "Items the player can sell to this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "destinations": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "price": { - "description": "Route price in gold. 0: free or not recorded, see notes.", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "name", - "price", - "notes" - ], - "type": "object" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "gender": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "jobs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "races": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rashidSchedule": { - "items": { - "additionalProperties": false, - "properties": { - "city": { - "type": [ - "string", - "null" - ] - }, - "day": { - "type": "string" - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - } - }, - "required": [ - "day", - "city", - "location", - "position" - ], - "type": "object" - }, - "type": "array" - }, - "sells": { - "description": "Items the player can buy from this NPC.", - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "item": { - "type": "string" - }, - "price": { - "type": "number" - } - }, - "required": [ - "item", - "price", - "currency" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "subarea": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "npc", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "gender", - "city", - "subarea", - "location", - "position", - "status", - "jobs", - "races", - "destinations", - "buys", - "sells", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dangers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "legend": { - "type": [ - "string", - "null" - ] - }, - "levelRecommended": { - "type": [ - "number", - "null" - ] - }, - "levelRequired": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "questLog": { - "type": [ - "boolean", - "null" - ] - }, - "rewards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "quest", - "type": "string" - } - }, - "required": [ - "type", - "title", - "location", - "levelRequired", - "levelRecommended", - "isPremium", - "questLog", - "legend", - "status", - "dangers", - "rewards", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "areaShape": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "affectedTiles": { - "type": "number" - }, - "ascii": { - "type": "string" - }, - "cells": { - "items": { - "type": "number" - }, - "type": "array" - }, - "corroborated": { - "type": "boolean" - }, - "derivedFrom": { - "const": "animation", - "type": "string" - }, - "height": { - "type": "number" - }, - "sourceImage": { - "type": "string" - }, - "sourceUrl": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "width", - "height", - "cells", - "ascii", - "affectedTiles", - "derivedFrom", - "sourceImage", - "sourceUrl", - "corroborated" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Tiles a spell covers, read from its wiki animation." - }, - "basePower": { - "type": [ - "number", - "null" - ] - }, - "cooldown": { - "type": [ - "number", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "element": { - "type": [ - "string", - "null" - ] - }, - "group": { - "type": [ - "string", - "null" - ] - }, - "groupCooldown": { - "description": "Seconds before another spell of the same group can be cast.", - "type": [ - "number", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isPassive": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isPromotion": { - "type": [ - "boolean", - "null" - ] - }, - "isWheelSpell": { - "type": [ - "boolean", - "null" - ] - }, - "level": { - "type": [ - "number", - "null" - ] - }, - "mana": { - "type": [ - "number", - "null" - ] - }, - "runeGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroup": { - "type": [ - "string", - "null" - ] - }, - "secondaryGroupCooldown": { - "description": "Seconds before another spell of its secondary group can be cast.", - "type": [ - "number", - "null" - ] - }, - "soul": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spellType": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "spell", - "type": "string" - }, - "vocations": { - "items": { - "enum": [ - "knight", - "sorcerer", - "druid", - "paladin", - "monk" - ], - "type": "string" - }, - "type": "array" - }, - "words": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "areaShape", - "image", - "title", - "words", - "spellType", - "element", - "mana", - "level", - "soul", - "isPremium", - "cooldown", - "effect", - "vocations", - "isPromotion", - "isWheelSpell", - "isPassive", - "basePower", - "group", - "secondaryGroup", - "runeGroup", - "groupCooldown", - "secondaryGroupCooldown", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievementId": { - "type": [ - "number", - "null" - ] - }, - "description": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "grade": { - "type": [ - "number", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isSecret": { - "type": [ - "boolean", - "null" - ] - }, - "points": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "spoiler": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "achievement", - "type": "string" - } - }, - "required": [ - "type", - "title", - "grade", - "points", - "description", - "spoiler", - "isSecret", - "isPremium", - "achievementId", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "beds": { - "type": [ - "number", - "null" - ] - }, - "city": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "floors": { - "type": [ - "number", - "null" - ] - }, - "houseId": { - "type": [ - "number", - "null" - ] - }, - "isGuildhall": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "position": { - "additionalProperties": false, - "properties": { - "x": { - "type": [ - "number", - "null" - ] - }, - "y": { - "type": [ - "number", - "null" - ] - }, - "z": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "x", - "y", - "z" - ], - "type": "object" - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "rooms": { - "type": [ - "number", - "null" - ] - }, - "size": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "street": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "house", - "type": "string" - } - }, - "required": [ - "type", - "title", - "houseId", - "city", - "street", - "location", - "beds", - "rent", - "size", - "rooms", - "floors", - "position", - "isGuildhall", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "category": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "imbuementType": { - "type": [ - "string", - "null" - ] - }, - "materials": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": [ - "number", - "null" - ] - }, - "item": { - "type": "string" - } - }, - "required": [ - "item", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "slots": { - "items": { - "type": "string" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tier": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "imbuement", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "tier", - "category", - "imbuementType", - "effect", - "slots", - "status", - "materials", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "charmType": { - "type": [ - "string", - "null" - ] - }, - "costs": { - "items": { - "type": [ - "number", - "null" - ] - }, - "type": "array" - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "effect": { - "type": [ - "string", - "null" - ] - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "charm", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "charmType", - "effect", - "costs", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "image": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "descriptionUrl": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "height": { - "type": "number" - }, - "mimeType": { - "type": "string" - }, - "url": { - "type": "string" - }, - "width": { - "type": "number" - } - }, - "required": [ - "fileName", - "url", - "descriptionUrl", - "width", - "height", - "mimeType" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Sprite image link. Dimensions are pixels, not map squares." - }, - "isBuyable": { - "type": [ - "boolean", - "null" - ] - }, - "lightColor": { - "type": [ - "number", - "null" - ] - }, - "lightRadius": { - "type": [ - "number", - "null" - ] - }, - "price": { - "type": [ - "number", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "speed": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "tamingMethod": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "mount", - "type": "string" - } - }, - "required": [ - "type", - "image", - "title", - "speed", - "tamingMethod", - "isBuyable", - "price", - "achievement", - "lightColor", - "lightRadius", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "achievement": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "fullPrice": { - "type": [ - "number", - "null" - ] - }, - "isBought": { - "type": [ - "boolean", - "null" - ] - }, - "isPremium": { - "type": [ - "boolean", - "null" - ] - }, - "isTournament": { - "type": [ - "boolean", - "null" - ] - }, - "outfitType": { - "type": [ - "string", - "null" - ] - }, - "quests": { - "items": { - "additionalProperties": false, - "properties": { - "quest": { - "type": "string" - }, - "unlockType": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "quest", - "unlockType" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "outfit", - "type": "string" - } - }, - "required": [ - "type", - "title", - "outfitType", - "isPremium", - "isBought", - "isTournament", - "fullPrice", - "achievement", - "status", - "quests", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "author": { - "type": [ - "string", - "null" - ] - }, - "blurb": { - "type": [ - "string", - "null" - ] - }, - "bookType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "itemId": { - "type": [ - "number", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "nextBook": { - "type": [ - "string", - "null" - ] - }, - "prevBook": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "status": { - "type": [ - "string", - "null" - ] - }, - "text": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "book", - "type": "string" - } - }, - "required": [ - "type", - "title", - "bookType", - "itemId", - "location", - "blurb", - "author", - "prevBook", - "nextBook", - "status", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "battleye": { - "type": [ - "boolean", - "null" - ] - }, - "battleyeType": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "isExperimental": { - "type": [ - "boolean", - "null" - ] - }, - "isPreview": { - "type": [ - "boolean", - "null" - ] - }, - "location": { - "type": [ - "string", - "null" - ] - }, - "mergedInto": { - "type": [ - "string", - "null" - ] - }, - "offlineSince": { - "type": [ - "string", - "null" - ] - }, - "onlineSince": { - "type": [ - "string", - "null" - ] - }, - "protectedSince": { - "type": [ - "string", - "null" - ] - }, - "pvpType": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "title": { - "type": "string" - }, - "tradeBoard": { - "type": [ - "number", - "null" - ] - }, - "type": { - "const": "world", - "type": "string" - }, - "worldBoard": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "type", - "title", - "location", - "pvpType", - "isPreview", - "isExperimental", - "onlineSince", - "offlineSince", - "mergedInto", - "battleye", - "battleyeType", - "protectedSince", - "worldBoard", - "tradeBoard", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "changes": { - "type": [ - "string", - "null" - ] - }, - "detail": { - "additionalProperties": { - "type": [ - "string", - "number", - "null" - ] - }, - "propertyNames": { - "type": "string" - }, - "type": "object" - }, - "newsId": { - "type": [ - "number", - "null" - ] - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "previous": { - "type": [ - "string", - "null" - ] - }, - "releaseDate": { - "type": [ - "string", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "indexGeneratedAt": { - "type": "string" - }, - "page": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "page", - "url", - "indexGeneratedAt" - ], - "type": "object" - }, - "summary": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "type": { - "const": "update", - "type": "string" - }, - "typePrimary": { - "type": [ - "string", - "null" - ] - }, - "typeSecondary": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "type", - "title", - "releaseDate", - "newsId", - "typePrimary", - "typeSecondary", - "previous", - "next", - "summary", - "changes", - "source" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "abilities": { + "items": { + "additionalProperties": false, + "properties": { + "area": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "effectOnCaster": { + "type": "boolean" + }, + "effectTiles": { + "type": "number" + }, + "height": { + "type": "number" + }, + "key": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "key", + "width", + "height", + "cells", + "ascii", + "effectTiles", + "effectOnCaster" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "effect", + "element", + "area" + ], + "type": "object" + }, + "type": "array" + }, + "armor": { + "type": [ + "number", + "null" + ] + }, + "article": { + "description": "Article the game prints before the name. Null: none, as for bosses.", + "type": [ + "string", + "null" + ] + }, + "bestiaryClass": { + "type": [ + "string", + "null" + ] + }, + "bestiaryLevel": { + "type": [ + "string", + "null" + ] + }, + "convinceCost": { + "description": "Mana. 0: cannot be convinced.", + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "experience": { + "type": [ + "number", + "null" + ] + }, + "goldPerKill": { + "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.", + "type": [ + "number", + "null" + ] + }, + "hitpoints": { + "type": [ + "number", + "null" + ] + }, + "illusionable": { + "type": [ + "boolean", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBoss": { + "type": "boolean" + }, + "loot": { + "items": { + "additionalProperties": false, + "properties": { + "chance": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + }, + "max": { + "type": [ + "number", + "null" + ] + }, + "min": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "item", + "chance", + "min", + "max" + ], + "type": "object" + }, + "type": "array" + }, + "maxDamage": { + "anyOf": [ + { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "modifiers": { + "additionalProperties": { + "type": [ + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "name": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "paralysable": { + "type": [ + "boolean", + "null" + ] + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "pushObjects": { + "type": [ + "boolean", + "null" + ] + }, + "pushable": { + "type": [ + "boolean", + "null" + ] + }, + "runsAt": { + "description": "Hit points at which it flees. 0: never flees.", + "type": [ + "number", + "null" + ] + }, + "seesInvisible": { + "type": [ + "boolean", + "null" + ] + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "summonCost": { + "description": "Mana. 0: cannot be summoned.", + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "creature", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "name", + "plural", + "article", + "hitpoints", + "experience", + "armor", + "speed", + "bestiaryClass", + "bestiaryLevel", + "isBoss", + "status", + "runsAt", + "seesInvisible", + "paralysable", + "pushable", + "pushObjects", + "illusionable", + "summonCost", + "convinceCost", + "goldPerKill", + "modifiers", + "loot", + "abilities", + "maxDamage", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actualName": { + "description": "Name as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "attributes": { + "additionalProperties": { + "type": [ + "string", + "number" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "boughtBy": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "type": [ + "string", + "null" + ] + }, + "currency": { + "type": "string" + }, + "npc": { + "type": "string" + }, + "position": { + "additionalProperties": false, + "description": "For Rashid, who moves city daily, a buyer's city and position coordinates are null. His NPC page and tibia_where_to_sell give his week as rashidSchedule.", + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "price": { + "type": "number" + } + }, + "required": [ + "npc", + "price", + "currency", + "city", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isImmobile": { + "type": [ + "boolean", + "null" + ] + }, + "isMarketable": { + "type": [ + "boolean", + "null" + ] + }, + "isPickupable": { + "type": [ + "boolean", + "null" + ] + }, + "isStackable": { + "type": [ + "boolean", + "null" + ] + }, + "itemClass": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "type": [ + "string", + "null" + ] + }, + "keys": { + "items": { + "additionalProperties": false, + "properties": { + "location": { + "type": [ + "string", + "null" + ] + }, + "material": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": [ + "string", + "null" + ] + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "number": { + "type": [ + "number", + "null" + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "title", + "number", + "name", + "material", + "location", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "plural": { + "description": "Plural as the game prints it.", + "type": [ + "string", + "null" + ] + }, + "proficiencyPerks": { + "items": { + "additionalProperties": false, + "properties": { + "effect": { + "type": [ + "string", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "skill": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "level", + "effect", + "skill" + ], + "type": "object" + }, + "type": "array" + }, + "sounds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "storeOffers": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "currency": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "price", + "amount", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "const": "item", + "type": "string" + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + }, + "valueBuy": { + "type": [ + "number", + "null" + ] + }, + "valueSell": { + "type": [ + "number", + "null" + ] + }, + "weight": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "image", + "title", + "actualName", + "plural", + "itemClass", + "itemType", + "typeSecondary", + "weight", + "valueBuy", + "valueSell", + "isMarketable", + "isStackable", + "isPickupable", + "isImmobile", + "clientId", + "status", + "attributes", + "keys", + "storeOffers", + "proficiencyPerks", + "boughtBy", + "sounds", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "buys": { + "description": "Items the player can sell to this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "destinations": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "origin": { + "description": "Where the leg starts. null: not recorded, it starts at one of the NPC's positions.", + "type": [ + "string", + "null" + ] + }, + "price": { + "description": "Route price in gold. 0: free or not recorded, see notes.", + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "name", + "price", + "origin", + "notes" + ], + "type": "object" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "gender": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "jobs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "positions": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "geolabel": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "subarea": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "city", + "subarea", + "geolabel", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "races": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rashidSchedule": { + "items": { + "additionalProperties": false, + "properties": { + "city": { + "type": [ + "string", + "null" + ] + }, + "day": { + "type": "string" + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + } + }, + "required": [ + "day", + "city", + "location", + "position" + ], + "type": "object" + }, + "type": "array" + }, + "sells": { + "description": "Items the player can buy from this NPC.", + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "item": { + "type": "string" + }, + "price": { + "type": "number" + } + }, + "required": [ + "item", + "price", + "currency" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "subarea": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "npc", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "gender", + "city", + "subarea", + "location", + "position", + "status", + "jobs", + "races", + "destinations", + "positions", + "buys", + "sells", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "dangers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "legend": { + "type": [ + "string", + "null" + ] + }, + "levelRecommended": { + "type": [ + "number", + "null" + ] + }, + "levelRequired": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "questLog": { + "type": [ + "boolean", + "null" + ] + }, + "rewards": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "quest", + "type": "string" + } + }, + "required": [ + "type", + "title", + "location", + "levelRequired", + "levelRecommended", + "isPremium", + "questLog", + "legend", + "status", + "dangers", + "rewards", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "areaShape": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "affectedTiles": { + "type": "number" + }, + "ascii": { + "type": "string" + }, + "cells": { + "items": { + "type": "number" + }, + "type": "array" + }, + "corroborated": { + "type": "boolean" + }, + "derivedFrom": { + "const": "animation", + "type": "string" + }, + "height": { + "type": "number" + }, + "sourceImage": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "width", + "height", + "cells", + "ascii", + "affectedTiles", + "derivedFrom", + "sourceImage", + "sourceUrl", + "corroborated" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Tiles a spell covers, read from its wiki animation." + }, + "basePower": { + "type": [ + "number", + "null" + ] + }, + "cooldown": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "element": { + "type": [ + "string", + "null" + ] + }, + "group": { + "type": [ + "string", + "null" + ] + }, + "groupCooldown": { + "description": "Seconds before another spell of the same group can be cast.", + "type": [ + "number", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isPassive": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isPromotion": { + "type": [ + "boolean", + "null" + ] + }, + "isWheelSpell": { + "type": [ + "boolean", + "null" + ] + }, + "level": { + "type": [ + "number", + "null" + ] + }, + "mana": { + "type": [ + "number", + "null" + ] + }, + "runeGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroup": { + "type": [ + "string", + "null" + ] + }, + "secondaryGroupCooldown": { + "description": "Seconds before another spell of its secondary group can be cast.", + "type": [ + "number", + "null" + ] + }, + "soul": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spellType": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "spell", + "type": "string" + }, + "vocations": { + "items": { + "enum": [ + "knight", + "sorcerer", + "druid", + "paladin", + "monk" + ], + "type": "string" + }, + "type": "array" + }, + "words": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "areaShape", + "image", + "title", + "words", + "spellType", + "element", + "mana", + "level", + "soul", + "isPremium", + "cooldown", + "effect", + "vocations", + "isPromotion", + "isWheelSpell", + "isPassive", + "basePower", + "group", + "secondaryGroup", + "runeGroup", + "groupCooldown", + "secondaryGroupCooldown", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievementId": { + "type": [ + "number", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "grade": { + "type": [ + "number", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isSecret": { + "type": [ + "boolean", + "null" + ] + }, + "points": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "spoiler": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "achievement", + "type": "string" + } + }, + "required": [ + "type", + "title", + "grade", + "points", + "description", + "spoiler", + "isSecret", + "isPremium", + "achievementId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "beds": { + "type": [ + "number", + "null" + ] + }, + "city": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "floors": { + "type": [ + "number", + "null" + ] + }, + "houseId": { + "type": [ + "number", + "null" + ] + }, + "isGuildhall": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "position": { + "additionalProperties": false, + "properties": { + "x": { + "type": [ + "number", + "null" + ] + }, + "y": { + "type": [ + "number", + "null" + ] + }, + "z": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "x", + "y", + "z" + ], + "type": "object" + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "rooms": { + "type": [ + "number", + "null" + ] + }, + "size": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "street": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "house", + "type": "string" + } + }, + "required": [ + "type", + "title", + "houseId", + "city", + "street", + "location", + "beds", + "rent", + "size", + "rooms", + "floors", + "position", + "isGuildhall", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "imbuementType": { + "type": [ + "string", + "null" + ] + }, + "materials": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": [ + "number", + "null" + ] + }, + "item": { + "type": "string" + } + }, + "required": [ + "item", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "slots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tier": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "imbuement", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "tier", + "category", + "imbuementType", + "effect", + "slots", + "status", + "materials", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "charmType": { + "type": [ + "string", + "null" + ] + }, + "costs": { + "items": { + "type": [ + "number", + "null" + ] + }, + "type": "array" + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "effect": { + "type": [ + "string", + "null" + ] + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "charm", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "charmType", + "effect", + "costs", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "clientId": { + "type": [ + "number", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "image": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "descriptionUrl": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "height": { + "type": "number" + }, + "mimeType": { + "type": "string" + }, + "url": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "fileName", + "url", + "descriptionUrl", + "width", + "height", + "mimeType" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Sprite image link. Dimensions are pixels, not map squares." + }, + "isBuyable": { + "type": [ + "boolean", + "null" + ] + }, + "lightColor": { + "type": [ + "number", + "null" + ] + }, + "lightRadius": { + "type": [ + "number", + "null" + ] + }, + "price": { + "type": [ + "number", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "speed": { + "type": [ + "number", + "null" + ] + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "tamingMethod": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "mount", + "type": "string" + } + }, + "required": [ + "type", + "image", + "title", + "speed", + "tamingMethod", + "isBuyable", + "price", + "achievement", + "lightColor", + "lightRadius", + "clientId", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "achievement": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "femaleClientId": { + "type": [ + "number", + "null" + ] + }, + "fullPrice": { + "type": [ + "number", + "null" + ] + }, + "isBought": { + "type": [ + "boolean", + "null" + ] + }, + "isPremium": { + "type": [ + "boolean", + "null" + ] + }, + "isTournament": { + "type": [ + "boolean", + "null" + ] + }, + "maleClientId": { + "type": [ + "number", + "null" + ] + }, + "outfitType": { + "type": [ + "string", + "null" + ] + }, + "quests": { + "items": { + "additionalProperties": false, + "properties": { + "quest": { + "type": "string" + }, + "unlockType": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "quest", + "unlockType" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "outfit", + "type": "string" + } + }, + "required": [ + "type", + "title", + "outfitType", + "isPremium", + "isBought", + "isTournament", + "fullPrice", + "achievement", + "maleClientId", + "femaleClientId", + "status", + "quests", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "author": { + "type": [ + "string", + "null" + ] + }, + "blurb": { + "type": [ + "string", + "null" + ] + }, + "bookType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "itemId": { + "type": [ + "number", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "nextBook": { + "type": [ + "string", + "null" + ] + }, + "prevBook": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "status": { + "type": [ + "string", + "null" + ] + }, + "text": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "book", + "type": "string" + } + }, + "required": [ + "type", + "title", + "bookType", + "itemId", + "location", + "blurb", + "author", + "prevBook", + "nextBook", + "status", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "battleye": { + "type": [ + "boolean", + "null" + ] + }, + "battleyeType": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isExperimental": { + "type": [ + "boolean", + "null" + ] + }, + "isPreview": { + "type": [ + "boolean", + "null" + ] + }, + "location": { + "type": [ + "string", + "null" + ] + }, + "mergedInto": { + "type": [ + "string", + "null" + ] + }, + "offlineSince": { + "type": [ + "string", + "null" + ] + }, + "onlineSince": { + "type": [ + "string", + "null" + ] + }, + "protectedSince": { + "type": [ + "string", + "null" + ] + }, + "pvpType": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "title": { + "type": "string" + }, + "tradeBoard": { + "type": [ + "number", + "null" + ] + }, + "type": { + "const": "world", + "type": "string" + }, + "worldBoard": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "type", + "title", + "location", + "pvpType", + "isPreview", + "isExperimental", + "onlineSince", + "offlineSince", + "mergedInto", + "battleye", + "battleyeType", + "protectedSince", + "worldBoard", + "tradeBoard", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "changes": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "additionalProperties": { + "type": [ + "string", + "number", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "newsId": { + "type": [ + "number", + "null" + ] + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "previous": { + "type": [ + "string", + "null" + ] + }, + "releaseDate": { + "type": [ + "string", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "indexGeneratedAt": { + "type": "string" + }, + "page": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "page", + "url", + "indexGeneratedAt" + ], + "type": "object" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "type": { + "const": "update", + "type": "string" + }, + "typePrimary": { + "type": [ + "string", + "null" + ] + }, + "typeSecondary": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "type", + "title", + "releaseDate", + "newsId", + "typePrimary", + "typeSecondary", + "previous", + "next", + "summary", + "changes", + "source" + ], + "type": "object" + } +]
Related MCP Connectors
Read-only Interlude and High Five NPC, loot, Soul Crystal and XP reference tools.
Wikidata SPARQL MCP — Wikidata Query Service
Fantasy TTRPG data: metals, minerals, ingredients, potions, gems, craft rules, music catalogue.
DBpedia MCP — SPARQL + Lookup over Wikipedia-derived structured data
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables AI agents to query TibiaWiki data including creatures, items, NPCs, quests, and more via 19 MCP tools.9-
- FlicenseNot gradedqualityCmaintenanceA server that downloads, parses, and indexes TibiaWiki content, providing 19 MCP tools for AI agents to query structured data such as creatures, items, and quests.-
- AlicenseAqualityBmaintenanceAn open-source MCP server for querying the Tenarius RO wiki and Ragnarok Online Pre-Renewal references. It provides structured search and summaries with source metadata indicating server and era applicability.8MIT
- AlicenseNot gradedqualityAmaintenanceProvides Elden Ring lookups including item locations, NPC quest steps, weapon/spell/talisman/armor stats, and boss info, with answers sourced from a versioned wiki snapshot and source attribution.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.