Yes, that error is a bit–vague to new programmers.
But I think where Inform gets confused is, you haven’t defined ‘making the first bed.’
I took the liberty of chopping up your code to make it more general.
[code]“firstbed-bobinator” by Andrew
A bed is a kind of container. It is enterable. A bed can be made or unmade. A bed is usually unmade.
[note: this is more general than saying bed 1 can be made or unmade. It also allows you to try to make bed 2 w/o much additional code.]
Dormitory is a room.
bedmaking is an action applying to one thing.
[this is the key thing that is missing. Inform doesn’t know bedmaking is an action or what it applies to. When you said Making the First Bed, it could’ve been an action applying to nothing–but that’d get confusing because it, well, was meant to apply to 1 thing.]
if noun is not a bed:
say “You can only MAKE beds in this game.” instead;
if noun is unmade:
now the first bed is made;
say “You put in a tremendous level of effort hoisting the covers back onto the bed, carefully smoothing them back under the pillows. Why you do this, even though you know you’ll just make a mess of them again, you aren’t entirely sure.” instead;
say “This is added to the example to make sure there’s a message if you try to make the bed twice. You did, so, bam.” instead;
Understand the command “make [something]” as something new.
[you also need this before understanding something as something concrete.]
Understand “make [something]” as bedmaking.
The first bed is a bed. the first bed is in Dormitory.
The printed name of first bed is “bed”.
The description of the first bed is “Quite possibly one of the best friends you’ve made during your time at the school. Sure, you hate the way the covers are stitched in, leaving your feet to roast under them. Sure, you hate the way one of the springs jab into your back if you lean into it a certain way. But, when it all comes down to it, it helps you get to sleep.[If bed is made]The pea-green covers are neatly straightened out.[Otherwise]The pea green covers are dangling over the edge of the bed where you left them.[END IF]”[/code]
No problem about the help. It’s good you’re dropping by to say thanks. I hope the advice is making things clearer!
One thing to try if an error message is confusing is to write down what you did wrong and what it gave for the next time. Also you can try deleting certain lines from sample documentation code you -know- works. Then you can see what the errors mean. One piece of documentation I would love would be one that categorizes samples and common mistakes that lead to semi-cryptic Inform errors and examples of how to get certain errors and specific things to check. That could save a lot of time and frustration.