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.
PAPER.TITLE (NOT NULL); an empty string stays empty so the title
filter can compare it unguarded.
Ids of the ACTIVE projects holding this paper, ascending.
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".
PAPER_ROOTS.SOURCE_ID — the vocabulary the project picker speaks.
[norm_tag] of each entry in [Self::tags] — what a tag filter row is
compared against, so the client needs no normalization pass.
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.
Lowercased names of this paper's authors — what the Author highlight filter substring-matches.