# Printer Operations v54

v54 makes the v53 Local Agent operational against real logical printers.

## Claim contract
Claimed jobs now include the resolved physical printer identity:
- public_id
- code
- name
- role
- driver type
- connection type
- capabilities

The Agent never needs internal numeric IDs.

## Printer groups
Group-routed jobs are resolved to a concrete active printer at claim time.

Priority order:
1. non-fallback members
2. lower numeric priority
3. stable printer id

If the primary printer is inactive, a configured fallback member can be claimed.

## Test print
Admin can request an asynchronous printer test job.

The request creates a normal PrintJob and follows the exact same:
routing/lease/Agent/spooler/acknowledgement path as production print work.

No fake browser print path is introduced.

## Local printer mapping
Logical server Printer public IDs are mapped locally to:
- Windows spooler queue names, or
- ESC/POS TCP host:port

The mapping lives only in Agent SQLite because it is machine-specific technical state.

## Windows Agent CLI
v54 adds local commands for:
- printer discovery
- list mappings
- create/update mapping
- direct local test print

These commands do not require sqlite3 CLI.

## Still deferred
Arabic production-quality raster shaping is deliberately not claimed by v54.
The current text pipeline is enough for operational hardware validation, while
Arabic/bidi/raster output should be validated against the actual printer models
in the next renderer sprint.
