diff --git a/v1/specification/json-schemas/gdd/README.md b/v1/specification/json-schemas/gdd/README.md index f3a248e..311fc73 100644 --- a/v1/specification/json-schemas/gdd/README.md +++ b/v1/specification/json-schemas/gdd/README.md @@ -168,6 +168,7 @@ All properties share these definitions: ([JSON-schema definition](https://json-s "gddType": string, // [Optional unless required by GDD Type] A string containing the GDD Type name, see below "gddOptions": object, // [Optional unless required by GDD Type] An object containing options for a certain GDD Type, see below "hidden": boolean // [Optional] When true, exclude this property's value when building a label/display name for the graphic in a GUI. Default false. + "order": number // [Optional] Hint for UI ordering; lower means earlier } ``` #### The `type` property @@ -450,6 +451,37 @@ Example: } ``` +## Property order + +To provide a stable and author-controlled ordering in UIs, each property MAY define an `order` value: + +- Properties with a lower `order` value SHOULD be rendered before properties with a higher `order` value. +- Properties with an `order` value SHOULD be rendered before properties without an `order` value. +- Properties without an `order` value MAY be ordered in an implementation-defined way. + +Example: + +```json +{ + "type": "object", + "properties": { + "title": { + "type": "string", + "order": 1 + }, + "subtitle": { + "type": "string", + "order": 2 + }, + "internalNotes": { + "type": "string" + } + } +} +``` + +In a GUI, `title` SHOULD be displayed before `subtitle`, while `internalNotes` (which has no `order`) can be placed after them in an implementation-defined position. + ## For GUI Developers ### Getting started diff --git a/v1/specification/json-schemas/gdd/object.json b/v1/specification/json-schemas/gdd/object.json index cac4d64..4a13725 100644 --- a/v1/specification/json-schemas/gdd/object.json +++ b/v1/specification/json-schemas/gdd/object.json @@ -23,6 +23,10 @@ "hidden": { "type": "boolean", "description": "When true, the value of this property SHOULD NOT be included when labelling the graphic in a GUI (e.g. in playout or automation UIs). Default is false. Used to keep labels concise by excluding technical or less meaningful fields." + }, + "order": { + "type": "number", + "description": "For UI ordering, lower values should be displayed first" } }, "required": ["type"],