{
  "language": "Laygent",
  "version": "1.0.0",
  "status": "frozen",
  "line_model": "one sentence per line ending in a period",
  "identifier": {
    "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
    "examples": [
      "home",
      "pricing_card",
      "submit_button"
    ]
  },
  "elements": [
    "page",
    "container",
    "section",
    "navigation",
    "card",
    "heading",
    "text",
    "button",
    "link",
    "image",
    "input",
    "form",
    "label",
    "textarea",
    "list",
    "item",
    "divider",
    "select",
    "option",
    "icon",
    "video",
    "audio",
    "custom element"
  ],
  "properties": {
    "layout": [
      "viewport fill",
      "direction vertical|horizontal",
      "layout grid",
      "grid columns N",
      "width|height fill|content|N pixels|N percent",
      "minimum|maximum width|height",
      "gap",
      "alignment",
      "distribution",
      "wrap",
      "overflow",
      "position",
      "top|right|bottom|left"
    ],
    "visual": [
      "background",
      "gradient",
      "text color",
      "padding",
      "horizontal padding",
      "vertical padding",
      "margin",
      "border",
      "border radius",
      "shadow",
      "opacity",
      "backdrop blur"
    ],
    "typography": [
      "font size",
      "font weight",
      "line height",
      "letter spacing",
      "text alignment",
      "text decoration"
    ],
    "motion": [
      "transition",
      "hover background",
      "hover lift",
      "entry fade",
      "entry rise",
      "entry scale",
      "rotation",
      "scale",
      "z index",
      "aspect ratio"
    ]
  },
  "sentences": {
    "declaration": "Create <type> <id> [displaying <text>] [containing <ids>] [with <properties>].",
    "click": "When <element> is clicked, show|hide|toggle <element>.",
    "navigation": "When <element> is clicked, navigate to <page>.",
    "responsive": "On screens below <pixels> pixels, <element> direction|width|gap|grid columns is <value>.",
    "state": "Create state <id> with value <literal>.",
    "collection": "Create collection <id> with values <quoted values>.",
    "backend": "Use Supabase backend."
  },
  "backend": {
    "auth": [
      "Enable email and password authentication.",
      "Protect page <page> with authentication.",
      "After authentication navigate to <page>.",
      "Use form <form> to sign up|sign in with email <input> and password <input>.",
      "When <button> is clicked, sign out."
    ],
    "database": [
      "Create database table <table>.",
      "<table> has [required] [unique] text|integer|number|boolean|uuid|timestamp|date|json column <column> [with default <value>].",
      "<table> belongs to authenticated user through <column>.",
      "<table> references <table> through <column> deleting cascade|restrict|set null.",
      "Create index <index> on <table> using <columns>.",
      "Allow authenticated users to read, create, update, and delete their own rows in <table> through <column>."
    ],
    "data": [
      "Create data query <query> from <table> selecting <columns>.",
      "<query> orders by <column> ascending|descending.",
      "Load <query> on page <page> into <collection>.",
      "Use form <form> to insert into <table> mapping <input> to <column>.",
      "Use form <form> to update <table> using state <state> as <column> mapping <input> to <column>.",
      "When <button> is clicked, delete from <table> using state <state> as <column>."
    ],
    "storage": [
      "Create public|private storage bucket <bucket>.",
      "Allow authenticated users to read, upload, update, and delete their own files in <bucket>.",
      "When <input> changes, upload file to <bucket> and store path in <state>."
    ],
    "functions": [
      "Create server function <function>.",
      "<function> requires authentication.",
      "<function> accepts text|number|boolean field <field>.",
      "<function> returns JSON message <text>.",
      "<function> forwards request to URL from secret <SECRET>.",
      "Use form <form> to call server function <function>."
    ],
    "provisioning": [
      "GitHub repository",
      "Supabase project",
      "PostgreSQL migrations and RLS",
      "Storage policies",
      "Edge Functions",
      "Vercel environment variables",
      "Vercel production deployment"
    ]
  },
  "exports": [
    "React + TypeScript",
    "HTML + CSS + JavaScript"
  ],
  "limits": [
    "No arbitrary JavaScript",
    "No arbitrary npm packages",
    "Supabase is the v1 backend",
    "No native mobile target"
  ]
}
