<commit_before>==Glossary==

 * Hub: contains and updates Apps - exists so we may run multiple Apps in parallel off the same timing mechanism (loop or callback).
 * App: contains and updates Ctrls (and thus models) and Views.
 * model: a generic object (user specified type) that holds logical world state.
 * View: a component that assists in rendering a discrete thing, like a game-world view, a menu or an inventory.
 * Ctrl: provides the basic logic that operates on (reads and writes) the model.
 * update/updatePost: For Ctrl, update within a given App update, before and after all that App's Views update, respectively. For View, update before or after that View's children, respectively.
 * initialise/dispose: attain resources and/or make allocations OR release resource / free allocations that are specific to this object (Hub, App, View, Ctrl); typically one-off operations at executable startup & shutdown.
 * start/stop: commence or cease updates (App, View, Ctrl; Hub is not included here as it is always updating).
 * resume/suspend: for when mandatory application context is regained or lost, typically due to a loss and subsequent restoration of the window (and thus rendering and input capability) or graphics context (Hub, App, View, Ctrl); naturally a stop is required before  a suspend, while a start is required after a resume.

update/updatePost, initialise/dispose, start/stop and suspend/resume are generally all recursive functions, irrespective of where they appear. Exceptions are:

 * View_start()/_stop(): Views should necessarily be started separately, though stopping a parent View necessarily prevents all descendant Views from being run (though technically their "updating" flag remains true).
 <commit_msg>Updated concepts page.<commit_after>Glossary
========

 * Hub: contains and updates Apps - exists so we may run multiple Apps in parallel off the same timing mechanism (loop or callback).
 * App: contains and updates Ctrls (and thus models) and Views.
 * model: a generic object (user specified type) that holds logical world state.
 * View: a component that assists in rendering a discrete thing, like a game-world view, a menu or an inventory.
 * Ctrl: provides the basic logic that operates on (reads and writes) the model.
 * update/updatePost: For Ctrl, update within a given App update, before and after all that App's Views update, respectively. For View, update before or after that View's children, respectively.
 * initialise/dispose: attain resources and/or make allocations OR release resource / free allocations that are specific to this object (Hub, App, View, Ctrl); typically one-off operations at executable startup & shutdown.
 * start/stop: commence or cease updates (App, View, Ctrl; Hub is not included here as it is always updating).
 * resume/suspend: for when mandatory application context is regained or lost, typically due to a loss and subsequent restoration of the window (and thus rendering and input capability) or graphics context (Hub, App, View, Ctrl); naturally a stop is required before  a suspend, while a start is required after a resume.

update/updatePost, initialise/dispose, start/stop and suspend/resume are generally all recursive functions, irrespective of where they appear. Exceptions are:

 * View_start()/View_stop(): Views must be started individually, this is not recursive, though stopping a parent View necessarily prevents all descendant Views from being updated (though internally, descendants' "updating" flag remains as they were, so if they were updating then they will continue updating when their ancestor is View_start()ed again).
 
{'fraction_non_alphanumeric': 0.06083126892375447, 'fraction_numerical': 0.0, 'mean_word_length': 4.823717948717949, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7165187', 'n_tokens_mistral': 865, 'n_tokens_neox': 813, 'n_words': 513}