--- id: SCH-10 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-10 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # SCH-10 — The map from a schema type to a port lane *GR-SCHEMA (Part I) · level: core · profiles: storage-api, editor-client · added in 1.0* A port's lane is what an editor colours it by and what it checks a wire against. It is derived from the property's schema type by one closed map. ## The rule > **Normative.** This is the rule. > > 1. A property's schema type maps to exactly one lane: `string` to `string`; `number` and `integer` to `number`; `boolean` to `boolean`; `array` to `array`; `object` to `json`; `null` to the sink. > > 2. Any other value, and an absent type, yield the sink, never `string`. > > 3. A property's `x-data-type` overrides the mapped lane whenever it names a lane the served port configuration declares; any other value is ignored and the schema type maps as usual. > > 4. Every lane this derivation can return, override included, must also be declared by the served port configuration: an undeclared lane leaves the port compatible with nothing an editor can draw. ## Related rules - Names: SCH-34, SCH-35, SCH-36, SCH-37, SCH-41 - Referenced by: SCH-8, SCH-10.a, SCH-34, SCH-35, SCH-41 --- 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.