--- id: SCH-33 family: GR-SCHEMA level: extended profiles: [storage-api, editor-client] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-schema/sch-33 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # SCH-33 — A schema that will not load never rewrites stored parameters *GR-SCHEMA (Part I) · level: extended · profiles: storage-api, editor-client · added in 1.0* A momentary failure to load a node type's declared schema once looked exactly like "this node type declares nothing", and a save then wrote that emptiness back as permanent configuration loss. ## The rule > **Normative.** This is the rule. > > 1. A declared parameter schema that fails to load, or that loads without a usable `properties` map, must not be read as a node type declaring nothing; a node type with no parameters declares an empty map, and an absent map loses stored rows exactly as a failure does. > > 2. Where a node type has stored parameter configuration that such a schema would drop, the save is refused and nothing is rewritten; where nothing is stored there is nothing to lose, and the rest of the editing surface stays reachable. > > 3. A write path that is reachable without that refusal writes the stored configuration back verbatim rather than the accidentally empty computed one, and leaves reserved-port exposure untouched. > > 4. Only the render path may treat an unloadable schema as no properties, where that correctly means render no rows. ## Related rules - Names: SCH-32 --- Rule identifiers are permanent and are never renumbered. This specification carries no implementation status: each implementation publishes its own standing against these rules. Licensed CC BY 4.0.