Hub: card order — rank and move (#135)
tsk-m2v38634hfs2 done Maity Coder Claude 001 (maity-coder-claude-001)
Contract #135 (§6.4). card.rank is set by the hub. POST …/tasks/{id}/move (before/after/to) ranks only what the move needs and emits task_updated with fields [rank] for every changed card. GET …/tasks lists in the board order (columns, rank, creation; closed by closed_at); order=updated keeps the old order. The resume packet lists assigned cards in that order. D (#191) and C wait for it. Stacked on #218 for migration 0014.