{
	"_NOTE" : "THIS FILE IS AUTOGENERATED. ONLY MODIFY THE ORIGINAL FILE IN THE /sharedData/ FOLDER!",
	"valid_identifier_types" : [
		["program", "ProgramModel", "Program"],
		["symbol", "SymbolModel", "Symbol"],
		["rule", "RuleModel", "Rule"],
		["file", "FileObjectModel", "FileObject"],
		["tag", "TagModel", "Tag"],
		["message", "MessageModel", "Message"],
		["event", "EventModel", "Event"],
		["option", "OptionModel", "Option"]
	],
	"valid_event_types" : [
		["default", "StepEventDefault"],
		["execute_rule", "StepEventRule"],
		["execute_option", "StepEventOptionRun"],
		["present_options", "StepEventOptionChoose"],
		["mention_uncertainty", "StepEventUncertainty"],
		["execute_program", "StepEventExecution"],
		["wait_for_signal", "StepEventWait"],
		["user_command", "StepEventUserCommand"]
	],
	"valid_user_command_event_subtypes" : [
		["initialize", "initialize"],
		["submit_data", "submit_data"],
		["change_parameters", "change_parameters"],
		["create_objects", "create_objects"]
	],
	"valid_object_creation_triggers" : [
		"out_of_queued_events",
		"chosen_by_priority",
		"system_generated_tag",
		"user_input",
		"created_by_program",
		"created_by_rule",
		"created_by_option",
		"displaying_list_of_options",
		"mention_uncertainty",
		"error_during_iteration",
		"global_feedback_request"
	],
	"valid_runtime_error_types" : [
		["program_timeout", "the program timed out"],
		["program_interrupted_from_outside", "the program was interrupted from the outside (by the user) before it could finish"],
		["program_docker_execution_failed", "the program encountered an unknown error and did not create an error file in the process"],
		["program_failed_with_error_file", "the program encountered an error and created an error file while doing so"],
		["program_result_parsing_failed", "the output of the program could not be parsed correctly"],
		["program_result_processing_failed", "the result of the program could be parsed locally, but an error occured while processing it on the server"],
		["rule_result_processing_failed", "a Rule attempted to do something illegal on the server."],
		["option_result_processing_failed", "an Option attempted to do something illegal on the server."],
		["user_input_processing_failed", "the User attempted to do something illegal on the server."],
		["file_copying_failed", "a File provided by a user was not copied correctly by a lod-executor."],
		["unexpected_error", "the server encountered an unexpected type of error. This is probably not the fault of the contributors but of the website's designers."]
	],
	"server_ip" : "159.89.10.185",
	"server_url" : "https://legionofdevs.com/",
	"debug_server_url" : "http://localhost:9905/",
	"docker_registry" : "legionofdevs.com:444",
	"default_local_exec_env_host" : "https://localhost",
	"default_local_exec_env_port" : 5555,
	"json_encoding" : "utf-8",
	"server_post_request_timeout" : 10,
	"lod_executor_exec_env_timeout" : 60,
	"new_program_default_max_execution_duration" : 10.0,
	"predefined_symbols" : [
		{
			"name" : "!set_idle_message",
			"description" : "This tag is used to overwrite the idle message Elody will display if there are no Rules or Options eligible to be used under the current parameter settings. To do so, create a tag with this symbol targeting a hidden Message. Target this tag with a !nullify tag to deactivate it again."
		},
		{
			"name" : "!set_status_message",
			"description" : "This tag is used to overwrite the status message Elody displays. To do so, create a tag with this symbol where the comment is the text you want to display. If the comment is None, a default value is used instead that describes what the lod-executor is currently doing. Target this tag with a !nullify tag to deactivate it again."
		},
		{
			"name" : "!nullify",
			"description" : "This tag is used by several other tags to deactivate those tags when needed. It does not have a meaning on its own, but nullifies/negates/deactivates/ends other tags."
		},
		{
			"name" : "!task",
			"description" : "This tag is used to group together objects that constitute a logically identifiable, separate Task. It does not currently have any effect on Elody, but Elody will later be extended to be able to make statistical inferences about tasks, and this tag will form the basis of this analysis. For now, just use it to group together all objects or tags that meaningfully belong together in a task, either by targeting those objects with this tag or by targeting this tag with other tags."
		},
		{
			"name" : "?user_input_command_file",
			"description" : "a tag with this symbol targeting a file is created whenever a user enters a text command."
		},
		{
			"name" : "?user_input_uploaded_file",
			"description" : "a tag with this symbol targeting a file is created whenever a user uploads a file."
		},
		{
			"name" : "?user_input_command_keyword",
			"description" : "Tags with this Symbol are created along with ?user_input_command_file. The comment of the Tag is a word that appeared in the entered text."
		},
		{
			"name" : "!set_signal_weight",
			"description" : "this is one of the most important tags: it decides which symbols are considered active for the purpose of activating Rules. Create a tag with this symbol targeting another symbol to create a Signal of that symbol with a given weight, which is used to activate execution rules. You can also target another tag instead of a symbol, in which case the symbol of that tag is used instead. Note that the weight specified here is multiplied with the weights of the Rule's Dependencies and that, if the target of this Tag is another Tag, the weight and comment of that Tag is not relevant for this."
		},
		{
			"name" : "!set_option_weight",
			"description" : "create a tag with this symbol targeting an Option to set the weight of that option."
		},
		{
			"name" : "?set_priority_of_asking_for_input",
			"description" : "a tag with this symbol targeting nothing is created to set the priority of waiting for user input in a 'default' event. Any Rules with a priority below this are ignored."
		},
		{
			"name" : "?set_priority_of_presenting_options",
			"description" : "a tag with this symbol targeting nothing is created to set the priority of presenting options to the user in a 'default' event."
		},
		{
			"name" : "?set_options_display_threshold",
			"description" : "a tag with this symbol targeting nothing is created to set the confidence an Option needs to reach in order to be presented to the user when Options are supposed to be used."
		},
		{
			"name" : "?set_options_execution_threshold",
			"description" : "a tag with this symbol targeting nothing is created to set the confidence an Option needs to reach in order to be executed."
		},
		{
			"name" : "?set_rule_eligibility_min_ratings_count",
			"description" : "a tag with this symbol with a specific weight targeting nothing is created to specify the minimum number of users that must have rated a Rule for that Rule to be eligible for execution."
		},
		{
			"name" : "?set_rule_eligibility_inherit_rating",
			"description" : "a tag with this symbol targeting nothing, with comment either 'true' or 'false', is created to specify whether or not a Rule that would not have a large enough number of ratings is eligible for execution anyway if an earlier version of the same rule is eligible."
		},
		{
			"name" : "?set_rule_eligibility_requires_moderator_approval",
			"description" : "a tag with this symbol targeting nothing, with comment either 'true' or 'false', is created to specify whether or not a Rule must have moderator approval for that Rule to be eligible for execution."
		},
		{
			"name" : "?set_rule_eligibility_always_allow_own_rules",
			"description" : "a tag with this symbol targeting nothing, with comment either 'true' or 'false', is created to specify whether or not a Rule that was created by the owner of the current Scenario is always eligible for execution, even if it doesn't match some of the requirements."
		},
		{
			"name" : "?elody_decision_process",
			"description" : "a tag with this symbol is generated whenever Elody chooses which Rule or Option to execute next. It targets the Message that is generated to describe the decision process."
		},
		{
			"name" : "?rule_candidate",
			"description" : "when Elody decides what to do next, a tag with this symbol targeting a Rule is created for each Rule who's dependencies are fulfilled and which is a candidate for being executed in this step. The weight of the Tag is the priority of the rule."
		},
		{
			"name" : "?weight_of_options",
			"description" : "a tag with this symbol targeting nothing is created along with the ?rule_candidate Tags. The weight of this Tag is the weight of the Options and can be compared to the weight of the Tags."
		},
		{
			"name" : "?named_argument",
			"description" : "a tag with this symbol targeting an object and having a comment is created whenever something with named arguments is executed."
		},
		{
			"name" : "?rule_executed",
			"description" : "a tag with this symbol targeting a Rule and a number of ?named_argument Tags is created whenever a Rule is executed. The other objects are the arguments the rule was run with."
		},
		{
			"name" : "?elody_decision_process_considers_options",
			"description" : "when Elody decides what to do next and starts looking at the Options, a tag with this symbol targeting an Option is created for each Option that is a candidate for being executed in this step if it can find suitable arguments and no other Rule or Option takes priority. The weight of the Tag is the weight of the Option."
		},
		{
			"name" : "?option_candidate",
			"description" : "when Elody decides what to do next and starts looking at the Options, a tag with this symbol targeting an Option is created for each candidate Option. The weight of the Tag is the weight of the Option."
		},
		{
			"name" : "?option_executed",
			"description" : "a tag with this symbol targeting an Option and a number of ?named_argument Tags is created whenever an Option is executed. The other objects are the arguments the Option was run with."
		},
		{
			"name" : "?presented_option",
			"description" : "a tag with this symbol targeting an Option and a number of ?named_argument Tags is automatically created when a group of Options is presented."
		},
		{
			"name" : "?present_options",
			"description" : "a tag with this symbol targeting a number of ?presented_option Tags is automatically created when a group of Options is presented."
		},
		{
			"name" : "?selected_option",
			"description" : "a tag with this symbol targeting an Option and a ?present_options tag group is automatically created when an option is selected from a group of options."
		},
		{
			"name" : "!deactivate_rule_or_option",
			"description" : "a tag with this symbol targeting a Rule or an Option is created by Rules and Options by default, to prevent them from being executed twice. This can be turned off. A Rule or Option with this Tag is ignored when the system chooses what to execute next."
		},
		{
			"name" : "?program_executed",
			"description" : "a tag with this symbol targeting a Program and a number of other objects is created whenever a Program is executed. The other objects are the arguments the Program was run with."
		},
		{
			"name" : "?program_execution_results",
			"description" : "a tag with this symbol targeting a ?program_executed Tag and a number of file objects is created whenever a Program is done executing."
		},
		{
			"name" : "?event_failure",
			"description" : "a tag with this symbol is created whenever an event failed to execute correctly."
		}
	]
}
