In developing the API spec, we learned about some constrains and expectations WRT to how people should interact with Jade and what should be included in the content schema.
- A Jade page can be created without any facets, but it serves little purpose. It might only really be possible to arrive here by creating a proposal + endorsement and then deleting it.
- Each facet may only appear once. This is largely enforced by object member naming in JSON (e.g. "editquality" is a unique identifier of the "editquality" facet)
- Each facet may have zero or more proposals, but the data for a proposal must be unique. E.g. for "ediitquality" there are only 4 options for proposals: damaging, goodfaith; damaging, badfaith; good, goodfaith; good, badfaith (unlikely, probably a mistake)
- Each proposal may have zero or more endorsements. A user may only endorse one proposal within a facet.
- A proposal is identified by: entity data, facet, and label data.
- An endorsement is identified by: entity data, facet, and user data. (Note that label data is implied because a user can only endorse one proposal per facet)