Renames the `concept_comparison` keyword to `definition` across the entire codebase for better readability and conciseness. Changes: - Tree-sitter grammar: `concept_comparison` node → `definition` - Tree-sitter queries: highlights, outline, and indents updated - Zed extension highlights.scm updated to match - Lexer: `Token::ConceptComparison` → `Token::Definition` - Parser: `ConceptComparisonDecl` rule → `DefinitionDecl` - AST: `Declaration::ConceptComparison` → `Declaration::Definition`, `ConceptComparisonDecl` struct → `DefinitionDecl` - All Rust source files updated (validate, names, convert, references, semantic_tokens, symbols, code_actions, hover, completion) - `validate_concept_comparison_patterns` → `validate_definition_patterns` - Example file and test corpus updated - Spec docs: created SBIR-v0.3.2-SPEC.md, updated TYPE-SYSTEM.md, README.md, SBIR-CHANGELOG.md, SBIR-v0.3.1-SPEC.md
5.2 KiB
SBIR Changelog
All notable changes to the Storybook Intermediate Representation format.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Note: As of v0.3.0, value type names have been renamed: Int→Number, Float→Decimal, String→Text, Bool→Boolean. Historical entries below use the original terminology from their respective versions.
[0.3.2] - 2026-02-23
Changed
Keyword Rename:
- The
concept_comparisonkeyword has been renamed todefinition- Old:
concept_comparison SkillLevel { ... } - New:
definition SkillLevel { ... } - No binary format changes required - this is a source-level rename only
- The Rust AST type
ConceptComparisonDeclis renamed toDefinitionDecl
- Old:
0.2.0 - 2026-02-13
Added
Resource Linking System:
BehaviorLinkstruct for conditional behavior attachment- Priority system (Low, Normal, High, Critical)
- Conditional activation via expressions
- Default fallback behavior
ScheduleLinkstruct for conditional schedule attachment- First-match conditional selection
- Default fallback schedule
- Extended
Characterwithbehavior_linksandschedule_linksvectors - Extended
Institutionwithbehavior_linksandschedule_linksvectors
Year-Long Schedule System:
Schedule.parent_schedule_idfor inheritanceSchedule.patternsfor temporal patternsSchedulePatternenum with three variants:DayPattern- day-specific blocksSeasonPattern- seasonal blocksRecurrencePattern- recurring events
RecurrenceSpecwith variants:- Every N days
- Weekly on specific days
- Monthly on day N
- Annually on month/day
- Pattern-based schedule composition and merging
- User-definable calendar enums (DayOfWeek, Season, Month)
Behavior Tree Enhancements:
- Optional
labelfield on Selector and Sequence nodes (for debugging) - Parameterized decorators:
DecoratorRepeatN(u32)- repeat N timesDecoratorRepeatRange(u32, u32)- repeat min..max timesDecoratorRetry(u32)- retry up to N timesDecoratorTimeout(u64)- timeout after millisecondsDecoratorCooldown(u64)- cooldown periodDecoratorIf(Expression)- conditional ifDecoratorSucceedAlways- always succeedDecoratorFailAlways- always fail
- Keyword syntax support (choose, then, if, when, repeat, etc.)
Changed
Breaking:
ScheduleBlock.nameis now required (wasOption<String>)ScheduleBlock.startandendchanged fromTimestruct tou16(minutes since midnight)ScheduleBlock.activity: Stringremoved, replaced withbehavior_ref: Option<Vec<String>>- Binary format version updated from 0x0001 to 0x0002
- Character and Institution sections have different binary layout (added link vectors)
- Schedule section completely redesigned
Non-breaking:
- Behavior tree Selector/Sequence nodes extended (backward compatible if label is None)
Removed
ScheduleBlock.activityfield (replaced bybehavior_ref)
Deprecated
- None (first formal release)
Fixed
- None (first formal release)
Security
- None
[0.1.0] - Implicit (Pre-Release)
Initial format (inferred from codebase, never formally specified).
Included
- Basic entity storage:
- Characters with species and field maps
- Templates with includes
- Species definitions
- Enums
- Simple schedules:
- Time blocks with activity strings
- Optional block names
- Behavior trees:
- Symbolic syntax (?, >, !, @, ~)
- Basic decorators (repeat with * sigil)
- Action nodes with parameters
- Conditions and subtree references
- Relationships with participants
- Locations
- Life arcs (state machines)
- Institutions
Known Limitations
- No resource linking (behaviors/schedules hard-coded per entity)
- No schedule patterns (single 24-hour template only)
- No parameterized decorators
- No named behavior tree nodes
- No formal specification document
Migration Notes
From 0.1.0 to 0.2.0
Required Actions:
- Recompile source files OR
- Use
storybook-migratetool for binary migration
Key Changes:
- All schedules must have named blocks
- Activity strings converted to behavior references
- Characters/Institutions gain empty link vectors (if not specified)
- Time values converted to minutes since midnight
See: /docs/SBIR-MIGRATION-GUIDE.md for detailed instructions.
Version Numbering
SBIR follows semantic versioning:
- Major (x.0.0): Incompatible changes requiring migration
- Minor (0.x.0): Backward-compatible additions
- Patch (0.0.x): Bug fixes, no format changes
Current: v0.2.0 (first formal release) Next Minor: v0.3.0 (planned features TBD) Next Major: v1.0.0 (when format stabilizes)
Unreleased
Track upcoming changes here
Planned for v0.3.0
- Compressed string table option
- Symbol index for faster lookups
- Metadata section for tooling info
Under Consideration
- Module system for multi-file worlds
- Asset references (audio, images)
- Localization support
[0.1.0]: (implicit, no release)