import Foundation
import UniformTypeIdentifiers

// MARK: - The family pasteboard types

/// **The three drag and clipboard types the app owns**, declared once with `UTType(exportedAs:)` to
/// match the `UTExportedTypeDeclarations` in `Kanban/Info.plist`. `exportedAs` is a claim of
/// ownership the system checks against the running app's plist, and one app making it is the whole
/// story — there is no importing sibling to keep in step (12-editions.md ▸ Distribution, re-ruled
/// 2026-07-30: the types are "declared and exported once, by the one app — no ownership twins").
///
/// What each type *is* stays documented at its payload — `DragPayload` for cards and lanes,
/// `ClipboardManifest` for the clipboard type.
extension UTType {

    /// A drag carrying board **cards** — see `DragPayload`.
    static let laneworkCards = UTType(exportedAs: "dev.rzen.indie.kanban.cards")

    /// A drag carrying board **lanes** — see `DragPayload`.
    static let laneworkLanes = UTType(exportedAs: "dev.rzen.indie.kanban.lanes")

    /// A Lanework copy's pasteboard manifest — see `ClipboardManifest`.
    static let laneworkClipboard = UTType(exportedAs: "dev.rzen.indie.kanban.clipboard")
}
