
ns = network safety
server: 0 = any connection, 1 = localhost connections only, 2+ = no networking

web example: 
make with -source tadsnet


adv's browser.t: provides the various hooks into TADS that then pass control to the webUI
webui.tl -> webui.t: the whole state management system between the browser and the server
  --includes the whole client side in webUIres
  

-webhost localhost




Windows, indexed 0, 1, 2...
0 == Main window, others optional.
Each window sends a verb and displays the reply.
Does this every turn.
Game replies to idempotent verb with list of verbs that are idempotent.
User can created windows not guaranteed to be idempotent, with warning.  Basically, each window runs the same command each turn and displays corresponding output
(Might also have "idempotent [verb]" that would run an idempotent version of that command.)

Might also need a filter between front and end back end to filter/read stuff from like banner windows and the like.



FEEDING attempt:


DefineTAction(Feed);
VerbRule(Feed)
     'feed' singleDobj : FeedAction
     verbPhrase = 'feed/feeding (what)'
;

DefineTAction(FeedTo);
VerbRule(FeedTo)
     'feed' dobjList 'to' singleIobj : FeedToAction
     verbPhrase = 'feed/feeding (what) (to what)'
;

modify Thing

    dobjFor(Feed) {
        verify() { 
            illogical('{The dobj/he} {does}n\'t appear to be hungry right now.');
        }
    }

    iobjFor(FeedTo) {
        verify() { 
            illogical('{The dobj/he} {does}n\'t appear to be hungry right now.');
        }
    }
    dobjFor(FeedTo) {
        verify() { 
            illogical('{The dobj/he} {is} inedible.');
        }
    }


modify Food {
    dobjFor(FeedTo) {
        verify() { 
           logical;
        }
    }    
}