To be as clear as possible, why not put the nature of the object on a single line for the description? Its just supposed to be a description of that fulfill.
/**
* @promise fPromise
* @fulfill {Object} A project object with the format {name: String, data: Object}
* @reject {Error}
* @returns fPromise
*/
Or, if you want to handle dynamically generated object keys, similar to the Google Style Guide:
/**
* @promise fPromise
* @fulfill {Object.<String, Object>}
* @reject {Error}
* @returns fPromise
*/
That allows anyone reading your comment to understand what the returned object looks like, what the keys are, and what type of value should be in each key.
Unless, you're trying to say that it can return any of the three possibilities. Then I think your original format is a little bit more descriptive of the possible results of the Promise being fulfilled.