OptionalcreateObject?: (space: Space) => Effect<any, any, any>OptionaldropInto?: (object: InstanceType<T>) => ContainerThe container an object dropped onto a section object's row joins. Without it a section object only accepts objects of its own type, as reorders.
OptionalgroupSegment?: stringGroup segment the section nests under (e.g. GraphPath.GroupSegments.ai), when match places it
beneath a navtree group rather than directly under the space. Included in the forward-resolution
urlPath so section objects at root/<space>/<groupSegment>/<typename>/<id> resolve
deterministically. Omit for a space-direct section (root/<space>/<typename>/<id>).
Optionalmatch?: (node: Readonly) => Option<Space>Override the default AppNodeMatcher.whenSpace match function.
Use when the section should live under a group node rather than directly under a space.
The match must still return Option<Space> so the connector can query the space db.
Optionalposition?: numberPosition hint for the section in the sidebar.
OptionalsectionUrlKey?: stringRegistered URL key making the section node itself addressable (e.g. library → /w/<space>/library),
for a section that is worth linking to in its own right; it also names the section node. Omit and the
section stays a bare container named by its typename: only its objects are addressable.
Opting in splits the section into two extensions — one owning the section node, one owning its objects — since each extension carries one binding and the two need different ones. The objects are then materialized on expand rather than inline.
OptionalshowEmpty?: booleanKeep the section in the sidebar while the space has none of the type, so its "+" can start the first one (a section that is where its objects are made, like sessions). By default an empty section is suppressed.
Optionalsort?: (a: InstanceType<T>, b: InstanceType<T>) => numberA fixed order for the section's objects (e.g. newest first, for sessions). The section then keeps that order rather than one the person drags into place, so its objects cannot be rearranged.
Registered URL prefix key for this section's connector (e.g. doc, mail). Keys are global, so
it is declared here rather than derived — see @dxos/app-graph's path-resolution.ts for how
registered keys resolve and serialize URLs.
If provided, a "+" action is added to the section header that runs this effect when clicked. The action label is resolved from
add-object.labelin the type's i18n namespace.