In an embodiment, a computer-implemented method comprises sending, to a
computer peripheral device, a request to obtain capabilities of the
computer peripheral device; receiving a first capability description from
the computer peripheral device, wherein the first capability description
describes one or more capabilities, features or functions of the device
at the time of the request; creating one or more graphical user interface
(GUI) elements based upon the first capability description and causing
displaying the GUI elements; receiving user input representing one or
more selections of the GUI elements; creating job ticket data that
describes a job for the computer peripheral device to perform, based on
the GUI elements that were selected as represented in the user input;
sending the job ticket data to the peripheral device; wherein the job
ticket data describes one or more device settings that the computer
peripheral device can transform to device commands.