Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/concepts/properties b/doc/concepts/properties
new file mode 100644
index 0000000..1ab418a
--- /dev/null
+++ b/doc/concepts/properties
@@ -0,0 +1,109 @@
+Properties
+ BESCHREIBUNG:
+     Im Gegensatz zu Variablen innerhalb eines Objektes, kann man Properties
+     von aussen veraendern, ohne eine besondere Funktion geschrieben zu haben.
+
+     1. Das zugrundeliegende Prinzip
+     ===============================
+      Das grundlegende Konzept der MUDlib ist, dass wichtige, objektbezogene
+      Informationen in den sogenannnten Properties gespeichert werden (engl.
+      property -- Eigenschaft, Eigentum).
+
+      Diese Informationen koennen einfache Werte, wie z.B. Zahlen, Zeichen oder
+      Objekte, aber auch kompliziertere Strukturen sein.
+      Jedes Objekt kann beliebig viele solcher Properties besitzen und deren
+      Namensgebung ist nicht nur auf die von der MUDlib bereitgestellten
+      Standardproperties begrenzt. Das heisst, das fuer eigene Anwendungen die
+      Menge der Properties fuer ein Objekt beliebig erweitert werden kann.
+      Damit sind auch schon die beiden Hauptmerkmale einer Property ange-
+      sprochen:
+
+	a) ein Name oder Kennung und
+	b) ein Wert, der durch den Namen repraesentiert wird.
+
+      Das reine Verwalten einer Property mit Namen und Wert ist aber nicht sehr
+      sinnvoll und so gehoeren zu jeder Property noch zwei weitere wichtige
+      Dinge. Zu jeder Property wurden jeweils zwei Operationen eingefuehrt,
+      welche den uebergebenen Wert vor der Speicherung oder Abfrage bearbeiten.
+
+      Zusammenfassend laesst sich das Konzept der Property in folgendem Schema
+      darstellen:
+
+               +-------------------------------------------+
+               | Property                                  |
+               +-------------------------------------------+
+               | privater Datenbereich (Property Werte)    |
+               +-------------------------------------------+
+               | Direktzugriff auf den Datenbereich        |
+               +-------------------------------------+     |
+               |     ^       Methoden       v        | ^ v |
+               |   Setzen       |        Abfragen    |     |
+               +-------------------------------------+-----+
+                     ^                      |
+	             |                      V
+                  SetProp()             QueryProp()
+
+      Aus dem Schema laesst sich Folgendes erkennen:
+      - beim Setzen und Abfragen wird der Wert einer Methode uebergeben, die
+	den Wert zurueckgibt oder ggf. die Aenderungen vornimmt
+      - ein direkter Zugriff auf den Wert der ist ebenfalls moeglich, sollte
+	aber nicht der Normalfall sein, da die Methoden Nebeneffekte erzeugen
+        - in bestimmten Faellen kann man den aeusserlich aendernden Zugriff
+	  vollkommen unterbinden (NOSETMETHOD, PROTECT)
+	  (VORSICHT bei mappings/arrays, diese werden bei QueryProp()
+	   als Referenz zurueckgegeben, sind also so aenderbar)
+
+     2. Implementation
+     =================
+
+      Die Klasse /std/thing/properties.c stellt folgende Funktionen fuer die
+      Behandlung von Properties bereit:
+
+      Normaler Zugriff:	mixed SetProp(<name>, <wert>)
+			- setzt den Wert von <name> auf <wert>
+			mixed QueryProp(<name>)
+			- gibt den Wert von <name> zurueck
+ 
+      Direkter Zugriff:	mixed Set(<name>, <wert>, <interpretation>)
+			- setzt fuer <name> einen <wert>:
+			  - den normalen Wert
+			    <interpretation>: F_VALUE (==0)
+			  - eine Methode
+			    <wert>: closure
+			    <interpretation>: F_SET_METHOD, F_QUERY_METHOD
+			  - ein Flag
+			    <wert>: SAVE, SECURED, PROTECTED, NOSETMETHOD
+			    <interpretation>: F_MODE, F_MODE_AS, F_MODE_AD
+			mixed Query(<name>, <interpretation>)
+			- fragt fuer <name> einen <wert> ab
+			  - F_SET_METHOD, F_QUERY_METHOD: die Closure/0
+			  - F_MODE: das (veroderte!) Flag
+      Global:		void SetProperties(<mapping>)
+			- setzt das Mapping komplett, beachtet >= PROTECTED
+			mapping QueryProperties()
+			- fragte das komplette Mapping als Kopie ab
+
+     3. Besonderheiten/Eingebaute Properties:
+
+      Existiert zu einer Property eine Funktion mit dem selben Namen und einem
+      "_set_" bzw "_query_" davor, so wird nicht auf die das Property-Mapping
+      zugegriffen, sondern es werden die Argumente an diese Funktion uebergeben
+      und der Rueckgabewert dieser Funktion zurueckgegeben.
+      Vorteil:
+      - so kann man Daten, die schnell verfuegbar sein muessen,	(bei denen
+        also Effizienz gegen SetProp/QueryProp spricht) trotzdem nach aussen
+	einheitlich zugreifbar machen
+      Nachteil:
+      - nicht wirklich sauber
+      - Speichern muss man selbst vornehmen
+      - Set/Query gehen wie auch bei Methoden an _set_*/_query_* vorbei
+      - dieses Verhalten sollte der Mudlib vorbehalten bleiben, fuer eigene
+        Prueffunktionen (wird etwas gesetzt/abgefragt) bzw. Aenderungen
+	sollte man Methoden (F_SET_METHOD/F_QUERY_METHOD) benutzen
+
+ SIEHE AUCH:
+     SetProp(L), QueryProp(L), Set(L), Query(L), SetProperties(L),
+     QueryProperties(L)
+     objekte, effizienz, closures
+
+ 21. Maerz 2004 Gloinson