Add two-stage charged-crystal demo and original art set.

This commit is contained in:
2026-08-13 13:18:41 +08:00
commit e9f5f81f46
686 changed files with 25601 additions and 0 deletions
+832
View File
@@ -0,0 +1,832 @@
{
"schemaVersion": 1,
"title": "魔力工坊原创美术目录",
"revision": "0.3.0",
"style": "assets/generated/STYLE.md",
"replaces": "Kenney Factory Kit 3.0 in the playable demo",
"items": [
{
"id": "star_iron_ore",
"name": "星铁矿",
"category": "raw",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/star_iron_ore.png",
"render": "assets/generated/renders/items/star_iron_ore.png"
},
{
"id": "star_iron_ingot",
"name": "星铁锭",
"category": "material",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/star_iron_ingot.png",
"render": "assets/generated/renders/items/star_iron_ingot.png"
},
{
"id": "rune_clay",
"name": "符文黏土",
"category": "raw",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/rune_clay.png",
"render": "assets/generated/renders/items/rune_clay.png"
},
{
"id": "raw_mana_crystal",
"name": "粗魔晶",
"category": "raw",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/raw_mana_crystal.png",
"render": "assets/generated/renders/items/raw_mana_crystal.png"
},
{
"id": "awakened_crystal",
"name": "醒魔晶",
"category": "material",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/awakened_crystal.png",
"render": "assets/generated/renders/items/awakened_crystal.png"
},
{
"id": "ley_water",
"name": "地脉水",
"category": "fluid",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/ley_water.png",
"render": "assets/generated/renders/items/ley_water.png"
},
{
"id": "blank_tablet",
"name": "空白论证板",
"category": "component",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/blank_tablet.png",
"render": "assets/generated/renders/items/blank_tablet.png"
},
{
"id": "dawn_rune",
"name": "曙相符文",
"category": "component",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/dawn_rune.png",
"render": "assets/generated/renders/items/dawn_rune.png"
},
{
"id": "tide_rune",
"name": "潮相符文",
"category": "component",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/tide_rune.png",
"render": "assets/generated/renders/items/tide_rune.png"
},
{
"id": "dusk_rune",
"name": "暮相符文",
"category": "component",
"stage": "t0",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/dusk_rune.png",
"render": "assets/generated/renders/items/dusk_rune.png"
},
{
"id": "inscription_proof",
"name": "刻印论证 K",
"category": "proof",
"stage": "t1",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/inscription_proof.png",
"render": "assets/generated/renders/items/inscription_proof.png"
},
{
"id": "true_name_thread",
"name": "真名丝",
"category": "component",
"stage": "t1",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/true_name_thread.png",
"render": "assets/generated/renders/items/true_name_thread.png"
},
{
"id": "clay_core",
"name": "黏土役偶核",
"category": "component",
"stage": "t1",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/clay_core.png",
"render": "assets/generated/renders/items/clay_core.png"
},
{
"id": "clay_construct",
"name": "黏土役偶",
"category": "construct",
"stage": "t1",
"biome": "old_kingdom",
"icon": "assets/generated/icons/items/clay_construct.png",
"render": "assets/generated/renders/items/clay_construct.png"
},
{
"id": "wild_proof_seed",
"name": "野生论证种",
"category": "raw",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/wild_proof_seed.png",
"render": "assets/generated/renders/items/wild_proof_seed.png"
},
{
"id": "proof_seed",
"name": "论证种",
"category": "catalyst",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/proof_seed.png",
"render": "assets/generated/renders/items/proof_seed.png"
},
{
"id": "mature_proof_seed",
"name": "成熟论证种",
"category": "state",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/mature_proof_seed.png",
"render": "assets/generated/renders/items/mature_proof_seed.png"
},
{
"id": "living_wood",
"name": "活木",
"category": "material",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/living_wood.png",
"render": "assets/generated/renders/items/living_wood.png"
},
{
"id": "fairy_dew",
"name": "妖精露",
"category": "fluid",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/fairy_dew.png",
"render": "assets/generated/renders/items/fairy_dew.png"
},
{
"id": "root_fiber",
"name": "根脉纤维",
"category": "component",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/root_fiber.png",
"render": "assets/generated/renders/items/root_fiber.png"
},
{
"id": "life_proof",
"name": "生机论证 L",
"category": "proof",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/life_proof.png",
"render": "assets/generated/renders/items/life_proof.png"
},
{
"id": "blight",
"name": "枯萎块",
"category": "byproduct",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/blight.png",
"render": "assets/generated/renders/items/blight.png"
},
{
"id": "life_anchor_core",
"name": "生命锚核",
"category": "ritual",
"stage": "t2_life",
"biome": "verdant_forest",
"icon": "assets/generated/icons/items/life_anchor_core.png",
"render": "assets/generated/renders/items/life_anchor_core.png"
},
{
"id": "soul_ember",
"name": "游荡灵火",
"category": "raw",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/soul_ember.png",
"render": "assets/generated/renders/items/soul_ember.png"
},
{
"id": "memory_blank",
"name": "记忆坯",
"category": "component",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/memory_blank.png",
"render": "assets/generated/renders/items/memory_blank.png"
},
{
"id": "faded_memory",
"name": "褪色记忆",
"category": "state",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/faded_memory.png",
"render": "assets/generated/renders/items/faded_memory.png"
},
{
"id": "bone_dust",
"name": "骨尘",
"category": "byproduct",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/bone_dust.png",
"render": "assets/generated/renders/items/bone_dust.png"
},
{
"id": "recovered_memory",
"name": "亡者记忆",
"category": "material",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/recovered_memory.png",
"render": "assets/generated/renders/items/recovered_memory.png"
},
{
"id": "death_proof",
"name": "幽冥论证 D",
"category": "proof",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/death_proof.png",
"render": "assets/generated/renders/items/death_proof.png"
},
{
"id": "death_anchor_core",
"name": "亡者锚核",
"category": "ritual",
"stage": "t2_death",
"biome": "silent_dead",
"icon": "assets/generated/icons/items/death_anchor_core.png",
"render": "assets/generated/renders/items/death_anchor_core.png"
},
{
"id": "twilight_reagent",
"name": "暮光合剂",
"category": "fluid",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/twilight_reagent.png",
"render": "assets/generated/renders/items/twilight_reagent.png"
},
{
"id": "refractory_coating",
"name": "焚风护层",
"category": "component",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/refractory_coating.png",
"render": "assets/generated/renders/items/refractory_coating.png"
},
{
"id": "phase_medium",
"name": "炼相介质",
"category": "material",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/phase_medium.png",
"render": "assets/generated/renders/items/phase_medium.png"
},
{
"id": "cold_phase_medium",
"name": "低温炼相介质",
"category": "state",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/cold_phase_medium.png",
"render": "assets/generated/renders/items/cold_phase_medium.png"
},
{
"id": "molten_phase_medium",
"name": "熔融炼相介质",
"category": "state",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/molten_phase_medium.png",
"render": "assets/generated/renders/items/molten_phase_medium.png"
},
{
"id": "charged_phase_medium",
"name": "充能炼相介质",
"category": "state",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/charged_phase_medium.png",
"render": "assets/generated/renders/items/charged_phase_medium.png"
},
{
"id": "elemental_proof",
"name": "元素论证 E",
"category": "proof",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/elemental_proof.png",
"render": "assets/generated/renders/items/elemental_proof.png"
},
{
"id": "slag",
"name": "炼相熔渣",
"category": "byproduct",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/slag.png",
"render": "assets/generated/renders/items/slag.png"
},
{
"id": "dragon_glass",
"name": "龙玻璃",
"category": "material",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/dragon_glass.png",
"render": "assets/generated/renders/items/dragon_glass.png"
},
{
"id": "ember_core",
"name": "熔火核心",
"category": "ritual",
"stage": "t3",
"biome": "ember_wastes",
"icon": "assets/generated/icons/items/ember_core.png",
"render": "assets/generated/renders/items/ember_core.png"
},
{
"id": "name_strip_blank",
"name": "空白真名试片",
"category": "component",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/name_strip_blank.png",
"render": "assets/generated/renders/items/name_strip_blank.png"
},
{
"id": "named_test_strip",
"name": "命名试片",
"category": "catalyst",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/named_test_strip.png",
"render": "assets/generated/renders/items/named_test_strip.png"
},
{
"id": "returned_test_strip",
"name": "归返试片",
"category": "state",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/returned_test_strip.png",
"render": "assets/generated/renders/items/returned_test_strip.png"
},
{
"id": "mirror_echo",
"name": "镜像残响",
"category": "material",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/mirror_echo.png",
"render": "assets/generated/renders/items/mirror_echo.png"
},
{
"id": "shadow_matter",
"name": "影质",
"category": "byproduct",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/shadow_matter.png",
"render": "assets/generated/renders/items/shadow_matter.png"
},
{
"id": "dimension_proof",
"name": "维度论证 S",
"category": "proof",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/dimension_proof.png",
"render": "assets/generated/renders/items/dimension_proof.png"
},
{
"id": "mirror_coordinate",
"name": "镜界坐标",
"category": "component",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/mirror_coordinate.png",
"render": "assets/generated/renders/items/mirror_coordinate.png"
},
{
"id": "space_anchor_core",
"name": "空间锚核",
"category": "ritual",
"stage": "t4",
"biome": "mirror_marsh",
"icon": "assets/generated/icons/items/space_anchor_core.png",
"render": "assets/generated/renders/items/space_anchor_core.png"
},
{
"id": "boundary_stone",
"name": "环界石",
"category": "structure",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/boundary_stone.png",
"render": "assets/generated/renders/items/boundary_stone.png"
},
{
"id": "life_offering",
"name": "生命供物",
"category": "ritual",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/life_offering.png",
"render": "assets/generated/renders/items/life_offering.png"
},
{
"id": "death_offering",
"name": "亡者供物",
"category": "ritual",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/death_offering.png",
"render": "assets/generated/renders/items/death_offering.png"
},
{
"id": "ember_offering",
"name": "熔火供物",
"category": "ritual",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/ember_offering.png",
"render": "assets/generated/renders/items/ember_offering.png"
},
{
"id": "mirror_offering",
"name": "镜界供物",
"category": "ritual",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/mirror_offering.png",
"render": "assets/generated/renders/items/mirror_offering.png"
},
{
"id": "entropy_crystal",
"name": "熵晶",
"category": "component",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/entropy_crystal.png",
"render": "assets/generated/renders/items/entropy_crystal.png"
},
{
"id": "walker_construct",
"name": "界行者役偶",
"category": "construct",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/walker_construct.png",
"render": "assets/generated/renders/items/walker_construct.png"
},
{
"id": "first_warp_record",
"name": "首次折跃记录",
"category": "record",
"stage": "t5",
"biome": "rift_gate",
"icon": "assets/generated/icons/items/first_warp_record.png",
"render": "assets/generated/renders/items/first_warp_record.png"
},
{
"id": "tribute_block",
"name": "异界贡块",
"category": "material",
"stage": "post",
"biome": "post_rift",
"icon": "assets/generated/icons/items/tribute_block.png",
"render": "assets/generated/renders/items/tribute_block.png"
},
{
"id": "paradox_residue",
"name": "悖论残渣",
"category": "byproduct",
"stage": "post",
"biome": "post_rift",
"icon": "assets/generated/icons/items/paradox_residue.png",
"render": "assets/generated/renders/items/paradox_residue.png"
},
{
"id": "paradox_proof",
"name": "悖论论证 P",
"category": "proof",
"stage": "post",
"biome": "post_rift",
"icon": "assets/generated/icons/items/paradox_proof.png",
"render": "assets/generated/renders/items/paradox_proof.png"
},
{
"id": "anomaly_relic",
"name": "异界遗物",
"category": "relic",
"stage": "post",
"biome": "post_rift",
"icon": "assets/generated/icons/items/anomaly_relic.png",
"render": "assets/generated/renders/items/anomaly_relic.png"
}
],
"machines": [
{
"id": "rough_furnace",
"name": "粗炼炉",
"stage": "t0",
"biome": "old_kingdom",
"render": "assets/generated/renders/machines/rough_furnace.png"
},
{
"id": "crystal_refinery",
"name": "晶体精炼机",
"stage": "t0",
"biome": "old_kingdom",
"render": "assets/generated/renders/machines/crystal_refinery.png"
},
{
"id": "rune_press",
"name": "符文压印台",
"stage": "t0",
"biome": "old_kingdom",
"render": "assets/generated/renders/machines/rune_press.png"
},
{
"id": "inscription_array",
"name": "三相刻印阵",
"stage": "t1",
"biome": "old_kingdom",
"render": "assets/generated/renders/machines/inscription_array.png"
},
{
"id": "clay_assembly",
"name": "黏土役偶阵",
"stage": "t1",
"biome": "old_kingdom",
"render": "assets/generated/renders/machines/clay_assembly.png"
},
{
"id": "seed_bed",
"name": "共生苗床",
"stage": "t2_life",
"biome": "verdant_forest",
"render": "assets/generated/renders/machines/seed_bed.png"
},
{
"id": "harvest_circle",
"name": "采收回种环",
"stage": "t2_life",
"biome": "verdant_forest",
"render": "assets/generated/renders/machines/harvest_circle.png"
},
{
"id": "root_loom",
"name": "根脉织机",
"stage": "t2_life",
"biome": "verdant_forest",
"render": "assets/generated/renders/machines/root_loom.png"
},
{
"id": "decay_chamber",
"name": "可控腐朽室",
"stage": "t2_death",
"biome": "silent_dead",
"render": "assets/generated/renders/machines/decay_chamber.png"
},
{
"id": "soul_lamp",
"name": "魂灯召回台",
"stage": "t2_death",
"biome": "silent_dead",
"render": "assets/generated/renders/machines/soul_lamp.png"
},
{
"id": "twilight_crucible",
"name": "暮光坩埚",
"stage": "t3",
"biome": "ember_wastes",
"render": "assets/generated/renders/machines/twilight_crucible.png"
},
{
"id": "thermal_phase_furnace",
"name": "热相炉",
"stage": "t3",
"biome": "ember_wastes",
"render": "assets/generated/renders/machines/thermal_phase_furnace.png"
},
{
"id": "frost_gate",
"name": "霜门",
"stage": "t3",
"biome": "ember_wastes",
"render": "assets/generated/renders/machines/frost_gate.png"
},
{
"id": "charge_altar",
"name": "充能祭坛",
"stage": "t3",
"biome": "ember_wastes",
"render": "assets/generated/renders/machines/charge_altar.png"
},
{
"id": "dragon_kiln",
"name": "龙玻璃窑",
"stage": "t3",
"biome": "ember_wastes",
"render": "assets/generated/renders/machines/dragon_kiln.png"
},
{
"id": "true_name_loom",
"name": "真名织机",
"stage": "t4",
"biome": "mirror_marsh",
"render": "assets/generated/renders/machines/true_name_loom.png"
},
{
"id": "mirror_endpoint",
"name": "镜像端点",
"stage": "t4",
"biome": "mirror_marsh",
"render": "assets/generated/renders/machines/mirror_endpoint.png"
},
{
"id": "echo_separator",
"name": "残响分离器",
"stage": "t4",
"biome": "mirror_marsh",
"render": "assets/generated/renders/machines/echo_separator.png"
},
{
"id": "identity_forge",
"name": "同一性锻台",
"stage": "t4",
"biome": "mirror_marsh",
"render": "assets/generated/renders/machines/identity_forge.png"
},
{
"id": "ring_mason",
"name": "环界石工坊",
"stage": "t5",
"biome": "rift_gate",
"render": "assets/generated/renders/machines/ring_mason.png"
},
{
"id": "offering_altar",
"name": "仪式供物台",
"stage": "t5",
"biome": "rift_gate",
"render": "assets/generated/renders/machines/offering_altar.png"
},
{
"id": "grand_ritual",
"name": "异次元门仪式台",
"stage": "t5",
"biome": "rift_gate",
"render": "assets/generated/renders/machines/grand_ritual.png"
},
{
"id": "tribute_press",
"name": "异界贡块压机",
"stage": "post",
"biome": "post_rift",
"render": "assets/generated/renders/machines/tribute_press.png"
},
{
"id": "dimensional_gate",
"name": "异次元传送门",
"stage": "post",
"biome": "post_rift",
"render": "assets/generated/renders/machines/dimensional_gate.png"
},
{
"id": "paradox_condenser",
"name": "悖论冷凝器",
"stage": "post",
"biome": "post_rift",
"render": "assets/generated/renders/machines/paradox_condenser.png"
}
],
"logistics": [
{
"id": "belt",
"name": "符轨",
"kind": "belt",
"description": "固定网格传送带。",
"render": "assets/generated/renders/logistics/belt.png"
},
{
"id": "crystal_hopper",
"name": "魔晶料斗",
"kind": "source",
"description": "产出粗魔晶。",
"render": "assets/generated/renders/logistics/crystal_hopper.png"
},
{
"id": "collection_vault",
"name": "收集仓",
"kind": "sink",
"description": "接收成品。",
"render": "assets/generated/renders/logistics/collection_vault.png"
},
{
"id": "mana_pipe",
"name": "魔力管",
"kind": "mana_pipe",
"description": "传导地脉魔力。",
"render": "assets/generated/renders/logistics/mana_pipe.png"
},
{
"id": "mana_source",
"name": "魔力源",
"kind": "mana_source",
"description": "地脉涌出口。",
"render": "assets/generated/renders/logistics/mana_source.png"
},
{
"id": "bridge_arm",
"name": "契约桥臂",
"kind": "bridge",
"description": "机器上的显式取放端点。",
"render": "assets/generated/renders/logistics/bridge_arm.png"
}
],
"materials": [
{
"id": "factory_stone",
"name": "工坊暗石",
"usage": "ground",
"albedo": "assets/generated/materials/factory_stone.png"
},
{
"id": "aged_brass",
"name": "旧黄铜",
"usage": "metal",
"albedo": "assets/generated/materials/aged_brass.png"
},
{
"id": "mana_glass",
"name": "魔力琉璃",
"usage": "pipe",
"albedo": "assets/generated/materials/mana_glass.png"
},
{
"id": "rune_slate",
"name": "符文板岩",
"usage": "inscription",
"albedo": "assets/generated/materials/rune_slate.png"
},
{
"id": "living_bark",
"name": "活树皮",
"usage": "forest",
"albedo": "assets/generated/materials/living_bark.png"
},
{
"id": "bone_ash",
"name": "骨灰",
"usage": "death",
"albedo": "assets/generated/materials/bone_ash.png"
},
{
"id": "ember_crust",
"name": "烬壳",
"usage": "ember",
"albedo": "assets/generated/materials/ember_crust.png"
},
{
"id": "star_mirror",
"name": "星镜面",
"usage": "mirror",
"albedo": "assets/generated/materials/star_mirror.png"
},
{
"id": "rift_gold",
"name": "裂界金",
"usage": "rift",
"albedo": "assets/generated/materials/rift_gold.png"
},
{
"id": "paradox_silk",
"name": "悖论丝",
"usage": "post",
"albedo": "assets/generated/materials/paradox_silk.png"
}
]
}
File diff suppressed because it is too large Load Diff
+144
View File
@@ -0,0 +1,144 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://mana-foundry.local/schema/recipe-book.schema.json",
"title": "Mana Foundry Recipe Book",
"type": "object",
"required": ["schemaVersion", "metadata", "stages", "biomes", "machines", "items", "recipes"],
"properties": {
"schemaVersion": { "type": "integer", "const": 1 },
"metadata": {
"type": "object",
"required": ["title", "revision"],
"properties": {
"title": { "type": "string", "minLength": 1 },
"revision": { "type": "string", "minLength": 1 },
"description": { "type": "string" },
"updatedAt": { "type": "string" }
},
"additionalProperties": false
},
"stages": {
"type": "array",
"items": { "$ref": "#/$defs/stage" }
},
"biomes": {
"type": "array",
"items": { "$ref": "#/$defs/biome" }
},
"machines": {
"type": "array",
"items": { "$ref": "#/$defs/machine" }
},
"items": {
"type": "array",
"items": { "$ref": "#/$defs/item" }
},
"recipes": {
"type": "array",
"items": { "$ref": "#/$defs/recipe" }
}
},
"additionalProperties": false,
"$defs": {
"id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"stage": {
"type": "object",
"required": ["id", "name", "order", "color"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"name": { "type": "string", "minLength": 1 },
"order": { "type": "integer", "minimum": 0 },
"color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }
},
"additionalProperties": false
},
"biome": {
"type": "object",
"required": ["id", "name", "color", "law"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"name": { "type": "string", "minLength": 1 },
"color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
"law": { "type": "string" }
},
"additionalProperties": false
},
"machine": {
"type": "object",
"required": ["id", "name", "stage", "biome", "baseSpeed", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"name": { "type": "string", "minLength": 1 },
"stage": { "$ref": "#/$defs/id" },
"biome": { "$ref": "#/$defs/id" },
"baseSpeed": { "type": "number", "exclusiveMinimum": 0 },
"description": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }
},
"additionalProperties": false
},
"item": {
"type": "object",
"required": ["id", "name", "category", "stage", "biome", "mass", "stackSize", "isRaw", "tags", "notes"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"name": { "type": "string", "minLength": 1 },
"category": { "type": "string", "minLength": 1 },
"stage": { "$ref": "#/$defs/id" },
"biome": { "$ref": "#/$defs/id" },
"mass": { "type": "number", "exclusiveMinimum": 0 },
"stackSize": { "type": "integer", "minimum": 1 },
"isRaw": { "type": "boolean" },
"tags": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
"notes": { "type": "string" }
},
"additionalProperties": false
},
"ingredient": {
"type": "object",
"required": ["itemId", "amount", "mode"],
"properties": {
"itemId": { "$ref": "#/$defs/id" },
"amount": { "type": "number", "exclusiveMinimum": 0 },
"mode": { "enum": ["consumed", "catalyst", "fluid", "state"] }
},
"additionalProperties": false
},
"product": {
"type": "object",
"required": ["itemId", "amount"],
"properties": {
"itemId": { "$ref": "#/$defs/id" },
"amount": { "type": "number", "minimum": 0 },
"min": { "type": "number", "minimum": 0 },
"max": { "type": "number", "minimum": 0 },
"chance": { "type": "number", "minimum": 0, "maximum": 1 },
"weight": { "type": "number", "minimum": 0, "maximum": 100 }
},
"additionalProperties": false
},
"recipe": {
"type": "object",
"required": ["id", "name", "stage", "biome", "machineId", "kind", "duration", "unlockedBy", "inputs", "outputs", "manaPerSecond", "entropy", "conditions", "tags", "notes", "enabled"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"name": { "type": "string", "minLength": 1 },
"stage": { "$ref": "#/$defs/id" },
"biome": { "$ref": "#/$defs/id" },
"machineId": { "$ref": "#/$defs/id" },
"kind": { "enum": ["craft", "inscription", "growth", "decay", "state", "separation", "ritual", "result_bag", "recovery"] },
"duration": { "type": "number", "exclusiveMinimum": 0 },
"unlockedBy": { "type": "string" },
"inputs": { "type": "array", "items": { "$ref": "#/$defs/ingredient" } },
"outputs": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/product" } },
"manaPerSecond": { "type": "number", "minimum": 0 },
"entropy": { "type": "number", "minimum": 0 },
"conditions": { "type": "array", "items": { "type": "string" } },
"tags": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
"notes": { "type": "string" },
"enabled": { "type": "boolean" }
},
"additionalProperties": false
}
}
}