Arrange an overview of the parts:
Then draw in the geometry to cut out the front/back for the lid:
and Boolean subtract:
The bottom will be in a rabbet half the thickness of the board which is inset by half the thickness of the board:
and if need be, mirror them vertically to get the needed arrangement:
The space in-between those elements will be taken up by the joinery:
Divide its height by the number of joinery part pairs:
Drag it into position and add suitable dogbones:
Then use the Linear Array command to create the duplicates for the joinery: