{
    "source": "core/types/src/index.ts",
    "name": "NavigationFlowState",
    "type": "or",
    "or": [
        {
            "source": "core/types/src/index.ts",
            "name": "NavigationFlowViewState",
            "type": "object",
            "properties": {
                "_comment": {
                    "required": false,
                    "node": {
                        "type": "string",
                        "title": "CommentBase._comment",
                        "description": "Add comments that will not be processing, but are useful for code explanation"
                    }
                },
                "state_type": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "const": "VIEW",
                        "title": "NavigationBaseState.state_type",
                        "description": "A property to determine the type of state this is"
                    }
                },
                "onStart": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onStart"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onStart",
                        "description": "An optional expression to run when this view renders"
                    }
                },
                "onEnd": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onEnd"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onEnd",
                        "description": "An optional expression to run before view transition"
                    }
                },
                "exp": {
                    "required": false,
                    "node": {
                        "title": "NavigationBaseState.exp",
                        "type": "never"
                    }
                },
                "transitions": {
                    "required": true,
                    "node": {
                        "source": "core/types/src/index.ts",
                        "name": "NavigationFlowTransition",
                        "type": "record",
                        "keyType": {
                            "type": "string"
                        },
                        "valueType": {
                            "type": "string"
                        },
                        "title": "NavigationFlowTransitionableState.transitions",
                        "description": "A mapping of transition-name to FlowState name"
                    }
                },
                "ref": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "title": "NavigationFlowViewState.ref",
                        "description": "An id corresponding to a view from the 'views' array"
                    }
                },
                "attributes": {
                    "required": false,
                    "node": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": {
                            "type": "any"
                        },
                        "title": "NavigationFlowViewState.attributes",
                        "description": "View meta-properties"
                    }
                }
            },
            "additionalProperties": {
                "type": "unknown"
            },
            "title": "NavigationFlowViewState",
            "description": "A state representing a view"
        },
        {
            "source": "core/types/src/index.ts",
            "name": "NavigationFlowEndState",
            "type": "object",
            "properties": {
                "_comment": {
                    "required": false,
                    "node": {
                        "type": "string",
                        "title": "CommentBase._comment",
                        "description": "Add comments that will not be processing, but are useful for code explanation"
                    }
                },
                "state_type": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "const": "END",
                        "title": "NavigationBaseState.state_type",
                        "description": "A property to determine the type of state this is"
                    }
                },
                "onStart": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onStart"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onStart",
                        "description": "An optional expression to run when this view renders"
                    }
                },
                "onEnd": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onEnd"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onEnd",
                        "description": "An optional expression to run before view transition"
                    }
                },
                "exp": {
                    "required": false,
                    "node": {
                        "title": "NavigationBaseState.exp",
                        "type": "never"
                    }
                },
                "outcome": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "title": "NavigationFlowEndState.outcome",
                        "description": "A description of _how_ the flow ended.\nIf this is a flow started from another flow, the outcome determines the flow transition"
                    }
                }
            },
            "additionalProperties": {
                "type": "unknown"
            },
            "title": "NavigationFlowEndState",
            "description": "An END state of the flow."
        },
        {
            "source": "core/types/src/index.ts",
            "name": "NavigationFlowFlowState",
            "type": "object",
            "properties": {
                "_comment": {
                    "required": false,
                    "node": {
                        "type": "string",
                        "title": "CommentBase._comment",
                        "description": "Add comments that will not be processing, but are useful for code explanation"
                    }
                },
                "state_type": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "const": "FLOW",
                        "title": "NavigationBaseState.state_type",
                        "description": "A property to determine the type of state this is"
                    }
                },
                "onStart": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onStart"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onStart",
                        "description": "An optional expression to run when this view renders"
                    }
                },
                "onEnd": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onEnd"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onEnd",
                        "description": "An optional expression to run before view transition"
                    }
                },
                "exp": {
                    "required": false,
                    "node": {
                        "title": "NavigationBaseState.exp",
                        "type": "never"
                    }
                },
                "transitions": {
                    "required": true,
                    "node": {
                        "source": "core/types/src/index.ts",
                        "name": "NavigationFlowTransition",
                        "type": "record",
                        "keyType": {
                            "type": "string"
                        },
                        "valueType": {
                            "type": "string"
                        },
                        "title": "NavigationFlowTransitionableState.transitions",
                        "description": "A mapping of transition-name to FlowState name"
                    }
                },
                "ref": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "title": "NavigationFlowFlowState.ref",
                        "description": "A reference to a FLOW id state to run"
                    }
                }
            },
            "additionalProperties": false,
            "title": "NavigationFlowFlowState"
        },
        {
            "source": "core/types/src/index.ts",
            "name": "NavigationFlowActionState",
            "type": "object",
            "properties": {
                "_comment": {
                    "required": false,
                    "node": {
                        "type": "string",
                        "title": "CommentBase._comment",
                        "description": "Add comments that will not be processing, but are useful for code explanation"
                    }
                },
                "state_type": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "const": "ACTION",
                        "title": "NavigationBaseState.state_type",
                        "description": "A property to determine the type of state this is"
                    }
                },
                "onStart": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onStart"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onStart",
                        "description": "An optional expression to run when this view renders"
                    }
                },
                "onEnd": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onEnd"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onEnd",
                        "description": "An optional expression to run before view transition"
                    }
                },
                "exp": {
                    "required": true,
                    "node": {
                        "type": "ref",
                        "ref": "Expression",
                        "title": "NavigationFlowActionState.exp",
                        "description": "An expression to execute.\nThe return value determines the transition to take"
                    }
                },
                "transitions": {
                    "required": true,
                    "node": {
                        "source": "core/types/src/index.ts",
                        "name": "NavigationFlowTransition",
                        "type": "record",
                        "keyType": {
                            "type": "string"
                        },
                        "valueType": {
                            "type": "string"
                        },
                        "title": "NavigationFlowTransitionableState.transitions",
                        "description": "A mapping of transition-name to FlowState name"
                    }
                }
            },
            "additionalProperties": false,
            "title": "NavigationFlowActionState",
            "description": "Action states execute an expression to determine the next state to transition to"
        },
        {
            "source": "core/types/src/index.ts",
            "name": "NavigationFlowAsyncActionState",
            "type": "object",
            "properties": {
                "_comment": {
                    "required": false,
                    "node": {
                        "type": "string",
                        "title": "CommentBase._comment",
                        "description": "Add comments that will not be processing, but are useful for code explanation"
                    }
                },
                "state_type": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "const": "ASYNC_ACTION",
                        "title": "NavigationBaseState.state_type",
                        "description": "A property to determine the type of state this is"
                    }
                },
                "onStart": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onStart"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onStart",
                        "description": "An optional expression to run when this view renders"
                    }
                },
                "onEnd": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onEnd"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onEnd",
                        "description": "An optional expression to run before view transition"
                    }
                },
                "exp": {
                    "required": true,
                    "node": {
                        "type": "ref",
                        "ref": "Expression",
                        "title": "NavigationFlowAsyncActionState.exp",
                        "description": "An expression to execute.\nThe return value determines the transition to take"
                    }
                },
                "transitions": {
                    "required": true,
                    "node": {
                        "source": "core/types/src/index.ts",
                        "name": "NavigationFlowTransition",
                        "type": "record",
                        "keyType": {
                            "type": "string"
                        },
                        "valueType": {
                            "type": "string"
                        },
                        "title": "NavigationFlowTransitionableState.transitions",
                        "description": "A mapping of transition-name to FlowState name"
                    }
                },
                "await": {
                    "required": true,
                    "node": {
                        "type": "boolean",
                        "title": "NavigationFlowAsyncActionState.await",
                        "description": "Whether the expression(s) should be awaited before transitioning"
                    }
                }
            },
            "additionalProperties": false,
            "title": "NavigationFlowAsyncActionState",
            "description": "Action states execute an expression to determine the next state to transition to"
        },
        {
            "source": "core/types/src/index.ts",
            "name": "NavigationFlowExternalState",
            "type": "object",
            "properties": {
                "_comment": {
                    "required": false,
                    "node": {
                        "type": "string",
                        "title": "CommentBase._comment",
                        "description": "Add comments that will not be processing, but are useful for code explanation"
                    }
                },
                "state_type": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "const": "EXTERNAL",
                        "title": "NavigationBaseState.state_type",
                        "description": "A property to determine the type of state this is"
                    }
                },
                "onStart": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onStart"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onStart",
                        "description": "An optional expression to run when this view renders"
                    }
                },
                "onEnd": {
                    "required": false,
                    "node": {
                        "type": "or",
                        "or": [
                            {
                                "type": "ref",
                                "ref": "Expression",
                                "title": "NavigationBaseState.onEnd"
                            },
                            {
                                "source": "core/types/src/index.ts",
                                "name": "ExpressionObject",
                                "type": "object",
                                "properties": {
                                    "exp": {
                                        "required": false,
                                        "node": {
                                            "type": "ref",
                                            "ref": "Expression",
                                            "title": "ExpressionObject.exp",
                                            "description": "The expression to run"
                                        }
                                    }
                                },
                                "additionalProperties": false,
                                "title": "ExpressionObject",
                                "description": "An object with an expression in it"
                            }
                        ],
                        "title": "NavigationBaseState.onEnd",
                        "description": "An optional expression to run before view transition"
                    }
                },
                "exp": {
                    "required": false,
                    "node": {
                        "title": "NavigationBaseState.exp",
                        "type": "never"
                    }
                },
                "transitions": {
                    "required": true,
                    "node": {
                        "source": "core/types/src/index.ts",
                        "name": "NavigationFlowTransition",
                        "type": "record",
                        "keyType": {
                            "type": "string"
                        },
                        "valueType": {
                            "type": "string"
                        },
                        "title": "NavigationFlowTransitionableState.transitions",
                        "description": "A mapping of transition-name to FlowState name"
                    }
                },
                "ref": {
                    "required": true,
                    "node": {
                        "type": "string",
                        "title": "NavigationFlowExternalState.ref",
                        "description": "A reference for this external state"
                    }
                }
            },
            "additionalProperties": {
                "type": "unknown"
            },
            "title": "NavigationFlowExternalState",
            "description": "External Flow states represent states in the FSM that can't be resolved internally in Player.\nThe flow will wait for the embedded application to manage moving to the next state via a transition"
        }
    ],
    "title": "NavigationFlowState"
}