{
  "format": "penny/shapes/v1",
  "title": "Penny shapes",
  "description": "Reusable, versioned JSON Schemas for Penny content types and fields.",
  "shapes": [
    {
      "id": "address",
      "name": "Address",
      "description": "A postal address with optional address lines, town and postcode, plus a country selection.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/address/1.0.0/schema.json"
    },
    {
      "id": "audio-response",
      "name": "Audio response",
      "description": "An audio recording submitted in response to a research question.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/audio-response/1.0.0/schema.json"
    },
    {
      "id": "category",
      "name": "Category",
      "description": "A named category with a slug and optional description.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/category/1.0.0/schema.json"
    },
    {
      "id": "consent-form",
      "name": "Consent Form",
      "description": "Study information, introduction and consent statements used to request participant consent.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/consent-form/1.0.0/schema.json"
    },
    {
      "id": "consent-record",
      "name": "Consent record",
      "description": "A link to a consent form and the timestamp at which consent was recorded.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/consent-record/1.0.0/schema.json"
    },
    {
      "id": "contact",
      "name": "Contact",
      "description": "A person or organisation with a name, role, biography and image.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/contact/1.0.0/schema.json"
    },
    {
      "id": "content",
      "name": "Content document",
      "description": "The portable JSON structure shared by collaborative Content fields.",
      "kind": "field",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/content/1.0.0/schema.json"
    },
    {
      "id": "content-markdown",
      "name": "Content (Markdown)",
      "description": "The Content field as stored by the main Penny app: Markdown text with Penny block extensions. The editor converts this into a collaborative document; Yjs state remains private and separate. This is distinct from the API prototype’s JSON Content document.",
      "kind": "field",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/content-markdown/1.0.0/schema.json"
    },
    {
      "id": "country",
      "name": "Country",
      "description": "A country selection using the country codes and labels shipped with Penny.",
      "kind": "field",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/country/1.0.0/schema.json"
    },
    {
      "id": "entry",
      "name": "Entry",
      "description": "A participant submission linking a question, participant and their individual responses.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/entry/1.0.0/schema.json"
    },
    {
      "id": "event",
      "name": "Event",
      "description": "An event with a title, dates, location, content and optional cover image.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/event/1.0.0/schema.json"
    },
    {
      "id": "guardian",
      "name": "Guardian",
      "description": "A non-identifying guardian reference linked to a participant.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/guardian/1.0.0/schema.json"
    },
    {
      "id": "household",
      "name": "Household",
      "description": "A household alias linked to its reporting participant.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/household/1.0.0/schema.json"
    },
    {
      "id": "menu",
      "name": "Menu",
      "description": "A named navigation menu containing recursively nested items.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/menu/1.0.0/schema.json"
    },
    {
      "id": "navigation",
      "name": "Navigation Item",
      "description": "A navigation item with a label, optional URL and order.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/navigation/1.0.0/schema.json"
    },
    {
      "id": "newsletter",
      "name": "Newsletter",
      "description": "A newsletter with subject, recipient group, author and Content.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/newsletter/1.0.0/schema.json"
    },
    {
      "id": "notice",
      "name": "Notice",
      "description": "A private notice with title, Content body and optional author.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/notice/1.0.0/schema.json"
    },
    {
      "id": "page",
      "name": "Page",
      "description": "A publishable page with a title, slug and optional Content.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/page/1.0.0/schema.json"
    },
    {
      "id": "participant",
      "name": "Participant",
      "description": "A private research participant record with contact details, alias, address, consent records and blocked status.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/participant/1.0.0/schema.json"
    },
    {
      "id": "post",
      "name": "Post",
      "description": "The main Penny app’s full Post type: title, slug, excerpt, Content, cover image, status and publication date.",
      "kind": "document",
      "version": "2.0.0",
      "schema": "https://shapes.penny.coop/post/2.0.0/schema.json",
      "versions": [
        {
          "version": "1.0.0",
          "schema": "https://shapes.penny.coop/post/1.0.0/schema.json"
        },
        {
          "version": "2.0.0",
          "schema": "https://shapes.penny.coop/post/2.0.0/schema.json"
        }
      ]
    },
    {
      "id": "publication",
      "name": "Publication",
      "description": "A research publication with title, slug, authors, Content, attachments and publication settings.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/publication/1.0.0/schema.json"
    },
    {
      "id": "question",
      "name": "Question",
      "description": "A research question composed of individually configurable parts.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/question/1.0.0/schema.json"
    },
    {
      "id": "question-part",
      "name": "Question part",
      "description": "One part of a research question with response category, formats, choices and upload limit.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/question-part/1.0.0/schema.json"
    },
    {
      "id": "question-response",
      "name": "Response",
      "description": "A response to one question part, including text, media/files, yes/no or selected choice.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/question-response/1.0.0/schema.json"
    },
    {
      "id": "registration-review",
      "name": "Registration review",
      "description": "A researcher’s registration decision and notes for a participant.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/registration-review/1.0.0/schema.json"
    },
    {
      "id": "research-organisation",
      "name": "UK Universities",
      "description": "A selection from the UK universities listed in Penny; this list is not a complete international organisation registry.",
      "kind": "field",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/research-organisation/1.0.0/schema.json"
    },
    {
      "id": "spending-submission",
      "name": "Spending submission",
      "description": "A household spending submission with reporting dates, currency, total and breakdown.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/spending-submission/1.0.0/schema.json"
    },
    {
      "id": "team-member",
      "name": "Team Member",
      "description": "A team member profile with name, role, biography, photo and contact links.",
      "kind": "document",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/team-member/1.0.0/schema.json"
    },
    {
      "id": "text-response",
      "name": "Text response",
      "description": "A textual response to a research question.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/text-response/1.0.0/schema.json"
    },
    {
      "id": "video-response",
      "name": "Video response",
      "description": "A video recording submitted in response to a research question.",
      "kind": "object",
      "version": "1.0.0",
      "schema": "https://shapes.penny.coop/video-response/1.0.0/schema.json"
    }
  ]
}
