Created
June 17, 2025 16:50
-
-
Save bryanerayner/dd921dd4c0a31aa8a4e86bb35ffe017c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type definitions: | |
ServerHostedEntity<Identifier extends string | number | guid> = Entity & { | |
id: Identifier | |
} | |
TheatreProp<Param Name extends string, Type> = { | |
name: Param Name; | |
initial value: Type, | |
user choice: Type, | |
} | |
creation form <User extends any user, Type extends ServerHostedEntity<Identifier>> = { | |
[param in ConstructorArgs<User, Type>]: TheatreProp<param, ConstructorArgs<User, Type>[param]>; | |
@universe::creates_new<Type> | |
create(): Type | |
} | |
stanza: <User> creates a new <Type>,{0,1} using <Component> | |
- User: any user | |
- Type: any entity type | |
- Component: any frame | |
frame type = creation form<Type> | |
'''
creation form <User extends any user, Type extends ServerHostedEntity> = {
@params
[param in ConstructorArgs<User, Type>]: TheatreProp<param, ConstructorArgs<User, Type>[param]>;
create(): Type
}
stanza: <User> creates a new <Type>,{0,1} using <Component>, <Data>
- User: any user
- Type: any entity type
- Data: Type
- Component: any frame
frame type = creation form
libretto:
- User navigates to frame matching Component
- Bring Frame into focus
- for each param in Component[frame type]@params
- focus theatre prop in frame with purpose [Component[frame type][param][purpose]
- set focused theatre prop value to Data[param]
- focus button matching purpose Component[frame type]['create']
- User clicks focused button
'''
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
'''
creation form <User extends any user, Type extends ServerHostedEntity> = {
}
stanza: creates a new ,{0,1} using ,
frame type = creation form
libretto:
'''