code: def quilc_compile_payload(quil_program, isa, specs):
      
      if not quil_program:
          raise ValueError("You have attempted to compile an empty program."
                           " Please provide an actual program.")
      if not isinstance(quil_program, Program):
          raise TypeError("quil_program must be a Program object.")
      if not isinstance(isa, ISA):
          raise TypeError("isa must be an ISA object.")
      if not isinstance(specs, Specs):
          raise TypeError("specs must be a Specs object.")
  
      payload = {"uncompiled-quil": quil_program.out(),
                 "target-device": {
                     "isa": isa.to_dict(),
                     "specs": specs.to_dict()}}
  
      return payload
docs: REST payload for :py:func:`ForestConnection._quilc_compile`