Frame Schema

From Telstar Wiki
Revision as of 23:02, 2 April 2022 by John (talk | contribs) (Created page with "This is the basic JSON schema for a Telstar Frame: { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "pid": { "type": "object", "properties": { "page-no": { "type": "integer" }, "frame-id": { "type": "string" } }, "required": [ "page-no", "frame-id" ]...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is the basic JSON schema for a Telstar Frame:

   {
     "$schema": "http://json-schema.org/draft-04/schema#",
     "type": "object",
     "properties": {
       "pid": {
         "type": "object",
         "properties": {
           "page-no": {
             "type": "integer"
           },
           "frame-id": {
             "type": "string"
           }
         },
         "required": [
           "page-no",
           "frame-id"
         ]
       },
       "visible": {
         "type": "boolean"
       },
       "header-text": {
         "type": "string"
       },
       "cost": {
         "type": "integer"
       },
       "frame-type": {
         "type": "string"
       },
       "redirect": {
         "type": "object",
         "properties": {
           "page-no": {
             "type": "integer"
           },
           "frame-id": {
             "type": "string"
           }
         },
         "required": [
           "page-no",
           "frame-id"
         ]
       },
       "content": {
         "type": "object",
         "properties": {
           "data": {
             "type": "string"
           },
           "type": {
             "type": "string"
           }
         },
         "required": [
           "data",
           "type"
         ]
       },
       "title": {
         "type": "object",
         "properties": {
           "data": {
             "type": "string"
           },
           "type": {
             "type": "string"
           }
         },
         "required": [
           "data",
           "type"
         ]
       },
       "routing-table": {
         "type": "array",
         "items": [
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           },
           {
             "type": "integer"
           }
         ]
       },
       "cursor": {
         "type": "boolean"
       },
       "connection": {
         "type": "object",
         "properties": {
           "address": {
             "type": "string"
           },
           "mode": {
             "type": "string"
           },
           "port": {
             "type": "integer"
           }
         },
         "required": [
           "address",
           "mode",
           "port"
         ]
       },
       "author-id": {
         "type": "string"
       },
       "response-data": {
         "type": "object",
         "properties": {
           "responses": {
             "type": "null"
           },
           "response-action": {
             "type": "object",
             "properties": {
               "exec": {
                 "type": "string"
               },
               "args": {
                 "type": "null"
               },
               "post-action-frame": {
                 "type": "object",
                 "properties": {
                   "page-no": {
                     "type": "integer"
                   },
                   "frame-id": {
                     "type": "string"
                   }
                 },
                 "required": [
                   "page-no",
                   "frame-id"
                 ]
               },
               "post-cancel-frame": {
                 "type": "object",
                 "properties": {
                   "page-no": {
                     "type": "integer"
                   },
                   "frame-id": {
                     "type": "string"
                   }
                 },
                 "required": [
                   "page-no",
                   "frame-id"
                 ]
               }
             },
             "required": [
               "exec",
               "args",
               "post-action-frame",
               "post-cancel-frame"
             ]
           }
         },
         "required": [
           "responses",
           "response-action"
         ]
       },
       "navmessage-select": {
         "type": "string"
       },
       "navmessage-notfound": {
         "type": "string"
       }
     },
     "required": [
       "pid",
       "visible",
       "header-text",
       "cost",
       "frame-type",
       "redirect",
       "content",
       "title",
       "routing-table",
       "cursor",
       "connection",
       "author-id",
       "response-data",
       "navmessage-select",
       "navmessage-notfound"
     ]
   }