--- id: SCH-34 family: GR-SCHEMA level: core profiles: [storage-api, editor-client] posture: normative-target added: "1.0" changed: "1.0" source: https://flowdrop.io/spec/rules/gr-schema/sch-34 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # SCH-34 — A property's type is a JSON Schema type, not a port lane *GR-SCHEMA (Part I) · level: core · profiles: storage-api, editor-client · added in 1.0* The two vocabularies overlap on four words, which is why a lane name written into `type` looks correct, derives the wrong lane, and is caught by nothing. ## The rule > **Normative.** This is the rule. > > 1. A property's `type` is one of JSON Schema's seven type words, or an array whose every member is one. > > 2. It is never a port lane. > > 3. A schema that spells a lane in `type` is malformed, on the input side and the output side alike: the lane derivation answers the miss with the sink and reports nothing, so the only symptom is a port of the wrong lane. > > 4. An implementation states this constraint where a schema is declared, so an offending schema is caught before it ships rather than after a port is drawn from it. ## Related rules - Names: SCH-9, SCH-10, SCH-35, SCH-37 - Referenced by: SCH-9, SCH-10, SCH-35, SCH-37 --- 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.