| { | 
 |   "$schema": "http://json-schema.org/schema#", | 
 |   "title": "Schema for modular framework configuration", | 
 |   "definitions": { | 
 |     "agent_service_index_entry": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "service_name": { | 
 |           "type": "string", | 
 |           "pattern": "^[^.]+[.][^.]+([.][^.]+)*$" | 
 |         }, | 
 |         "agent_url": {"$ref": "#/definitions/component_url" } | 
 |       }, | 
 |       "additionalProperties": false, | 
 |       "required": ["service_name", "agent_url"] | 
 |     }, | 
 |     "basemgr": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "enable_cobalt": { "type": "boolean", "default": true }, | 
 |         "use_session_shell_for_story_shell_factory": { | 
 |           "type": "boolean", | 
 |           "default": false | 
 |         }, | 
 |         "base_shell": { "$ref": "#/definitions/base_shell" }, | 
 |         "session_shells": { | 
 |           "type": "array", | 
 |           "items": { "$ref": "#/definitions/session_shell" }, | 
 |           "maxItems": 1 | 
 |         }, | 
 |         "story_shell_url": { | 
 |           "$ref": "#/definitions/component_url", | 
 |           "default": "fuchsia-pkg://fuchsia.com/dev_story_shell#meta/dev_story_shell.cmx" | 
 |         }, | 
 |         "session_launcher": { "$ref": "#/definitions/component_url_and_args" } | 
 |       }, | 
 |       "additionalProperties": false, | 
 |       "oneOf": [ | 
 |         { "required": ["session_launcher"] }, | 
 |         { "required": ["session_shells"] } | 
 |       ] | 
 |     }, | 
 |     "base_shell": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "url": { | 
 |           "$ref": "#/definitions/component_url", | 
 |           "default": "fuchsia-pkg://fuchsia.com/auto_login_base_shell#meta/auto_login_base_shell.cmx" | 
 |         }, | 
 |         "keep_alive_after_login": { "type": "boolean", "default": false }, | 
 |         "args": { | 
 |           "type": "array", | 
 |           "items": { "type": "string" } | 
 |         } | 
 |       }, | 
 |       "additionalProperties": false, | 
 |       "required": ["url"] | 
 |     }, | 
 |     "component_args": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "uri": { "$ref": "#/definitions/component_url" }, | 
 |         "args": { | 
 |           "type": "array", | 
 |           "items": { "type": "string" } | 
 |         } | 
 |       }, | 
 |       "required": ["uri", "args"] | 
 |     }, | 
 |     "component_url": { "$ref": "#/definitions/uri" }, | 
 |     "component_url_and_args": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "url": { "$ref": "#/definitions/component_url" }, | 
 |         "args": { | 
 |           "type": "array", | 
 |           "items": { "type": "string" } | 
 |         } | 
 |       }, | 
 |       "required": ["url", "args"] | 
 |     }, | 
 |     "session_shell": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "url": { | 
 |           "$ref": "#/definitions/component_url", | 
 |           "default": "fuchsia-pkg://fuchsia.com/dev_session_shell#meta/dev_session_shell.cmx" | 
 |         }, | 
 |         "display_usage": { "type": "string" }, | 
 |         "screen_height": { "type": "number" }, | 
 |         "screen_width": { "type": "number" } | 
 |       }, | 
 |       "additionalProperties": false, | 
 |       "required": ["url"] | 
 |     }, | 
 |     "sessionmgr": { | 
 |       "type": "object", | 
 |       "properties": { | 
 |         "enable_cobalt": { "type": "boolean", "default": true }, | 
 |         "startup_agents": { | 
 |           "type": "array", | 
 |           "items": { "$ref": "#/definitions/component_url" }, | 
 |           "uniqueItems": true | 
 |         }, | 
 |         "session_agents": { | 
 |           "type": "array", | 
 |           "items": { "$ref": "#/definitions/component_url" }, | 
 |           "uniqueItems": true | 
 |         }, | 
 |         "component_args": { | 
 |           "type": "array", | 
 |           "items": { "$ref": "#/definitions/component_args" } | 
 |         }, | 
 |         "agent_service_index": { | 
 |           "type": "array", | 
 |           "items": { "$ref": "#/definitions/agent_service_index_entry" }, | 
 |           "uniqueItems": true | 
 |         }, | 
 |         "restart_session_on_agent_crash": { | 
 |           "type": "array", | 
 |           "items": { "$ref": "#/definitions/component_url" }, | 
 |           "uniqueItems": true | 
 |         } | 
 |       }, | 
 |       "additionalProperties": false | 
 |     }, | 
 |     "uri": { | 
 |       "type": "string", | 
 |       "pattern": "^[a-z|-]+://.+" | 
 |     } | 
 |   }, | 
 |   "type": "object", | 
 |   "properties": { | 
 |     "basemgr": { "$ref": "#/definitions/basemgr" }, | 
 |     "sessionmgr": { "$ref": "#/definitions/sessionmgr" } | 
 |   }, | 
 |   "required": ["basemgr"], | 
 |   "additionalProperties": false | 
 | } |