linXiv frontend (TS/JS)
    Preparing search index...

    Type Alias GraphPaper

    type GraphPaper = {
        author_keys: string[];
        category: string | null;
        doi: string | null;
        has_pdf: boolean;
        id: string;
        label: string;
        project_ids: number[];
        published: string | null;
        source_fk: number;
        source_id: string;
        summary: string | null;
        tag_keys: string[];
        tags: string[];
        url: string | null;
    }
    Index
    author_keys: string[]

    Lowercased names of this paper's authors — what the Author highlight filter substring-matches.

    category: string | null
    doi: string | null
    has_pdf: boolean
    id: string

    Node id — PAPER_ROOTS.SOURCE_FK as a string, so every id in the payload is one comparable type; [Self::source_fk] is the /library/:sfk route param.

    label: string

    PAPER.TITLE (NOT NULL); an empty string stays empty so the title filter can compare it unguarded.

    project_ids: number[]

    Ids of the ACTIVE projects holding this paper, ascending.

    published: string | null

    PAPER_META.PUBLISHED, with the [NO_PUBLISHED_DATE] sentinel folded to None so a Date-range filter cannot drop undated papers as year-1 "too old".

    source_fk: number
    source_id: string

    PAPER_ROOTS.SOURCE_ID — the vocabulary the project picker speaks.

    summary: string | null
    tag_keys: string[]

    [norm_tag] of each entry in [Self::tags] — what a tag filter row is compared against, so the client needs no normalization pass.

    tags: string[]

    Display spellings of this paper's tags, deduped on [norm_tag] and resolved to the TAG table's casing — the canvas chips, in [Self::tag_keys] order.

    url: string | null