// SPDX-FileCopyrightText: 2026 FocusFlow contributors
// SPDX-License-Identifier: AGPL-3.0-only

/// Implements Models behavior for the Scheduler Core package.
library;

// Core domain model for the ADHD scheduling starter project.
//
// This file intentionally contains small immutable value objects and enums. It
// should stay free of UI, persistence, notification, and platform code. Keeping
// this layer plain makes the scheduler easy to test and easy to move between a
// command-line prototype, Flutter UI, or future backend service.
//
// Reading order for humans:
//   1. `TaskType` and `TaskStatus` explain the two main axes of a task.
//   2. `Task` shows the actual data carried through the scheduling engine.
//   3. `ProjectProfile` explains how project defaults create tasks.
//   4. `TimeInterval` is the shared time-span helper used by scheduling logic.

import 'task_statistics.dart';
part 'models/validation/domain_validation_code.dart';
part 'models/validation/domain_validation_exception.dart';
part 'models/enums/tasks/task_type.dart';
part 'models/enums/tasks/task_status.dart';
part 'models/enums/planning/priority_level.dart';
part 'models/enums/effort/reward_level.dart';
part 'models/enums/effort/difficulty_level.dart';
part 'models/enums/planning/reminder_profile.dart';
part 'models/enums/planning/backlog_tag.dart';
part 'models/entities/task.dart';
part 'models/entities/project_profile.dart';
part 'models/entities/time_interval.dart';
