type TLShapePartial<T extends TLShape = TLShape> = T extends T ? { id: TLShapeId meta?: Partial<T['meta']> props?: Partial<T['props']> type: T['type'] } & Partial<Omit<T, 'id' | 'meta' | 'props' | 'type'>> : never