{"history":[{"time":"2026-07-07T21:21:13-04:00","description":"Updated course test2","file_path":"data/courses/test2.yaml","old_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - fail_damage:\n - 0\n - 0\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","new_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","is_delete":false,"is_create":false},{"time":"2026-07-07T21:21:15-04:00","description":"Updated course test2","file_path":"data/courses/test2.yaml","old_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","new_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","is_delete":false,"is_create":false},{"time":"2026-07-07T21:21:19-04:00","description":"Updated course test2","file_path":"data/courses/test2.yaml","old_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","new_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","is_delete":false,"is_create":false},{"time":"2026-07-07T21:21:40-04:00","description":"create room 1010","file_path":"data/rooms/intro/1010.yaml","old_content":"","new_content":"exits: {}\nid: 1010\nname: 'Room #1010'\n","is_delete":false,"is_create":true,"extra_files":[{"file_path":"data/rooms/intro/1009.yaml","old_content":"exits: {}\nid: 1009\nname: 'Room #1009'\n","new_content":"id: 1009\nname: 'Room #1009'\ncolor: \"\"\ndescription: []\nexits:\n east:\n room: 1010\n hidden: true\n always_blocked: true\nobjects: []\nitem_spawns: []\nmobs: []\non_enter: []\nhazard: \"\"\nblock_transport: false\ntriggers: []\n"}]},{"time":"2026-07-07T21:21:40-04:00","description":"attach room 1010 to course test2","file_path":"data/courses/test2.yaml","old_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","new_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\n - fail_damage:\n - 0\n - 0\n room_id: 1010\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","is_delete":false,"is_create":false},{"time":"2026-07-07T21:21:46-04:00","description":"detach room 1010 from course test2","file_path":"data/courses/test2.yaml","old_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\n - fail_damage:\n - 0\n - 0\n room_id: 1010\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","new_content":"completion_xp: 50\nname: Test 222\nobstacles:\n - exit_dir: south\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 3\n message: Test\n - delay: 2\n message: Test\n room_id: 2004\n verb: climb\n xp: 0\n - exit_dir: northeast\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: You do it\n room_id: 1005\n verb: jump\n xp: 0\n - exit_dir: east\n fail_damage:\n - 0\n - 0\n phases:\n - delay: 1\n message: DONEZO\n room_id: 1007\n verb: climb\n xp: 0\n - exit_dir: northwest\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1006\n verb: climb\n xp: 0\n - exit_dir: north\n fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1008\n verb: climb\n xp: 0\n - fail_damage:\n - 0\n - 0\n phases: []\n room_id: 1009\n verb: climb\n xp: 0\nrequired_level: 1\nstart_room: 2004\n","is_delete":false,"is_create":false},{"time":"2026-07-07T21:21:48-04:00","description":"delete room 1010 (cleaned 1 exits)","file_path":"data/rooms/intro/1010.yaml","old_content":"exits: {}\nid: 1010\nname: 'Room #1010'\n","new_content":"","is_delete":true,"is_create":false,"extra_files":[{"file_path":"data/rooms/intro/1009.yaml","old_content":"id: 1009\nname: 'Room #1009'\ncolor: \"\"\ndescription: []\nexits:\n east:\n room: 1010\n hidden: true\n always_blocked: true\nobjects: []\nitem_spawns: []\nmobs: []\non_enter: []\nhazard: \"\"\nblock_transport: false\ntriggers: []\n","new_content":"id: 1009\nname: 'Room #1009'\ncolor: \"\"\ndescription: []\nexits: {}\nobjects: []\nitem_spawns: []\nmobs: []\non_enter: []\nhazard: \"\"\nblock_transport: false\ntriggers: []\n"}]}],"redo":null}