Interface: SupportedDevice
A device entry resolved against the host runtime's protocol and transport implementations.
Only devices with at least one drivable transport AND at least one drivable engine are returned by the resolver — anything fully undrivable is filtered out.
Extends
Omit<DeviceEntry,"engines">
Properties
| Property | Type | Description | Inherited from |
|---|---|---|---|
allEnginesDrivable | boolean | true iff every engine on this device has a registered protocol impl. Property of (device, PROTOCOLS) only — not affected by which transports the host runtime exposes. Drives the "fully supported by this driver" badge in pickers and docs. | - |
capabilities? | Readonly<Record<string, unknown>> | Chassis-level capability flags — properties of the box, not the printhead. Most boolean capabilities are engine-level; this bag is for genuinely chassis-y things (Brother's editorLite USB-Mass-Storage trick, eventual battery / display flags). Open shape so drivers can extend without touching contracts. | DeviceEntry.capabilities |
drivableTransports | readonly TransportType[] | Transports the host runtime has implementations for. | - |
engines | readonly EngineDescriptor[] | Per-engine drivability info. | - |
family | string | Driver family this device belongs to, e.g. 'labelwriter'. | DeviceEntry.family |
hardwareQuirks? | string | In-source hardware quirks — immutable facts about the chassis. Distinct from support.quirks, which is editorial and changes with firmware revisions. Example: "PID collides with the LabelManager PnP variant; needs usb_modeswitch on Linux". | DeviceEntry.hardwareQuirks |
key | string | Stable key used as the registry export name (e.g. 'LW_450'). | DeviceEntry.key |
name | string | Human-readable model name, e.g. 'LabelWriter 450'. | DeviceEntry.name |
support | DeviceSupport | Always defined; defaults to { status: 'untested' }. Deprecated Author verifications instead. Kept populated by codegen (synthesised from verifications if present, else mapped from legacy authoring) so existing consumers keep working unchanged. Removed in the cleanup PR once all drivers migrate. | DeviceEntry.support |
transports | DeviceTransports | Wire-protocol transports this device exposes. | DeviceEntry.transports |
undrivableTransports | readonly TransportType[] | Transports the device declares but the host runtime does not implement. Surface these as per-transport hints in the picker ("via USB only — Bluetooth requires the web package"); the device is still supported as long as drivableTransports is non-empty. | - |
verifications? | Partial<Record<TransportType, VerificationCell>> | Per-transport stored verifications. Authored by hardware-report PRs; expanded at codegen time into a derived grid (see expandVerifications in ./expand.js). When absent, codegen falls back to legacy support.status. | DeviceEntry.verifications |