Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bryanerayner/dd921dd4c0a31aa8a4e86bb35ffe017c to your computer and use it in GitHub Desktop.
Save bryanerayner/dd921dd4c0a31aa8a4e86bb35ffe017c to your computer and use it in GitHub Desktop.
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>
@bryanrideshark
Copy link

bryanrideshark commented Jun 17, 2025

'''
creation form <User extends any user, Type extends ServerHostedEntity> = {

@params
[param in ConstructorArgs<User, Type>]: TheatreProp<param, ConstructorArgs<User, Type>[param]>;

create(): Type

}

stanza: creates a new ,{0,1} using ,

  • 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

'''

@bryanrideshark
Copy link

'''
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