ReadonlynameReadonlysheetColumns in view order — the reader's own columns are alphabetical.
The worksheet's visual specification.
Declared non-optionally on both public Worksheet interfaces —
ExternalContract/Embedding/SheetInterfaces.d.ts and
ExternalContract/Extensions/SheetInterfaces.d.ts — and implemented by the
Embedding API's own Worksheet class (EmbeddingApi/Models/Worksheet) in
@tableau/embedding-api@3.12.1. It is not Extensions-only.
It is declared required here and still feature-detected in reader.ts,
because the two answer different questions. This type describes the
contract; the runtime check describes the host, which loads whatever build
of the Embedding library it likes. The Extensions declaration carries
@since 1.11.0 and Tableau 2024.1; the Embedding one carries no @since
at all, so the declarations set no version floor there — an older library
on the page simply will not have the method, and an older Tableau Server
can reject the call at runtime, which reader.ts catches.
A worksheet: the only sheet kind that owns data and selection.
The signatures match both the Embedding and the Extensions
Worksheet, so every pure module downstream works unchanged under either host.