Skip to content

Systems, Components and Augmented Frame#14

Merged
Stiivi merged 17 commits intomainfrom
feature/runtime-frame
Dec 9, 2025
Merged

Systems, Components and Augmented Frame#14
Stiivi merged 17 commits intomainfrom
feature/runtime-frame

Conversation

@Stiivi
Copy link
Copy Markdown
Contributor

@Stiivi Stiivi commented Nov 7, 2025

Added new Systems based runtime with AugmentedFrame

- Added FrameComponent
- Added filter(componentType:) to runtime frame
- Changed InternalSystemError to struct with more details such as system name, message and context
- Fixed scheduler initialiser
- runtime frame has new issue protocol
- new expression parser system
- changed system group to contain types not instances
- adjusted access modifiers
- Split constraint checker methods to validate (quick fail on first) and diagnose (returns result)
- renamed FrameValidationError to FrameValidationResult (diagnostic struct)
- moving towards DesignFrame being ValidatedFrame (it has diesing and therefore metamodel associated with it)
- Design.accept(...) and related methods now throw FrameValidationError with more options, not just structural integrity
- Moved broken references to new structural validator
- Moved all structure validation to new structural validator
- Added metamodel validation mode (sketch, unused)
- Made most of the frame accepting methods to accept `some Frame` instead of design frame
- Added Metamodel.hasType(name:) and hasType(type:)

TODO: Some tests still need fixing.
- DesignFrame is now considered to be validated.
@Stiivi Stiivi self-assigned this Nov 7, 2025
@Stiivi Stiivi added the enhancement New feature or request label Nov 7, 2025
- changed Issue requirement for error to be optional, made  message and hints to be set on init()
- added non-system initialiser to Issue
- removed old code
- Allow loading of (semi-corrupted) designs without frames as single-frame designs
- Added DesignLoader option .collectOrphans
- Allocate single frame ID
- Added RuntimeIdentityID
- Added EphemeralID
- Added generation of ephemeral ID
- Removed frame components, replaced with ephemeral ID .Frame
@Stiivi Stiivi changed the title Systems, Components and Runtime Frame Systems, Components and Augmented Frame Nov 11, 2025
- do not pass all snapshots, just snapshots from the current frame
- added ObjectID version of setComponent (...)
- added runtimeFilter(...) that reutns (runtime entity ID, T)
- added objectID computed property to runtime id
- Added "strict" flag to system group: whether the system dependency is required to be present in the list of systems or not.
- Instantiate once on first update(:)
- Added AugmentedFrame.removeComponentForAll
- Added AugmentedFrame.first(withComponent:)
- Added strict system dependency "requires", made before/after to be soft
- Removed "strict:" flag from system group
- Added DesignFrame.isEmpty
- Added AugmentedFrame.isEmpty - includes ephemeral entities
- changed Frame.contained(ids:) from array to some Collection
- Made Selection a component
-
@Stiivi Stiivi marked this pull request as ready for review December 9, 2025 17:40
@Stiivi Stiivi merged commit f6afe08 into main Dec 9, 2025
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant