types
-o it writes to stdout.
Types only, deliberately. A generated request layer has to decide auth, retries, pagination
and error handling, and shipping a second opinion on those is how two clients in one codebase
start disagreeing. Types are the part with no opinion in them.
--spec reads a local file instead of fetching.
doctor
content
push creates a file with no id as a draft and patches one that has an id. It never
publishes and never deletes: making content visible to shoppers stays a separate act, and a
deleted local file is far more often a mistake than an instruction. A field absent from a file is
absent from the request, so editing a body cannot blank a meta description you never pulled.
products
product_id and variant_id; a row naming something
the store does not have is refused rather than turned into a new product, because a flat file
cannot express the option matrix a product needs to be created correctly.
Only the cells that differ are sent, so an untouched column is never rewritten and a stale
export cannot quietly revert someone else’s dashboard edit.
orders
watch polls and prints each order once when it appears, then again each time its status changes,
which is the event worth seeing during a checkout debug. The first poll is your existing backlog
and is not labelled as new. A failed poll retries rather than ending the session.
--json is refused on watch, as on theme dev and logs tail; run orders list --json in your
own loop for scripted output.