export interface IPlaygroundData { amount: number; interactions: IPlaygroundDataInteraction[]; anchors: { donors: { type: string; position: { x: number; y: number }; follow?: boolean; }[]; acceptors: { type: string; position: { x: number; y: number }; accepts: number; order: 'UP' | 'DOWN' | 'KEEP'; }[]; }; } export type IPlaygroundDataInteraction = | IPlaygroundDataInteractionDrag | IPlaygroundDataInteractionRotate | IPlaygroundDataInteractionDelete; export interface IPlaygroundDataInteractionDrag { type: 'drag'; } export interface IPlaygroundDataInteractionRotate { type: 'rotate'; step: number; } export interface IPlaygroundDataInteractionDelete { type: 'delete'; } export function defaultPlaygroundData(): IPlaygroundData { return { amount: 1, interactions: [{ type: 'drag' }], anchors: { donors: [], acceptors: [], }, }; }