objectstack-query
Installation
SKILL.md
Query Design — ObjectStack Query DSL
Calling Convention — object is the FIRST ARGUMENT
| Surface | Shape | Legal option keys |
|---|---|---|
engine find / findOne |
engine.find('task', {…}, { context }) |
context, where, fields, orderBy, limit, offset, search, searchFields, expand — plus the six driver passthrough keys transaction, tenantId, tenantIds, timezone, bypassTenantAudit, preserveAudit |
engine aggregate |
engine.aggregate('deal', {…}) |
context, where, groupBy, aggregations, having, timezone |
engine count |
engine.count('task', {…}) |
context, where |
| protocol / REST | findData({ object: 'task', query: {…} }) |
object sits OUTSIDE the query |
nested expand value |
a QueryAST — { object, fields, where } |
(see Expand) |
ENGINE_FIND_OPTION_KEYS / ENGINE_AGGREGATE_OPTION_KEYS are closed sets:
a key outside the row is refused by name (find('task') does not recognise option 'bogus'), never ignored. A standalone { object: 'account', limit: 20 } literal
is therefore a QueryAST — legal as findData's query or an expand
value — not an engine option bag. top folds to limit, filter to where,
before that check.