2026-03-10 18:24:01 +01:00
[
2026-03-13 23:42:51 +01:00
{ "id" : "meta_colors" , "nameKey" : "meta.colors" , "descriptionKey" : "meta.colors.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "TextColors" } ,
{ "id" : "meta_extended_colors" , "nameKey" : "meta.extended_colors" , "descriptionKey" : "meta.extended_colors.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "ExtendedColors" } ,
{ "id" : "meta_arrows" , "nameKey" : "meta.arrows" , "descriptionKey" : "meta.arrows.desc" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Meta" ] , "metaUnlock" : "ArrowKeySelection" } ,
{ "id" : "meta_inventory" , "nameKey" : "meta.inventory" , "descriptionKey" : "meta.inventory.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "InventoryPanel" } ,
{ "id" : "meta_resources" , "nameKey" : "meta.resources" , "descriptionKey" : "meta.resources.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "ResourcePanel" } ,
{ "id" : "meta_stats" , "nameKey" : "meta.stats" , "descriptionKey" : "meta.stats.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "StatsPanel" } ,
{ "id" : "meta_portrait" , "nameKey" : "meta.portrait" , "descriptionKey" : "meta.portrait.desc" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Meta" ] , "metaUnlock" : "PortraitPanel" } ,
{ "id" : "meta_layout" , "nameKey" : "meta.layout" , "descriptionKey" : "meta.layout.desc" , "category" : "Meta" , "rarity" : "Legendary" , "tags" : [ "Meta" ] , "metaUnlock" : "FullLayout" } ,
{ "id" : "meta_shortcuts" , "nameKey" : "meta.shortcuts" , "descriptionKey" : "meta.shortcuts.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "KeyboardShortcuts" } ,
{ "id" : "meta_animation" , "nameKey" : "meta.animation" , "descriptionKey" : "meta.animation.desc" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Meta" ] , "metaUnlock" : "BoxAnimation" } ,
{ "id" : "meta_crafting" , "nameKey" : "meta.crafting" , "descriptionKey" : "meta.crafting.desc" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Meta" ] , "metaUnlock" : "CraftingPanel" } ,
{ "id" : "meta_autosave" , "nameKey" : "meta.autosave" , "descriptionKey" : "meta.autosave.desc" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Meta" ] , "metaUnlock" : "AutoSave" } ,
2026-03-10 18:24:01 +01:00
{ "id" : "meta_resource_blood" , "nameKey" : "resource.blood" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "ResourceVisibility" ] , "resourceType" : "Blood" } ,
{ "id" : "meta_resource_gold" , "nameKey" : "resource.gold" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Meta" , "ResourceVisibility" ] , "resourceType" : "Gold" } ,
{ "id" : "meta_stat_strength" , "nameKey" : "stat.strength" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "StatVisibility" ] , "statType" : "Strength" } ,
{ "id" : "meta_stat_intelligence" , "nameKey" : "stat.intelligence" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "StatVisibility" ] , "statType" : "Intelligence" } ,
{ "id" : "meta_stat_luck" , "nameKey" : "stat.luck" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "StatVisibility" ] , "statType" : "Luck" } ,
{ "id" : "meta_stat_charisma" , "nameKey" : "stat.charisma" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "StatVisibility" ] , "statType" : "Charisma" } ,
{ "id" : "meta_stat_dexterity" , "nameKey" : "stat.dexterity" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "StatVisibility" ] , "statType" : "Dexterity" } ,
{ "id" : "meta_stat_wisdom" , "nameKey" : "stat.wisdom" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" , "StatVisibility" ] , "statType" : "Wisdom" } ,
{ "id" : "cosmetic_hair_short" , "nameKey" : "cosmetic.hair.short" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "Short" } ,
{ "id" : "cosmetic_hair_long" , "nameKey" : "cosmetic.hair.long" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "Long" } ,
{ "id" : "cosmetic_hair_ponytail" , "nameKey" : "cosmetic.hair.ponytail" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "Ponytail" } ,
{ "id" : "cosmetic_hair_braided" , "nameKey" : "cosmetic.hair.braided" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "Braided" } ,
{ "id" : "cosmetic_hair_cyberpunk" , "nameKey" : "cosmetic.hair.cyberpunk" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "Cyberpunk" } ,
{ "id" : "cosmetic_hair_fire" , "nameKey" : "cosmetic.hair.fire" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "Fire" } ,
{ "id" : "cosmetic_hair_stardust" , "nameKey" : "cosmetic.hair.stardust" , "category" : "Cosmetic" , "rarity" : "Legendary" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "StardustLegendary" } ,
{ "id" : "cosmetic_eyes_blue" , "nameKey" : "cosmetic.eyes.blue" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "Blue" } ,
{ "id" : "cosmetic_eyes_green" , "nameKey" : "cosmetic.eyes.green" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "Green" } ,
{ "id" : "cosmetic_eyes_redorange" , "nameKey" : "cosmetic.eyes.redorange" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "RedOrange" } ,
{ "id" : "cosmetic_eyes_brown" , "nameKey" : "cosmetic.eyes.brown" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "Brown" } ,
{ "id" : "cosmetic_eyes_sunglasses" , "nameKey" : "cosmetic.eyes.sunglasses" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "Sunglasses" } ,
{ "id" : "cosmetic_eyes_pilotglasses" , "nameKey" : "cosmetic.eyes.pilotglasses" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "PilotGlasses" } ,
{ "id" : "cosmetic_eyes_cybernetic" , "nameKey" : "cosmetic.eyes.cybernetic" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "CyberneticEyes" } ,
{ "id" : "cosmetic_eyes_magician" , "nameKey" : "cosmetic.eyes.magician" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Eyes" , "cosmeticValue" : "MagicianGlasses" } ,
{ "id" : "cosmetic_body_tshirt" , "nameKey" : "cosmetic.body.regulartshirt" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Body" , "cosmeticValue" : "RegularTShirt" } ,
{ "id" : "cosmetic_body_sexy" , "nameKey" : "cosmetic.body.sexytshirt" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Body" , "cosmeticValue" : "SexyTShirt" } ,
{ "id" : "cosmetic_body_suit" , "nameKey" : "cosmetic.body.suit" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Body" , "cosmeticValue" : "Suit" } ,
{ "id" : "cosmetic_body_armored" , "nameKey" : "cosmetic.body.armored" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Body" , "cosmeticValue" : "Armored" } ,
{ "id" : "cosmetic_body_robotic" , "nameKey" : "cosmetic.body.robotic" , "category" : "Cosmetic" , "rarity" : "Legendary" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Body" , "cosmeticValue" : "Robotic" } ,
{ "id" : "cosmetic_legs_short" , "nameKey" : "cosmetic.legs.short" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Legs" , "cosmeticValue" : "Short" } ,
{ "id" : "cosmetic_legs_panty" , "nameKey" : "cosmetic.legs.panty" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Legs" , "cosmeticValue" : "Panty" } ,
{ "id" : "cosmetic_legs_rocketboots" , "nameKey" : "cosmetic.legs.rocketboots" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Legs" , "cosmeticValue" : "RocketBoots" } ,
{ "id" : "cosmetic_legs_pegleg" , "nameKey" : "cosmetic.legs.pegleg" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Legs" , "cosmeticValue" : "PegLeg" } ,
{ "id" : "cosmetic_legs_tentacles" , "nameKey" : "cosmetic.legs.tentacles" , "category" : "Cosmetic" , "rarity" : "Legendary" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Legs" , "cosmeticValue" : "Tentacles" } ,
{ "id" : "cosmetic_arms_regular" , "nameKey" : "cosmetic.arms.regular" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Arms" , "cosmeticValue" : "Regular" } ,
{ "id" : "cosmetic_arms_mechanical" , "nameKey" : "cosmetic.arms.mechanical" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Arms" , "cosmeticValue" : "Mechanical" } ,
{ "id" : "cosmetic_arms_wings" , "nameKey" : "cosmetic.arms.wings" , "category" : "Cosmetic" , "rarity" : "Legendary" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Arms" , "cosmeticValue" : "Wings" } ,
{ "id" : "cosmetic_arms_extrapair" , "nameKey" : "cosmetic.arms.extrapair" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Cosmetic" ] , "cosmeticSlot" : "Arms" , "cosmeticValue" : "ExtraPair" } ,
{ "id" : "cosmetic_gender_error" , "nameKey" : "cosmetic.gender_error" , "category" : "Cosmetic" , "rarity" : "Mythic" , "tags" : [ "Cosmetic" , "Error" , "Easter Egg" ] } ,
{ "id" : "tint_cyan" , "nameKey" : "tint.cyan" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Tint" ] , "tintColor" : "Cyan" } ,
{ "id" : "tint_orange" , "nameKey" : "tint.orange" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Tint" ] , "tintColor" : "Orange" } ,
{ "id" : "tint_purple" , "nameKey" : "tint.purple" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Tint" ] , "tintColor" : "Purple" } ,
{ "id" : "tint_warmpink" , "nameKey" : "tint.warmpink" , "category" : "Cosmetic" , "rarity" : "Uncommon" , "tags" : [ "Tint" ] , "tintColor" : "WarmPink" } ,
{ "id" : "tint_light" , "nameKey" : "tint.light" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Tint" ] , "tintColor" : "Light" } ,
{ "id" : "tint_dark" , "nameKey" : "tint.dark" , "category" : "Cosmetic" , "rarity" : "Common" , "tags" : [ "Tint" ] , "tintColor" : "Dark" } ,
{ "id" : "tint_rainbow" , "nameKey" : "tint.rainbow" , "category" : "Cosmetic" , "rarity" : "Legendary" , "tags" : [ "Tint" ] , "tintColor" : "Rainbow" } ,
{ "id" : "tint_neon" , "nameKey" : "tint.neon" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Tint" ] , "tintColor" : "Neon" } ,
{ "id" : "tint_silver" , "nameKey" : "tint.silver" , "category" : "Cosmetic" , "rarity" : "Rare" , "tags" : [ "Tint" ] , "tintColor" : "Silver" } ,
{ "id" : "tint_gold" , "nameKey" : "tint.gold" , "category" : "Cosmetic" , "rarity" : "Epic" , "tags" : [ "Tint" ] , "tintColor" : "Gold" } ,
{ "id" : "tint_void" , "nameKey" : "tint.void" , "category" : "Cosmetic" , "rarity" : "Legendary" , "tags" : [ "Tint" ] , "tintColor" : "Void" } ,
{ "id" : "blood_vial" , "nameKey" : "item.blood_vial" , "category" : "Consumable" , "rarity" : "Rare" , "tags" : [ "Consumable" ] , "resourceType" : "Blood" , "resourceAmount" : 5 } ,
{ "id" : "gold_pouch" , "nameKey" : "item.gold_pouch" , "category" : "Consumable" , "rarity" : "Common" , "tags" : [ "Consumable" ] , "resourceType" : "Gold" , "resourceAmount" : 50 } ,
{ "id" : "space_badge" , "nameKey" : "item.space.badge" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Space" ] , "adventureTheme" : "Space" } ,
{ "id" : "space_phone" , "nameKey" : "item.space.phone" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Space" , "PhoneNumber" ] , "adventureTheme" : "Space" } ,
{ "id" : "space_key" , "nameKey" : "item.space.key" , "category" : "Key" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Space" , "Key" ] , "adventureTheme" : "Space" } ,
{ "id" : "space_map" , "nameKey" : "item.space.map" , "category" : "Map" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Space" ] , "adventureTheme" : "Space" } ,
{ "id" : "space_coordinates" , "nameKey" : "item.space.coordinates" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Space" , "Coordinates" ] , "adventureTheme" : "Space" } ,
{ "id" : "medieval_crest" , "nameKey" : "item.medieval.crest" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Medieval" ] , "adventureTheme" : "Medieval" } ,
{ "id" : "medieval_sword" , "nameKey" : "item.medieval.sword" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Medieval" ] , "adventureTheme" : "Medieval" } ,
{ "id" : "medieval_scroll" , "nameKey" : "item.medieval.scroll" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Medieval" ] , "adventureTheme" : "Medieval" } ,
{ "id" : "medieval_seal" , "nameKey" : "item.medieval.seal" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Medieval" ] , "adventureTheme" : "Medieval" } ,
{ "id" : "medieval_key" , "nameKey" : "item.medieval.key" , "category" : "Key" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Medieval" , "Key" ] , "adventureTheme" : "Medieval" } ,
{ "id" : "pirate_map" , "nameKey" : "item.pirate.map" , "category" : "Map" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Pirate" ] , "adventureTheme" : "Pirate" } ,
{ "id" : "pirate_compass" , "nameKey" : "item.pirate.compass" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Pirate" ] , "adventureTheme" : "Pirate" } ,
{ "id" : "pirate_feather" , "nameKey" : "item.pirate.feather" , "category" : "AdventureToken" , "rarity" : "Common" , "tags" : [ "Adventure" , "Pirate" ] , "adventureTheme" : "Pirate" } ,
Remove 6 unused resource types and add item utility snapshot test
Strip Health, Mana, Food, Stamina, Oxygen, Energy — only Gold and Blood
remain as they serve as adventure gates (Contemporary ≥30, DarkFantasy ≥20).
Remove 22 orphaned items, 5 recipes, and the AlchemyTable workstation.
Replace energy_cell in rocket_boots recipe with cosmic_shard.
Change box_endgame condition from AllResourcesVisible to BoxesOpenedAbove:500.
Add ItemUtilitySnapshot test that maps every item to its usage contexts
(loot sources, crafting, interactions, adventures) and generates a report.
DEBUG overwrites the snapshot; RELEASE asserts no changes.
Update specifications.md and CLAUDE.md to reflect resource cleanup.
Remove obsolete bugs.md and refactoring_plan.md.
2026-03-15 15:05:45 +01:00
{ "id" : "pirate_rum" , "nameKey" : "item.pirate.rum" , "category" : "AdventureToken" , "rarity" : "Uncommon" , "tags" : [ "Adventure" , "Pirate" ] , "adventureTheme" : "Pirate" } ,
2026-03-10 18:24:01 +01:00
{ "id" : "pirate_key" , "nameKey" : "item.pirate.key" , "category" : "Key" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Pirate" , "Key" ] , "adventureTheme" : "Pirate" } ,
{ "id" : "contemporary_phone" , "nameKey" : "item.contemporary.phone" , "category" : "AdventureToken" , "rarity" : "Common" , "tags" : [ "Adventure" , "Contemporary" , "PhoneNumber" ] , "adventureTheme" : "Contemporary" } ,
{ "id" : "contemporary_card" , "nameKey" : "item.contemporary.card" , "category" : "AdventureToken" , "rarity" : "Uncommon" , "tags" : [ "Adventure" , "Contemporary" ] , "adventureTheme" : "Contemporary" } ,
{ "id" : "contemporary_usb" , "nameKey" : "item.contemporary.usb" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Contemporary" ] , "adventureTheme" : "Contemporary" } ,
{ "id" : "contemporary_key" , "nameKey" : "item.contemporary.key" , "category" : "Key" , "rarity" : "Uncommon" , "tags" : [ "Adventure" , "Contemporary" , "Key" ] , "adventureTheme" : "Contemporary" } ,
{ "id" : "contemporary_badge" , "nameKey" : "item.contemporary.badge" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Contemporary" , "Badge" ] , "adventureTheme" : "Contemporary" } ,
{ "id" : "sentimental_letter" , "nameKey" : "item.sentimental.letter" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Sentimental" ] , "adventureTheme" : "Sentimental" } ,
{ "id" : "sentimental_flower" , "nameKey" : "item.sentimental.flower" , "category" : "AdventureToken" , "rarity" : "Common" , "tags" : [ "Adventure" , "Sentimental" ] , "adventureTheme" : "Sentimental" } ,
{ "id" : "sentimental_teddy" , "nameKey" : "item.sentimental.teddy" , "category" : "AdventureToken" , "rarity" : "Uncommon" , "tags" : [ "Adventure" , "Sentimental" ] , "adventureTheme" : "Sentimental" } ,
{ "id" : "sentimental_phone" , "nameKey" : "item.sentimental.phone" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Sentimental" , "PhoneNumber" ] , "adventureTheme" : "Sentimental" } ,
{ "id" : "prehistoric_tooth" , "nameKey" : "item.prehistoric.tooth" , "category" : "AdventureToken" , "rarity" : "Uncommon" , "tags" : [ "Adventure" , "Prehistoric" ] , "adventureTheme" : "Prehistoric" } ,
{ "id" : "prehistoric_amber" , "nameKey" : "item.prehistoric.amber" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Prehistoric" ] , "adventureTheme" : "Prehistoric" } ,
{ "id" : "prehistoric_fossil" , "nameKey" : "item.prehistoric.fossil" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Prehistoric" ] , "adventureTheme" : "Prehistoric" } ,
{ "id" : "cosmic_shard" , "nameKey" : "item.cosmic.shard" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Cosmic" ] , "adventureTheme" : "Cosmic" } ,
{ "id" : "cosmic_crystal" , "nameKey" : "item.cosmic.crystal" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Cosmic" ] , "adventureTheme" : "Cosmic" } ,
{ "id" : "cosmic_core" , "nameKey" : "item.cosmic.core" , "category" : "AdventureToken" , "rarity" : "Legendary" , "tags" : [ "Adventure" , "Cosmic" ] , "adventureTheme" : "Cosmic" } ,
{ "id" : "microscopic_bacteria" , "nameKey" : "item.microscopic.bacteria" , "category" : "AdventureToken" , "rarity" : "Uncommon" , "tags" : [ "Adventure" , "Microscopic" ] , "adventureTheme" : "Microscopic" } ,
{ "id" : "microscopic_dna" , "nameKey" : "item.microscopic.dna" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "Microscopic" ] , "adventureTheme" : "Microscopic" } ,
{ "id" : "microscopic_prion" , "nameKey" : "item.microscopic.prion" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "Microscopic" ] , "adventureTheme" : "Microscopic" } ,
{ "id" : "darkfantasy_ring" , "nameKey" : "item.darkfantasy.ring" , "category" : "AdventureToken" , "rarity" : "Rare" , "tags" : [ "Adventure" , "DarkFantasy" ] , "adventureTheme" : "DarkFantasy" } ,
{ "id" : "darkfantasy_grimoire" , "nameKey" : "item.darkfantasy.grimoire" , "category" : "AdventureToken" , "rarity" : "Epic" , "tags" : [ "Adventure" , "DarkFantasy" ] , "adventureTheme" : "DarkFantasy" } ,
{ "id" : "darkfantasy_gem" , "nameKey" : "item.darkfantasy.gem" , "category" : "AdventureToken" , "rarity" : "Legendary" , "tags" : [ "Adventure" , "DarkFantasy" ] , "adventureTheme" : "DarkFantasy" } ,
{ "id" : "darkfantasy_key" , "nameKey" : "item.darkfantasy.key" , "category" : "Key" , "rarity" : "Rare" , "tags" : [ "Adventure" , "DarkFantasy" , "Key" ] , "adventureTheme" : "DarkFantasy" } ,
{ "id" : "mysterious_key" , "nameKey" : "item.mysterious_key" , "descriptionKey" : "item.mysterious_key.desc" , "category" : "Key" , "rarity" : "Rare" , "tags" : [ "Key" ] } ,
2026-03-13 23:30:04 +01:00
{ "id" : "lore_1" , "nameKey" : "lore.name_1" , "category" : "LoreFragment" , "rarity" : "Uncommon" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_2" , "nameKey" : "lore.name_2" , "category" : "LoreFragment" , "rarity" : "Uncommon" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_3" , "nameKey" : "lore.name_3" , "category" : "LoreFragment" , "rarity" : "Rare" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_4" , "nameKey" : "lore.name_4" , "category" : "LoreFragment" , "rarity" : "Rare" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_5" , "nameKey" : "lore.name_5" , "category" : "LoreFragment" , "rarity" : "Rare" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_6" , "nameKey" : "lore.name_6" , "category" : "LoreFragment" , "rarity" : "Epic" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_7" , "nameKey" : "lore.name_7" , "category" : "LoreFragment" , "rarity" : "Rare" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_8" , "nameKey" : "lore.name_8" , "category" : "LoreFragment" , "rarity" : "Rare" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_9" , "nameKey" : "lore.name_9" , "category" : "LoreFragment" , "rarity" : "Rare" , "tags" : [ "Lore" ] } ,
{ "id" : "lore_10" , "nameKey" : "lore.name_10" , "category" : "LoreFragment" , "rarity" : "Epic" , "tags" : [ "Lore" ] } ,
2026-03-10 18:24:01 +01:00
{ "id" : "material_wood_raw" , "nameKey" : "material.wood" , "category" : "Material" , "rarity" : "Common" , "tags" : [ "Material" ] , "materialType" : "Wood" , "materialForm" : "Raw" } ,
{ "id" : "material_wood_refined" , "nameKey" : "material.wood" , "category" : "Material" , "rarity" : "Common" , "tags" : [ "Material" ] , "materialType" : "Wood" , "materialForm" : "Refined" } ,
{ "id" : "material_wood_nail" , "nameKey" : "material.wood" , "category" : "Material" , "rarity" : "Common" , "tags" : [ "Material" ] , "materialType" : "Wood" , "materialForm" : "Nail" } ,
{ "id" : "material_bronze_raw" , "nameKey" : "material.bronze" , "category" : "Material" , "rarity" : "Common" , "tags" : [ "Material" ] , "materialType" : "Bronze" , "materialForm" : "Raw" } ,
{ "id" : "material_bronze_ingot" , "nameKey" : "material.bronze" , "category" : "Material" , "rarity" : "Uncommon" , "tags" : [ "Material" ] , "materialType" : "Bronze" , "materialForm" : "Ingot" } ,
{ "id" : "material_iron_raw" , "nameKey" : "material.iron" , "category" : "Material" , "rarity" : "Common" , "tags" : [ "Material" ] , "materialType" : "Iron" , "materialForm" : "Raw" } ,
{ "id" : "material_iron_ingot" , "nameKey" : "material.iron" , "category" : "Material" , "rarity" : "Uncommon" , "tags" : [ "Material" ] , "materialType" : "Iron" , "materialForm" : "Ingot" } ,
{ "id" : "material_steel_raw" , "nameKey" : "material.steel" , "category" : "Material" , "rarity" : "Uncommon" , "tags" : [ "Material" ] , "materialType" : "Steel" , "materialForm" : "Raw" } ,
{ "id" : "material_steel_ingot" , "nameKey" : "material.steel" , "category" : "Material" , "rarity" : "Rare" , "tags" : [ "Material" ] , "materialType" : "Steel" , "materialForm" : "Ingot" } ,
{ "id" : "material_titanium_raw" , "nameKey" : "material.titanium" , "category" : "Material" , "rarity" : "Rare" , "tags" : [ "Material" ] , "materialType" : "Titanium" , "materialForm" : "Raw" } ,
{ "id" : "material_titanium_ingot" , "nameKey" : "material.titanium" , "category" : "Material" , "rarity" : "Epic" , "tags" : [ "Material" ] , "materialType" : "Titanium" , "materialForm" : "Ingot" } ,
{ "id" : "material_diamond_raw" , "nameKey" : "material.diamond" , "category" : "Material" , "rarity" : "Epic" , "tags" : [ "Material" ] , "materialType" : "Diamond" , "materialForm" : "Raw" } ,
{ "id" : "material_diamond_gem" , "nameKey" : "material.diamond" , "category" : "Material" , "rarity" : "Legendary" , "tags" : [ "Material" ] , "materialType" : "Diamond" , "materialForm" : "Gem" } ,
{ "id" : "material_carbonfiber_raw" , "nameKey" : "material.carbonfiber" , "category" : "Material" , "rarity" : "Rare" , "tags" : [ "Material" ] , "materialType" : "CarbonFiber" , "materialForm" : "Raw" } ,
Add complete content: recipes, French translations, music/cookie events
- Add 34 crafting recipes (materials, consumables, cosmetics, adventures, boxes)
- Add French translations for all 8 remaining adventures
- Add missing item definitions (resource_max_*, music_melody, cookie_fortune)
- Add MusicPlayedEvent and CookieFortuneEvent for special box types
- Make box_story, box_cookie, box_music reachable from box_of_boxes
- Fix content file copying in csproj (None -> Content)
- Add global.json pinning .NET 10 SDK
- Add graceful Console.Clear() error handling
- Add recipe localization keys (EN/FR)
- Add adventure localization keys (EN/FR)
2026-03-10 18:45:54 +01:00
{ "id" : "material_carbonfiber_sheet" , "nameKey" : "material.carbonfiber" , "category" : "Material" , "rarity" : "Epic" , "tags" : [ "Material" ] , "materialType" : "CarbonFiber" , "materialForm" : "Sheet" } ,
{ "id" : "resource_max_gold" , "nameKey" : "item.resource_max_gold" , "category" : "Consumable" , "rarity" : "Rare" , "tags" : [ "Improvement" , "ResourceMax" ] , "resourceType" : "Gold" , "resourceMaxIncrease" : 50 } ,
{ "id" : "resource_max_blood" , "nameKey" : "item.resource_max_blood" , "category" : "Consumable" , "rarity" : "Rare" , "tags" : [ "Improvement" , "ResourceMax" ] , "resourceType" : "Blood" , "resourceMaxIncrease" : 5 } ,
{ "id" : "music_melody" , "nameKey" : "item.music_melody" , "category" : "Consumable" , "rarity" : "Rare" , "tags" : [ "Music" , "Fun" ] , "description" : "A melody plays from the box. Console.Beep never sounded so good." } ,
Fix bugs, add endgame/completion features, adventure dedup, and comprehensive renderer tests
Bug fixes:
- Fix double "NEW FEATURE UNLOCKED" message and broken enum-to-key mapping for all UIFeatures
- Fix Spectre markup crash when opening inventory with colors unlocked (unescaped rarity brackets)
- Fix latent Spectre markup crash in ResourcePanel (unescaped bar brackets)
- Fix WeightedRandom.PickMultiple picking with replacement causing duplicate drops
- Fix double AddItem bug (BoxEngine + RenderEvents both adding to state)
- Add StatType and FontStyle fields to ItemDefinition (were in JSON but missing from C# record)
New features:
- Endgame box (Mythic) that appears when all 8 resources are discovered, contains Crown of Completion
- Completion percentage tracker as mid-game meta unlock (tier 3), shown in both renderers
- Adventure pool depletion: adventure sub-boxes with already-unlocked themes are removed from loot pool
- Global error handling with log file output (openthebox-error.log)
- Tiered meta progression: 5 sequential meta boxes replacing single box_meta
New tests (180 new, 228 total):
- 5 panel rendering test classes covering all enum values (Portrait, Resource, Stats, Inventory, Chat)
- RenderContext and RendererFactory logic tests
- SpectreRenderer output tests across 4 context configurations
- BasicRenderer output and input method tests
- Simulation state mutation and full-run completion tests
2026-03-11 09:34:30 +01:00
{ "id" : "cookie_fortune" , "nameKey" : "item.cookie_fortune" , "category" : "Consumable" , "rarity" : "Common" , "tags" : [ "Cookie" , "Fun" ] , "description" : "A fortune cookie with wisdom of questionable origin." } ,
2026-03-13 23:42:51 +01:00
{ "id" : "meta_completion" , "nameKey" : "meta.completion" , "descriptionKey" : "meta.completion.desc" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Meta" ] , "metaUnlock" : "CompletionTracker" } ,
Fix bugs, add endgame/completion features, adventure dedup, and comprehensive renderer tests
Bug fixes:
- Fix double "NEW FEATURE UNLOCKED" message and broken enum-to-key mapping for all UIFeatures
- Fix Spectre markup crash when opening inventory with colors unlocked (unescaped rarity brackets)
- Fix latent Spectre markup crash in ResourcePanel (unescaped bar brackets)
- Fix WeightedRandom.PickMultiple picking with replacement causing duplicate drops
- Fix double AddItem bug (BoxEngine + RenderEvents both adding to state)
- Add StatType and FontStyle fields to ItemDefinition (were in JSON but missing from C# record)
New features:
- Endgame box (Mythic) that appears when all 8 resources are discovered, contains Crown of Completion
- Completion percentage tracker as mid-game meta unlock (tier 3), shown in both renderers
- Adventure pool depletion: adventure sub-boxes with already-unlocked themes are removed from loot pool
- Global error handling with log file output (openthebox-error.log)
- Tiered meta progression: 5 sequential meta boxes replacing single box_meta
New tests (180 new, 228 total):
- 5 panel rendering test classes covering all enum values (Portrait, Resource, Stats, Inventory, Chat)
- RenderContext and RendererFactory logic tests
- SpectreRenderer output tests across 4 context configurations
- BasicRenderer output and input method tests
- Simulation state mutation and full-run completion tests
2026-03-11 09:34:30 +01:00
2026-03-11 17:50:37 +01:00
{ "id" : "endgame_crown" , "nameKey" : "item.endgame_crown" , "category" : "Cosmetic" , "rarity" : "Mythic" , "tags" : [ "Cosmetic" , "Endgame" ] , "cosmeticSlot" : "Hair" , "cosmeticValue" : "crown" } ,
{ "id" : "destiny_token" , "nameKey" : "item.destiny_token" , "category" : "AdventureToken" , "rarity" : "Mythic" , "tags" : [ "Adventure" , "Endgame" ] , "adventureTheme" : "Destiny" } ,
{ "id" : "blueprint_foundry" , "nameKey" : "item.blueprint.foundry" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "Foundry" } ,
{ "id" : "blueprint_workbench" , "nameKey" : "item.blueprint.workbench" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "Workbench" } ,
{ "id" : "blueprint_furnace" , "nameKey" : "item.blueprint.furnace" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "Furnace" } ,
{ "id" : "blueprint_forge" , "nameKey" : "item.blueprint.forge" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "Forge" } ,
{ "id" : "blueprint_engineer" , "nameKey" : "item.blueprint.engineer" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "EngineerDesk" } ,
{ "id" : "blueprint_drawing" , "nameKey" : "item.blueprint.drawing" , "category" : "Meta" , "rarity" : "Uncommon" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "DrawingTable" } ,
{ "id" : "blueprint_engraving" , "nameKey" : "item.blueprint.engraving" , "category" : "Meta" , "rarity" : "Rare" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "EngravingBench" } ,
{ "id" : "blueprint_pentacle" , "nameKey" : "item.blueprint.pentacle" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "TransformationPentacle" } ,
{ "id" : "blueprint_printer" , "nameKey" : "item.blueprint.printer" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "Printer3D" } ,
{ "id" : "blueprint_synthesizer" , "nameKey" : "item.blueprint.synthesizer" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "MatterSynthesizer" } ,
{ "id" : "blueprint_genetic" , "nameKey" : "item.blueprint.genetic" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "GeneticModStation" } ,
{ "id" : "blueprint_stasis" , "nameKey" : "item.blueprint.stasis" , "category" : "Meta" , "rarity" : "Epic" , "tags" : [ "Blueprint" , "Workstation" ] , "workstationType" : "StasisChamber" }
2026-03-10 18:24:01 +01:00
]