Type Definitions
This page documents the core types used throughout the system. Understanding these types is crucial for working with the platform's data structures.
Playbook Structure
At the highest level, we have Playbooks which contain Phases, which contain Sessions. Here's the hierarchy:
Playbook
└── Phase
└── Session
├── Preparatory Activities
├── Activities
└── Output Activities
Playbook
A Playbook is the top-level container that represents a complete workflow or process.
playbook "My Playbook" {
description: "A complete workflow process"
purpose: "To demonstrate the playbook structure"
thumbnail: "path/to/thumbnail.jpg"
phase "Phase 1" {
description: "First major milestone"
// ... sessions ...
}
}
interface Playbook {
id: number;
slug: string;
name: string;
description?: string;
purpose?: string;
thumbnail?: string;
phases: [Phase, ...Phase[]]; // Must contain at least one phase
}
Phase
A Phase represents a major stage or milestone within a Playbook.
phase "Getting Started" {
description: "Initial setup and orientation"
session "Kickoff Meeting" {
description: "Team introduction and project overview"
// ... activities ...
}
}
interface Phase {
id: number;
name: string;
description: string;
sessions: [Session, ...Session[]]; // Must contain at least one session
}
Session
A Session is a concrete meeting or workshop that includes various activities.
session "Design Workshop" {
description: "Collaborative design session"
purpose: "Create initial prototype"
suggestedDuration: 120
beforeSession {
activity {
name: "Pre-reading"
description: "Review design brief"
type: "information"
duration: 30
}
}
activities {
activity {
name: "Brainstorming"
description: "Generate ideas"
purpose: "Collect initial concepts"
duration: 45
tool {
name: "Miro"
description: "Virtual whiteboard"
}
}
}
afterSession {
activity {
name: "Summary"
description: "Document outcomes"
type: "summary"
duration: 30
}
}
}
interface Session {
id: number;
slug: string;
name: string;
description: string;
purpose?: string;
beforeSession?: PreparatoryActivity[];
activities: Activity[];
afterSession?: OutputActivity[];
suggestedDuration?: number;
spaces?: SpaceInstance[];
}
Activities
There are three types of activities: Preparatory, Main, and Output activities.
Main Activity
The core activities that take place during a session.
activity {
name: "Brainstorming Session"
description: "Generate ideas collaboratively"
purpose: "Collect initial concepts"
duration: 45
tool {
name: "Miro"
description: "Virtual whiteboard for collaboration"
}
}
interface Activity {
id: number;
slug: string;
name: string;
description?: string;
purpose?: string;
tool?: ToolInstance;
duration: number; // in minutes
}
Preparatory Activity
Activities that participants should complete before the session.
activity {
name: "Pre-reading Materials"
description: "Review project background documents"
type: "information"
required: true
format: "document"
content: "Project brief and requirements"
duration: 30
}
interface PreparatoryActivity {
id: number;
slug: string;
name: string;
description?: string;
type: 'information' | 'feedback' | 'input';
required: boolean;
format: 'text' | 'document' | 'image' | 'video' | 'form';
formType?: 'shortText' | 'longText' | 'imageUpload' | 'videoUpload' |
'checklist' | 'ranking' | 'poll' | 'vote';
content?: string;
url?: string;
duration: number;
}
Output Activity
Activities that capture results or follow-up actions after the session.
activity {
name: "Session Summary"
description: "Document key decisions and next steps"
type: "summary"
required: true
format: "document"
formType: "actionItems"
content: "Summary template"
duration: 30
}
interface OutputActivity {
id: number;
slug: string;
name: string;
description?: string;
type: 'feedback' | 'summary' | 'action' | 'reflection';
required: boolean;
format: 'text' | 'document' | 'form' | 'checklist';
formType?: 'shortText' | 'longText' | 'actionItems' | 'notes' |
'feedback' | 'reflection';
content?: string;
url?: string;
duration: number;
}
Tools and Spaces
Tool
A tool represents a software or platform that can be used in activities.
tool {
name: "Miro"
description: "Virtual whiteboard platform for collaboration"
}
interface Tool {
id: number;
name: string;
description?: string;
}
Tool Instance
A specific instance or configuration of a tool for use in an activity.
tool {
name: "Team Miro Board"
description: "Project-specific whiteboard for design activities"
embedUrl: "https://miro.com/app/board/example/"
}
interface ToolInstance {
id: number;
name: string;
description?: string;
tool: Tool;
embedUrl?: string;
}
Space
Defines a type of meeting space or environment.
space {
name: "Virtual Meeting Room"
description: "Online video conferencing space"
type: "video-call"
}
interface Space {
id: number;
name: string;
description?: string;
type: 'video-call' | 'virtual-whiteboard' | 'immersive-vr' | 'in-person';
}
Space Instance
A specific instance of a space configured for a session.
space {
name: "Project Kickoff Room"
description: "Main virtual meeting room for the project"
embedUrl: "https://meet.google.com/example"
location: "Online" // For in-person spaces, this would be a physical address
}
interface SpaceInstance {
id: number;
name: string;
description?: string;
space: Space;
embedUrl?: string;
location?: string; // For in-person spaces
}