--- task: Write a Traditional class with prompts, signals built from the object name, and items created from a template version: R1.05 (first written for R1.03) source: IM 36K10P10-01EN 4th ed. (Feb. 2026) §1–§5, §8, §10, §11.2.8 (only contact information changed since R1.03); IM 36K10L10-01EN; practiced with CI-Eng-Sample class CIENG_TANK 2026-09-30 status: verified on R1.03 (2026-09-30); re-tested on R1.05 2026-10-08 (CIENG_TANK compiled on load, TANK1.CALC.VOLUME created, level 50 gave volume 100, object removed with its items). Refused object, PRINT with %%, and the runtime attribute change (§3) were not re-tested on R1.05 --- # Traditional class: prompts, signals, created items Worked example: class `CIENG_TANK` and object `CI-Eng-Sample.TANK1.CALC` (`examples/CI-Eng-Sample/06_class_df.qli`, `07_object_df.qli`). Loading and removing: task `load-class-object.md`. Language reference: `knowledge/manuals/IM36K10P10-01EN.md`. ## 1. Design One class = one kind of equipment; one object per piece of equipment. Put the variable parts (which items, which settings) in the **class prolog** so they are fixed when each object is created: | Need | Use | |---|---| | Setting per object, asked at creation | `ATTRIBUTE x OBJECT FLOAT;` + `PROMPT x QUERY "…";` → `ATTR_VALUE_n` in `OBJECT_DF` | | Setting shared by all objects | `ATTRIBUTE x CLASS …;` | | Existing item next to the object | `SIGNAL s := SECTION || "." TRIGGER VALUE;` | | New item per object | `SIGNAL s := FROM "