{
  "schemaVersion": 8,
  "generated": "2026-09-20",
  "release": "conversation-kernel-v2.2",
  "layout": "flat-root",
  "branch": "v2-online",
  "counts": {
    "monsters": 82,
    "questsCore": 19,
    "questOverrides": 2,
    "questsAvailableInContext": 21,
    "skills": 18,
    "mechanics": 20,
    "mechanicsRules": 12,
    "areas": 14,
    "rooms": 193,
    "documentedBeds": 12,
    "functionalNpcs": 71,
    "monsterRecordsWithRoomLinks": 52,
    "monsterRoomLinks": 82,
    "questProcedureSteps": 104,
    "questStepsWithExactRoomLinks": 55,
    "questStepsAreaOnly": 49,
    "questStepsWithLinkConflict": 2,
    "resourceNodes": 61,
    "roomsWithResourceNodes": 44,
    "itemRecords": 588,
    "itemAcquisitionRoutes": 1168,
    "itemsWithStructuredUses": 199,
    "itemAcquisitionTypeCounts": {
      "brewing": 25,
      "bundle_reward": 13,
      "conversion": 4,
      "cooking": 9,
      "enchantment": 20,
      "event_reward": 7,
      "farming": 25,
      "map_chest": 86,
      "monster_drop": 384,
      "npc_service": 1,
      "npc_trade": 1,
      "pickpocket": 56,
      "production": 193,
      "quest_reward": 15,
      "rogue_chest": 13,
      "shop": 138,
      "smelting": 7,
      "special_source": 1,
      "spirit_reward": 43,
      "stall": 74,
      "world_resource": 53
    },
    "relationshipGraphNodes": 1574,
    "relationshipGraphEdges": 7380,
    "relationshipGraphUnresolvedTextReferences": 1,
    "relationshipGraphNodeTypes": {
      "acquisition_source": 523,
      "area": 14,
      "concept": 5,
      "item": 588,
      "mechanic": 20,
      "monster": 82,
      "npc": 71,
      "quest": 21,
      "room": 193,
      "rule": 12,
      "shop": 27,
      "skill": 18
    },
    "relationshipGraphEdgeTypes": {
      "acquired_via": 1168,
      "area_connection": 27,
      "contains_monster": 82,
      "contains_npc": 142,
      "contains_room": 193,
      "dropped_by": 363,
      "drops_item": 363,
      "in_area": 193,
      "located_in_area": 24,
      "located_in_room": 153,
      "occurs_in_area": 29,
      "provides_item": 1168,
      "provides_resource": 53,
      "requires_item": 533,
      "requires_material": 560,
      "requires_skill": 382,
      "rewards_item": 15,
      "room_connection": 50,
      "sells_item": 138,
      "sold_by": 138,
      "source_actor": 122,
      "source_in_area": 162,
      "source_in_room": 53,
      "step_in_area": 112,
      "step_in_room": 59,
      "step_with_monster": 7,
      "step_with_npc": 42,
      "used_by_skill": 431,
      "used_to_make": 565,
      "world_resource_at": 53
    },
    "languageEnglishColloquialGroups": 20,
    "languageFlatmmoTerms": 46,
    "languageForeignComparisons": 7,
    "languageSourceRecords": 4
  },
  "humanUi": {
    "mode": "deterministic conversational companion with unified typed relationship graph, topic-thread memory, semantic repair and curated language interpretation",
    "playerUsername": true,
    "localStorage": "optional and disposable; stores username, latest normalized player snapshot (public or user-entered) and recent questions when available",
    "portablePlayerLink": "#player=<username>",
    "interimPlayerLoader": "official public profile HTML; skill level/XP only when browser cross-origin policy permits",
    "futurePlayerApi": "adapter reserved; endpoint/schema not assumed",
    "manualSkills": "Optional username; enter known whole-number levels; blanks and XP stay unknown. Clearly labelled user-entered, not verified.",
    "refreshFailure": "Retain previous same-player snapshot with warning and timestamp; never reuse across different usernames; ignore superseded responses.",
    "visualStyle": "FlatMMO-inspired charcoal panels, brown secondary controls, green primary actions, cream text and monospace headings; no external images/fonts required.",
    "manualFormLayout": "Bounded dialog with independently scrolling fields and persistent Save/Cancel footer; two skill columns at phone widths.",
    "queryEngine": "v2.1 browser-side structured interpreter: conversation operation/negation handling, English colloquial normalization, FlatMMO-attested glossary, typed topic threads, composable constraints/result sets, unified relationship traversal, deterministic deductions, semantic repair and conversational composition; no LLM required",
    "conversationContext": "Keeps up to 12 semantic topic threads with up to 36 turns each plus 120 replayable recent user questions. Explicit current subjects outrank memory; context may fill omissions but may not replace a clearly stated new subject.",
    "inlineLevels": "Skill levels explicitly stated in a question may be used for that answer only; they do not overwrite the saved/manual player snapshot",
    "acquisitionIndex": "flatmmo-items.json is authoritative for item-specific acquisition/use questions. It normalizes monster drops, world nodes, production, shops, Stealing, Farming, quests, spirits, events, bundles and explicit NPC services/trades; unknown rates/currencies stay unknown.",
    "reasoningEngine": "Builds a structured query object from the question, applies method/area/skill/price/access constraints, plans a deterministic graph query, and records an explicit user-visible reasoning trace",
    "constraintReasoning": "Supports acquisition-method include/exclude constraints, non-combat/non-quest/no-spend filters, area filters, stated skill levels, numeric shop-price caps and documented access conditions",
    "recursiveProduction": "Expands documented production recipes recursively with cycle protection; terminal inputs and missing intermediate recipes remain explicit rather than assumed",
    "explainability": "A follow-up such as Why? explains the previous deterministic interpretation, constraints, conclusions, evidence and limits; it does not expose hidden model reasoning because the site has no model reasoning layer",
    "rankingPolicy": "Uses measurable comparisons such as numeric shop price or documented skill gate when requested; qualitative best/easiest/fastest prompts ask for a criterion instead of inventing an overall ranking",
    "topicThreads": "Active and parked topic threads preserve subject, goal, scoped constraints, source-role references, result sets and reasoning traces. Users can return naturally with wording such as “back to Ent”.",
    "semanticRepair": "Corrections such as “No, I meant Mining, not the Ent” rewrite the relevant interpretation and re-run the previous question. A bare “that’s not what I meant” enters repair mode and asks what the user intended next.",
    "repairPrecedence": "explicit correction > explicit current subject > active-thread context > recent-thread context > fuzzy inference",
    "resultSetMemory": "Constrained searches preserve their candidate set across filters and measurable comparisons, enabling follow-ups such as “Only food” then “Which is cheapest?”.",
    "userFactMemory": "Clearly personal skill statements such as “I am Mining 40” are remembered for later questions in the conversation; hypothetical “what if” levels affect only that calculation and do not overwrite durable user facts.",
    "relationshipGraph": "flatmmo-graph.json joins stable typed item, acquisition-source, monster, quest, skill, area, room, NPC, shop, mechanic and rule nodes with materialized reverse relationships. Ambiguous actor names remain typed rather than collapsed.",
    "humanPresence": "Responses acknowledge corrections, changed assumptions and returns to earlier topics in ordinary language while keeping uncertainty and evidence explicit. Personality never overrides structured facts.",
    "memoryPresentation": "Conversation memory is silent by default. Continuity should appear through correct follow-up answers, not notices that a prior message/topic/result set was remembered, retained or inherited. Explicit Why?, correction and deliberate return-to-topic interactions may acknowledge context naturally.",
    "languageInterpreter": "flatmmo-language.json supplies curated English colloquialisms and provenance-backed FlatMMO terminology before fuzzy entity resolution; it is input-language interpretation only, not mechanics authority",
    "languageAuthority": "Official FlatMMO skill/entity names remain canonical. Colloquial/community/foreign-game language may signal intent or concepts but may not create mechanics, rename entities or add graph relationships.",
    "foreignComparisonPolicy": "RuneScape/OSRS comparisons use a small curated stock-response table plus a conservative fallback; foreign terms never enter the FlatMMO entity alias catalog.",
    "negatedEntitySuppression": "Explicitly rejected/negated entity candidates are suppressed so phrases such as “combat, not Bat” do not let Bat outrank the positive subject.",
    "glossaryDefinitions": "Beginner and player-language questions can be answered from curated term definitions without creating an active gameplay topic thread.",
    "communityTerminology": "FlatMMO-specific usage is provenance-backed from official news, the community wiki and public web-visible community/developer discussions. Usage evidence is not mechanics authority.",
    "genreVocabulary": "Broader MMO/RPG genre vocabulary is intentionally deferred to a later, separately controlled layer.",
    "conversationKernel": "Deterministic conversation kernel v2.2: executable semantic actions, separate gameplay/language context, hard typed corrections, isolated hypothetical levels, retained production/journey/search operations, and answer-style composition. No LLM or public API dependency.",
    "files": [
      "index.html",
      "companion-engine.js",
      "companion-conversation.js",
      "companion-ui.js"
    ]
  },
  "coverage": {
    "combatStyles": [
      "melee",
      "archery",
      "magic"
    ],
    "armourResourceCosts": "deep-normalized for smithable melee, craftable archery, and enchantable mage armour",
    "questProcedures": "19 normalized core quest records; 2 additional observation-backed quest placeholders have incomplete procedures/rewards",
    "skillsExplicit": [
      "Enchantment",
      "Farming",
      "Brewing"
    ],
    "worldModel": "area -> internal room/sub-location -> services/features/NPCs/access/links",
    "beds": "first-class index for explicitly documented bed locations",
    "functionalNpcs": "structured quest/shop/bank/travel/trade/service functions where documented",
    "internalRooms": "detailed for 13/14 areas; Desert currently partial",
    "entityGraph": "quest steps <-> rooms/NPCs/monsters; monsters <-> rooms; rooms <-> resource nodes",
    "monsterRoomLinks": "52/82 monster records linked to 82 exact room/access references",
    "questRoomLinks": "55/104 quest steps have one or more exact room IDs; all 104 carry structured area/room link state",
    "resourceNodes": "61 conservative nodes across 44 rooms",
    "bedSemantics": "bedStatus distinguishes documented beds from rooms where a bed is merely not documented",
    "mechanicsRules": "12 explicit rules/readiness records including observed Sleep/Run behavior and calculation blocks",
    "aiContext": "schema 1.9; merges 2 observed quest placeholders, embeds the first-class item/acquisition graph, retains mechanics rules/player-source policies, and publishes v2.1 language-layer metadata while keeping the full lexicon in flatmmo-language.json",
    "playerAwareness": "Skill-level checks from public profiles or explicitly labelled manual levels. Inventory, bank, equipment and quest completion remain unknown.",
    "itemGraph": "588 first-class item records; 1168 normalized acquisition routes; 199 items with structured uses",
    "shopInventories": "item-specific rows from the current Shops page plus explicit item-named area/NPC shop records; generic shop descriptions are not promoted to complete inventories",
    "stealing": "pickpocket, stall, one-time chest and Rogue chest item-source records normalized where the current Stealing page names the item",
    "farming": "seed-to-crop and selected tree/fruit-tree planting relationships normalized from current Farming data; unknown yields remain unknown",
    "unifiedRelationshipGraph": "1574 typed nodes and 7380 explicit relationships across items, sources, monsters, quests, skills, areas, rooms, NPCs, shops, mechanics and rules; 1 unresolved text-only reference retained rather than invented",
    "conversationMemory": "12 bounded topic threads × up to 36 turns, with explicit-subject priority, scoped constraints, parked-thread return, result-set continuity and semantic repair; recent user questions replay from optional localStorage up to 120 turns",
    "semanticRepair": "Natural correction can reject a mistaken subject/constraint, replace it, and re-run the prior question; rejected context is thread-scoped rather than permanently banning the entity",
    "relationshipAuthority": "flatmmo-graph.json is a derived cross-dataset relationship index. It links existing sourced records; it does not promote a derived edge into a new independent game fact.",
    "languageLexicon": "20 English colloquial groups, 46 FlatMMO-attested terms, 7 quarantined RuneScape comparison responses; genre-wide vocabulary intentionally deferred",
    "languageProvenance": "Official FlatMMO news, current community wiki terminology, and public web-visible developer/community discussions are used to attest player wording; they do not replace factual source authority.",
    "foreignGameIsolation": "Foreign-game comparison phrases are handled outside the FlatMMO entity alias catalog; official FlatMMO names and mechanics remain authoritative."
  },
  "calculationReadiness": {
    "safeNow": [
      "recipe material totals already represented in structured equipment data",
      "equip/craft level requirement checks",
      "drop-source lookup",
      "monster stat comparison",
      "room/location lookup",
      "quest requirement/procedure lookup",
      "known deterministic progression rules",
      "multi-source item acquisition lookup",
      "item recipe/use lookup",
      "item-specific shop inventory lookup",
      "Stealing source/unlock lookup",
      "constraint-aware multi-source acquisition filtering and discovery",
      "lowest documented skill-gate comparison within matching acquisition routes",
      "numeric shop-price comparison when price and currency are explicitly structured",
      "recursive production dependency expansion from documented recipes with explicit gaps",
      "deterministic explanation of the previous query interpretation, constraints and conclusions",
      "thread-aware follow-up interpretation with explicit-current-subject priority",
      "semantic repair of mistaken subjects and scoped acquisition constraints",
      "result-set refinement and measurable price ranking across conversational turns",
      "stable two-hop relationship disambiguation through the unified graph",
      "durable conversation skill facts distinct from hypothetical inline levels",
      "beginner/colloquial term definitions from the curated language lexicon",
      "FlatMMO-attested player-language interpretation without promoting terminology into mechanics",
      "quarantined RuneScape/OSRS stock comparisons with conservative fallback",
      "explicit negated-entity suppression before subject selection",
      "active-problem enrichment from user-stated skill facts when the skill statement is conversationally subordinate"
    ],
    "blockedPendingMechanics": [
      "exact combat hit chance",
      "exact combat DPS/kill time",
      "exact survivability estimates",
      "generic recommended combat levels"
    ],
    "pendingUserObservation": [
      "Agility level 1-19 maximum Run steps",
      "Sleep Point costs and zero-Sleep behaviour by activity type"
    ],
    "pendingPlayerApi": [
      "automatic player skills/XP",
      "automatic equipped gear",
      "automatic inventory quantities",
      "automatic bank quantities",
      "automatic quest completion",
      "other player snapshot fields exposed by the official API"
    ]
  },
  "knownIssues": [
    "Desert internal-room coverage remains partial; Desert quest steps are intentionally mostly area-only.",
    "30 monster records have no exact room link.",
    "Some bootstrap monster area labels conflict with current room-page evidence; both are retained rather than silently overwritten.",
    "Room adjacency remains incomplete where the wiki does not explicitly state a route.",
    "Monster bootstrap mirror still awaits official refresh.",
    "Feeding The Homeless and Atlas Crown are now named observation-backed records, but their full procedures/rewards remain incomplete.",
    "The interim public-profile loader can be blocked by browser cross-origin policy; official player API integration is pending.",
    "Exact combat hit/damage formulas remain unresolved, so exact DPS, kill time, survivability and recommended combat levels are intentionally blocked.",
    "Agility level 1-19 Run-step progression and exact zero-Sleep behavior by activity remain pending observations.",
    "Known source conflicts remain retained in verification notes.",
    "The item graph is substantially expanded but not exhaustive; absence of a source/use means not documented in the current snapshot, not proof that it does not exist in FlatMMO.",
    "Some Stealing stall drop chances are shown as unknown on the current wiki and remain unknown in the Companion.",
    "Prospector shop price values are preserved from the shop table but its currency column is not labelled for those rows, so the Companion does not assume Coins.",
    "Qualitative route terms such as easiest, fastest and best are not assigned an overall ranking without a measurable criterion supported by the data.",
    "Recursive production expansion can expose missing intermediate recipes/acquisition records; those remain explicit knowledge gaps rather than inferred steps.",
    "The v2.0 language interpreter is deterministic and finite; unusual idiom, deeply nested corrections or ambiguous references can still require clarification.",
    "Conversation memory is deliberately bounded. Explicit current subjects always outrank remembered topics, but a genuinely ambiguous short follow-up can still require a clarifying question.",
    "Semantic item categories used for result-set filters are conservative; a missing category label is not proof an item does not belong to that category in FlatMMO.",
    "The unified relationship graph contains one intentionally unresolved text-only material reference rather than inventing a fake item node.",
    "The v2.1 language lexicon is curated and finite; uncommon slang, spelling variants, deeply compressed shorthand and unusual idiom may still require clarification.",
    "Broader genre vocabulary is intentionally deferred; v2.1 does not map generic MMO jargon onto FlatMMO skill names.",
    "Public web evidence does not provide a complete Discord terminology corpus, so only web-visible official/community language is attested.",
    "The foreign-game comparison list is intentionally small and conservative; unlisted comparisons use a non-mechanical fallback."
  ],
  "aiContextSha256": "3dd6024e7a21b49f374de2c9cba6ec1d9818a4c4847ad0790cfcbc47aa3f558b",
  "updatePolicy": "Manually maintained static snapshot. The deployment workflow publishes committed files; it does not refresh game data or player snapshots. AI retrieval is optional/best-effort.",
  "languageLexiconSha256": "fd31e1d792e9bb7b22637b60cb1aeb60f1094befef3f824773d08db081cf3824"
}
