{"category":"Research & upgrades","description":"Unlocks the joiner, $120. Merges two belts into one.","evidence_label":"Catalog summary","facts":[{"key":"branch","label":"Branch","section":"Recorded properties","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"extracted","value":"lines"},{"key":"kind","label":"Kind","section":"Recorded properties","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"extracted","value":"unlock"},{"key":"reward","label":"Reward","section":"Recorded properties","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"extracted","value":"BUILD \u00b7 Belt Joiner \u00b7 $120"},{"key":"availability","label":"Availability","section":"Recorded properties","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"extracted","value":"Packaged definition. Demo/full expression branches decoded; enclosing control flow and save state not executed."},{"key":"demo_kind","label":"Technology type (demo branch)","section":"Recorded properties","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"extracted","value":"unlock"},{"key":"full_kind","label":"Technology type (full branch)","section":"Recorded properties","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"extracted","value":"unlock"}],"id":"research-joiner","kind":"research","name":"Belt Joiner","relationships":[{"metadata":{},"relation":"requires_research","status":"resolved","target":"research-splitter"}],"slug":"research-joiner","source":{"file":"FindTheNeedle.pck::scripts/tech/tech_tree.gdc","pointer":"line 623","reader":"Verified custom Godot archive / static token decoder","sha256":"0a332700abf1bb1fcd2df82adfdf420fd2b2f67909b2bf20c7b80a42a811c3f5"},"status":"static-extraction","tables":[{"columns":[{"key":"rank","label":"Rank"},{"key":"value","label":"Catalog rank cost"}],"rows":[{"rank":1,"value":60.0}],"title":"Catalog rank cost \u2014 demo branch"},{"columns":[{"key":"rank","label":"Rank"},{"key":"value","label":"Catalog rank cost"}],"rows":[{"rank":1,"value":60.0}],"title":"Catalog rank cost \u2014 full branch"}]}
