Anatomy issues: properties not being allowed to exist

I’m trying to do some basic anatomy modeling in my current adventure. Here is the setup from my extension in progress:

Part I - Life and Death

Chapter I -  Anatomy

Limb-integrity is a kind of value. The limb-integrities are whole, bruised, and broken. 

Bleed-state is a kind of value. The bleed-states are bloodless and bleeding.

A limb is a kind of thing.  A limb always has a number called threshold. The threshold of a limb is usually 15.   
A limb always has a limb-integrity called limb-state. The limb-state of a limb is usually whole. A limb always 
has a bleed-state. The bleed-state of a limb is usually bloodless. 

A main-hand, off-hand, legs, forelegs, hindlegs, main-claw, off-claw, skull, wings, talons, and torso are 
kinds of limbs with limb-state whole.

Chapter II - Taxonomy

A main-hand, off-hand, legs, skull, and torso are a part of every man.

A main-hand, off-hand, legs, skull, and torso are a part of every woman.

A humanoid is a kind of person. A main-hand, off-hand, legs, skull, and torso are a part of every humanoid.

A bird is a kind of animal. Talons, a skull, a torso, and wings are a part of every bird.

A quadruped is a kind of animal. Forelegs, hindlegs, a skull, and a torso are a part of every quadruped.

And here is the source code from my test game:

Laboratory is a room. The hero is a man in Laboratory. The player is the hero.

Include System 7 by Rakaneth.

The hapless prisoner is a man in Laboratory. The wolf is a quadruped in Laboratory. The limb-state of the 
forelegs of the wolf is broken.  The eagle is a bird in Laboratory.

Test me with " showme wolf / x my torso / x wolf's forelegs".

What’s happening is that when I run this, Inform objects to the setting of the initial limb-state of the wolf’s forelegs, because it hasn’t been allowed to exist.
What am I missing here?

You can’t assign initial values to properties of objects created through assemblies, which is somewhat annoying. The easiest way to get around it is to make a “when play begins” rule.

When play begins:
    let the lupine be a random wolf in the Laboratory;
    let the leg be random forelegs which are part of the lupine;
    now the limb-state of the leg is broken.

The reason for the “random” bits is that Inform assumes objects created through assemblies are meant to be indistinguishable, like 20 gold coins in a box, rather than individual.

First, thanks for the reply.

Is the random selection of the wolf in the first line of the rule required, since the wolf is specified and not a kind?

More updates on this when I get home. Having to write begins-play rules for the initial states of my assemblies might be the deal-breaker that will cause me to treat limbs and their status as values instead of assemblies, which is a shame because I want the player to be able to take trophies of things he has slain.

Sorry, I misread your initial code. Since the wolf is created as a single object and not a kind, you don’t need that line.

When play begins:
    let the leg be random forelegs which are part of the wolf;
    now the limb-state of the leg is broken.

Since I can’t attach properties to assemblies easily, I am rewriting my modeling to use values instead. This appears to work:

Revised extension code:

Limb-state is a kind of value. The limb-states are whole, bruised, broken, and missing.

A person can be bleeding. A person is usually not bleeding.

A humanoid is a kind of person.

A humanoid has a limb-state called head. 
A humanoid has a limb-state called torso. 
A humanoid has a limb-state called main-hand.
A humanoid has a limb-state called off-hand.
A humanoid has a limb-state called leg-pair.

A bird is a kind of animal.

A bird has a limb-state called head.
A bird has a limb-state called torso.
A bird has a limb-state called talon-pair.
A bird has a limb-state called wingset.

A quadruped is a kind of animal.

A quadruped has a limb-state called head.
A quadruped has a limb-state called torso.
A quadruped has a limb-state called foreleg-pair.
A quadruped has a limb-state called hindleg-pair.

And now, my revised testing source:

Include System 7 by Rakaneth.

Laboratory is a room. The hero is a humanoid in Laboratory. The player is the hero. The player is male.

The hapless prisoner is a male humanoid in Laboratory. The wolf is a quadruped in Laboratory.  The eagle is a bird in Laboratory. The foreleg-pair of the wolf is broken.

test me with "showme me / showme prisoner / showme wolf / showme eagle"

This now returns the expected information from showme:

>[3] showme wolf
wolf - quadruped
location: in Laboratory
singular-named, improper-named; unlit, inedible, portable; male
list grouping key: none
printed name: "wolf"
printed plural name: "quadrupeds"
indefinite article: none
description: none
initial appearance: none
carrying capacity: 100
head: whole
torso: whole
foreleg-pair: broken
hindleg-pair: whole