When there are no needs, return "needs":[]

Before this change, the API returns `"needs": null`