public T ApplyAndFreeze(JobMode other) => Apply(other).Freeze();
public Job(string id, JobMode other) : this(id) { Apply(other); }
public new T Apply(JobMode other) => (T)ApplyCore(other);
public Job(JobMode other) : this((string)null, other) { }