01
Write the source and crop boundary explicitly
Give S-1 its own entry with width 1200 and height 800 pixels. C-1 names S-1 as its parent and records the crop rectangle as x from 100 to 700 and y from 200 to 600, with the ending boundaries excluded. Its width is 700 minus 100, or 600 pixels; its height is 600 minus 200, or 400 pixels. Both ranges lie inside S-1. Stating the coordinate convention prevents another reader from interpreting the same numbers as inclusive pixel positions and obtaining different dimensions.
02
Attach the resize to the correct parent
R-1 names C-1 as its parent, not S-1. Each output dimension is half the corresponding C-1 dimension, so the aspect ratio stays three to two. The ledger records 300 by 200 pixels and the operation resize. It should also record the resampling method if that information becomes available; this example leaves it unspecified. The parent link matters because resizing the whole S-1 image would retain different content from resizing the crop. Matching final dimensions alone would not reveal which route was taken.
03
Keep unresolved fields separate from completed steps
The reusable ledger contains item identifier, parent identifier, operation, input dimensions, operation parameters, output dimensions, source location and permission status. For this example, source location, creator, permission and resampling method remain unspecified. Do not fill them from the apparent neatness of the transformation chain. If C-1 is later replaced by a different crop, give the replacement a new identifier and preserve the old link for R-1. That keeps earlier outputs explainable without implying that every version should automatically be reused or published.