Instructions on using Minimalest.db ------------ -- ----- ------------- The Minimal database is really quite minimal; there are no commands defined other than the built-in ones (`PREFIX', `SUFFIX', and `.program') and only enough verbs defined and/or programmed to make it possible to bootstrap. It's almost a certainty that you'd better off starting from the most recent release of the ToastCore database and possibly trimming things from that. Some people can't resist a challenge, though, so this document exists to orient them to the meager contents of the Minimalest database. There are two objects in the Minimal database, arranged in the parent/child hierarchy as follows: Nothing (#-1) System Object (#0) Wizard (#1) The System Object has one defined verb, #0:do_login_command, which simply returns #1. This has the effect that all connections to the Minimal database are automatically logged-in to Wizard, the only player. Wizard has a verb named `eval' defined but not yet programmed. It has arguments `any any any' and permissions `rxd'. The Wizard is initially located in #-1 (i.e., nowhere). There are no other properties or verbs defined in the database. There are no forked or suspended tasks either. The only way to get started in the Minimalest database is either to change the program for #0:do_login_command to perform some useful task (probably a more tedious way to go, since you'd have to reconnect to get that verb to run), or to provide a useful definition for `#1:eval' (probably the right course, since you can invoke that more easily). Of course, there are no restrictions on what you make this `eval' verb do, but I recommend that you implement a simple, general MOO-code expression evaluator, perhaps using code like this: .program me:eval notify(player, toliteral(eval("return " + argstr + ";")[2])); . Or, perhaps something a tad fancier, to help you diagnose syntax errors more easily: .program me:eval answer = eval("return " + argstr + ";"); if (answer[1]) notify(player, tostr("=> ", toliteral(answer[2]))); else for line in (answer[2]) notify(player, line); endfor endif . Of course, much fancier `eval' verbs are possible, but you'll discover them for yourself, I'm sure. From such a basis, you can do anything by using the various built-in functions directly, like add_verb(), add_property(), etc. With sufficient amounts of work, you can build up a set of easier-to-use command-line interfaces to these facilities to make programming and building much easier. If you should decide, after reading this, to build up an interesting database starting from the Minimalest one, and you succeed in doing so, please drop me a line; I'd love to hear about it: lisdude@lisdude.com Originally written by Pavel Curtis (aka Haakon, ArchWizard of LambdaMOO). Updated 2020-04-30 by lisdude to account for the changes between Minimal.db and Minimalest.db.