Optional. If the file doesn't exist at all, it's treated as { "page": { "width_mm": 215.9, "height_mm": 279.4, "background_color": "#FFFFFF", "margin_mm": zero }, "base_pdf": "base.pdf" }. If the file exists but a key is missing, that key falls back to its own default independently - an existing file missing base_pdf gets null (a generated canvas), not "base.pdf".

{
  "version": 1,
  "name": "Product Info Sheet",
  "description": "One-page info sheet for a single catalog item.",
  "notes": "Margins leave room for a printed border.",
  "page": {
    "width_mm": 215.9,
    "height_mm": 279.4,
    "background_color": "#FFFFFF",
    "margin_mm": { "top": 10, "right": 10, "bottom": 10, "left": 10 }
  },
  "base_pdf": "base.pdf"
}
Key Type Meaning
version int Unused by the app; freeform.
name string The project's display name. Default "" (falls back to the folder name).
description string Short public-facing summary. Default "".
notes string Free-form author notes. Default "".
page.width_mm / page.height_mm number Canvas size. Ignored if base_pdf is non-null.
page.background_color string Hex color. Ignored if base_pdf is non-null.
page.margin_mm object { top, right, bottom, left }, mm. Editor guide only.
base_pdf string or null Path to the canvas PDF, or null to synthesize one from page.*.

Despite the .ypf extension, this is plain JSON - the same content shape as any other project file.