scalar Time type User { id: ID! name: String email: String! connectedAt: Time! createdAt: Time! } type Project { id: ID! title: String! tasks: [Task]! params: ProjectParams! acl: [Access]! taskCategories: [TaskCategory]! } type Task { id: ID! label: String category: TaskCategory estimations: Estimations } type TaskCategory { id: ID! label: String! costPerTimeUnit: Float! } type Access { id: ID! user: User! level: String! } type ProjectParams { timeUnit: TimeUnit currency: String! roundUpEstimations: Boolean! hideFinancialPreviewOnPrint: Boolean! } type TimeUnit { label: String! acronym: String! } type Estimations { optimistic: Float! likely: Float! pessimistic: Float! } input ProjectsFilter { ids: [ID] limit: Int offset: Int search: String } type Query { currentUser: User projects(filter: ProjectsFilter): [Project] }