@jarshvor another way to look at this is the return types...

pcb() returns an object (1)
holes1() returns an array of objects (2)
holes2() returns an array of objects (4)

V1 OpenJSCAD.org requires main() to return an ARRAY of objects or a single object.
(FYI, V2 automatically flattens everything into an array.)

@gilboonet is correct in the example provided. By using '...holes1()' syntax, an array is constructed from [ pcb(), holes1[0], holes1[1] ]

Hang in there. You'll get it soon. 🙂