DSL request model:
- directives set defaults for following requests
- each request line can override defaults with key=value
- +flag means true
- -flag means false
- file/imports/exports/members/code/deps accept a path as the first positional argument; examples below use this shape.
- Use @file when several following operations share the same file.
- For one-off file operations, pass the path directly.

Syntax:
@file <path>               default file
@source <path>             default sourceFile for mutations
op arg arg key=value       request
+flag                      boolean true
-flag                      boolean false
>name                      save reusable artifact when supported
old->new                   rename pair
Parent.member              parent-qualified member
Parent.{a,b}               several members under one parent
key=[a,b]                  list value for repeatable fields
file="path with spaces.ts" quote values with spaces
detail=sum|loc|code        aliases for summary|locations|code
from=...                   alias for fromFile
