record monster_data {
   int variable;           // the +ML currently being run; if the same, the monster will be reloaded from cache
   boolean nopotato;       // potatos are useless here
   boolean nofamiliar;     // your familiar will not act
   spread aura;            // passive damage dealt to you every round
   spread retal;           // damage dealt to you if you hit with a melee attack
   spread res;             // resistances to each element, expressed as -1.0 (vulnerability) to 1.0 (immunity)
   spread pen;             // the monster's penetration ($element[none] for DA penetration)
   int drpen;              // DR penetration.  The doctor is IN!
   int howmany;            // group monster size (default 1)
   int multiattack;        // number of attacks per round (default 1)
   int maxround;           // combat lasts till this round (default 30)
   int damagecap;          // damage in amounts beyond this will be reduced...
   float capexp;           // ...by this exponent
   float autohit;          // chance of automatically hitting, regardless of moxie
   float automiss;         // chance of automatically missing
   float nostagger;        // chance of shrugging staggers.  Usually 1.0 if anything
   float nostun;           // chance of shrugging multi-round stuns
   float noitems;          // chance of ignoring combat items
   float noskills;         // chance of ignoring skills
   float delevelres;       // percent resistance to deleveling
   float spellres;         // percent resistance to spells
   float dodge;            // chance of dodging melee attacks
   string onlyhurtby;      // can only be damaged by X.  possible: club, pottery, healing
   string[string] dmgkey;  // normalized damage type(s) vs. this monster (sauce, pasta, perfect)
};
static monster_data[monster] mdb; // keep all monsters loaded as encountered for faster loading
monster_data mdata;               // m's monster_data