--------------------
INPUT
--------------------
- direct (addLine)
- actual games
- code-searchquery


--------------------
GAME VM
--------------------
[ game ]
  |- ccvm 
    [CodeVirtualMaschine]
    |- SourceObjects
       [SourceObject]
       |- line
       |- complex (function, if, while*)

> arrTasks
  
  this.arrStartTasks.push("start()");
  this.arrStartTasks.push("startAfter()");

  this.arrUpdateTasks.push("updateBefore()");
  this.arrUpdateTasks.push("update()");
  this.arrUpdateTasks.push("updateAfter()");

  + drawBefore*
  + draw* // p5js org version!
    |- render()
    |- renderDisplay()
    |- render...
  + drawAfter*


- sourcecode
  > splitLevelCodes (Stories = // nextlevel)
    > execute 
      |- normal code*
      |  after // gamecode
      |- gamecode


- playLevel

  - clearAllRoutines
  - go on ... 
  
--------------------
Games
--------------------

[ arrStories ]
  |- "WeekEnd"
  |- "FixIt"
  |- "DebugMax"

Add a story:
- addStory()

Add level:
- addLevel(,"safsdf%20")


searchStory('abc')
playStory()


--------------------
Rendering
--------------------

draw()
- drawBefore
- renderSourceCode(); - codeX,codeY 
- renderDisplay();
- drawAfter



PATHWAYS

# internal 
- direct GameFront
- Story system [Story]

# external
- sourceCode from web [Story]
- direct from internal editor [Story]

PLAYER

HTML
- title
- story

CANVAS
- p5js ... 