Explores adding constraint-based job assignment where workers declare
properties (e.g., gpu, mem, region) and jobs specify constraints.
Key insight: with max 3 properties, constraints can be encoded as tags
using canonical format (e.g., "c:gpu=a100,mem=high"), preserving the
existing efficient IN-clause query pattern. Workers generate all 2^3=8
combinations they can satisfy.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>