12. Changes from 0.1
did0.20.212. Changes from 0.1
Contents of DID 0.2
DID 0.2 changes DID 0.1 only in the places below. Everything not listed keeps its 0.1 meaning. No valid DID 0.1 definition becomes invalid or changes meaning: every change either loosens the schema or applies only to input that DID 0.1 rejected or did not describe. The corresponding changes to DISL are listed in DISL's own section "Changes from 0.1".
| # | Change | Sections | Reason |
|---|---|---|---|
| 1 | A reader loads records with missing or duplicate ids and reports them (std.missingId, std.duplicateId); the first in record order keeps a duplicated id. Writers still never write them. With missing: "assign", the new id is written on the next save. Ids compare as persistence.ids.compare declares, and derived ids are recomputed on load. |
4, 8.1 | Tolerant loading. |
| 2 | A record that fails its schema for another reason is kept verbatim as unknown content and reported as std.unreadableEntry with its JSON Pointer; an unparseable file gives std.unparseable. "Problems" are now called findings. |
8.1, 8.2, 9 | Findings instead of refusals. |
| 3 | View keys and suppressions never name ephemeral ids; stored ones are ignored, reported (std.ephemeralViewData for view keys) and dropped on the next write. View-data kinds listed in persistence.view.viewer are never written. Suppressions may name a subject instead of an element, with exactly one of the two. |
3, 5 | Ephemeral ids; findings on undrawn subjects. |
| 4 | Records of derived types are never written, and are read as unknown content; view keys and suppressions may name derived elements with stable ids; unresolved view keys are kept and ignored; derived elements are computed after validation and before view data is resolved. | 3, 5, 8.1 | Derived elements. |
| 5 | Enum values are stored in their value form; fixed attributes are never stored, and a stored one is ignored with a warning. |
3 | Enum stored forms and fixed attributes. |
| 6 | A relation's target may be absent when its relation type's target end is optional. |
3 | Stubs. |
| 7 | yearMonth values are "±YYYY-MM" with at least four year digits; datetime values keep their written form (a full date or a local date-time) under writtenPrecision: "preserve" or timezone: "floating". |
3 | Time values. |