mirror of
https://github.com/penpot/penpot.git
synced 2026-08-29 16:18:48 +00:00
A Penpot file omits an attribute whose value equals its default, so a shape that is not blocked carries no `blocked` key at all. Projected as it stands, that column reads NULL, and a reader cannot tell a missing feature from a false one. `app.graph.schema.beadpot` reads the schema manifest the parity consumer exports, checked in at `backend/resources/app/graph/beadpot-schema.json`, and `nodes/apply-defaults` fills every unset column that the manifest gives a default for. The default is withheld when the column's Ladybug type differs from the manifest's, because a default is expressed in its column's type. Applied after validation: a default belongs to the graph column, not to the Penpot schema the attributes were checked against. This stays off `graph-backend`. Penpot should declare these defaults from its own model rather than import another project's manifest, which is W24 on the workplan. AI-assisted-by: mixed models