JobType
class JobType<T>(val kind: String, val serializer: KSerializer<T>, val queue: QueueName = QueueName.DEFAULT)
A registered job type: a stable string kind, the payload serializer, and the queue its jobs go to unless an enqueue call overrides it.
The kind is the durable identity of the job. It is stored in the database and must survive class renames, package moves, and rolling deploys. Never derive it from a class or function name. Allowed characters: lowercase letters, digits, '-', '.', max 128 chars.
The queue is a routing default, not identity. It lives on the descriptor because the producer writes the queue onto the job row, and the descriptor is the one object producer and worker code share; handler registration never names a queue. Changing it is a producer redeploy: drain both the old and the new queue during the rollout.