[
  {
    "day": "prep",
    "date": "2026-11-11T22:13:54-05:00",
    "category": "collaboration",
    "title": "Getting the project ready",
    "lead": "Our first commits span two dates, depending on which clock you read.",
    "body": [
      "We started by setting up Unreal Engine 5.9 MegaJam Preview, Codex and the editor connections. We also put the initial project and design document in a shared repository so we could work from the same starting point.",
      "That project commit was made at 11:13 on November 12 in China. For Chai in Eastern Canada, it was still 22:13 on November 11. We have kept the original timestamps here and grouped this work with preparation."
    ],
    "commits": [
      "0855369"
    ],
    "source": "docs/submission/02-asset-and-preparation-disclosure.md"
  },
  {
    "day": "12",
    "date": "2026-11-12T05:15:17-05:00",
    "category": "design",
    "title": "Starting with a falling rock",
    "lead": "The first question was whether editing a scene would make a good puzzle.",
    "body": [
      "Tian Sang built a browser level editor and five prototype levels. We could lay out props, paths and cues there, export the scene, and bring it into Unreal.",
      "We started with a performer following a fixed route and a rock falling into his path. Removing the rock could save him. Reversing it could save him while keeping a bonus available. For the next puzzle, we added a flying charge and asked the player to change its timing."
    ],
    "commits": [
      "dfd7742"
    ],
    "source": "docs/game-design-document.md"
  },
  {
    "day": "12",
    "date": "2026-11-12T05:36:31-05:00",
    "category": "engineering",
    "title": "Getting the first prototype running",
    "lead": "This was the first version of the loop in Unreal.",
    "body": [
      "Chai brought removal, reversal and timing changes into a six-scene C++ prototype. We kept it to a single-player keyboard-and-mouse game: watch the scene, edit a prop, rehearse, and press Action.",
      "We wanted the successful take to become a small film the player had directed. But the preview could not count as completion; the player still had to call Action and finish the performance."
    ],
    "commits": [
      "3e20afe",
      "585f15c"
    ],
    "source": "docs/prototype.md"
  },
  {
    "day": "12",
    "date": "2026-11-12T08:01:56-05:00",
    "category": "engineering",
    "title": "Making preview and Action agree",
    "lead": "Rewinding turned out to involve much more than moving things backwards.",
    "body": [
      "We brought the browser-authored scenes into the native workshop and recorded the simulation at 120 steps per second. Preview, Action and the cinematic replay then read the same recorded take.",
      "We had to restore destroyed props and collected bonuses when scrubbing backwards, as well as positions. We also tied each recording to its edit revision and settled rewards only after a successful Action. Otherwise a convincing preview could give the player the wrong answer."
    ],
    "commits": [
      "f298b61"
    ],
    "source": "docs/workshop-architecture.md",
    "image": "first-take",
    "caption": "Early native rehearsal, November 12. The timeline and the miniature stage were already part of one interface.",
    "imageKind": "DEVELOPMENT CAPTURE"
  },
  {
    "day": "12",
    "date": "2026-11-12T10:44:13-05:00",
    "category": "art",
    "title": "Replacing the greybox",
    "lead": "We settled on cloth, timber, plaster and paper.",
    "body": [
      "We began replacing the prototype shapes with miniature assets. We also gave the interface some physical depth and added breakaway effects that could be restored during replay.",
      "We built reusable lifts, carts, bridges and hazards rather than making every scene from scratch. The six-scene campaign gave us somewhere to try the pieces together and check that the art still matched the simulation."
    ],
    "commits": [
      "44aaf60",
      "b5d056e",
      "532dfd1",
      "19dfd23"
    ],
    "source": "docs/modular-delivery.md",
    "image": "kit",
    "caption": "A native gallery of reusable props. This is an asset review layout, not a campaign level.",
    "imageKind": "NATIVE ASSET REVIEW"
  },
  {
    "day": "12",
    "date": "2026-11-12T20:50:23-05:00",
    "category": "art",
    "title": "Adding the plush cast",
    "lead": "References were only the beginning of getting a creature into the game.",
    "body": [
      "We added five plush creatures with native Control Rigs and inverse kinematics. The generated references went through mesh preparation, materials, rigging and animation before we could use them on a set.",
      "We also put together a shared lighting rig, six scene recipes and a modular plaster rock kit. That gave us a starting point for lighting each scene without having to make every decision again."
    ],
    "commits": [
      "30ed828",
      "2c64363",
      "928aa76"
    ],
    "source": "docs/plush-cast-delivery.md",
    "image": "spider",
    "caption": "A stitched spider reference helped define the plush cast. Generated concept artwork; not a gameplay screenshot.",
    "imageKind": "CHARACTER CONCEPT"
  },
  {
    "day": "13",
    "date": "2026-11-13T00:53:00-05:00",
    "approximate": true,
    "category": "engineering",
    "title": "Checking contacts after the art changed",
    "lead": "A prop could look right and still collide in the wrong place.",
    "body": [
      "We added layered backdrops to the six prototype scenes, then compared recorded outcomes while correcting contacts. We needed to know whether an art change had also changed the puzzle.",
      "This kept coming up later: a foot, a rail or a platform edge could look separate from the surface the simulation was actually using. We had to inspect both the visible model and its physical support."
    ],
    "commits": [
      "dd9eece",
      "86c487f",
      "775b00e"
    ],
    "source": "docs/activation-contacts.md"
  },
  {
    "day": "13",
    "date": "2026-11-13T08:50:00-05:00",
    "approximate": true,
    "category": "collaboration",
    "title": "Bringing our changes together",
    "lead": "One example of how we worked across Canada and China.",
    "body": [
      "Tian Sang committed tutorial and audio changes at 18:33 Beijing time. Chai integrated them at 08:50 Eastern, or 21:50 in Beijing, alongside the scenery and lighting work. That brought editing interactions, saved cuts and sound into the same version.",
      "We checked that the integration preserved the authored items and catalog fields. We also fixed a bomb model that looked squashed, while leaving its physical box unchanged. This was typical of the overlap between our work: an art fix still needed to respect the gameplay."
    ],
    "commits": [
      "5116ce3",
      "bdbaab2",
      "a1d7143"
    ],
    "source": "docs/main-integration.md"
  },
  {
    "day": "13",
    "date": "2026-11-13T19:33:00-05:00",
    "approximate": true,
    "category": "design",
    "title": "Making the editing controls easier to read",
    "lead": "We tried wooden controls and an Action clapper.",
    "body": [
      "We made the buttons square, gave the Action control a hinged clapper, and enlarged the timeline tracks. We wanted the controls to fit the miniature set while still being easy to recognize and use.",
      "We integrated the story and spatial chapters with the workshop and checked the Windows interface at three resolutions. How much of the stage remained visible became a recurring part of the UI work."
    ],
    "commits": [
      "141d40a",
      "163e022",
      "b2ab140",
      "f4163bf"
    ],
    "source": "docs/chapters-ui-checkpoint.md"
  },
  {
    "day": "13",
    "date": "2026-11-13T21:59:00-05:00",
    "approximate": true,
    "category": "art",
    "title": "Working on lighting and framing",
    "lead": "The player still needed to see where things would collide.",
    "body": [
      "We worked on stale previews and scene framing while adding a lit mine set, local mist and handmade brambles. The scenes were getting fuller, which also made them easier to obscure.",
      "We used the scenery and lighting to separate the route from the background. When a camera angle hid an important collision, we had to change the framing rather than rely on the player to guess."
    ],
    "commits": [
      "6e927b3",
      "58a9af4",
      "35cffa3",
      "c359f18"
    ],
    "source": "docs/presentation-framing-fixes.md"
  },
  {
    "day": "14",
    "date": "2026-11-14T00:55:00-05:00",
    "approximate": true,
    "category": "design",
    "title": "Building the later chapters",
    "lead": "The route started to move beyond the tutorial stages.",
    "body": [
      "We replaced rubble walls with continuous sculpted cliffs and made rescue landings into physical refuges. For The Last Light, we built a four-stage sea puzzle with a rigged whale and a cloth cyclone.",
      "We kept using the same editing tools, but asked more of the timing: board a moving support, reach a safe landing, or bring a companion along. Each chapter needed a solution we could explain and check."
    ],
    "commits": [
      "534a768",
      "db0add7",
      "7f48c90",
      "9425e0f",
      "c4c8da0"
    ],
    "source": "docs/sea-chapter.md",
    "image": "sea",
    "caption": "The Last Light during development: fabric waves, a miniature lighthouse and a cloth cyclone.",
    "imageKind": "DEVELOPMENT CAPTURE"
  },
  {
    "day": "14",
    "date": "2026-11-14T05:22:00-05:00",
    "approximate": true,
    "category": "art",
    "title": "Adding tutorials, type and Foley",
    "lead": "We were still teaching the controls as we expanded the game.",
    "body": [
      "Tian Sang revised the tutorials and wooden controls, brought in Barlow typography, and added contact-driven stage Foley. The interface and sound changes carried through to the later chapters.",
      "We kept separate records for the procedural cues and the recordings we used. The licensed stage music, audience reactions and later generated scene themes came from different sources and needed different credits."
    ],
    "commits": [
      "c21d65c",
      "8d490b8"
    ],
    "source": "docs/stage-audio.md"
  },
  {
    "day": "14",
    "date": "2026-11-14T07:14:00-05:00",
    "approximate": true,
    "category": "art",
    "title": "Giving the game its name and menu",
    "lead": "Director’s Cut became the subtitle of Leather Jacket Odyssey.",
    "body": [
      "We built the main menu around an animator’s toolbox. We also revised the loading portrait: the traveler’s stiff pose became a more relaxed one with his hands in his pockets.",
      "The white hair, worn leather jacket and green-lit homecoming gave us a consistent character and destination to work toward. We carried those choices through the title artwork, menu and ending."
    ],
    "commits": [
      "ed1c7e8",
      "82f808a",
      "490156e",
      "8a7e03e",
      "7d8cb19"
    ],
    "source": "docs/main-menu.md",
    "image": "traveler",
    "caption": "The revised loading portrait, generated from the project’s character reference and capture. Illustration, not gameplay.",
    "imageKind": "LOADING ARTWORK"
  },
  {
    "day": "14",
    "date": "2026-11-14T12:37:00-05:00",
    "approximate": true,
    "category": "design",
    "title": "Connecting the levels into a journey",
    "lead": "Rescuing a companion needed to mean bringing them home alive.",
    "body": [
      "We selected a ten-scene route and kept the opening tutorials. We connected the mill and suspended cargo into one continuous puzzle instead of treating them as separate stops.",
      "In the later chapters, we made the companion’s survival part of the success condition. Getting the hero to the exit was no longer enough on its own. We then had to update the reference solutions and failure cases to match."
    ],
    "commits": [
      "c712b4b",
      "6f5230a",
      "5cc50e1"
    ],
    "source": "docs/r17-win-condition-audit.md"
  },
  {
    "day": "14",
    "date": "2026-11-14T18:00:00-05:00",
    "approximate": true,
    "category": "design",
    "title": "Giving more space back to the stage",
    "lead": "We reduced the cutting-room interface and kept checking the small moving parts.",
    "body": [
      "We revised wheels, rails, winches, ropes, planted feet and stopped poses. A small mismatch at a contact point could make the whole miniature feel wrong.",
      "We compacted the cutting room and settled on Star Cam and Master Shot for the camera choices. We also added illustrated rolling credits, with equal space for both of us and a separate set of production notes."
    ],
    "commits": [
      "52f87ba",
      "b3f94ca",
      "1f043e5",
      "5f709a6",
      "7d45bf4"
    ],
    "source": "docs/compact-cutting-room.md",
    "image": "cutting-room",
    "caption": "A compact cutting-room layout leaves more of the stage visible while preserving the edit controls.",
    "imageKind": "DEVELOPMENT CAPTURE"
  },
  {
    "day": "14",
    "date": "2026-11-14T22:08:00-05:00",
    "approximate": true,
    "category": "art",
    "title": "Trying motion references",
    "lead": "One of the generated references did not do the turn we asked for.",
    "body": [
      "We generated two short Kling videos through fal to look at walking and idle motion. One failed to make the requested full turn, so we could not use it as a turning solution.",
      "We kept the videos as visual references. We did not convert them into skeletal animation or use them as gameplay footage. We continued editing the existing clips, including planted idle poses and a dedicated death reaction."
    ],
    "commits": [
      "21f76e8",
      "e727854",
      "6364874",
      "96dc2c3"
    ],
    "source": "docs/hero-fal-motion-r19.md"
  },
  {
    "day": "15",
    "date": "2026-11-15T00:29:00-05:00",
    "approximate": true,
    "category": "collaboration",
    "title": "Adding the finale and tightening handoffs",
    "lead": "We needed code, content and tests to refer to the same version.",
    "body": [
      "We appended The Grand Finale as an eleventh scene and allowed successful cinema to advance the route. We also moved the puppet presentation to 24 frames per second while keeping the simulation at 120 Hz.",
      "By this point, we had several changes in progress at once. We agreed to finish code and its companion assets together, freeze the handoff, and integrate it into main before starting another test or recording batch. That made it easier to tell which build a result actually described."
    ],
    "commits": [
      "6ed1622",
      "4bfef1c",
      "5a3b403"
    ],
    "source": "docs/grand-finale-integration.md"
  },
  {
    "day": "15",
    "date": "2026-11-15T02:54:00-05:00",
    "approximate": true,
    "category": "engineering",
    "title": "Fixing what route review exposed",
    "lead": "Some of our old reference cuts no longer worked.",
    "body": [
      "Full-route review exposed premature freezes and rescue timing problems. Restoring a barrel also invalidated an old finale solution. Compilation had passed, but the authored route still needed work.",
      "We tested nearby cue timings in the native simulation while keeping the geometry and editing permissions intact. We corrected the reference cuts rather than moving the exit or relaxing the arrival rule. We left the remaining contact failures in the validation record."
    ],
    "commits": [
      "d2935e2",
      "e161689",
      "7dcdfd0",
      "d18f954"
    ],
    "source": "docs/ljo-r30-validation.md"
  },
  {
    "day": "15",
    "date": "2026-11-15T08:50:00-05:00",
    "approximate": true,
    "category": "design",
    "title": "Folding the water puzzle into the mill",
    "lead": "We cut a scene and kept its useful part.",
    "body": [
      "We retired The Pour Brigade as a standalone water-and-fire scene and moved its teapot-and-fire sequence into The Mill Crossing. That gave the mill another connected action without adding another stop to the route.",
      "We added save migration, kept the first three tutorials, and left The Grand Finale at the end. That brought the route back to ten scenes. We also updated the game and window title to Leather Jacket Odyssey."
    ],
    "commits": [
      "11f269f",
      "e161689",
      "59834ac"
    ],
    "source": "Content/Workshop/StoryRoute.json",
    "image": "mill",
    "caption": "The Mill Crossing in a November 15 development capture. Later code and content revisions require their own validation.",
    "imageKind": "DEVELOPMENT CAPTURE"
  },
  {
    "day": "15",
    "date": "2026-11-15T14:33:05-05:00",
    "category": "engineering",
    "title": "Working through the last day’s fixes",
    "lead": "Rendering, music, menus and recording all still needed attention.",
    "body": [
      "We worked on render stalls, puppet skinning, the warm follow light and green rim light, first-click menu handling, camera layout and UHD recording. We also generated six outdoor themes with Stable Audio 2.5 through fal.ai and edited them into fixed loops.",
      "Alongside that, we prepared the English submission text, credits and asset records. At this journal’s checkpoint, we still needed to record and review the final package. The checks from an earlier build could not tell us whether the newer changes all worked together."
    ],
    "commits": [
      "063a30b",
      "7cd3e50",
      "b490ee7",
      "cb369f7",
      "5e35175",
      "11a4e85",
      "d7aaf29"
    ],
    "source": "docs/submission/publish/devlog.md"
  }
]
