--- id: SCH-8 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-8 specification: FlowDrop Workflow Specification 1.0-draft licence: CC BY 4.0 --- # SCH-8 — How a schema property becomes a port *GR-SCHEMA (Part I) · level: core · profiles: storage-api, editor-client · added in 1.0* One mapping turns a schema property into the port an editor draws, so every schema-derived port on every node is built the same way. ## The rule > **Normative.** This is the rule. > > 1. A schema-derived port takes its `id` from the property key; its `name` from the property's `title`, or from the key where there is no title; its lane from the type mapping; `required` from membership in the schema's `required` list; its default value from the property's `default`, or null where there is none; its exposed-by-default from the exposure defaults; and its display order from `x-port-order`, or 0 where that is absent. > > 2. This is the only schema-to-port mapping. > > 3. The unified input and output ports are not schema-derived: they always carry the `json` lane and display order 0. ## Related rules - Names: SCH-10, SCH-16, SCH-17, SCH-18, SCH-27 - Referenced by: SCH-17, SCH-18, SCH-27 --- 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.