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.

Revisions

  1. bryanerayner created this gist Jun 17, 2025.
    29 changes: 29 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@

    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>