A solution for this should allow reusability of completion sources. It could be attribute-driven or something applied to the command constructor.